@masuda220
◆アプリケーション開発者:ドメイン駆動設計,Java,Spring ◆著書『現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法』
@RamonClemente
@HillCST_
@Safe_Seaweed
@HZ_dress
@avinroart
@EmtiajRonok
@rwohan
@rabbisacks
@PurpleRoofs
@desa_stw
@PatAngeli
@HUBCITY1
@fly2ohare
@kinfaker
@antonposa
@complexrori
@MaxArchibtalent
@GenshinImpactOC
@AhmadMoawed
@CrypticDax
「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまった」といったトラブルが起こるのは,ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者で...
JJUG CCC 2023 Spring 発表資料(ステップアップセッション)。 私がクラス設計をするときに重視している考え方とやり方を紹介。 主な内容 ・クラス設計のスキル 3段階 ・クラス設計の技能を習得するシナリオ ・7つの基礎知識 ① 入出力と計算判断 ② プログラムの中核と周辺 ③ モジュラー性 ④ データ抽象 ⑤ カプセル化 ⑥ 契約プログラミング ⑦ 不変(イミュータブル)
#asken_dev「設計の考え方とやり方」勉強会 https://asken.connpass.com/event/254709/ ・良い設計は悪い設計より変更が楽で安全である ・ドメインモデル方式のクラス設計 ・イミュータブル方式のテーブル設計 ・設計スキルの身につけかた ・設計のためのモデリング
データエンジニアリングとは、組織内外で日々生成されるデータを蓄積し分析するためのデータシステムを構築し維持管理することであり、急速に注目を集めている分野です。近年ではデータエンジニアリングを支えるツールやクラウドサービスが成熟し、組織へのデータ利活用の導入は容易になりましたが、明確な指針のないままデータシステムの構築を進めると費用と時間を無駄に費やすことになります。本書は「データエンジニアリ...
エンジニアの格闘エンジニアのみなさんはかつてひどいコードや設計と直面し、それと格闘したことでレベルアップした経験はあるでしょう。つまり、先輩エンジニアたるものクソコードやクソ設計を残して、後輩エ…
はじめに アーキテクチャ・デザイン全般 ソフトウェアアーキテクチャの基礎 Clean Architecture 達人に学ぶソフトウェアの構造と設計 Design It! ソフトウェアシステムアーキテクチャ構築の原理 データ指向アプリケーションデザイン マイクロサービス マイクロサービスアーキテクチャ マイクロサービスパ…
アルゴリズムは,プログラミングを用いて問題を解決していくには欠かせない大切な道具です。一方,アルゴリズムを理解し,そして応用できるようになるためには,ある程度の数学的知識と数学的考察力も大切です。 本書では,中学レベル~大学教養レベルの数学的知識のうちアルゴリズム学習に必要なものについて扱うとともに,有名なアルゴリズムと典型的な数学的考察について丁寧に解説します。さらに,知識をしっかり身に付...
Object Oriented Conference 2024 登壇の機会をいただいたので、ここ数年、設計について考えていることを、言語化してみました。 はじめに 設計と開発プロセスの関係性 ソフトウェア設計の知識と技能 ① ソフトウェア設計の基礎知識 a. 基本課題 b. 解決のアプローチ c. モジュール化:基本となる4つの技法 ② モジュール化 a. モジュールの分類 b....
2022年11月7日(月) 「現場で役立つシステム設計の原則 - Forkwell Library #9」 発表資料
DDD関連の本を読み漁って、それぞれの感想一言メモと、どの順で読んだらいいか考えてみたやつを紹介します。
「基本から学ぶテーブル設計 超入門!」 https://modeling-how-to-learn.connpass.com/event/242944/ の発表資料。 - 2つの設計スタイルの違いを理解する - 何を記録するか(資源・活動・当事者・規程) - どう記録するか(テーブルの役割を単純に保つ) - 基本ツール:CREATE TABLE文 - データ型と制約
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル) - Download as a PDF or view online for free
architecture sample using : Spring Boot gradle, Spring MVC, Thymeleaf, and MyBatis - system-sekkei/isolating-the-domain
私たちはどう学んでいるのか: 創発から見る認知の変化 (ちくまプリマー新書 403)
1. はじめに1-1. 簡単な自己紹介事務系の仕事をしておりましたが、プログラミングに興味を持ち、在職中から独学でJavaを学習していました。現在は退職し、IT業界への就職を目指して活動中です。退職後の期間にSpringBootを使ってアプリケーションを作成したので、アプリの概要や作成しながら考えたことなどについてまとめました…
# はじめに - 設計と開発プロセスの関係性 - システムの構造とタスク構成 - 設計の影響(生産性、外部品質) - ソフトウェア設計の知識と技能 - 経験則 (経験による暗黙知 ⇒言語化:原則、パターン、体験談) - 習熟 (手を動かして内面化された経験則) - 共創 (知識と技能の連結) # ① ソフトウェア設計の基礎知識 ## a. 基本課題 - 複雑さと発展性 - 大きな泥団子 -...
イベントの動画 : https://www.youtube.com/watch?v=2Z1CJhPk-f8 オブジェクト指向プログラミングはクラス設計。 クラス設計はプログラムの分割。 クラス設計の焦点は、ビジネスルールを表現するクラスと、ビジネスアクションを表現するクラス。 クラス設計やパッケージ設計の実証済の形を覚えると、出発地点の設計が楽になる。 リファクタリングを積み重ねて設計を改善...
原 拓志現代の製品開発・生産のマネジメントにおいて、理解しておくべき概念の1つが「モジュール化」である。「モジュール化」とは、全体システムを、いくつかの下位システム(モジュール)にわけ、モジュール間のインターフェイスを標準化することによって、システム全体の構造を変革することなく、モジュールの取替や組換えによって、システムの機能を維持ないし変更できるようにする方法である。システムがハードウェア...
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This … -...
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - donnemartin/system-design-primer
シンプレクス株式会社さん( https://www.simplex.inc/ )の社内勉強会で使った資料です。 ・変更を楽に安全にする設計の基本原則は「関心の分離」 ・どういう枠組みと視点で関心を分離するか ・事業活動の仕組みと決め事に焦点を合わせたクラス設計の考え方とやり方 ・事実の記録に焦点を合わせたテーブル設計の考え方とやり方
BPStudy#178〜成長し続け、変更を楽に安全にできるソフトウェア設計とは 株式会社ビープラウドが主催するIT勉強会 2022年6月30日 設計を学ぶのは自分のため 「正しい」学び方があるわけではない 設計の学びに特定の到達点はない 何を学ぶのか 設計の学び方 上達する:練習して変化する 成長する:時間をかけて変化する ひらめき:突発的に変化する
はじめにエンジニアにとって、仕様書などの技術的な文章を書くこと(テクニカルライティングとも言います)は避けて通れません。ただ20年来多くのエンジニアの方々と同僚として接してきて思うことは、エンジニ…
エンジニアのためのマネジメント入門書です。 エンジニアのキャリアパスの1つに「マネジメント」があります。 エンジニアリング領域の知見を生かして,複数のチームメンバーをマネジメントする。エンジニアリングマネージャーとも呼ばれる,この仕事は,エンジニアにとっては多くの場合未知の領域です。エンジニアリングとマネジメントでは求められるスキルも異なり,仕事の進め方も大きく異なるからです。 マネジメント...
オブジェクト指向プログラミングの現在・過去・未来 - Download as a PDF or view online for free
はじめに 現場で役立つシステム設計の原則を知りたいと思っていたのですが、丁度現場で役立つシステム設計の原則について言及されている書籍があったので読みました。 gihyo.jp ある程度知名度のある書籍で、QiitaやZenn等でまとめられている方がいらっしゃるのですが、自分のアウトプットとして、感想も交えてまとめていき…
Albert-László Barabási 著
巷で、顧客の課題を解決しつつ、より良いシステムを作るための設計手法として、ドメイン駆動設計(DDD)が話題になっていると思います。このドメイン駆動設計について、どのように実践するか、実際に実践して…
マイクロサービス 4つの分割アプローチ - Download as a PDF or view online for free
イミュータブルデータモデルの極意 - Download as a PDF or view online for free
こんにちは。システム部の大澤です。 普段は北米版あすけんのアプリを開発しています。 今回はこちらの記事にインスパイアを受けて、askenでもやってみたいと思いました。 developers.cyberagent.co.jp 今後、askenに入社するエンジニア(シニアエンジニアを想定)にオススメする1冊について、アンケ…
【内容紹介】 サブスクリプション、プラットフォーム、シェアリング、フリーミアム...etc 知っておきたい最新論点をすべて網羅 ビジネスモデル研究の第一人者による、 最強の入門書、誕生。 ビジネスモデルの潮流の変化、作り方、分析、 すべて解説された1冊 【目 次】 第1章 ビジネスモデルのパラダイムシフト 第2章 ビジネスモデルのつくり方 戦略分析 第3章 ビジネスモデルのつくり方 顧客洞察...
TypeScriptとドメイン駆動設計(DDD)を組み合わせ、APIを構築するハンズオンガイドです。この本では、DDDとは何かという基礎的なところからソフトウェア開発における戦略的設計、戦術的設計まで、包括的な知識を提供します。 戦略的設計では、ビジネスの要求に合わせたドメイン
ドメイン駆動設計という設計スタイル - Download as a PDF or view online for free
この記事の背景現職では DDD を採用しており、色々な方と DDD についてお話しする機会があります。その中で、特に初学者の方はアーキテクチャに対して「なぜこんなに面倒な事をするのか?」という印…
エヴァンス氏の『ドメイン駆動設計』の背景にある基本アイデアは何かという私の捉え方のメモ書き。 ドメイン駆動設計にはいろいろな側面がある。また書籍『ドメイン駆動設計』は体系だった設計方法論ではなく、設計の考え方とやり方を経験則として言語化してみた、と捉えている。 その経験則(100%ではないが多くの場合に役に立つ原則)の…
ドメイン駆動設計を現場で実践する中で感じているモデル駆動設計のたいせつさや、モデリングの費用対効果について、まとめてみました。 ・ドメイン駆動設計の要点 ・なぜドメイン駆動設計か? ・複雑さに立ち向かうためのモデリング ・認知の負荷と、モデリングの効果
エヴァンスの『ドメイン駆動設計』は「知ってはいるがまだ読んだことはない」とか「積読ままになっている」という人も多いのではないでしょうか。 そんな人たちを対象に、まず翻訳者の和智さんに『ドメイン駆動設計』を読む価値について発表していただきます。 その後、日本語版の出版前からドメイン駆動設計に取り組まれてきた佐藤さん、かとじゅんさんに加わっていただき『ドメイン駆動設計』をそれぞれがどう読んできた...