ken1flanのブログ

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

Software Design 2025/08 メモ

Software Design 2025年08月号を読んで、ちょこっとずつ感想を書いてます。

gihyo.jp

表紙

  • マンゴーを思い出すような、フルーティなカラーですね。
  • 「インコ 赤いくちばし」で画像検索したら…ヤマブキボタンインコかしら?

第1特集 自信を持って決断したい そのリファクタリング、今やるか?見送るか? 適切なタイミングとビジネス面の価値

第1章:なぜリファクタリングは議論になるのか? 定義を再確認して考える……米久保 剛

  • 振る舞いと構造を分けて捉える…これ、難しいよなあって思います。リファクタリングで済むコードって稀じゃない…?
    • そもそもテストがないこともしばしば。
    • テストを書いてから始めようというわけですが……そのテストが書きにくいこと書きにくいこと…。
      • ああ、だからテストなかったんだ、という発見に…。
    • …こういうときは作り直しって言ってます><
  • …でも読み進めていくと…いっぺんにやり過ぎだったかもしれません。
    • 散らかったコードの一部を切り出してメソッド化、メソッド化した部分だけテストを追加すれば…もともとの部分に対して振る舞いが書かれていようといまいと、既存の動作について言及しないので、リファクタリングって言ってもいいかしら。
  • 割引料金の例、めっちゃいいですね…!ゾッとするほど現実っぽい><
  • 「建設的な議論をするために」…は人数が少ない故にできているかな…。
    • ビジネスサイドに協力的な姿勢は、基本的にやってます。同じ会社の業績のために、ですもんね。
    • なんかよくわかんないけど、対立構造を作ろうとする力がどこからか湧いてきて、やりにくくなるときがあるんですよね…。現職は人数が少ないのでないですけど。
  • ソフトウェアの 経年劣化 は…ピンとこないですねぇ…。ソフトウェア単体では変わらないですもん。ただ…ひとことで言えって言われて難しいのもまぁ…。
    • ビジネスモデル、設計と実装の乖離
      • 突貫工事による本質に合わない実装の積み重ね
      • ビジネスモデルが変わる
    • 実行環境の変化
      • ネットワークで繋がっている周りの環境が変わる
      • 載っているハードウェアやOSが変わる
    • 知識の散逸
      • 人の異動

第2章:リファクタリングの実施判断力を養う どんなコードに対し、いつ、どのように取り組むか……家永 英治

  • 自分はリファクタリングは「振る舞いを変えない」を強く意識してるんですが…そこの認識が結構個人差が多そうですね…。
  • ああ、なるほど…。 小さなステップの連続性 のために Tidy が提案されてたんですね。
    • 小さい ふるまいを変えない 改善をウチももうちょっとやってこう。
    • しかし、ネーミングがかわいくっていいですねw
  • 影響範囲…小さくしていても、他のひとも近い位置をいじっているときには声掛けがいりますね。
  • 空気を吸うように毎日行う … 明日からやるかあー。
    • プルリクエストにタグをつけて個数の数えてもいいかも。
  • 帽子を被り直す という表現、結構好きです。
    • オフィスで働いてるなら、実際にやってもいいかもw
  • AIアシスタントの話が…!
  • コードの音読 …!
  • む…たしかにコードの内部品質が悪くて、作るのが思った以上にかかるとか…ありますね💦
  • 知識があったとて、ドメイン知識がちゃんとないと、リファクタリングの知識だけでは逆リファクタリングになりかねないですね…。(1章より)
  • 通化してはいけないコードを共通化する……あんまりバグが頻発するんで、今度直そうとしてるところでした…。

第3章:アンチパターンから学ぶ適切なリファクタリング 破壊せよ!リファクタリングの地雷原……ミノ駆動

  • ミノ駆動さんの話、結構対立モノが多いんですよね…。これが現実なのかしら…。
    • 今のうちは少ないこともあって、そうじゃなかったし…前職もそうじゃなかったんですが…運がよかったのかも。
  • これまた幸いにも、逆リファクタリングをする人にはまだあったことがないです。
    • リファクタリングをしようという人が…そんなにいろいろ知らんなんてことが…あったら本当にしんどいですね…。
  • 値オブジェクトかあ。まだうまくRailsで使えてないんですよね…。
  • 1章と2章と結構被ってるかもしんないけど、大事なことは何度読んでもいいかも。

第4章:プロダクトマネージャー視点で考えるリファクタリング 「価値」から逆算する意思決定と覚悟……及川 卓也

  • プロダクトマネージャーって、コードに対する知識がいるのか…。
    • どの得意分野から来たとかはあるような気がしてますが…。
    • …よく考えたら、システムが中心のプロダクトなら、やっぱり必須ですね。
  • プロダクトの棚卸し…たしかにこれをやってくれると本当に助かります…!
  • プロダクトの管理の視点から見てくれるひとがいるとか、ホント良すぎる…。
    • 開発者もプロダクトマネージャーも、プロダクトが継続的に価値を届けるために働いてるんですもんね。
      • 継続的に がキモかも。

