2016/10/29 Laravel Osaka 2016 http://php-jp.github.io/laravel-osaka-2016/

この記事はドメイン駆動設計#1 Advent Calendar 2019の 10 日目の記事です。 2020/12/17追記 以下に続編を書きました! LaravelにDDDを導入して1年経った所感(達成したこと / 課題点 / モデリングの難しさなど) やったこと 自社サイトのバックエンドを Laravel で実装して半年間が経ち、初期に考えた設計にいろいろと綻びが出てきたと感じていました。 そんな中、ちょうど実践ドメイン駆動設計や Web+DB Press で特集された体験 DDD を読むことができたので、さっそくいくつかの機能を DDD で実装してみました。 本記事では「もともと Laravel で実践していたEloquent Model 依存の設計」の問題点を提起し、「DDD を取り入れて実装した結果」のソースコードや考え方、そのメリットを記載しています。 結論 Laravel の
概要※こちらの記事 を転載しています 昨年公開した「Laravel でドメイン駆動設計(DDD)を実践し、Eloquent Model 依存の設計から脱却する」の続編です。 2020年12月現在、弊社で開発している「オンライン家庭教師マナリンク」の実装に DDD のアプローチを用いています。導入して 1 年が経過したので、いろいろと所感を述べていきます。 目次どうして DDD を導入したかDDD で達成できたことまだ難しいと思うこと結局モデリングが一番難しいどうして DDD を導入したのか?導入した当初の動機は Laravel で Eloquent Model 中心に実装するアーキテクチャに嫌気が差したからです。 Eloquent Model 中心に実装するとあちこちにドメイン知識が散らばって、実装した自分ですらよくわからない、という状態によく陥りました。弊社はベンチャー企業で、トラフィッ
まえがき 一年半かっちりとした設計を頑張ってみて、なんとなく形が見えてきたので、共有しようと思います。 タイトル通り、DDD の戦術の話がメインです。 いろんなデザインパターンを勉強しましたが、その中でも効果の解りやすいもののみを取り入れることで、迷い少なく方針を決めてこれました。 途中で設計変更は何度も行っていますし、設計変更することを前提に設計してます。 まだ悩んでる部分もいくつかあります。最後の方に書いています。 目的 設計するにあたって、以下の目的が達成できることを重視している。 業務知識があればプログラミングがわからなくてもなんとなくわかるようにする 部品ごとの役割を明確にする 部品を使い回しできるようにする 部品をテスト可能にする 状況に合わせて設計方針をどんどん変えていく 新しい書き方と古い書き方を混在させやすくする リファクタリングしやすくする 使わなくなった部品を簡単に削
この記事について 普段何気なく使っている Service クラス(Service 層)について、書籍を中心にその役割や目的について書かれた資料を読みながら、Laravel 製のウェブアプリケーションに Service 層を取り入れる際の判断材料となるような情報や観点を、提供できればと思います。 以前にも調べたり考えたりしたんですが、そのときは明確な役割や使い方の提案ができなかったので、それの補遺的な位置づけになります。 Laravelでウェブアプリケーションをつくるときのベストプラクティスを探る (9) Service編 - Qiita Service レイヤーとは これ 出典: Martin Fowler's Bliki https://martinfowler.com/eaaCatalog/serviceLayer.html どんなときに Service 層が必要になるか Despit
発端 QiitadonでDIの話題が盛り上がっていた時に「LaravelのDIはつよい」みたいなことを書いたら一部反響があったので、その解説です。 はじめに LaravelのDIコンテナ(サービスコンテナ)はめちゃ強力です。「DIコンテナとは何ぞや」という説明は良記事が大量に存在するので詳細を省きますが、超初心者向けに端折った説明をすると「クラスをnewするときに必要なインスタンスを外からブチ込んでくれる人[1]」みたいな感じです。 [1]:かなり雑な説明。真面目に書くなら「クラスに関わる依存性の取り扱いを責務とするフレームワークの総称」という方が適切ですが、まあ初心者はよくわからんと思うので手を動かして勘を掴んだ方がよいかと思う次第。 実際にコイツのヤバさをサンプルコードで確認してみましょう。 RequestFormを用意する まず、検索リクエストを雑にバリデーションするSearchRe
はじめに ウェブアプリケーションフレームワークのクラス構成にはさまざまなバリエーションがありますが、どれも様々なデザインパターンを駆使し、素晴らしいクラス構成になっています。 今回、じっくりフレームワークのソースコードを読むことで、少しでもいいクラス設計について学べるといいなぁと思い、このような企画を思いつきました。 PHP には様々なウェブアプリケーションフレームワークがあり、それぞれに特徴がありますが、今回は、近年突出して注目されている Laravel を取り上げます (いずれ他のフレームワークでも試してみたいです)。 環境 PHP 5.6.9 Laravel 5.2 やったこと Eloquent (Active Record) と DBファサード (Query Builder) の使い分け、ついでに Repository について Dependency Injection と Ser
オールアバウトで開発チームに所属している@pakkunです。 12月も近くなり、大きく時期から外れてしまいますが、弊社では8月から9月にかけてサマーインターンを行いました。 その際に弊社で導入しているLaravelというPHPフレームワークの付き合い方を資料とライブコーディングでインターン生に説明しました。 抜粋になりますが、弊社でのLaravelとの付き合い方をブログでも公開します。 とは言え、Laravelを知らない人もいるかと思いますので、まず初めに軽く説明します。 3行でLaravelを知る PHPで書かれたフルスタックフレームワーク。 MVCベース。 PHP界隈ですごく流行っている。 MVCベースと記載しましたが、開発者のTaylor Otwellさんは「MVC Is Killing You」と著書で言っており、MVCに縛られると辛くなるので、あまり深くとらわれないようにしましょ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く