はじめに
目次
第1特集
自信を持って決断したい
そのリファクタリング,今やるか?見送るか?
適切なタイミングとビジネス面の価値
第1章:なぜリファクタリングは議論になるのか?
定義を再確認して考える
…… 米久保 剛
P.18
ものさし「サイズ」の概念、名前の由来=マーチン・ファウラーの書籍 (P.21 表1)
振る舞いを保つ=TDDの「動作するコード」→「きれいなコード」に仕上げる
ケント・ベック「Tidy First」=リファクタリングを大きくて危険な行為と捉えられていることを危惧
意義=複雑さ+不確実さとの戦い、ビジネスサイドと開発サイドとの関係
P.22(typo: 技術敵負債→技術的負債)
2016年会合(Managing Technical Debt in Software Engineering)
メタファ(隠喩)を用いて必要性を説明
第2章:リファクタリングの実施判断力を養う
どんなコードに対し,いつ,どのように取り組むか
…… 家永 英治
P.26
ステートメントの小分けと移動、コメント追加
入れ子の条件式→ガード節へ変更
デッドコードの削除
いつやるか?→いろいろなタイミングがある(AIアシスタントによるガイドが新しい)
声に出してやる(面白い)
第3章:アンチパターンから学ぶ適切なリファクタリング
破壊せよ!リファクタリングの地雷原
…… ミノ駆動
P.37
アンチパターン=逆リファクタリング、ズレや対立
無意味にデザインパターンを適用する、知っているパターンだけにこだわる
共通化してはいけないコードの共通化(失敗談?!)
名前の改善(命名の難しさ)
リファクタリングが中途半端になる
振る舞いを変える(バグ修正、パフォーマンスチューニング)
生成AIにテストコードを実装させる
第4章:プロダクトマネージャー視点で考えるリファクタリング
「価値」から逆算する意思決定と覚悟
…… 及川 卓也
P.49
コードの前にプロダクトの棚卸し、価値のためにある
第2特集
OSの基本のキ
今さら聞けないファイルシステム&ストレージ
見落としがちなデータ管理のしくみを学び直そう
第1章:ファイルシステム入門
ファイル管理の考え方の基本を総ざらい
…… 青田 直大
P.56
すべてはファイル、inode、file descripter、ページキャッシュ、遅延アロケーション
USBメモリ→Windowsはドライブ、Unixはマウント
コンテナbindマウント、findでループ検知可能
第2章:ファイルシステムのしくみ
FAT32,ext4,OverlayFSの実装をひも解く
…… 青田 直大
P.66
FAT32:最小構成のファイルシステム
ext4:fsck、ジャーナリング
コンテナOverlayFS
第3章:ストレージの基礎
ストレージの種類からKubernetesにおける利用まで
…… 坂下 幸徳
P.77
ファイルストレージ、ブロックストレージ、オブジェクトストレージ、VM(Hypervisor)仮想ストレージ、コンテナPV(PersistentVolume)
flush(sync)の実行
特別企画
2038年問題を考える
……上原 哲太郎,星名 藍乃介
P.86
2000年問題:1980年代
2038年:残り13年(OSの64bit化で回避できない問題、32bitのUnix timeを用いているシステムの多さ)
前倒し(2004年1月10日)に発生した2038年問題:通信事業者は0.5秒単位に課金するシステム→内部的にUnix timeを2倍して計算していた、銀行ATMは現在時刻と将来時刻を足して2で割って中間時刻を計算していた
ext2/ext3ファイルシステム、MySQL TIMESTAMP型レコード、DNSSEC RRSIGレコード
オーバーフローを予見したプログラミングの難しさ
epochを1970年から1998年へズラして回避する論文→修正量が多い
Unix timeの64bit化でも残る問題=プログラムの中で32bitへのダウンキャスト
y2k38-checker(OSS)ツール
ITエンジニアのためのメンタルヘルス相談室
……長谷川(金) 千夏
P.96
(労働安全衛生)
ITエンジニア必須の用語解説 200回記念
時代に取り残されないキャッチアップ術
……杉山 貴章
P.102
ITエンジニア必須の最新用語解説の筆者へインタビュー
FinOps(クラウド利用コストを最適化)
情報を集める(インプット)→フィルタリング→アウトプット
連載
ITエンジニア必須の最新用語解説
【200】Devin……杉山 貴章
ED.1
万能IT技術研究所
【39】「中原中也肖像」で機械学習顔分析や美顔処理——「在りし日」の詩人写真,バズり狙いで美化された説!? ……平林 純
P.1
MediaPipeでランドマーク抽出, OpenCVで画像加工
FE/AP試験問題に挑戦
【10】プロジェクトマネジメント……石田 宏実
P.6
PMBOK
ドメイン解体新書
【19】ドメイン名の監視でサービスを守る……谷口 元紀
P.10
SSL証明書→CAAレコード
ネコ,コード,ネコ
【2】セキュリティの話……植山 類
P.14
マルウェアに感染(気をつけるは意味がない), Spectre/Meltdown, コンテナでビルド→同じバイナリを作成
つまみぐい関数型プログラミング
【3】関数型プログラミングの便利な道具①:パターンマッチ……田尻 裕喜
P.108
困難は分解せよ(デカルト)→問題を再度合成するために必要なパターンマッチと高階関数(→次回紹介)
switch, match, case
プログラミング×AIの最前線
【5】サンフランシスコ〜シリコンバレー,AI企業訪問レポート……木下 雄一朗
P.114
CodeRabbit→訪問不可、Windsurf→WWDCのタイミングと合わせて(場所は非公開、サンフランシスコの一角)、Devin(場所は極秘中の極秘)
Cursor Meetup Tokyo(6,000人以上の登録、connpassがダウン)
顧客数:Devin(日本2位)、Cursor(日本3位)
Ruby×静的型付け戦略
【4】プロジェクトへの型導入戦略……新谷 哲平,廣江 亮佑
P.120
(JANOG56(@松江)でまつもとゆきひろ氏に会った)
筆者:タイミーの開発チーム
メドピア社の記事「Railsプロジェクトへの頑張らない型導入のすすめ」を参考にした
YARD(Rails/Rubyドキュメントをキレイに生成するツール)からrbs-inlineへの移行
新規プロジェクトから型導入
実践LLMアプリケーション開発
【23】Supervisorパターン/Swarmパターンで始めるマルチエージェント……西見 公宏
P.129
ワークフローからマルチエージェントへの移行(複雑化→柔軟かつ拡張性が高い)
Supervisorパターン(司令塔型)、Swarmパターン(バトンタッチ型)
AWS活用ジャーニー
【34】AWS CloudTrail Lake……杉金 晋
P.140
イベントアクティビティを収集してSQLクエリで分析
はじめてのオフェンシブセキュリティ
【2】ペネトレーションテストに入門してみよう!……皆川 諒,監修:株式会社エヌ・エフ・ラボラトリーズ
P.146
「Purple Flair」(Discord→PFログイン画面→新規登録)の学習サービスを提供
脆弱性診断:リスクベースアプローチ
ペンテスト:脅威ベースアプローチ
書籍ではPort:21, 22, 80が開いていたが、実際は22しか開いていなかった→ログイン画面のチュートリアルに沿って学習していく、環境構築に少し時間が掛かる
コース一覧にSoftwareDesign連載中のチュートリアルが存在した
乱数のひみつ
【6】認証付き暗号を支える乱数……荒木 誠
P.156
ChaCha20-Poly1305(ストリーム暗号+メッセージ認証コード(MAC:改ざんされていないことの保証))
MACを生成する時に乱数の一部が鍵に使用される
インターネットの姿をとらえる
【12】インターネットの障害――世界中で発生している数々の障害事例をひも解く……土屋 太二
P.160
総務省への重大事故報告
データセンターに起因する障害(テキサス州大寒波による電力危機)、ネットワーク回線に起因する障害(東日本大震災、ロシアによるウクライナ侵攻、人為的ミスによる障害(Cloudflare)
魅惑の自作シェルの世界
【33】関数の実装(前半)……上田 隆一
P.166
あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~
【163】シビックテックが挑む参議院選挙~偽情報対策の最前線~……陣内 一樹
P.174
Code for 選挙、投票所マップ、投票ナビ、政策比較、投票ポスター、デジタル民主主義2030(安野貴博)
Xのコミュニティノート(BirdXplorer)
Hack the Disinfo 2024(偽情報対策ハッカソン)
SD NEWS & PRODUCTS
P.178
Reader's Link
P.182
ふくよりさん、ken1flanさん、掲載おめでとうございます!
SD Staff room
P.184