メモ
LaravelTokyo
Eloquentに別れを告げるタイミングについて考えた / 吉田あひる
-
ORM x Active Record x Domain Model
-
【補】Domain Modelではなくないか
- Domain LayerのことをDomain Modelって言ってるのかな
-
- Eloquentの功罪
-
功
- 高機能
- 罪
-
クエリ最適化
- slow query吐かれる
- クリティカルなところだけSQL書けばいい
- 別れるほどではない
-
Repository Pattern(DDD)と相性悪い
-
Repositoryの外でSQLを書けてしまう
- インスタンスのwhere系メソッドとか呼べちゃう
-
別れるのほどではない
- レビューしろ
-
-
fatになりやすい
- DBとのやりとり
- relation
- ドメインロジック
-
バリデーション
- mutatorでバリデーション(boiler plate)
-
プレゼンテーションロジック
- derivationでHTMLを返したり(boiler plate)
-
別れるほどではない
- 責務分けてクラス設計しろ
-
モデルとテーブルが一対一対応しないと破綻する
- そもそものパターンの前提としてそう
-
テーブルから独立したドメインオブジェクトが欲しくなる
- 【補】Domain Model + Data Mapper使え
Laravel Novaの適切な使い方を考えてみる / suthio
-
管理画面作るやつ
- 自社向け、特定のユーザが使うやつとか
- Laravel Novaはいいぞ
-
Laravel Novaって何
-
有料
- やすい
- 公式
- 5分くらいでダッシュボードできる
-
-
ここが素敵
-
ドキュメント充実
- 公式が有能
- modernな見た目
- ソースコード読みやすい
-
-
よくある管理画面パッケージ
- 初期の速度は速い
-
カスタマイズつらい
- bad hack
- パッケージの意味とは
-
開発者用の管理画面として有用
- ちょっと便利なPHPMyAdmin
- サービス立ち上げ期に使うやつとか
-
長所
- それ用のパッケージがある
-
短所
- Laravel 5.8^ only
- 非OSS
-
みんな使って!
- 情報増えてうれしい
Laravel+Slack通知で実践したリアルタイムエラー共有開発 / くまモンエンジニア
- エンジニアがjoinしてきて、初のチームプレー
- チームっぽい事したい
-
エラー共有してみんなで解決する仕組み
- エラーに関する知見の共有
- 質問が苦手な新人の育成
- 5.7.14からslack-notification-channelが外部パッケージになった
- Slack APIとかをガシガシ使いたいのでGuzzleで自前開発した
-
当事者意識
- 他人のエラーは俺のもの
- 俺のエラーも俺のもの
- チーム全員が同じ分のエラーを共有できる
エラー時にログに出力する情報と画面に表示する情報を分ける / おかしょい
- エラー: アプリケーションでハンドリングされなかった例外
- ユーザ向けメッセージと開発用メッセージは異なる
app\Exception\Handler.php
をいい感じに実装する
<?php
/**
* Prepare a response for the given exception.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function prepareResponse($request, Exception $e)
{
if (! $this->isHttpException($e) && config('app.debug')) {
return $this->toIlluminateResponse($this->convertExceptionToResponse($e), $e);
}
if (! $this->isHttpException($e)) {
$e = new HttpException(500, $e->getMessage());
}
return $this->toIlluminateResponse(
$this->renderHttpException($e), $e
);
}
- これ使え
if (! $this->isHttpException($e)) {
$e = new HttpException(500, $e->getMessage());
}
- ユーザ定義例外に
toHttpException(): HttpException
メソッドとか生やす - appのHandlerの中で
toHttpException()
呼ぶ getMessage()
でユーザ向け文言書く
LaravelでAuth0を使ってECサイトを実装してみた
composer require auth0/login
- 認証のdriverをauth0に