# Laravel
toArray()…オブジェクトの内容を配列に変える
$user = User::factory()->make();
// => App\User {#4973
name: "yJpdiI6ImZQTEV2WGk2N2hGMmFYMXNwbFRlSkE9PSIsInZhbHVlIjoiVU9ITDJySTFCb9",
email: "NmM5YjM5OGFhYTYwNmJkNzI3MjQxIn0=",
#password: "$2y$10$UMFzL7I7hk/vPNkCvIinV",
account_id: 264,
}
オブジェクトになっている。
$user->toArray();
// => [
"name" => "山口 浩",
"email" => "sayuri.yamamoto@example.net",
"account_id" => 264,
]
こんな感じで配列になっている
- Laravel では
''(シングルクォート)で書くようにする。'こういう場合はシングルです。'
- 結合の場合は
""(ダブルクォート)でも OK"私の名前はです。"
- Controller→view にデータを渡す
- Controller 側で
'loginUrl'=> $userLoginとして渡して - view 側で
で view で受け取る
- Controller 側で
each()…コレクションのアイテムを繰り返しで処理し、コールバックに各アイテムを渡す。
$collection->each(function ($item, $key) {
//
});
upsert…update+insert。データがあれば更新。なければ挿入。
upsert(挿入か更新する値, 入れるレコード, 一致するデータがDBに存在する場合に更新する必要のあるカラム)
Crypt::encryptでエンコード。Crypt::decryptでデコード…laravel の暗号化方法
$crypt = Crypt::encrypt(りんご)
dd($crypt)
// りんごをエンコードされた結果が出る
// #rfag%gsgsbsgs$gsgs
$decrypt = Crypt::decrypt($crypt)
dd($decrypt)
// #rfag%gsgsbsgs$gsgsをデコードする
// りんご
- views/vender/mail の中に
defalut.cssが埋まっている。メールデザインの CSS を変更したい場合 firstWhere…メソッドはコレクションの中から、最初の指定したキー/値ペアの要素を返す。toMail($createAccount)…$createAccount の内容をメールに変換している
$collection = collect([
['name' => 'Regena', 'age' => null],
['name' => 'Linda', 'age' => 14],
['name' => 'Diego', 'age' => 23],
['name' => 'Linda', 'age' => 84],
]);
$collection->firstWhere('name', 'Linda');
// ['name' => 'Linda', 'age' => 14]
ログのデバック方法…dd()と同じようにデバックできる。- dd だとそこで処理が終わってしまうが、log なら処理が終わらないため、キューなどの並行処理が行われているような場面で使える。
\Log::info('tsubasa web memo');
\Log::info($user);
\Log::info($this->user);
- if 文で値の違いを見るのではなく、引数で値を見るコードをかけると処理が少なくて済む
if (self::ACCOUNT_ID_PEOPLE) {
$emails->each(function ($email) use ($Comments, $loginUrl) {
Mail::to($email)->queue(new NewComments($Comments, $phone->name, $loginUrl));
});
} else {
$emails->each(function ($email) use ($Comments, $LoginUrl) {
Mail::to($email)->queue(new NewComments($Comments, $phone->name, $LoginUrl));
});
}
// 無駄に多くなってしまう
// 必要な関数内の引数で条件を追加させることで条件分岐化
private function dispatchMail(int $accountTypeId, Collection $emails, Phone $phone, string $loginUrl): void
{
処理
}
- Laravel の log は
logging.phpで定義されている。Slack に通知も可能。 どうやら monolog という外部ライブラリを含んでいるみたい。使い方は知らんけど。 キューのテスト…バックグランドで送信するために、mailable をキュー投入している場合は、assertSentの代わりにassertQueuedメソッドを使用してください。observer…モデルの処理を監視して、別処理をする方法。つまり、モデルの処理のグループ化password_verify(string $password, string $hash)…パスワードのハッシュ化されたものをテストしたい場合(php)getOriginalContent()->getData()…コントローラから view に渡しているパラメータをテストでチェックできるassertViewHasAll(array $data)…レスポンスビューが指定したリストのデータを持っていることをチェック。- Laravel でのスクレイピングの工程がわかりやすい【作業工程フル公開】エンジニアが 30 万円案件の制作過程を公開 (opens new window)
# JavaScript
- Promise の使い方。この記事がすごいわかりやすかった。
new Promise(function(resolve, reject) {
resolve('成功');
});
new Promise(function(resolve, reject) {
reject('失敗');
});
includes(文字列)で文字列が入っているかのチェックが可能。bool 値で返ってくる。navigator.clipboard.writeText(text)…『コピー機能』(URL 共有みたいな)を作りたい場合foreach()/map()の違い…『メソッドを実行した後』配列に新しく配列を作成し返すのが map。foreach は何も返さない。(undefind)- JavaScript で重複排除を自分で実装してはいけない(Set を使う) (opens new window)…重複を扱う場合に
fileter()を使いがちだけど、どうやら負荷が高いらしい。set()の方がいいらしいよ。
# Vue.js
createdとmountedの違い…created は DOM がまだ作られていない状態で、mounted では DOM が作成された直後の状態。- ただし、created は data の中には保存できるため、api 呼び出しをして、貯めておくくらいなら可能
created : function(){
console.log('created')
console.log(this.$el)
// undefined
},
mounted : function(){
console.log('mounted')
console.log(this.$el)
// <div id="app">...</div>
}
クラスが変わるごとに処理やスタイルを変更させたい場合。
v-bind:class=“{クラス名: プロパティ名}data: { isLarge: true,}【Vue.js】v-bind を使った class, style の変更方法。動的な変更もできる (opens new window)
Vue JS は、オブジェクトの配列ではなく
[__ob__:Observer]データを返します。 なので、別のアプローチは、関数でasync/awaitを使用すること。describe()…vue のテストで使われるもの。Vue Test Utils (opens new window)…Vue コンポーネントのテストライブラリ
# Nuxt
- nuxt のルーターの書き方がまとまってる!!【Nuxt.js/Vue.js】$route.○○ で URL のパスやパラメータを取得する (opens new window)
- nuxt の vuex で引数を使いたい場合
// ストア側のgettersの記述(pokedex.js)
export const getters = {
getName: state => (index, locale) => {
return // 処理
},
};
// gettersを使う側の記述(Component.vue)
this.$store.getters['index/getName'](25, 'jp')
indexOf のエラーが出たら、「文字列」が期待されているが、その他の型が来てしまっている。
nuxt で画像を使いたい場合は2つ方法がある
- データ容量の小さな画像は「assets」に格納
<img src="~/assets/images/sample.png"><img src="@/assets/image/sample.png">
- データ容量の大きな画像は「static」に格納
<img src="images/sample.png">
- データ容量の小さな画像は「assets」に格納
nuxt/auth (opens new window)…nuxt でログイン機能を作りたいなら、これがアンパイっぽい。
# Firestore
- fireStore にデータを保存するには
addメソッドとsetメソッドがある。 addメソッドはドキュメント ID を自動で降ってくれるので、楽だがupdateメソッドを使いたい場合(ドキュメント ID が必要な場合)は控えたほうがいいsetメソッドは自分でドキュメント ID を明記しなければいけないので、面倒だが、updateメソッドなどドキュメント ID を使いたい場合はこちらを使う。管理しやすいから。- firestore のルールを変更すれば、簡単に直る。ただし、テストモードを解除する場合は速やかに設定をし直す必要あり。
# SQL
バルクインサート…データベースに対する命令で、insert 文っぽいやつ。大量のデータを一気に投入するときに使うよ
# Git
pending…レビューコメントの返信をしていると右上に『pending』が出るが、これは相手には通知がいってない。まとめて送信するための下書き的な。気をつける必要がある。一箇所だけコメントの場合は『
single comment』をするgit submodule…大元のリポジトリに追加された小さなリポジトリのこと。大規模な開発などで使われる
# CSS
- 偶数個目のクラスだけスタイルを変更したい場合。
クラス名:nth-child(n){
プロパティ:値
}
偶数個目に指定する場合 → even
奇数個目に指定する場合 → odd
3個に一個の場合→ 3n
# その他
Lumen…Laravel と同じように PHP のフレームワーク。Laravel よりも軽量・速度が早い。ファビコンは ico 形式だけでなく、svg 形式にも対応している(32×32px)- ページリロード 7 秒は長い
エンティティ…実体のこと。E-R 図における箱のことlonic…React Native のように Web の技術を使用して、モバイルアプリも作れる技術。ただし、まだ Vue は β 版。ステートレス…状態を保持しないこと。ステートフル…状態を保持すること。OAuth(オーオース)…SNS や Web サービス間で「アクセス権限の認可」を行うためのプロトコルのことであり、現在では 2012 年に発行された OAuth 2.0 が標準化。一番分かりやすい OAuth の説明 (opens new window)…マジで 1 番わかりやすい
- Laravel でも使えるよね。そりゃあ
Cookieは HTTP ステータスのヘッダーにつけるセッション…セッション ID をもとに、買い物カゴの中身などのデータをサーバー側に保存すること。- どうやってセッション ID を含ませるか?
- セッション ID を Cookie の中に含めてやりとりする方法
- URL に「?id=11111」のように URL に含ませる方法
- form の type=hidden の中に含ませる方法
- ▼ これが 1 番わかりやすい
- どうやってセッション ID を含ませるか?
アクセストークン(Access Token)…Web サービスを利用するために、認証局がユーザーを認証するために払い出した認証情報スキーマ…データ構造の定義。スキーマを持つデータベースにはこれがある。定義通りに格納しないと怒られる。MySQL など一般的な SQL- 例:列が 2 列の定義があるもの
スキーマレスデータベース…データ構造が定義されてないデータベース。Firestore など。- 例:列が 2 列。でも、列を 3 列でも格納可能
レイテンシー…CPU などがデータの要求をもらってから、実際にデータが転送されるまでの時間。キューイング…キューを用いて管理すること冪等性…(べきとうせい)同じ操作を何度繰り返しても、同じ結果が得られる性質CAPTCHA(キャプチャ)…コンピュータ(プログラム)と人間を区別するための手段。- 人間には容易に区別できるが、プログラムには難しいものを提示することで区別している
- 例:「グニャグニャ文字」でここに書かれたものを打ってください。「犬を選んでください」「ピースをはめてください」
ロードバランサー…Web リクエストをどの Web サーバーに送るかを判断するための装置。一旦全てのリクエストを受け取るプロダクト開発…課題に対して、どう解決するのか。どう作るのか。内部設計…DB の流れを考える外部設計…アプリの流れを考える詳細設計…モジュールや画面の遷移を考える単体テスト…モジュール(一ファイルの場合も)をテストをすることを結合テスト(連結テスト)…単体テスト後にモジュール間のテストを行う空→雨→傘…事実(何が起きた?影響範囲は?どこで?どのくらいの頻度で?どのプロセスで?)→ 解釈(なぜ起きているのか?何が原因なのか?どんな意味があるか?結果どうなると思うか?)→ 行動(どんな方法で解決できるか?どれが良いか悪いか)の順番で物事を考えること。この意識をしないと、事実と解釈が混じった発言をしてしまう。- 【Mac】Mac で Chrome のタブ複製『
command+L+Enter』 - 【Mac】
shift+tabで上位箇条書きに変更できる ダイナミック・プライシング(Dynamic Pricing)…商品やサービスの価格を需要と供給の状況に合わせて変動させる価格戦略。「動的価格設定」「変動料金制」「価格変動制」ともいう。- 例:お盆の時期に、ホテルや航空券の値段を上げるなど。
- USJ は、2019 年に入場チケットのダイナミック・プライシングを導入しました。
- それまで 9 年連続して入場チケットを値上げしていましたが、繁忙期と閑散期にチケットの値差をつけることにより、入場者数のコントロールと混雑緩和による顧客満足度の向上に成功したといわれています。
スパイト行動…自分が苦労してでも、相手の足を引っ張ろうとすることKGI…ビジネスゴールを定量的に示した指標そのものである。KPI…KGI 達成までの各プロセスの達成度をはかるもので、ゴールまでの中間指標。- 例:アプリの売り上げ UP が目的(KPI)ならば、アクティブユーザー数 UP、平均単価 UP が KGI
CJグループ(韓国)…BTS やパラサイトの監督を世界に押し出した企業。元々砂糖などを売る食品会社脆弱性を防ぐ…昔はハッカーが企業個人情報を手に入れてそれを得ることで生計を立てていた。- 個人情報を売るよりもはるか高い値段で買い取ることで脆弱性を防いでいる。
- 信頼性が落ちることを考えたら、そっちの方がお得
- Microsoft 妥当最高 100,000 ドル
- 個人情報を売るよりもはるか高い値段で買い取ることで脆弱性を防いでいる。
- ピクセルフォントが大好物な人に!第 1・第 2 水準漢字まで収録された商用無料のフリーフォント -マルモニカ (opens new window)…ひらがな・カタカナ・第二水準漢字・数字まで使える。ゲームっぽくていい。使いたい
ホリスティック・マーケティング…様々なマーケティング活動を融和させることでマーケティング効果を最大限に発揮させようとする考え方。提唱者はフィリップ・コトラーである。- Form to Chatbot (opens new window)…Google フォームをチャットボット化できる。自サービスに使える
- Meta Tags (opens new window)…メタデータがどのように表示されているか確認でき、コードも発行してくれる
- Noun Project (opens new window)…おしゃれなモノクロアイコンがダウンロードできるサイト
- モック API を簡単に作れる json-server の使い方!フロントエンド開発に超便利! (opens new window)…モックの API を作れる。
- 【個人開発】キャンプを記録するサービス TAKiBee(タキビー)をリリースしました! (opens new window)…すごいシンプルだけど、俺も頑張れそうな記事
- ニュージーランドは中学校がなくて、小学校がそのまま 8 年とか
百花繚乱(ひゃっかりょうらん)…いろいろの花が咲き乱れること。秀でた人物が多く出て、すぐれた立派な業績が一時期にたくさん現れること。