第2特集 OSの基本のキ 今さら聞けないファイルシステム&ストレージ 見落としがちなデータ管理のしくみを学び直そう

第1章:ファイルシステム入門 ファイル管理の考え方の基本を総ざらい……青田 直大

  • ファイルシステム……N88 BASIC、MS-DOSWindowsWindows2000〜XP、FreeBSDLinuxMacOSと渡り歩いてきたので…いろいろつまづきましたw
  • inode…これもつまづきました…。ディスクがいっぱいになるより先にinodeが足りなくなったことがあったような。
  • マウント…MS-DOS/Windowsから来たから、最初マウントってわかんなかったですね…。
    • フロッピーはA、B、ハードディスクはC〜、外付けフロッピーはF…。

第2章:ファイルシステムのしくみ FAT32ext4、OverlayFSの実装をひも解く……青田 直大

第3章:ストレージの基礎 ストレージの種類からKubernetesにおける利用まで……坂下 幸徳

  • 使ってないから、なんかフワッとしちゃっててピンと来ません…。
  • kubernetesを使うときに、もう一回読もう…。

特別企画 2038年問題を考える……上原 哲太郎、星名 藍乃介

  • 暗黙で32bit符号付き整数…。
  • 2038年…働いてそうですねぇ…。
  • まぁ、ウチはwebだし、ハードウェアとの連携もないので影響がなさそうです。
  • …と思ったら、MySQLのTIMESTAMP型だと?!
  • time_tをlongに代入…いやあ、やりますよね…。やったことがあるかもしんないw
    • ダウンキャストされるんで、厄介極まりませんね…。
  • MS開発者ドキュメントにダメな例……これはみんな見るし、厳しいです><
  • github.com
    • おお…ありがたや🙏
    • とりあえず、☆しました!

特別企画 ITエンジニアのためのメンタルヘルス相談室……長谷川(金) 千夏

  • www.kurusugawa.jp
    • AIの会社でしたよね…?
    • …と思ったら、会社で心理士面談の運用をしてて、そのお裾分けでしょうか…!ありがたや🙏
  • 心理的なことを訊くより、普段の生活の中の行動を訊くと答えてもらいやすい…。これは確かにそうですね。
    • 普段の1on1でも使える手段だって。たしかになぁ。
  • スモールステップで始めて、習慣化すると時間や頻度が増えやすい……これも確かに…。

特別企画 ITエンジニア必須の用語解説 200回記念 時代に取り残されないキャッチアップ術……杉山 貴章

  • 若い頃は…ここまで…できませんでした。
  • 今も変わらずで…。
  • 昔と違うのは、ここ数年Software Designを購読、全体をザッと読んで、そのとき思ったことをメモしておき、輪読会に参加。自分に興味がなかったことでも目に入るようになって、いい感じ…だと思っています。
  • 今の仕事をするのに、最先端の情報を集める必要はないので…幅広い情報を信頼度高く得るのには、雑誌が一番あってると思っています。
  • 世の中におもしろいもの多すぎません?

連載

ITエンジニア必須の最新用語解説 【200】Devin……杉山 貴章

  • Devinかあ。ちょっと気になっているんですよねぇ。
    • ラクだけど面倒なタスクをやってもらいたい…。
  • devin.ai

万能IT技術研究所 【39】「中原中也肖像」で機械学習顔分析や美顔処理——「在りし日」の詩人写真、バズり狙いで美化された説!?……平林 純

  • 美顔加工疑惑があったこと自体知らなかったです。よく知っていますねぇ…。
  • 最終的に印刷具合の違いっぽいとのことで、よかったです。
  • しかし…若いのになにげに洒落た格好をしてて…うらやましいですねw
    • 昔は今ほど写真が安くなかっただろうから、思いっきりおしゃれして撮ったんじゃないかしら。

FE/AP試験問題に挑戦 【10】プロジェクトマネジメント……石田 宏実

  • PMBOK懐かしい…。知識エリアとプロセス群の表がわかりやすいですね。
  • 問題
    • その1 … ア
    • その2 … イ
      • アルファベットが作業名なのでわかった感…。慌ててるとひっかかりそう💦

ドメイン解体新書 【19】ドメイン名の監視でサービスを守る……谷口 元紀

  • うち、監視できてないんですよね…。やらねば…。

ネコ、コード、ネコ 【2】セキュリティの話……植山 類

  • SourceForgeの「Download Now」広告…ありましたよね…。未だにそういう広告が野放しになってるし…。広告インフラ屋にはちゃんと審査をしていただきたい…。
  • スペクター👻

つまみぐい関数型プログラミング 【3】関数型プログラミングの便利な道具①:パターンマッチ……田尻 裕喜

  • デカルト、名言多いですね…。分割統治の他に「我思う、ゆえに我あり」も。
  • 副作用があるとせっかく分割した問題に影響…考えたことなかったけど、そりゃそうかあ。
  • 分割した問題を貼りり合わせる…?へええ…。
    • 言われてみれば、返り値が一種類の型になるし、貼り合わされたという解釈ができるのか…なるほど。
  • あ…型検査がガッチリすると、網羅性が検証できるようになって、パターンマッチでその他を入れなくてよくなったりする…?

