「ドメイン駆動設計」を含む日記 RSS

はてなキーワード: ドメイン駆動設計とは

2023-07-15

ドメイン駆動設計給与評価関係性:エンジニア視点から考察

ドメイン駆動設計エンジニアにとって重要概念であり、市場価値の向上につながるとされています

しかし、一部の企業ではドメイン駆動設計学習実践時間を費やしても給与の上昇にはつながらない場合があります

記事では、新しい会社転職ドメイン駆動設計を学んだエンジニア給与評価について、実体験をもとに考察します。

転職先でのドメイン駆動設計学習実践

私は新しい会社転職し、参画するプロジェクトドメイン駆動設計実践することになりました。

入社後、評価であるCTOからドメイン駆動設計は難しい概念であり、エンジニアとしての評価につながる」と言われました。

それに伴い、2ヶ月ほどの研修期間を使ってドメイン駆動設計の基礎を学び、残りの期間は実際のプロダクト開発に携わりながらドメイン駆動設計実践しました。

給与評価転職リスク

2年目となり初めての査定期間が終了した際、評価であるCTO自己評価給与のUPを希望する評価を提出しました。

しかし、結果としては会社昇給額の最低ラインにとどまりました。相互評価にて他のメンバーからは高い評価を受けており、評価者が適切な査定を行っていない限り、もっと高い評価を受けるはずだと言われました。

ドメイン駆動設計給与評価関係

この結果を踏まえると、レベルの高いスキルを社内で学習しても社内的な給与の上昇につながらない場合転職リスクが増える可能性があります

市場価値を高めるために時間と労力を費やす一方で、給与評価が見合わないと感じる場合エンジニアは他の企業転職する可能性があります

実体験内では「そもそも難しい概念のため、正しく身につけられること自体評価に値する」というような事前会話もあったため、期待に反して裏切られた感覚はあります

考察結論

ドメイン駆動設計エンジニアにとって重要概念ですが、給与の上昇を主眼に置く場合、他のアプローチ概念にも目を向ける必要があることが示唆されます

一部の企業ではドメイン駆動設計評価が不十分な場合があり、エンジニア自身市場価値を高めるために他の選択肢模索することも考えられます

まとめ:

記事では、ドメイン駆動設計学習給与評価関係性について実体験をもとに考察しました。ドメイン駆動設計重要概念ですが、

給与アップを主眼に置く場合、他のアプローチ概念にも目を向ける必要がありますエンジニアとしての成長を追求する一方で、給与アップにつながるバランスの取れたスキルセットを目指すことが重要です。

例えば今回の例でいうと正しくドメイン駆動設計議論ができるようになったのは2-半年程度と考えられますが、その期間があればAWS資格等も視野に入るため、現在世間では何が評価されやすいか念頭に置き検討したほうが良いでしょう。

レベルの高いスキルを持つエンジニアに対して適切な給与評価が行われることは、企業エンジニアの双方にとって重要な要素です。

現在自分はこの会社に入って3年程度が経過していますが、学ぶ内容がなくなれば転職しようと考えています

2022-05-28

kindleセール

たまに、ヤバイ感じでセールしてるなあ。

詳解Unixプログラミング第3版、パタヘネ6版、ドメイン駆動設計が半額近くになってて笑った。

2021-12-04

anond:20211203154548

クリーンアーキテクチャとかドメイン駆動設計とかそういう思想のものは読んでも分からない。デザインパターンも読んだことあるけど理解できたことない。底辺プログラマには高尚すぎて頭に入らない。

難しいことはいいから、今俺が悩んでいることを具体的に解決してくれる本が欲しい。答えが欲しい。難しいことは分からない。お前が非エンジニアなのになぜそんなに詳しいのかも分からない。

世界は俺が理解できる世界ではないのかもしれない。バグが埋め込まれている。俺か世界のどちらかに

2021-12-03

anond:20211203140112

アーキテクチャの本もあるじゃん

