エンジニア的なネタを毎週書くブログ

東京でWebサービスの開発をしています 【英語版やってみました】http://taichiw-e.hatenablog.com/

設計

増田亨さん ドメイン駆動設計の正しい歩き方 を聞いてきました #bpstudy

BPStudy#141〜DDD(Domain Driven Design)実践の現場 - connpass に行ってきました! ドメイン駆動設計の正しい歩き方 from 増田 亨 特に心に残ったことまとめ DDDは、「ソフトウェアの変更を楽で安全にする」ことに振り切っている。 逆に言えば、変化がない…

増田亨さん「マイクロサービス 4つの分割アプローチ」を聞きに行けなかったんだけど教えてもらったのでまとめてみる #jjug_ccc

背景 私の増田さん追っかけは2017年11月に遡るのですが、 https://taichiw.hatenablog.com/entry/2017/11/05/175105 当時、APIの設計や、そこからつながるマイクロサービスの設計については、まだ試行錯誤されている段階… というお話を聞いていました。あり…

リアルタイムにそこそこ重い処理を実行するためには、前処理が重要… なのかな? #jsug

JSUG勉強会 2019その3 LINEにおけるSpringの活用 に参加してきました。 ここがとっても気になったのです。 Personalized content recommender systemであるSmart Channelは、ユーザーの属性や趣味趣向を推定し、各個人に最適なコンテンツを推薦するServiceで…

IntelliJ IDEAのSequenceDiagramプラグインが便利

この、SequenceDiagramプラグインで、 vanco.github.ioこんな感じのシーケンス図が描けます。 素敵なのが、 好きなメソッドから始められる 深さが選べる 点です。コードレビュー時などに、深さ2でServiceクラスから始めると、私の好きな感じのコードになって…

あらゆる「システム」の挙動は入力と出力だけで説明できる

どんな粒度、どんな用途の「システム」も、挙動は入力と出力だけで説明できます。 プログラムのサブルーチン(function, method, ...) 「引数」と「返り値」で挙動が説明できます。 public String greet (String name){ return "Hello " + name + "!"; } Mic…

『複雑なドメインに泥臭く立ち向かう』JJUG CCC 2018 Fall #jjug_ccc

JJUG CCC 2018 Fallに参加し、@su_kun_1899 さんの 『複雑なドメインに泥臭く立ち向かう』というセッションに参加してまいりました。speakerdeck.comtwitter.com 法律という完全に外部要因で決まって変えることもできないものが要件に深く絡む世界で、 どの…

Gunma.web #30 「DDD」に参加してきました! #gunmaweb

Gunma.webさんの勉強会に参加してきました。 テーマはDDDでした。 何故参加したか → 「DDD」が良い「切り方」を教えてくれるんじゃないかと思って… 私は、正しく『切』られたコードは読みやすいコードであり、結果、修正しやすいコードである と考えています…

新しいサービスを引き継ぐにあたって「ドメインナレッジ」は必要か

今年の二月ころ、ある会議の中で、 「ドメインナレッジが不要なプロダクトを作りたい」 と発言した。他の参加者の皆さん(偉い人多め)からは、総じて「ポカーン」とされてしまった。実は、その時の私は、なぜ「ポカーン」とされているのか、よくわからなか…

非同期処理の成否をクライアントが追いかけるのは良くない

何かのサービスを非同期で実行する場合。 運悪く、サービスダウンなで実行されなかった場合に、どのように検知・リカバリを行うか。 サービスダウンによる再送をクライアントにしてもらうのはよろしくないので、 サービス提供側がキューを用意して、再送処理…

雑記:MVC「コントローラ」ってコントローラか。

私がMVCモデルという言葉を知ってからかれこれ10年以上経つんですが、「コントローラ」っていうのが長いことずっとしっくり来ていませんでした。モデルとビューをつなぐ だとか。 ユーザの入力を受けてモデルを呼び出す とか。 Ruby On Railsタイプのフレー…

持論:Application Layerがシンプルなコードは読みやすい

DDDでは全てのビジネスロジックはドメインクラスに、とのことなので当然プログラムの肝はドメインクラスなのですが、コードの読みやすさは8割がたアプリケーションレイヤで決まると思っています。 Springで言えば、Controllerから呼ばれるServiceクラスの、…

『現場で役立つシステム設計の原則』 増田亨さん を読んだ。「データしか持たないデータクラスは作らない!」

こちらの本を読んででのレポートです。現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法【電子書籍】[ 増田亨 ]価格:3175円 (2017/11/4時点)複雑な業務ロジックは「適切な境界」で分離されていれば理解しやすくなる! …が…

RESTful APIってなんか意味あんの? って言うタイトルのブログを書こうと思ってるんだけど

うまく言いたいことや考えがまとまらず書く書く詐欺になっているので、ひとまず起こっていること・思っていることを書いてみたいと思います。 起こっていること シンプルな、データの永続化を行うだけのWeb APIが、リソースの種類ごとにそれぞれ作られていま…

更新系のAPIって難しい1 部分更新のはなし

勉強不足なのは承知のうえで、実務上困ってることとか考えていることを今日は書いてみたいと思います。 例えば以下の様なデータを取り扱うREST APIをつくろうとしたとします。 あるECサイトにおいて、商品の料金を取り扱うAPI 商品は既にDBに登録されていて…