プログラミング×AIの最前線 【5】サンフランシスコ〜シリコンバレー、AI企業訪問レポート……木下 雄一朗

  • オフィス訪問記…!
    • 思った以上におもしろい…!
  • Windsurfの買収の話は聞いた記憶があったけど…claudeが…みたいな話になってたのは知りませんでした。
  • 著者さんはcursor推し。
  • 最後につけてくれた街の様子は…なるほどそうなのか…という気持ちに…。

Ruby×静的型付け戦略 【4】プロジェクトへの型導入戦略……新谷 哲平、廣江 亮佑

  • タイミーのビジネスの話をサラッとでも知れてよかった…。
    • 雇用契約労務、税金、給与の一時立て替え…スキマバイトを実現するためにクッションを設けてるのがよくわかりました。
  • 型チェックでやらなくていいテストが出てくる…。
    • たしかにありえない入力は型チェックで検知できますね。これはいいかも。
  • 機械でチェックできるところを機械に任せるために使ってる…なるほどです。
  • 既存プロジェクトと新規プロジェクト、両方の例があるのは…さすが。参考になります。
  • gem_rbs_collectionへのコントリビュート…ありがたい🙏
  • 実プロジェクトでの例、参考になります!
  • とりあえず、うちにも型チェックの足がかりだけでも入れよう…だとダメかもしれん。
    • 目的の定義からやるかあ。

実践LLMアプリケーション開発 【23】Supervisorパターン/Swarmパターンで始めるマルチエージェント……西見 公宏

  • Supervisorパターン
    • それぞれに明確なタスクを与えて、間違いにくくしている…?
      • LLMも自己評価が甘くなりやすいから…か。
    • 分業されていることで、デバッグや改修がやりやすいみたい。
  • Swarmパターン
    • 柔軟な対応が求められるときにはよさそうです。
      • その反面、デバッグはやりづらそうですね…。
    • ここではハンドオフして切り替えてますけど…協調して並列に作業して、合議制で結果を求めるようにしたら…エヴァンゲリオンのマギシステムですよねw

AWS活用ジャーニー 【34】AWS CloudTrail Lake……杉金 晋

  • CloudTrailがAWSの操作ログで…それを操作できるようにしているのが〜 Lakeっぽいんですね。
  • ログを扱うAWSのサービス
    • CloudTrail … AWS APIの操作記録
    • CloudWatch Logs … アプリログ、システムログの記録・検索、ストリーミング対応

はじめてのオフェンシブセキュリティ 【2】ペネトレーションテストに入門してみよう!……皆川 諒、監修:株式会社エヌ・エフ・ラボラトリーズ

  • Purple Flairは監修された会社さんの製品です。
  • 実際にnmap使ったりするのは…結構いいですね。
  • あとで時間があったらやってみます。

乱数のひみつ 【6】認証付き暗号を支える乱数……荒木 誠

  • 今日はむずかしかったです…。
  • ChaCha20
    • 加算、ビット回転、XORでCPUフレンドリーな演算でできているから早いのか…。
  • Poly1305、誤りの検知をする、チェックサムよりずっと難しいw

インターネットの姿をとらえる 【12】インターネットの障害――世界中で発生している数々の障害事例をひも解く……土屋 太二

  • テキサスってそんなに寒いの…?
  • 海底ケーブル……錨をしまいわすれてひっかけるやつ……。
  • いろんなパターンを読めてよかった…!

魅惑の自作シェルの世界 【33】関数の実装(前半)……上田 隆一

  • 関数の定義…!これがないとカスタマイズは捗らないですよね…!
  • 関数定義がコマンド扱い…なるほど、そのほうが作りやすそうではあります…。
  • 関数定義は…リダイレクトまで含まれるって…なんとトリッキーな……。
  • …毎回だけど、知らないことだらけです。

あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~ 【163】シビックテックが挑む参議院選挙~偽情報対策の最前線~……陣内 一樹

  • 偽情報…世の中がツラくなってきましたね…。
  • 以前IPA NEWSに偽情報の分類が載ってました。
  • 偽情報は発信する側が有利すぎるんですよね…。
    • 指摘して直してくれても、その情報は目につきにくいし…。
  • 偽情報対策、技術的にどうにかできる日がきますように🙏

その他

SD BOOK REVIEW

SD Staff Room

  • 「文系エンジニア」はコンピュータサイエンスの基礎をどうやって学んでいるのか…。確かにどうしてるんでしょう?…というか、文系に限らず、コンピュータサイエンスを大学などでやってない方はどうやって習得してるんでしょう…。
    • 自分はコンピュータサイエンスをやった側ですが…それだけじゃ全く身につかず、情報処理技術者試験を受けたり、自分のPCで遊んだり、大学寮の連中とLANで結んで遊んだり…まぁとにかく遊んで実感したんだと、今になって思います…。