非エンジニアの身からすると、クリーンアーキテクチャとかドメイン駆動設計とか古いやつだとMVCとかそういうデザインパターンの本も結構色々あると思うけどそういうので不足するようなもんなん?

というかアーキテクチャに関しても抽象化すれば

・どこに着目して分割するか

疎結合と密結合でどの部分を分離してどの部分をどちら方向に依存させるか

みたいな話だと思うから、そういうのを意識すればブログとかでも情報十分拾える気がする。

あくまでも非エンジニア目線だけど。

2021-04-26

anond:20210425022947

共通言語たるドメインモデルを、そのままコードと1対1対応しなければならない、という思い込みや風潮。

既存のWAF(Web Application Framework) の利点を潰してどうする…」

こういう誤った思い込みエンジニアにさせているのは、ドメイン駆動設計の原典であるエリックエヴァンスドメイン駆動設計」が、いか抽象的な内容で、ある意味では哲学的であったかを、明示するものでは無いか

プログラムとはメタファーであり、現実を、もしくはそれに準ずる写像的な世界観を、コードに忠実に再現するものでは必ずしも無いと考える。この記事増田は「過度な抽象化」とも書いているが、プログラムというか、そもそも言語のもの物事の全てを表象できるものではなく、ある一側面の一イメージしか切り取れない不完全なものだし、それ自体問題ではない。現実ソフトウェアの溝を、ユーザーエンジニアの溝を、ドメインソースコードの溝を、いかにして埋めるかというのが、ドメイン駆動設計の本質だし、その埋め方についてはエリックエバンスは一例を示しているに過ぎない。EntityやValueObjectなど、必要なら使えば良いし、不要なら使わなければ良いのだ。ただし、元々何が問題なのか、問題だったのかという点について、いかにして向き合うかが肝要であり、それは技術論や方法論の話ではない。

ドメイン駆動設計の記事を書いたり、勉強会で発表をしている人間は、原典やそれに付随するドキュメントの内容を、無批判に信奉し、そのようにしなければならないという強迫観念に追われているのではないかそもそも、本当に理解しているか怪しいし、不安から教科書の内容にしがみつこうとするのだろう。さらにこの手の連中は、昨今のCQRSやイベントソーシングマイクロサービスなどとも絡めて話をし出すから、タチが悪い。「ドメイン駆動設計はこの手の技術スタックと相性が良い」という言葉を何度も見かけたが、技術的な方法論はそもそも無関係だったはずだし、そうやって安易に結びつけてしまうからユーザーが置き去りになって来たんじゃねーのと、暴言でも吐きたくなる。問題本質はどこにあったのかを、聖典の内容や、流行り廃りの技術とは切り離して、エンジニアは三思九思すべきだ。

別にこうあらなければならないという法律や決まりは無いし、好きにやれば良い。モデルと1対1にならなければ、分割する事を選択するのも一つの向き合い方だ。ドメイン駆動設計の信者にゃんにゃん写真でも撮られて、ばら撒くと脅迫されているのであれば勿論話は別だ。恥ずかしい写真魚拓されたくなければ、とりあえずEntity、ValueObject、Repository、Service(笑)位は最低限、用意するのが身のためだろう。

自分の頭で考えて、自分責任判断するという当たり前の事に立ち返りたいものだ。ドメイン駆動設計という盲目的な宗教からいかにして抜け出すかが今後のエンジニア課題だろう。

追伸

増田ドメイン駆動設計が大好きです😘

anond:20210425022947

以下はあくま個人解釈から異論は認める

ドメイン駆動設計ってあくま設計手法っていうかビジネスロジックモデリングまでが本分だから

システムドメイン領域)にビジネスドメインで履いていた土足のまま踏み入ってはいけない

ビジネス理屈を一対一でシステムに持ち込むのはナンセンス

※補足追記:基本設計したら詳細設計するけども、そこでビジネスロジックシステムロジック翻訳するからコードレベルでは一対一にはならないということ

概念次元が違うのだから現実漫画理屈を持ち込むなっていうレベルの話(ビジネス漫画レベルという意味ではない)

