Stack Map新人 Web エンジニアの地図

メール・ファイルのアップロード・検索・定期処理・通知・決済。
どのアプリにも出てくる機能を、Laravel のコードと、よくあるつまずきで見ていきます。

メールを送る

Laravel では、メールの種類ごとに Mailable というクラスを作ります。送ると返事が遅くなることがあるので、キューに入れて裏で送ることが多いです。

迷惑メールにしないための、DNS の 3 つの記録

Gmail などは、送り元が本物かを DNS の記録で確かめます。どれもアプリのコードではなく、送るドメインの DNS に書きます。

ファイルのアップロードと保存

受け取ったファイルは、まず種類と大きさを確かめ、名前を付け直して保存します。Google Cloud なら、置き場所は Cloud Storage(GCS)です。

受け取り方は 2 通り

定期処理

「毎朝 9 時に集計する」のような仕事は、Laravel の予定(スケジューラー)に書きます。サーバーでは、毎分 1 回 Laravel を起こす cron を 1 行だけ書きます。

cron の読み方を試す

cron は「分 時 日 月 曜日」の 5 つの欄で、いつ動かすかを書きます。書き方を変えると、各欄の意味と、次に動く時刻が出ます。

通知

同じ知らせを、メール・画面の「お知らせ」・Slack など、いくつかの経路で送りたいときは、Laravel の通知(Notification)を使います。

決済の二重払いを防ぐ

お金のやりとりは、同じ頼みが 2 回届いても 1 回分しか動かないように作ります。決済サービス(ここでは Stripe)の冪等キー、DB の UNIQUE 制約、Webhook の重複よけを重ねます。

送り直しを試す

支払いの頼みを送ったあと、通信が切れて返事が来なかったとします。送り直すと、どうなるでしょう。(作り物の決済です)

冪等キーなし

    冪等キーあり

      AI 時代AI に書かせるときに確かめること

      どの機能も、AI はすぐに形を作ってくれます。けれど、つまずきやすい点は抜けやすいです。上の「つまずきやすい点」と見比べて確かめましょう。考え方のヒント

      古い書き方が混ざっていないか

      Laravel は版ごとに書き方が変わります。AI は前の書き方で書くことがあるので、使っている版の文書と見比べます。くわしくは ライブラリとバージョン「AI と部品」 へ。

      チェックリスト

      作った機能で確かめたものに印を付けてください(この端末にだけ残ります)。考え方のヒント