タグ

設計とdddに関するkitokitokiのブックマーク (12)

  • 持続可能なAngularアプリケーション開発のために大事なこと - 余白

    Webにかぎらず、アプリケーションというのは作って終わりではなく、その後も継続して改修・改善されていくケースが多い。受託で開発して納品して終わりというケースでも、納品した先にメンテナンスする人がいる。 この記事では、Angularアプリケーションの開発において、いかにメンテナンス性を維持して、持続可能なプロジェクトを構成するかについての個人的な見解をまとめる。 フレームワークを邪魔しない Angularアプリケーションのメンテナンスにおいて、いちばん重要なことはいかにAngularのアップデートを阻害しないかという点に尽きる。 これはAngularに限った話ではなくフレームワークと呼ばれるものを使うなら常に必要なことであるし、 アップデートが定期的に降ってくることが決まっているAngularであればなおさらである。 アプリケーションの一番根幹となる部分の鮮度が落ちれば、その他の部分はそれに

    持続可能なAngularアプリケーション開発のために大事なこと - 余白
  • イベント・ソーシングを知る

    This document summarizes a microservices meetup hosted by @mosa_siru. Key points include: 1. @mosa_siru is an engineer at DeNA and CTO of Gunosy. 2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway. 3. Challenges discussed were managing 30 microservices, ensur

    イベント・ソーシングを知る
    kitokitoki
    kitokitoki 2017/03/08
     わかりやすい!
  • [ Android ] - これからの「設計」の話をしよう | Recruit Tech Blog

    はじめまして。 6/1より入社いたしましたAndroidエンジニアの釘宮です。よろしくお願いいたします。 今日はAndroidの設計について語ってみようと思います。 その前に 「良い設計とはなにか」という議論が「正義とはなにか」という議論のようにいつまでたっても結論がでないのは、環境やチームメンバのスキルセット、ステークホルダーによって目指すべきゴールが変わるためだと考えます。 つまるところ、設計に正解はありません。 そのため以下で話すことは、「これが設計の正解だ!!」というわけではなくて、「こういう設計の仕方するとうまくいくっぽい」くらいのノリです。 あと、特にMVCとかDDDとか人によって解釈のズレが起きやすいところなどは、冗長になるのを嫌って自分の解釈で言い切っています。ご了承ください。 設計の目的について ハードルが下がったところで、早速。 まず設計の目的ってなんでしょうか? この

    [ Android ] - これからの「設計」の話をしよう | Recruit Tech Blog
  • ドメイン駆動設計・アプリケーション構築編・モジュール - Strategic Choice

    MODULESグルーピングのモデリング別名パッケージ(PACKAGES)俯瞰図所属するストーリの俯瞰図です。アプリケーション構築どういうこと?モデルもコードも意味のある単位に分割し、モジュールとしてまとめます。プログラミングの場合と同じく、モデルのモジュール分割においても高凝集・低結合が重要な目安になります。関連し合う概念同士はひとつにまとめ(高凝集)、かつ一度に考えなければいけない範囲は最小限にします(低結合)。どうして?モデルも分割統治モジュールに分割されるのはコードだけではありません。概念も分割されます。モジュール内では高凝集、モジュール間では低結合が必要です。人が一度に考えられる物事の数には限りがありますし(ゆえに低結合)、首尾一貫していない思考の断片は理解するのが難くなります(ゆえに高凝集)。モジュールもモデルモジュールも、モデルの一部です。モデルを表現し、深化させなければなりま

    kitokitoki
    kitokitoki 2014/01/31
    DDD と MVC, フレームワークの利用
  • Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)

    この記事はRuby on Rails Advent Calendar 2013の6日目の記事です。 前日は @tkawa さんの「Favoriteの設計実装はパターンとして使える」でした。 Railsで適切に責務を分割するということ RailsはいわゆるMVCと呼ばれるアーキテクチャパターンにのっとったフレームワークであり、プロジェクトを作成するとデフォルトでmodels/、views/、controllers/などのディレクトリが作成されます。 基的にロジックを記述する場所はモデルであり、ビューには表示処理だけを、コントローラにはアプリケーション上必要な手続きだけを記述するべきであると一般的には言われています。*1 ただ、それを忠実に実践していった結果、モデルが肥大化しメンテナンシビリティやテスタビリティが低下するという問題も多く指摘されています。 これについては4日目に @joker

    Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)
  • ドメイン駆動式ソフトウェアの育て方 - Digital Romanticism

    レッツゴーデベロッパー2011での発表原稿とスライド 導入 2011年05月28日「レッツゴーデベロッパー2011@仙台」が開催されました。このイベントのテーマは「共有と交流」。"「共有」には、最新技術、知識、復興への想い、それぞれの決意を共有することを、「交流」には、東北と東北圏外のデベロッパーやコミュニティ同士の交流を深めることを込めて。" このイベントにてDDDセッションに登壇させて頂きましたので、そのときの発表原稿とスライドを公開致します。なお、当日はワークとして参加者の方にペアモデリングを行って頂きましたが、このドラフトではその部分を割愛しています。 スライドはこちら また映像はこちらで公開して頂いています。 さて今年4/9にDDD日語版が出版されました。それから2ヶ月弱、翔泳社様から、はやくも増刷のお知らせを頂きました。多くの方々とおかげと深く感謝しています。さて、この増刷が

    ドメイン駆動式ソフトウェアの育て方 - Digital Romanticism
  • [ 技術講座 ] Domain-Driven Designのエッセンス -目次-|オブジェクトの広場

    技術講座] DDD難民に捧げる Domain-Driven Designのエッセンス 第 1 回 ドメイン駆動設計とは 第 2 回 DDDの基礎と実践 第 3 回 大規模なプロジェクトへの適用 DDDパターンカタログ パターン名 参考訳 I. Putting the Domain Model to Work Ubiquitous Language ユビキタス言語 Model-Driven Design モデル駆動設計 Hands-On Modeler 実践的モデラー II. Building Blocks of a Model-Driven Design Layered Architecture 層状アーキテクチャ Smart UI (アンチパターン) 利口なUI Entities エンティティ Value Objects 値オブジェクト Services サービス Modules モジ

  • [ 技術講座 ] Domain-Driven Designのエッセンス -目次-|オブジェクトの広場

    技術講座] DDD難民に捧げる Domain-Driven Designのエッセンス 第 1 回 ドメイン駆動設計とは 第 2 回 DDDの基礎と実践 第 3 回 大規模なプロジェクトへの適用 DDDパターンカタログ パターン名 参考訳 I. Putting the Domain Model to Work Ubiquitous Language ユビキタス言語 Model-Driven Design モデル駆動設計 Hands-On Modeler 実践的モデラー II. Building Blocks of a Model-Driven Design Layered Architecture 層状アーキテクチャ Smart UI (アンチパターン) 利口なUI Entities エンティティ Value Objects 値オブジェクト Services サービス Modules モジ

  • ドメイン駆動設計 | システム設計日記

    テスト駆動開発 和田卓人(t-wada)さんによる『テスト駆動開発』の新訳版が出版されました。 オブジェクト指向でソフトウェアを開発するのであれば、このとマーチンファウラーの『リファクタリング』は必読書だと思います。この古典ともいえる『テスト駆動開発』が和田さんの手によって新訳版として復刊されたことは、ほんとうにすばらしいことです。 このが出版された経緯と、和田さんはじめ関係者の方々のご努力については、和田さんの、このブログをぜひ読んでいただければと思います。 新訳版『テスト駆動開発』が出ます 新訳は、単に原著が日語で読めるようになっただけではありません。和田さんの手によって、原著にはない新たな価値が付け加えらました。 一つは、サンプルコードの工夫です。 できるだけ省略はしない変更箇所を目立つようにした各章末にその時点での全コードを記載する これらの工夫により、に書かれた内容が、

  • ドメイン駆動設計入門 - Digital Romanticism

    "Beautiful Develpment"(10/27 DevLOVE)の講演資料と原稿 はじめに 日(10/27)、DevLOVE様主催で、"Beautiful Develoment"と題されたイベントが開催されました。これは「ドメイン駆動設計("DDD:Domain-Driven Design")」を題材に、入門から実践までを語り尽くすというコンセプトのものです。このイベントにおける講演のトップバッターとして、ドメイン駆動設計の根底にある基的な考え方についてお話しさせて頂きましたので、講演資料と原稿を公開いたします*1。 スライドはこちら アジェンダは以下の通りです。 導入 オブジェクトとは? モデルとは? ドメイン駆動設計とは? まずは、ドメイン駆動設計のベースとなっている、「オブジェクト指向」や「モデル」について整理した上で、実際にドメイン駆動設計とはどういうものかを見ていき

    ドメイン駆動設計入門 - Digital Romanticism
  • Value Object は不変にする | システム設計日記

    ドメイン駆動設計(DDD)の Value Objects パターンでは、オブジェクトを不変(immutable)にすることを強く推奨している。 なんとなく、そんなもんか、と思っていたけど、ある日、なるほど、というケースに出くわした話し。 変数名にこだわる 前提として、変数名にこだわるようになったことがある。 DDD のユビキタス言語パターンの実践として、 ・パッケージ名 ・クラス名 ・メソッド名 ・変数名 は、業務上の意味のある名前にこだわることを、徹底しはじめた。 Java Calendar クラスの日付計算 当日から、2週間後に、期限切れになる、というビジネスルルールを実装していた。 Calendar getExpireDate() { Calendar now = Calendar.getInstance(); now.add( Calendar.DATE, 7*2 ); retur

    kitokitoki
    kitokitoki 2010/10/25
    バリューオブジェクトはイミュタブルで。
  • 1