『複雑なドメインに泥臭く立ち向かう』JJUG CCC 2018 Fall #jjug_ccc
JJUG CCC 2018 Fallに参加し、@su_kun_1899 さんの 『複雑なドメインに泥臭く立ち向かう』というセッションに参加してまいりました。
法律という完全に外部要因で決まって変えることもできないものが要件に深く絡む世界で、
どのように立ち向かっているのか、というお話でした。
今一番読みたかった本が現れたかのように感じたセッション
どうやって複雑なドメインを理解し適切にコードに落とし込むか
というのは今現在の私の最大の関心事の一つでありながら、
もう一段自分のレベルを上げたいのだけれど何を勉強したら良いかわからないのが課題でした。
そんな中、今日のセッションは
- 自分が聞きたかった話を
- 理解できる言葉で
- 体系立てて
話してもらえたセッションでした。
更にいうと、一部の内容は、普段から自分がぼんやりと「思っていた*1」ことを、明確に言語化してもらった内容でした。
以下、私が感じたことが中心です。
順序も元の発表と異なります。ご了承ください。
共感したポイント
一本道を見つける
「変化は受け入れ、一本道に対して複雑さを足していくアプローチをとる」
そうなんですよね。いかに幹を見極め、枝葉と分離できるか。
いまから作ろうとしているプロダクトの背景にある真の目的はなんなのか。
それを見つけ出せることが重要なんだと思います。
モデルを抽出するするために ひたすら write & talk
とにかくなんでも良いから書き始めてみること。
脳内でウンウン考えているだけだと、自分自身が認識するのもなかなか難しい。
サービスクラスがユースケースを表す
すごくわかります。
個人的に、サービスクラスが数行でかけたら価値だと思っています。(というよりはサービスクラスがごちゃごちゃしたら負け)
taichiw.hatenablog.com
コードに書いて、動かして、初めて理解したと言える
今年の私の実体験。
単なるAPIだろうがんなんだろうが、実際に動くものを見て、触れて、初めて理解できることや気づける疑問が人間どうしてもあります。
更にこの時、クソコードだろうがなんだろうが、
とりあえずでも「動いて」、そして一応でも「読める」プログラムがあることによって、それまでに比べて格段に理解がはかどるようになります。
皆さんエンジニアですから。
(クソコードでもよいのですが、「適切な枠で切られている」ことはとっても大事。その中がクソな分には最悪差し替えれば良いのです)
気づかせてもらったこと
最低限のドメインナレッジの勉強は必要
実際の業務のロールプレイをしてみる
手書きで帳票を書く、という言うようなことをしているそうです