タグ

2020年2月23日のブックマーク (7件)

  • ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD] - little hands' lab

    DDDの文脈の中で、 「ドメイン知識とユースケース(≒アプリケーションの知識)は何が違うのか?」 という疑問がよく持たれます。 この記事ではその違いを説明し、DDDのコードにどう反映するかを書きます。 あるToDoアプリの仕様 事例として、ToDoアプリの話をします。 「仕様を決める」と言ったとき、以下のように箇条書きで決めることがあると思います。(Jiraのようなチケット管理システムのチケット詳細として書いたりしますよね) ユーザー登録、非活性化ができる メールアドレスは重複登録できない タスク登録、更新、完了、未完了に戻す、延期、ユーザーへのアサインができる タスクは3回までしか延期ができない 非活性化されていないユーザーにアサインができる タスクを完了、アサインするとタスクレポートが作成される これはいわゆる「ビジネスロジック」と呼ばれて、3層レイヤーのアーキテクチャではBusine

    ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD] - little hands' lab
    Kenji_s
    Kenji_s 2020/02/23
  • 新卒にも伝わるドメイン駆動設計のアーキテクチャ説明[DDD] - little hands' lab

    ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 以前こちらの記事でアプリケーションアーキテクチャについて書きました。 こちらの記事では比較的ネタ元に忠実な解説をしたのですが、実際これに基づいて人にレイヤの説明をした際、依存性の逆転部分や円形で表現する部分がなかなか伝わりにくいことがありました。 そんな中で、所属プロダクトで新卒含めて大規模なリニューアル案件でDDDを採用することになり、新卒にも伝わるように説明をする必要性が生じました。 結果、新卒にも伝わり、運用が割と回る説明が見つかったのでご紹介したいと思います。 アプリケーションアーキテクチャ全体図 とにかく、何か説明する際はこの図を常に傍に置き、一方通行の依存性を徹底したい、という話をしています。 何かについて議論をする際は、 「それはどの層の責務なの?」 という

    新卒にも伝わるドメイン駆動設計のアーキテクチャ説明[DDD] - little hands' lab
    Kenji_s
    Kenji_s 2020/02/23
  • テキストコミュニケーションは「まろみ」が重要!という話 - 弥生開発者ブログ

    こんにちは Misoca 開発チームの id:mallowlabs です。 社内では「まろさん」「まろぶさん」などと呼ばれています。 Twitter のタイムラインなどで「リモートワーク」という言葉をよく見かけるようになりました。 Misoca では、承認や事前連絡なしで、オフィスでも自宅でも働ける運用を長く続けています。 そんなリモートワークに慣れたメンバーに「リモートワークでなにか工夫してることある?」と聞いたところ、「テキストコミュニケーションで表現がキツくならないように気をつけている」という意見がいろんな人から出ました。 この工夫のことを「まろみ」を出す、と名付けたところ、色々な「まろみ」の出し方が集まってきて、私自身も「確かにやってるなぁ」という内容が多かったので、まとめて紹介します。 語尾に「ー」をつける 「よろしくお願いします」よりも 「よろしくお願いしますー」の方が柔らかく

  • GitHub - cleancoders/CleanCodeCaseStudy: Clean Code Case Study

  • 契約による設計事始め

    Object-Oriented Conferenceの発表資料です。 https://fortee.jp/object-oriented-conference-2020/proposal/1224f293-8624-4448-866f-5d1b991d377f カンファレンスの感想はこちら。 https://dnskimox.hateblo.jp/entry/2020/02/22/104342

    契約による設計事始め
    Kenji_s
    Kenji_s 2020/02/23
  • PHPでCSVを扱うならleague/csvが便利【基本的な使い方まとめ】

    こんにちは、たつきちです。 エンジニア歴12年ぐらいで今はベンチャー企業のCTOをしています。 この記事では、PHPCSVデータを扱うためのライブラリ league/csv をご紹介します。 ぜひ最後までお付き合いください。 league/csvとは league/csv は、PHPCSVデータを簡単かつ柔軟に扱うためのライブラリです。 従来のように SplFileObject::fgetcsv とかを使って低レイヤーのコードを自力で書かなくても、いい感じでCSVデータを抽象化してくれます。 例えば以下のような簡潔なコードでCSVファイルを扱うことができます👍 CSVファイル PHPコード <?php use League\Csv\Reader; $csv = Reader::createFromPath('/path/to/your/csv/file.csv', 'r'); $cs

    PHPでCSVを扱うならleague/csvが便利【基本的な使い方まとめ】
  • ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH

    書は、初めてDDDを学ぶ方、もしくは実際に着手して「難しい!!」と感じているエンジニアの方を対象とした、ドメイン駆動設計(以下、DDD)についての解説書です。 近年、ソフトウェアのレガシー化が社会的に問題になっていると言われています。 DDDはレガシー化への対策として非常に有用なものですが、日語で出ている書籍「エリック・エヴァンスのドメイン駆動設計」や「実践ドメイン駆動設計」は非常に重厚かつ難解で、初学者が実用に到達するまでには長い時間と試行錯誤が必要なのが実情です。 そこで書では、迷子になりがちな「DDDの目的」や「モデル」の解説からはじめ、 具体的なモデリングを行い実装まで落とす事例を元に、DDDの魅力や効果を体感することを目指します。 また、その後にはレイヤーごとの個別のトピックについて、1章ずつ詳しく解説します。 ■書の構成 書は以下の構成になっています。 「第1章 DD

    ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH