メールを送る
Laravel では、メールの種類ごとに Mailable というクラスを作ります。送ると返事が遅くなることがあるので、キューに入れて裏で送ることが多いです。
迷惑メールにしないための、DNS の 3 つの記録
Gmail などは、送り元が本物かを DNS の記録で確かめます。どれもアプリのコードではなく、送るドメインの DNS に書きます。
ファイルのアップロードと保存
受け取ったファイルは、まず種類と大きさを確かめ、名前を付け直して保存します。Google Cloud なら、置き場所は Cloud Storage(GCS)です。
受け取り方は 2 通り
検索とページ分け
探すときは、データの量と、日本語かどうかで道具を選びます。一覧は、ページに分けて少しずつ返します。考え方のヒント
offset と cursor を試す
新しい順に並んだ投稿を、5 件ずつ見ます。1 ページ目を見ている間に新しい投稿が増えると、2 ページ目はどうなるでしょう。(投稿は作り物です)
offset(paginate・simplePaginate)
cursor(cursorPaginate)
1 ページ 15 件で数えた、ざっくりした数です。offset は飛ばす行もいったん読み、cursor は並べる列のインデックスから続きを読みます。考え方のヒント
定期処理
「毎朝 9 時に集計する」のような仕事は、Laravel の予定(スケジューラー)に書きます。サーバーでは、毎分 1 回 Laravel を起こす cron を 1 行だけ書きます。
cron の読み方を試す
cron は「分 時 日 月 曜日」の 5 つの欄で、いつ動かすかを書きます。書き方を変えると、各欄の意味と、次に動く時刻が出ます。
通知
同じ知らせを、メール・画面の「お知らせ」・Slack など、いくつかの経路で送りたいときは、Laravel の通知(Notification)を使います。
決済の二重払いを防ぐ
お金のやりとりは、同じ頼みが 2 回届いても 1 回分しか動かないように作ります。決済サービス(ここでは Stripe)の冪等キー、DB の UNIQUE 制約、Webhook の重複よけを重ねます。
送り直しを試す
支払いの頼みを送ったあと、通信が切れて返事が来なかったとします。送り直すと、どうなるでしょう。(作り物の決済です)
冪等キーなし
冪等キーあり
AI 時代AI に書かせるときに確かめること
どの機能も、AI はすぐに形を作ってくれます。けれど、つまずきやすい点は抜けやすいです。上の「つまずきやすい点」と見比べて確かめましょう。考え方のヒント
古い書き方が混ざっていないか
Laravel は版ごとに書き方が変わります。AI は前の書き方で書くことがあるので、使っている版の文書と見比べます。くわしくは ライブラリとバージョン「AI と部品」 へ。
チェックリスト
作った機能で確かめたものに印を付けてください(この端末にだけ残ります)。考え方のヒント