モデリングによって現行のビジネス問題を洗い出し、それを課題として解決仕事を楽に)するのがシステム

それも一回で終わりじゃなくてシステム化したビジネスを再びドメインモデル化して分析課題システム解決ってサイクルを回していかなくちゃいけない

 

システム側も細かいこと言えば領域が分かれてるからそれぞれの領域に合わせて駆動方法は変えなきゃうまく回らない。

データレイク周りならデータ駆動型の方が適しているし、逆にアプリケーション側でビジネスUX無視してデータ主体で走るのは阿呆所業だし、

馬鹿の一つ覚えで〇〇駆動設計だの開発だの一本槍でパワープレイするやつが多すぎなんだよ! 適材適所って理解しろよ!

ちゃんと各分野のスペシャリストを雇って意思決定層に組み込んだ方が結果的時間や金なんかのコストが少なくなるよって話が通じないよね

anond:20210425022947

っていうかドメイン駆動設計ってクライアントアプリとかやってる人なら意識せずに普通にやってることじゃないの?

webアプリからフレームワークに沿わず特別なことにみえるだけでさ

2021-04-25

DDD(ドメイン駆動設計)、理念に大賛成、実装に大反対。

※追記あり。最後の追記は 2021/04/25 21:40頃※

タイトルの通りのことを思っているけど、顕名のブログで書くと社内で干されるので、増田に書く。社内の心理的安全性がそんなに低い訳ではないけども、潮流が凄いので今は慎重に振る舞いたい。

この記事を見て「キミはDDDのことを誤解している」と思われた方はコメント等で優しく(易しく、ではない)ご指摘願いたい。

※この記事では Web Application を前提とした話になっている。

DDDとは?

https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88

DDD、ここがイケてる
  • ソフトウェア開発者は開発対象のドメインのことをほとんど知らない、という問題意識およびその提起。
  • 俗に言う「ビジネスサイド」の人間との共通言語を整備するべきだ、という提言。
  • ドメインモデルの構成要素のうち「エンティティ」「値オブジェクト」あたりの概念は、俗に言うビジネスサイドの人間も持たなくちゃいけない。DDDはその学びの道標として非常に優れている。
DDD、ここがイケてない
  • 共通言語たるドメインモデルを、そのままコードと1対1対応しなければならない、という思い込みや風潮。
    • 既存のWAF(Web Application Framework) の利点を潰してどうする…
  • ドメインモデルの構成要素のうち「リポジトリ」等はソフトウェアの中に閉じた世界の話であって、俗に言うビジネスサイドの人間との共通言語には登場しなくて良いことが圧倒的に多い。設計を遅延させる原因になっている。
    • 名前から考えれば、DDDの効用の範囲は「共通言語の整備」と「共通言語の会話から設計に落とし込む際のベストプラクティス」あたりであって欲しいのに、余計なお世話。
  • 過度な抽象化
じゃあ、どうすんの?
  • エンティティやその周辺のドメインモデルの話は、いわゆるビジネスサイドの人間との共通言語として、噛み砕いて共有したい(既に進行中)
  • ソフトウェアの設計としては、3月にバズってた記事 Only My Rails Way のような方針でありたい。欲を言えば静的型付け言語に乗り換えたいが、それは叶わぬ望み……。。。

短く言うならば「DDDの理念は取り入れるが実装は取り入れない」

(参考) 筆者のポジションと近況
  • データベーススペシャリストの立場で、また俗に言う「テックリード」の立場で、情報システムやWebサービスの設計と実装に従事。
  • 技術的な上司はチーム外。チーム内では筆者が一番上。
  • 社内のよそのチームが「DDDいいぞ」と言って布教しようとしてきてて、つらいお年頃。
追記@2021/04/25 21:40頃

