ken1flanのブログ

自己紹介・最近やってることなどを書くつもりです。

Software Design 2023/02 メモ

Software Design 2023年2月号を読んで、ちょこっとずつ感想を書いてます。 gihyo.jp

いつも参加しているSoftware Design輪読会に向けての予習でもあります。 softwaredesign.connpass.com

第1特集 設計力を磨きたい!ドメイン駆動設計入門 設計の手法/アイデアの引き出しを増やそう

  • エヴァンス本を読んでないので、ざっくりと知れるだけでも助かります…。

第1章:ドメイン駆動設計とは?設計の考え方をつかむ基礎知識…… 増田 亨

  • ドメイン駆動設計が前提としている考え方」は普段から思っていることと一致していてよかったです。きっとどこかでエヴァンス本のことを聞きかじったんだと思います。
  • 辞書の話が出てますね…。いつもこれ、まとめきれないんですが、皆さんどうしてます…?
  • ビシッとハマる名前が出るまで、割と考え込んでいるのは…ここで書かれてることなのかもしれません…。
  • ドメインモデルを中心に据えたときに、依存関係が混乱しやすいので、整理方法として、3層構造、ポート&アダプター、クリーンアーキテクチャなどがある…と。
  • …読んでよかった、この章。

第2章:ドメインモデルを理解しよう 業務知識をソフトウェアで正しく表現するための考え方…… 増田 亨

  • 複雑な業務ロジックをドメインモデルから除く際に、トランザクションスクリプトとテーブルモジュールがある…と。
  • 会社のRailsアプリケーションでやっているものに照らし合わせると、単一のテーブルに関係するのはモデルに直接、リクエスト単位で行う複雑な処理はフォームオブジェクトに書いている感じ。テーブルモジュールがモデルに書いた処理で、フォームオブジェクトがトランザクションスクリプトってことかなぁ…。
  • ルールモデルの書き方がまだしっくりこないです…。これは慣れておいたほうが、自分が設計するときに楽そうに感じました。
  • あー…クラス名と関係者間の話し合いで使う言葉を一致させるのは、英語圏ではよさそうです。日本語だと…不自然極まりない…。これ、結構なハードルですねぇ…。
  • 単位もなんらかの特殊なロジックによる計算が必要になることがあるので、値オブジェクトとしてクラス化する…なるほど。
    • 金額(価格)もそうなのかな?消費税計算とか含めたらよさそう…?
    • いや、税金がかかんないパターンもあるから、まとめられないか…。
  • 分散アーキテクチャの一種が会社の会計や経理の機能がクラウドのサービスを使ってることか…確かに…。

第3章:分散アーキテクチャドメイン駆動設計 モデルと実装を適切につなぐための3つの設計パターン…… 増田 亨

  • うちの会社は…モノリスか、変えてもモジュラモノリスかなあ…。サイズは小さいし、面倒を見きれないです…。
    • 大きな機能で切り取れるなら、Railsエンジンで分割したいです。

第4章:ドメイン駆動設計を開発プロセスに取り入れる さまざまな現場から見えた4つの視点…… 高崎 健太郎,執筆協力:谷口 公宣

  • ウォーターフォール的開発にドメイン駆動設計を取り込む…!…スゴイ。
  • 顧客を巻き込む、これができたら、間違いなくいいですね…。
  • 言葉を揃えるのも、顧客を巻き込む一助になるんですね…。よさそうです。
  • 見学…!ドメイン知識取得は当然でしたが…顧客印象に効くとは…。たしかにそのとおりですね。
  • 広すぎるドメインは範囲を限定しながらやっていく…納得です。
  • 「業務ルールの実装部分を実際に実行してみせる」って、ショーケースですね。
  • モブプログラミング、モブモデリングなどでドメイン知識を伝搬…とはっきり目的化しちゃうのは説明しやすいかもしれません。
  • 新しいこと(ドメイン駆動設計)を導入しようとすると、邪魔が入る……わかります……。
    • チームへは丁寧に、トップも巻き込んで…。政治力がいりますね…。改善が回るような会社の文化があるかどうかは非常に効いてきそうです…。
  • 筆者の実例がよかったです。

第5章:ドメイン駆動設計のパターン名&用語集 用語の解釈で迷子にならないために…… 増田 亨,執筆協力:山崎 仁

  • ぶあーっと、ここまでの話を振り返ってくれました。

