tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

HTTPホストヘッダー

HTTPリクエストは「リクエストライン」、「リクエストヘッダ」、「リクエストボディ」 の3つから構成される。 「リクエストヘッダ」のHostプロパティにはリクエストが送信される先の「サーバーのホスト名とポート番号」が含まれる。 「リクエストヘッダ」のH…

【vue.js】nextTick

VueはDOMを非同期に更新するため、「DOMを更新した後にその更新済みのDOMに対して何らかの処理をする」といったような場面でnextTickが役立ちます。 参考 aloerina01.github.io

【axios】第三引数 config

第三引数に任意の項目を追加できる。 axios.post(url, data, config) await axios.post('/users', params, { // カスタムエラーハンドリングのフラグを追加 skipErrorHandler: true, }) 参考 rakuraku-engineer.com

【vue.js】ref属性 テンプレート参照

DOM要素(クラスやコンポーネント)に一意の名前を付け、script内からリアクティブな参照が可能。 document.querySelectorなどを使って参照するよりref属性で参照した方が良い。 <template> <div ref="element"> </div> </template> <script> export default { setup() { const element = ref(null) return { elemen</script>…

【vue.js】v-model

v-modelはv-bindとv-onを合わせたもの 以下の2つは同義 <input v-bind:value="Hoge" v-on:input="changeData"> data() { return { Hoge: 'xxxx' } }, methods:{ changeData(event) { this.Hoge = event.target.value; } } <input v-model="Hoge" > data() { return { Hoge: 'xxxx' } }, 参考 https://qiita.com/JetNel0/items/8aa1de448…

【ruby】文字化けとエンコーディング

Net::HTTP.getやURI.openで取得したテキストデータはデフォルトでASCII-8BIT(バイナリまたはバイトストリームとしても知られています)として扱われる。 これをUTF-8に変換するにはtext.encode("UTF-8")では文字化を起こす可能性がある。 text.encode("UTF-…

【SQL】is not null はindexが効かない

NULLが多い列にIS NULLやIS NOT NULLを使う場合に、インデックスが使われなかったりすることがある。 参考 zenn.dev

【Nuxt.js】watch deepオプション

指定したプロパティの中にある、プロパティの値も監視する(入れ子・ネストしたプロパティ) 大きなデータ構造で使用するときにはコストが高くなります。使用するときは、どうしても必要なときにだけ使用し、パフォーマンスへの影響に注意しましょう。 参考 …

【Javascript】レキシカルスコープ

レキシカルスコープは 関数を定義した時点でスコープが決まる。 B()を実行した時にA()も実行されるが、A()が定義された時点のxが参照される為、最初の行のvar x = 10; が適用される。 var x = 10; function A(){ console.log(x); //この時の静的なスコープは…

PROPFIND リクエスト

WebDAVプロトコルの一部。 特定のリソース(通常はWebサーバー上のファイルやディレクトリ)に関するプロパティを取得する。 不正なPROPFINDリクエストによる情報漏洩のリスクあり。 動作 リクエスト: クライアントがサーバーに送信。 ボディ: 特定のプロパ…

【AWS】WAF ラベルについて

マッチングルールによってウェブリクエストに追加されるメタデータ。追加されたラベルをもとにリクエストを評価することもできる。 参考 docs.aws.amazon.com

【AWS】WAFについて

Web Acl AWS WAFを利用を始める際に最初に作成することになるリソース。Web Aclに関連付けされたAWSサービスが保護対象となり、Web Aclの配下に作成したルールやルールグループが保護対象リソースのアクセス制御の評価基準となります。 Web Aclのリソースタ…

IPアドレスを知る方法

google chromeの開発ツールでネットワークタブを使用する。 digコマンドでもIPアドレスを知ることができる。しかしサブディレクトリでサーバーが異なる場合は調査できない。(DNSプロトコルを使用している為) 参考 atmarkit.itmedia.co.jp

【Nmap】

ネットワーク探索やセキュリティ監査に使用されるオープンソースツール ポートにSYNフラグをたてたTCPリクエストをサーバに送信します。サーバはポートが開いていた場合、SYN+ACKをNmap側に返します。この時、Nmapはそのポートが開いていると判断し、ACKをポ…

【Nuxt.js】関数の依存とテストのしやすさ

composition apiでロジックを別ファイルに切り出して実装している。 関数Aを一つ定義して、そのプロパティとして関連する関数を複数定義する際に、プロパティとして定義した関数同士で呼び出す実装は良くない。 単体テストを書く際モックしたくなった場合に…

【javascript】nameプロパティ

Nuxt.jsでcomposition apiを使って開発している際に関数オブジェクトを定義して、そのプロパティに関数を定義することが多いが、その際既存のプロパティ名を上書きしない方が良い。 デバッグの際に紛らわしくなる。 既存のプロパティは他にはlength, prototy…

【Javascript】関数の参照と実行

関数は()をつけないと参照になり、()をつけると実行される function sayHi() { console.log('Hello'); } // 関数の後ろに括弧が無い console.log(sayHi); /* function sayHi() { console.log('Hello'); } */ 参考 tcd-theme.com

【SQL】ALL

副問い合わせに対して比較述語(=、!=、<>、<、<=、>、>=)を使用した比較を一度にすることができる。 すべての条件に一致しているレコードだけを抽出することができる。 副問い合わせでは、複数のカラムを返すようなSELECT文を使用することはできない。 SEL…

【Nuxt.js】contextとは

Nuxt から Vue コンポーネントに追加のオブジェクト/パラメータを提供する。 asyncData 、fetch 、plugins 、middleware そして nuxtServerInit のような特別な Nuxt ライフサイクル内で使用できる。 <script lang="ts"> import { fetch } from '@nuxtjs/composition-api' ... …

プロセスとスレッドの違い

プロセスとは OSが実行しているプログラムのインスタンス 各プロセスは同じメモリ領域を一切共有しない スレッドとは CPUから見たプログラムの「実行単位」 プロセスに含まれる プロセス内の同じメモリ領域を共有する マルチスレッド環境で適切なメモリ管理…

【AWS】EFSについて

Amazon EC2、Amazon ECS、を含む複数のコンピュートインスタンスから同時にアクセスできるファイルシステム。 VPCを選択して作成する。その為同じVPC内からアクセスすることが一般的。異なるVPC間で利用するにはEFS マウントヘルパーを使用してVPC ピアリン…

【AWS】サービスディスカバリ

プライベートネットワーク内での名前解決の仕組み。 ECSのサービスに対してDNS名を付与する。(DNS名はサービス名+名前空間名) DNS名の付与に関しては裏でaws cloud mapとroute53が使われている。 DNS名とプライベートIPアドレスが紐づいている。 ECSのサ…

【MySQL】DAYOFWEEK関数

日付を渡して曜日が返却される DAYOFWEEK( 'YYYY-MM-DD' ) 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday. 参考 db.yulib.com

カバレッジの種類

Statement coverage、Branch coverageを参考にすると良さそう(simpleCov、jestの場合Condition Coverageはデフォルトでは測定できない) Statement Coverage プログラム内の各命令が実行されたかの網羅率(命令網羅率) 三項演算子の条件分岐は見れない Bra…

【elasticsearch-rails】 import処理の戻り値を取得

importメソッドからブロックを受け取りitemsをキーにしてドキュメントごとの処理の結果を見ることができる Article.import do |response| puts response['items'] end 参考 rubydoc.info

【rails】enum 値取得

enumを設定した属性で元の値を取得するには属性名 + _before_type_castが必要(rails5以降) rails4 user[:role] => 1 だったのが、Rails5だと・・・、 rails5 user[:role] => 'admin' 参考 qiita.com

【rails】__callee__ メソッド

現在のメソッド名を返す aliasが設定されている場合は実行中のメソッド名ではなく呼び出されたメソッド名を返す def foo p __callee__ end alias :bar :foo foo # => :foo bar # => :bar 参考 qiita.com

【rails】aliasメソッド

alias 新メソッド名 旧メソッド名 def aaa puts "aaa" end alias bbb aaa # bbb でaaaメソッドを実行できる 参考 docs.ruby-lang.org

【ruby】ハッシュ、キーワード引数の省略記法

ruby3.1から有効 # ハッシュ h = { x: x, y: y } h = { x:, y: } # キーワード引数 def aa(b: b) puts b end def aa(b:) puts b end 参考 techlife.cookpad.com

【ruby】エンドレスメソッド

ruby3.1からエンドレスメソッドを使えるようになった # エンドレスメソッド def greet = puts 'Hello' # 以前の記法 def greet puts 'Hello' end 参考 secret-garden.hatenablog.com