mike-neckのブログ

Java or Groovy or Swift or Golang

Spring の Scheduling Task で柔軟にタスクの実行開始時間を指定する

f:id:mike_neck:20180802004547p:plain

現在作っているもので、タスクの開始時間を柔軟に行えないか調べていたら、普通に Spring のドキュメントに書いてあり、実験の結果をメモした。

docs.spring.io

なお、ここに書いてることは多くのケースでは使わないし普通のスケジューリングで十分だと思っている。また、そうでなくても Spring Retry でまかなえる可能性が高いので、普通には覚える必要はないかと思われる。もし使う必要があるのなら設計を疑ったほうがいい(鏡)。

続きを読む

現場でDDD 雑感 #genbadeDDD

現場でDDD という勉強会の第二回があったので参加してきた。

イベント募集のツイートを見たときに既に人数が埋まっていたので、参加できなさそうだなと諦めていたものの、前日に参加できそうなセッションがあったので、参加してきた。当日参加人数を確認したら、申し込み時点で参加できなかったセッションも参加可能になってて、キャンセル多いなと思った。

genbade-ddd.connpass.com

genbade-ddd.connpass.com


前半は増田さんの「コアドメインについて語り合ってみよう」というセッションで、いくつかのグループに分かれて、DDD を取り入れている人の事例を元に語るセッションに参加した。

f:id:mike_neck:20191215005214j:plain

僕が参加したのは某教育サービスのシステムで、どのようなシステムであるかを概観した後、このビジネスのコアドメインは何であるかを議論した。そして実際に開発している方の会社でも認識している、このビジネスの価値の厳選とも言うべきロールの方々だろうという一旦の結論に至った。しかし、そこは逆にビジネスとしてのボトルネックで、より価値を増大させようとした場合に、どのような戦略を取ればいいのかが次の議題になった。で、現在のビジネスを振り返ると、どうも社長の保有しているスキル・メソッドにポイントがあって、そこが隠れているコアドメインなのではないかという結論になった。

僕の参加したグループの面白かったところは、コアドメインの議論について、コードやそのテクニック、例えばバリューオブジェクトとかレポジトリーなどが一切出てこなかったところだと思ってる。 いま作っているシステムをどのような方向に進めていくかによって、コアドメインとなる部分は変わりうるというものなのかと思う。


後半は irof さんのセッションに出た(これしか参加できなかった)。 Jig は名前とか図が出てくるくらいしか聞いたことがなかったので、実際に触って、リファクタリングなどの効果が視覚化できるという点で効果的なツールなのではないかと思った。


最後は クロージング・セッションということで、質問されたことをテーマの議論をおこなった。

僕が参加したのは軽量 DDD を使うのは有りか否かという議論でした。ちなみに、なぜこれに参加したかというと、どれもあまり僕はあまり意見を持ってないのでどれでもいいかみたいな感じだったのと、たまたま最初に座っていた席の近くがこのテーマだったというかなり消極的な理由でこのテーマに決定した。

軽量 DDD というのは初耳だったので、どういうものかわからないというところからスタートしたものの、聞いている限りではオブジェクト指向と何が違うのか最後までよくわからなかった。とりあえずの理解としては、軽量でもなんでも DDD と言っておけば、オブジェクト指向にうんざりしている人にも何らかのポジティブなやっている感を与えられるプラセポみたいなものかなという理解(ツッコミをお待ちしています/このようなことを書くと DDD 系のイベント出禁になるのではないかという不安はある)

議論の内容としては、軽量 DDD から本格的 DDD に移行するタイミングはいつだろうかというもの。これについては軽量で開発者だけでやってたけど、言葉があわないなど何らかの理由で全社的に取り組みたくなることがあるのではないかという発言をした。


以上、具体的なコードの書き方などのハンズオンなどには参加できませんでしたが、設計について利害関係にない人と議論するのは単純に楽しいなと思いました。