第2特集 開発者も知っておきたい 今さら聞けないログの基本 しくみから理解するログの[出力][調査][設計]

  • ログだから丸太ん棒なんですね。
  • この特集、保存版かも。

Linuxシステムログから学ぶ 第1章:ログの基礎とログ出力のしくみ…… 滝澤 隆史

  • …頭の中がsyslogdで止まってました><
  • rsyslogがモジュールでいろんな形式に対応しているの、便利そうです。
  • rsyslog、ちょっとしたフィルタも掛けられるんですね…。

トラブルの原因を知るために見るべき情報とは? 第2章:Webサーバログの読み方・調べ方…… 伊藤 俊一,小倉 大地

アプリケーションログを改善するための第一歩 第3章:ロギング設計の基本…… 銭神 裕宜

  • ログの設計の話…。
  • 朴訥に作られているから、秘匿情報が出てないか心配になってきた…。

一般記事

【新連載】[短期連載]画像生成AIのしくみ 【前編】AIに言葉を理解させる技術……本田 志温

  • どういう作りになってるのか説明してくれるの、おもしろい…!
  • DALL-Eの成功は画像のALTテキスト…。確かにコンピュータに理解させやすい形式かも。ウェブのアクセシビリティ対策の結果と言えるかも知れません…。
  • 文章の間を予測すると、文章の意味をよく表したベクトルに…。確かにテキストに書いていないこともイラストに必要ですもんね。
  • テキストからどんなふうに画像を生成するのか、ざっくりわかりました…。興味深いですね…。

連載

ITエンジニア必須の最新用語解説 【170】Spring Framework 6.0……杉山 貴章

  • Javaも触ってみたい気持ちになってきましたが、なかなかなぁ…。
  • GraalVM、よく聞くけど…ネイティブイメージ作れるのか。気になる…。

平林万能IT技術研究所 2ndシーズン【9】サッカーW杯の「三笘の1ミリ」を映像検証!――ボールの位置を物理とCV技術で高精度分析……平林 純

  • 三苫の1㍉!
  • 向きや速度から撮影されていないときの位置を割り出す…。よくやってるなぁ…。 件の1㍉写真、撮影された位置から再現してみせてくれているのもスゴイ…。

結城浩の再発見の発想法 【117】フィルタ……結城 浩

  • そもそも、フィルタってメタファーだから…と思ったら、言及されてて納得。
  • ためてからやるのではなくて、流れに対して適用する、というのは言われて思い出しました。

ハピネスチームビルディング 【11】個人開発を通じてみんなで楽しく成長する……小島 優介

  • 個人開発、いいですよね…。
  • Flutterの練習で作ったお酒のメモアプリがあるのですが、DBのライブラリのアップデートで大幅な作り変えが必要になってしまったことと、動作がもっさりしすぎて、本格的に非同期を入れないとダメだな…となって、今止まってます。
  • 広告収入か…。ちょっとやってみたいな…。
  • あと…業務の1時間/週を割く、勉強会だと思えば、普通かもしれません。よさそう。

Q

  • みなさん、何か作ってますか?会社で推奨されてますか?

【最終回】明後日のコンピューティングを知ろう 【24】明後日の見つけ方……松本 直人

産業別就業者数の変化のグラフがちょっと恐ろしいです…。生産者が減っている理由が効率化が進んでいるためであればいいんですが…。

オンラインホワイトボード「Miro」徹底活用術 【5】テンプレートを使ってみよう①……室木 梨沙

  • マインドマップはよく使いますが、ユーザーストーリーマップは知らなかったですね。
  • ちょっとテンプレートで使ってみてもよさそう。
  • 自作アプリので描いてみようかなぁ…。

エンジニアのためのやる気UPエクササイズ 【6】冬が一番効果的! 今すぐやるべき身体リファクタリング3選……えくろプロテイン

  • 実際に取り組みやすそうで、やってみたくなりました。動画もついててわかりやすいし。
  • しかし…タイトルが煽りすぎて、ちょっとなぁ…。

分解教室 【21】Google Pixel Watch……清水 洋治

  • コイル…電磁誘導ですね。やっぱり幅広く学校で習っておくと、その後見聞きするものが面白くなる気がしてます。(オフトピ)
  • ハードウェアは親会社が変わると、調達先の選定に影響が出てくるのが見えました。どれくらい苦労をして入れ替えているんでしょう…。
  • しかし、他のデバイスとの比較、語れないですが、なんとなくおもしろいですね…。

