composition apiでロジックを別ファイルに切り出して実装している。 関数Aを一つ定義して、そのプロパティとして関連する関数を複数定義する際に、プロパティとして定義した関数同士で呼び出す実装は良くない。 単体テストを書く際モックしたくなった場合に、同じ関数A内のメソッドはモックできない。(できるのかもしれないが複雑な実装になる、またテストフレームワークはjestを使っている)
【javascript】nameプロパティ
Nuxt.jsでcomposition apiを使って開発している際に関数オブジェクトを定義して、そのプロパティに関数を定義することが多いが、その際既存のプロパティ名を上書きしない方が良い。
デバッグの際に紛らわしくなる。
既存のプロパティは他にはlength, prototype
などがある。
function sayHi() { console.log('Hello'); } console.log(sayHi.name); // "sayHi" // 関数sayHiを変数hiと変数heyに代入 let hi = sayHi; let hey = sayHi; // 元の関数名が出力される console.log(hi.name); // "sayHi" console.log(hey.name); // "sayHi"
参考
【Javascript】関数の参照と実行
関数は()をつけないと参照になり、()をつけると実行される
function sayHi() { console.log('Hello'); } // 関数の後ろに括弧が無い console.log(sayHi); /* function sayHi() { console.log('Hello'); } */
参考
【SQL】ALL
副問い合わせに対して比較述語(=、!=、<>、<、<=、>、>=)を使用した比較を一度にすることができる。 すべての条件に一致しているレコードだけを抽出することができる。 副問い合わせでは、複数のカラムを返すようなSELECT文を使用することはできない。
SELECT * FROM teachers WHERE age > ALL (SELECT age FROM teachers WHERE address = "東京都");
参考
【Nuxt.js】contextとは
Nuxt から Vue コンポーネントに追加のオブジェクト/パラメータを提供する。 asyncData 、fetch 、plugins 、middleware そして nuxtServerInit のような特別な Nuxt ライフサイクル内で使用できる。
<script lang="ts"> import { fetch } from '@nuxtjs/composition-api' ... export default defineComponent({ fetch(context) { console.log(context); },
<ref *1> { isStatic: false, isDev: true, isHMR: false, app: { head: [Function: head], router: VueRouter { app: [Vue], apps: [Array], options: [Object], beforeHooks: [], resolveHooks: [], afterHooks: [], matcher: [Object], fallback: false, mode: 'abstract', history: [AbstractHistory], resolve: [Function (anonymous)] }, nuxt: { ...
以下のキーも参照できる
const { app, store, route, params, query, env, isDev, isHMR, redirect, error, $config } = context
以下のような形でカスタムプロパティを追加できる takacc.hatenadiary.jp
参考
【AWS】EFSについて
Amazon EC2、Amazon ECS、を含む複数のコンピュートインスタンスから同時にアクセスできるファイルシステム。 VPCを選択して作成する。その為同じVPC内からアクセスすることが一般的。異なるVPC間で利用するにはEFS マウントヘルパーを使用してVPC ピアリング接続または VPC トランジットゲートウェイを使用する必要がある。
マウントターゲット
- 各アベイラビリティゾーンからEFSへアクセスするためのエンドポイントを設定
アクセスポイント
ユーザーの指定
- デフォルトでは、ルートユーザー (UID 0) のみが読み取り/書き込み/実行のアクセス許可を持つ
- この為、書き込みを行う際はアクセスポイントを使用する必要があるかも(ユーザーID=0を指定してユーザーIDを上書きする)
- NFSクライアント側で実行ユーザーがルートユーザーであることを確認したが、アクセスポイントを使用しないと書き込みが行えなかった(要調査)
- デフォルトでは、ルートユーザー (UID 0) のみが読み取り/書き込み/実行のアクセス許可を持つ
参考