夜中に投稿したのに多くの方に読んでもらえて嬉しく思います。コメントなどなどありがとうございます。以下、補足です。

  • 筆者にとっても普段はWAFという語は Web Application Firewall を指します。わざわざWAFの正式スペルを文中に書いたのは、通常と異なる言葉遣いであるから、です。
  • 「既存のWAFの利点を潰してどうする」が言うところの利点の主たる部分は、junior developer 職の人を新たにチームに招き入れる際に、当該言語やWAF(frameworkの方)、そして基本情報レベルのセキュリティや通信の知識さえあれば容易に参画可能であるという利点です。seniorならまだしも、juniorを迎え入れるときにDDDの知識を持ってる人を必須にしたり on boarding の時点でDDDの話をしなくちゃいけないのは、コストに見合わないと判断しています。

あと、素晴らしい引用に感謝したいのですけれども、

「一般的に言えることだが、使っているフレームワークとは争わないこと。 フレームワークと対立してしまった時には、ドメイン駆動設計の基本を保ちながら、 詳細は捨て去る方法を模索すること。」エヴァンス本 p157

https://b.hatena.ne.jp/entry/4701728015809111618/comment/sonota88

例えば、アプリケーションのディレクトリ構造をDDDの用語に合わせたものにするという行為は、ここで言うところの「対立」に相当すると考えています。「基本」すなわち理念だけ存分に私たちのアプリケーションに取り込みたいものです。

少し違う角度の話をすると、初っ端からDDD前提のWAF(frameworkの方)を、できれば静的型付け言語で(←個人的な趣味)、新しく開発してそれを普及させることによって、当該WAFを学んだ人は自然とDDDも身に付いているという文化を作ることには熱い賛同の言葉を贈りたいと思っています。

2021-04-24

DDDユースケース層でのエラーハンドリング言語化している情報ってありませんか?

ユースケース層ってドメインからエラーを受け取って翻訳して、呼び出し側へハンドルやすいようにエラーを投げるじゃん。もしくは、想定のエラーだったら握りつぶすみたいな役割あるじゃん

そのユースケース層のあるべき振る舞いの情報源って経験的でしかなくて、識者から情報が欲しい。

ドメイン駆動設計 モデリング実装ガイドって本にはサラッとしか書いていなかった。

2021-01-02

[]2020年12月はてブあとで読むトップ30リスト

はてブホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ

272あとで/1803users この本がスゴい!2020: わたしが知らないスゴ本は、きっとあなたが読んでいる

257あとで/1367users 鹿児島中央駅から新函館北斗駅まで新幹線の全駅に下車してきたので全力で紹介する_PR【駅メモ!】 | SPOT

247あとで/2110users ぼんくらITエンジニアでもYouTubeとスタサプでTOEIC 900点突破できたので勉強法をまとめていく - だいたいよくわからないブログ

235あとで/1299users 「イラストでわかるDockerKubernetes」は完全に良書 - Cloud Penguins

222あとで/1463users 売れるアプリにするコツ100個書きます(吐血) - Crieit

203あとで/1011users JavaScriptの基礎知識GIFアニメで分かりやす解説 -総まとめ | コリス

192あとで/1373users もしあなたが急にAndroidアプリ業務で作るはめになった場合選択肢(2021年初頭版) - Qiita

190あとで/959users OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife

183あとで/1146users 一人前のプロマネってどんな人? プロジェクトマネジメントスキルセットとは-誰も教えてくれないプロマネのコツ | Mammoth Project

180あとで/1008users Python仕事をする人のための書籍まとめ2021 - 学習, 業務効率化, アプリ開発からデータサイエンスまで - Lean Baseball

173あとで/1647users 【練習内容公開】イラストを100日練習しました|都路 燕禅|note

170あとで/2469users 僕のしょうもない人生を紹介します - いまトピ

170あとで/1019users 「フリーランス副業向けサービス カオスマップ2020年完全版」が公開 - Digital Shift Times(デジタル シフト タイムズ) その変革に勇気希望

163あとで/1186users 9割の人が知らない再現性危機 - 本しゃぶり

157あとで/1019users Mac を買ったら必ずやっておきたい初期設定を、全て自動化してみた | ulwlu | Zenn