【新連載】なるほど納得Go言語 【1】Go言語らしさの源流……崎原 晴香(H.Saki)

  • 「らしさ」この切り口、おもしろそうです。
  • 誤解しにくい明確なコードを書かせる作りって…なんかスゴイですね…。
  • 「Goらしさ」がなんのためにあるか、という連載になるのでしょうか…。ちょっと楽しみです。

最強の開発環境 探求の道 【2】シェルをカスタマイズする……中山 慶祐

  • …ずっと面倒がっていた、zsh移行、この連載とともにやってみようかな…。
  • cawaii_prompt_zも作りたいし…。

リソースから考えるBCPの手引き 【2】組織的リソースへの対応……角道 淳平,中村 勝敏

  • この連載、社長と読みたい気がしてきました…。

【最終回】さて,障害対応にうまく付き合っていこうか! 【4】障害対応しやすい環境をつくっていこう……小野寺 孝洋

  • このシリーズも保存版だと思います。
  • 今回は第2特集と連載のBCPと被る部分もありましたが、この連載での文脈もあって、理解しやすかった気がします。

楽しいFlutter~しくみがわかるともっとハマる~ 【4】状態管理のしくみ……杉本 真二

  • まだDevTools、ちゃんと使ってなかったので、ありがたいです。
    • widgetツリーはここで見れるんですね…。
  • Riverpodではないの?と思ったら、同じ作者なんですね。

AWS活用ジャーニー 【5】Amazon DynamoDB……武田 隆志

  • ちょっとずつ機能が知れるこの連載、助かります。自分から読むってなかなか難しいですから…。
  • DynamoDBをrailsで使うには、dynamoidなるものを使うんだそうです。

  • 特徴を覚えておこうと思います。

【最終回】UNIXテキスト処理の極意 【19】テキストの類似性,編集距離……中島 雅弘

  • 実際に実装を見ながら「編集距離」を知れて、よかったです。

魅惑の自作シェルの世界 【3】終了ステータス……上田 隆一

  • なんとなく雰囲気で使っているシェルを、順を追って作っている感じがいつもいいです…。
  • プロセスの終了に仕方がなんとなくわかりました。
  • 動作確認の仕方も書かれてるので、テストも書けそう。

[Ansible]現場を支えるPlaybook 【3】作りっぱなしからの脱却……田中 薫

  • 「作りっぱなしからの脱却」…耳が痛いです…。
  • インフラ、作ったあとはなかなか壊さないし、手を入れる機会がなかなかなくて、ううむ…ってなってます。

ひみつのLinux通信 【108】酔拳……くつなりょうすけ

  • 酔っている人の発言に「信用できないラベル」…。酔っていても信用できる人もいるし、酔ってなくても信用できない人もいるので、そう簡単には…。

Pythonでネットワーク自由自在 【8】OpenPyXLを使用して設定済み機器のパラメータシートを自動で作成してみよう……小澤 昌樹

  • 割と小規模だと、こういう設定スクリプトもありなのかな…という気持ちもしてきました。
    • 面倒をみてたら、きっとかわいい…。

【最終回】スッキリわかるKubernetesネットワークのしくみ 【10】お試しIstio……大隈 峻太郎

  • お試しできる環境があるのはよさそうです。
  • Rubyのバージョンアップが遅いelastic beanstalkから離れたいです…。

こんなときどうする? エンジニアも知っておきたい法律知識 【18】誤解だらけの「個人情報」の定義……弁護士 杉浦 健二

  • 法律の連載、いつも助かります。
  • 三者にデータを渡すときは、自社の持つ情報と照合できない形に加工して渡さないと、扱いが個人情報になってしまうんですね…。

あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~ 【134】EU発のオープンソース都市OS,FIWAREとは?……関 治之,潮 周悟

  • FIWARE、初めて聞きました…。
  • ちょっとおもしろそうです。

その他

BOOK REVIEW

  • 「大規模データ管理」は…自分は今のところ、必要に迫られてなさそうです。…おもしろそうですが。
  • 「まとめて学ぶ〜」の2つの言語を比較しながら学ぶのはおもしろい企画だな、と思いました。言語の設計思想に触れることになりそう。
  • 「ちょうぜつ〜」は新人といっしょに読んだらおもしろそう。うちの会社にいないのでちょっと残念ですが…。
  • 「実践Redis入門」は…そのうちに細かいことをやりたくなったら、読もうと思います。(まだ使ってもいないので…。)