タグ

ソフトウェアデザインに関するt_otodaのブックマーク (11)

  • 『ソフトウェアアーキテクチャメトリクス―アーキテクチャ品質を改善する10のアドバイス』 - snoozer05's blog

    翻訳を担当した書籍『ソフトウェアアーキテクチャメトリクス―アーキテクチャ品質を改善する10のアドバイス』(オライリー・ジャパン)が明日(2024年1月24日)発売となります(電子書籍はオライリー・ジャパンのサイトでの購入となります)。書は、2022年10月に出版されたChristian Ciceri, Dave Farley, Neal Ford, Andrew Harmel-Law, Michael Keeling, Carola Lilienthal, João Rosa, Alexander von Zitzewitz, Rene Weiss, Eoin Woods 著『Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture』(O'Reilly Media)の全

    『ソフトウェアアーキテクチャメトリクス―アーキテクチャ品質を改善する10のアドバイス』 - snoozer05's blog
  • 「DDDもスクラムも当たり前」な開発者組織に入って気付かされたDDDの価値を出すための条件|南部豪

    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 の17日目の記事です https://qiita.com/advent-calendar/2023/loglassこんにちは。ログラスでエンジニアをしております、南部です。 ログラスでは、当アドベントカレンダーの5日目の記事で紹介されていますように、「DDDもスクラムも当たり前」な開発組織が形成されています。 私は、今年の9月からログラスに入社していますので、上記の記事で紹介されているログラスのDNAを受け継ぐ側に当たるかと思います。 そしてちょうど直近で、DDDの文脈においてこのDNAの価値を感じる機会がありました。 実は、前職でもDDDっぽいコードを取り入れたりはしていたのですが、それによって特にメリットは得られておらず悩んでいました。 結論、原因は私の不勉強でDDDの価値を出せる条件となって

    「DDDもスクラムも当たり前」な開発者組織に入って気付かされたDDDの価値を出すための条件|南部豪
  • 「価値」から小さく始めるドメイン駆動設計 - KAKEHASHI Tech Blog

    こちらの記事は カケハシ Advent Calendar 2023 の 16日目の記事になります。 概要 こんにちは。AI在庫管理の開発チームでSWEをしている小室です。 私は普段ドメイン駆動設計(以下、DDD)を意識しながら開発することが多く、実践を重ねるほどDDDの素晴らしさを実感しております。 最近異動してきたAI在庫管理の開発チームでは、現状はあまりDDDを意識して開発を進めていないのですが、プロダクトが対象としている世界が非常に複雑であることと、今まさに多くの法人様に利用していただけるようになったうれしい悲鳴として成長痛を感じ始めており、ドメイン駆動設計を何かのヒントとしてプロダクトによる価値提供速度を加速できればと考えています。 しかしながら、ドメイン駆動設計は独自の価値観や学習コストの高さから、まだ取り組んだことのないメンバーとしては大きな不安を感じる部分があると思います。

    「価値」から小さく始めるドメイン駆動設計 - KAKEHASHI Tech Blog
  • チュートリアルでDDD体験: ドメインモデルの成長を紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

    プロダクト技術部の川口です。 3年間、ビッグローブ光といった固定回線のインフラ部門に所属していましたが、今年の4月に BIGLOBE の基幹システムのリニューアルを推進していく部署に異動することになりました。 所属するチームでは、ドメイン駆動設計(DDD)で開発しています。 チームにジョインすると開発チュートリアルをやることになっており、そこで IntelliJ や Spring Boot での開発の仕方を学んだり、チュートリアルを通して DDD を学んだりします。 今回は、DDD のチュートリアルで実際に作成したドメインモデルがどういう風に成長していったかについて紹介します。 勤怠管理アプリ チュートリアル 初期ドメインモデル 中期ドメインモデル 後期ドメインモデル 学んだこと、感想 勤怠管理アプリ チュートリアル お題は GitHub のパブリックリポジトリに公開されています。 ht

    チュートリアルでDDD体験: ドメインモデルの成長を紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
  • ドメイン駆動設計は何を解決する手法なのか - stmn tech blog

    こんにちは、リファクタリング大好きなミノ駆動です。 株式会社スタメンでは、企業エンゲージメント構築サービスTUNAG(ツナグ)の技術的負債解消と今後の持続的成長のため、ドメイン駆動設計(DDD)の導入を検討しています。 ところでDDDはとかく理解しづらく、何のためのDDDなんだという議論になりがちです。この記事では、DDDの真の主人公コアドメインを中心に、DDDが何を解決するものなのか、全体像を改めて整理します。 この記事で扱う内容 DDDが解決したい課題と解決方法の全体像。 この記事では扱わない内容 設計パターンの実例などの実装詳細。 大事な前提 〜利益を得るためのサービス開発 会社でのサービス開発は、趣味や道楽でやるものでしょうか。違いますね。ビジネスとして、企業活動としてサービス開発しています。当たり前の話ですが、利益を得られるように開発しなければなりません。 ドメイン駆動設計は、継

    ドメイン駆動設計は何を解決する手法なのか - stmn tech blog
  • (python) デザインパターンとアンチパターン(Strategy編) - Qiita

    目的 これはHead Firstデザインパターン 第2版 ―頭とからだで覚えるデザインパターンの基に出てくる内容について、 サンプルコードをPythonで補足した記事になります。(書ではJavaで書かれているため) 書との併用を前提としています。 Strategy Strategyパターン主に以下の3つのコンポーネントで構成されます。 Context: 現在のStrategyオブジェクトを保持するクラス。クライアントはこのクラスを通じてStrategyを利用します。 Strategy: すべての具体的なStrategyが実装するインターフェースや抽象クラス。 ConcreteStrategy: Strategyインターフェースを実装する各具体的なクラス。これらは具体的なアルゴリズムや方法を提供します。 今回はStrategyパターンに沿わないアンチパターンコードと沿ったデザインパター

    (python) デザインパターンとアンチパターン(Strategy編) - Qiita
  • 『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech

    なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon 良い、買おう、読もう、(コードを)書こう、以上! めっちゃ良いですよ、この 中盤のプリミティブじゃやりづらい→直積→直和→二つ合わせてADT→値を取り出すためのパターンマッチの解説の流れの疾走感がいいですね— magnoliak🍧 (@magnolia_k_) 2023年8月6日 『なっとく!関数型プログラミング』は、2022年に出版された『Grokking Functional Programming』の邦訳版で、主にScalaを題材として関数型プログラミングを学んでいくための入門書("Grokking"は、完全に理解する、という意味)。あくまで関数型プログラミングの考え方、コードの書き方、良い設計の指針の解説が主眼に置かれているので、Scalaの言語機能の入門書ではない。Scalaの言語仕様を網羅

    『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech
  • JavaScriptデザインパターン入門 - Qiita

    1. はじめに JavaScriptデザインパターンは、JavaScriptを使ってプログラムを書くときによく出くわす問題を解決するためのガイドです。これらのパターンの背後にある考え方を理解することで、自分の問題に適用することができます。また、これらのパターンが自分のコードに役立つ場合を見つけることもできます。 2. モジュールパターン モジュールパターンは、JavaScriptのモジュールシステムの一部で、データを保護する方法を提供します。これは、モジュール内のプライベートなデータと動作を保護し、一方で公開APIを提供する方法です。これにより、プライベートとパブリックのアクセスレベルを持つ自己完結型のモジュールオブジェクトを作成することができます。 これは、JavaC++のような言語でクラスにアクセス修飾子を使用するのに似ています。 JavaScriptでは、クロージャを使用してモジュ

    JavaScriptデザインパターン入門 - Qiita
  • 『ドメイン駆動設計』の5つの基本アイデア - ソフトウェア設計を考える

    エヴァンス氏の『ドメイン駆動設計』の背景にある基アイデアは何かという私の捉え方のメモ書き。 ドメイン駆動設計にはいろいろな側面がある。また書籍『ドメイン駆動設計』は体系だった設計方法論ではなく、設計の考え方とやり方を経験則として言語化してみた、と捉えている。 その経験則(100%ではないが多くの場合に役に立つ原則)の背景にあるエヴァンス氏の基的な発想は次の5つに要約できると考えている。 ソフトウェアの複雑さは事業活動の複雑さに起因する 技術的な複雑さもあるが、ソフトウェアが複雑になるのは対象領域の複雑さが主たる理由という考え方。 業務アプリケーションであれば、事業活動の複雑さが業務アプリケーションの複雑さの原因と捉える。 ドメイン駆動設計は、この事業活動の複雑さに起因するソフトウェアの複雑さをうまく扱うための工夫、というのが私の捉え方。 ドメイン駆動設計という設計のアプローチを取り入れ

    『ドメイン駆動設計』の5つの基本アイデア - ソフトウェア設計を考える
  • 簡単につくるDDD風アーキテクチャ - Qiita

    はじめに:アーキテクチャは難しい! 世の中には様々なアーキテクチャがありますが、ものすごく複雑だったり、実装するには難しかったりするものばかりです。特にDDDやクリーンアーキテクチャは概念がややこしく、自分も理解するのに苦しんでいます。 そこで、色々と試していくうちにできた、自分なりに納得のいくアーキテクチャと考え方を紹介します。 (参考) STEP1:関心を分離する まず、アーキテクチャで一番大事なのは関心の分離です。つまり、どう役割分担するかです。ここではドメイン層、プレゼンテーション層、リポジトリ層、アプリケーション層に分けていきます。 ドメイン層~知識の管理~ まずドメイン層というところに、業務に関する知識を集めてきます。どういうことかというと、今からやりたい業務のルールや知識をまとて、専門家みたいなのをつくるイメージです。 例えば買い物アプリだと、 支払い料金は買い物かごに入って

    簡単につくるDDD風アーキテクチャ - Qiita
  • 「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました - きしだのHatena

    「オブジェクト指向神話からの脱却」というあおり気味タイトルの特集をWEB+DB PRESS vol.132で書きました。 12/24発売!クリスマスプレゼントです WEB+DB PRESS Vol.132 作者:きしだ なおき,加藤 尋樹,斉藤 洸紀,牟田 裕太郎,吉澤 政洋,朝日 リナ,鈴木 僚太(うひょ),川島 義隆,五十嵐 進士,末永 恭正,佐藤 雄太,吉井 健文,牧 大輔,西山 和広,吉田 花春,古川 雅大,岡林 大,池澤 春菜,和田卓人,日高 正博,はまちや2,竹原技術評論社Amazon 大まかには、「オブジェクト」でソフトウェアをぜんぶ考えるということに無理があったので、パーツそれぞれ適したやりかたでやっていこうぜ!という内容です。 ソフトウェアを切り出したときのパーツとしてのオブジェクトの特性が同質であるという暗黙の前提があって、だから「オブジェクトの話をすればソフトウェア開

    「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました - きしだのHatena
  • 1