154あとで/751users CTOの頭の中:技術投資最適化する|Shin Takeuchi|note

152あとで/1503users 僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き - Magnolia Tech

148あとで/2347users 全財産を使って外車買ったら、えらいことになった|岸田 奈美

141あとで/1040users 英語発音について概説する - Amosapientiam

135あとで/648users 技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita

131あとで/2088users Amazonで「鬼滅の刃」のコミックを買ってしまったのに、どうしても読み始める気になれない。 | Books&Apps

131あとで/1089users ステーキをおいしく焼く理論料理家・樋口直哉が教える、肉の焼き方「新常識」【保存版】 - ソレドコ

129あとで/855users Webディレクタースキルリー - NMY

129あとで/915users Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog

126あとで/745users Web制作の時短に!2020年の便利オンラインツールベスト100選 - PhotoshopVIP

121あとで/880users 【総まとめ】2020年公開のすごいPhotoshopチュートリアル、作り方厳選まとめ - PhotoshopVIP

121あとで/613users ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab

121あとで/864users 家で筋トレを続けるための簡単な「仕掛け」を取り入れてみたら、筋トレが楽しくなって習慣化した話 | Fun Pay! | あたらしい自分、はじめよう。楽天カード

120あとで/614users Micro Frontends Architecture Patterns | okmttdhr | Zenn

120あとで/679users 3ヶ月くらいフロントエンドやったのでやったこと一旦まとめ - Stimulator

相変わらず英語ネタが人気。

ステーキの焼き方記事好き。

2020-10-08

anond:20201008110252

ドメイン駆動設計勉強を始めた所なので教えて頂きたいのですが、ドメイン駆動設計重要なのはどういう点ですか?

もしかして馬鹿にはドメイン駆動設計理解できないのかもしれない

高学歴とそうでないひとがふるいにかけられている気がする。

2020-03-17

[] ドメイン駆動設計

今日という1日を最高の可能性を実現できるかどうか確認するための時間としたい。

今日の私はたくさんの選択肢の中から最高の経路を選んで実現しているだろうか?

否。断じて否。まだまだダメである。(反省

DDDパワーアップ

今の私に足りないものプログラム設計能力である

ドメイン駆動設計を学び参考にしたい。

とりあえず、今日中にCodeZine連載記事に目を通しておきたい。

2019-08-04

anond:20190804180254

これがドメイン駆動設計だと、各自勝手に思ってるのがそれぞれある感じかな。

教えてくれ

ドメイン駆動設計ってなんなんだ?調べても全然はっきりしない。

コードの綺麗さ、整然性よりも、処理をずらっとまとめて書けってことなのか?

デザインパターンオブジェクト指向が出てきたけど難しすぎて設計できないやつが続出したからそういうことが言われるようになったのか???

2018-06-04

DDDは間違いなくクソ

そう思っている人は他にいないだろうか。

ここでいうDDDとはドメイン駆動設計(Domain-driven design)のことだ。

DDD! DDD!」と言ってるプログラマって、ソースコードの中に閉じこもってるやつばかりだ。

DDDに夢中なやつらはビジネス目標達成や業務改善のことに全く無関心で、ソースコードの美しさと処理方法しか関心がない。

他の職種の人と話さないし、話してもソースコードや処理方法の話をし始める。


なぜそうなるのか。

全く疑問だ。

DDDだぞ?

間違いなくDDDはクソエンジニアを見分けるためのリトマス紙だ。

2013-12-29

http://anond.hatelabo.jp/20131229014324

ああ、ごめん。ドメイン駆動設計中2病に風に説明しただけで伝わりにくくてごめん。

関数型言語副作用排除は、DDDでも不変オブジェクトという副作用関数排除の根に繋がってたりして面白いよね。

数学面白いけど、どちらかというとコード世界の延長も面白くなるんだぜ。と言いたかっただけだった。

 
ログイン ユーザー登録
ようこそ ゲスト さん