Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Code Complete 第2版 第1部 第3章 / Code Complete Secon...
Search
taroosg
October 24, 2018
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Code Complete 第2版 第1部 第3章 / Code Complete Second Edition Part 1 Chapter 3
taroosg
October 24, 2018
More Decks by taroosg
See All by taroosg
自走のためのメンタル / mental-for-self-running
taroosg
0
46
Code Complete 第2版 第2部 第5章 / Code Complete Second Edition Part 02 Chapter 05
taroosg
0
83
let's-deploy
taroosg
0
53
PCに関するジェネレーションギャップの話 / Generation Gap on PC
taroosg
0
49
Code Complete 第2版 第1部 第4章 / Code Complete Second Edition Part 1 Chapter 4
taroosg
0
69
ブラウザゲームをハッキング / Hacking browser games
taroosg
0
730
Code Complete 第2版 第1部 第1章&第2章 / Code Complete Second Edition Part 1 Chapter 1 and Chapter 2
taroosg
1
45
はじめてのプログラミング教育 / First programming education
taroosg
0
58
Other Decks in Programming
See All in Programming
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
340
VibeCodingからAgenticWorkflowへ
starfish719
0
690
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
710
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
200
Go 1.27 における memory allocation の高速化
andpad
0
270
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
Google Apps Script で Ruby を動かす
kawahara
0
280
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
230
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
Android CLI
fornewid
0
230
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
350
Designing for Performance
lara
611
70k
Evolving SEO for Evolving Search Engines
ryanjones
0
260
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
A Modern Web Designer's Workflow
chriscoyier
698
190k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
620
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Transcript
code complete 第2版 20181024読んだ内容まとめてLT会#demo2
この発表には発表者個人の経験・見解が多分に含まれています. 用量・用法を守って正しくお使いください.
誰お前? 名前 大杉 太郎 (おおすぎ たろう) 仕事 G's ACADEMY FUKUOKA
講師 年齢 30 (既婚) 出身 茨城県 好きなお酒 Ardbeg 好きなこと 外でコード書くこと
曖昧なことを明文化すると幸せになれる code complete 第2版 20181024読んだ内容まとめてLT会#demo2
code complete第2版 ・読み始めたきっかけ:コードを書くときの考え方を研究したかった. ・上下巻で計1173ページ. →上巻628ページ,下巻545ページ.進まないorz ・上巻だけで4部19章から成る. ・今回は1部の3章 を紹介 ・漸く第1部終わると思ったら終わらなかったよ...(´・ω・`)
第3章:2回測って1度で切る 上流工程の必要性 第4章:コンストラクションの重要な決断(次回)
第3章:2回測って1度で切る 上流工程の必要性 第4章:コンストラクションの重要な決断(次回)
第3章 ・1章は設計前の準備の重要性についてを解説. ・ソフトウェアの実現には多くの要素がある.
前回の第2章は...
キーワードは... メタファ = 比喩,たとえ
ソフトウェア設計のメタファ
規模が大きいほど取り返しがつかない
大工氏の言い分
2回測って1度で切る!! ・設計が全体の67%を占める..! ・複数回の繰り返しは良くない! →1回で済ませられたら良くね??
準備が最も大切 ・高品質な計画,要求,設計 ・高床式倉庫の設計で始めた建物は原発にならない ・最大の目標はリスクの低減
各段階のリスク(建物の場合) ・計画段階で失敗の予感 →計画の練り直し ・設計段階で失敗の予感 →図面の書き直し ・実装段階で(ry →/(^o^)\
準備不足の原因 ①スキル不足の開発者 →大抵は計画,要求開発などの訓練を受けていない. ②コーディングが我慢できない開発者 →計画ができてもコーディングを重視しがち. ③準備を快く思わない上司 →まだコード書いてないの??
上司に準備の重要性をわからせる ①論理的に述べる →ユーザーが求めているものは? コストや時間は? ②メタファを用いる →設計図を明確にしてから基礎工事を実施する. ③データで訴える →過去のデータで最初が肝心であることが示されている!
None
どれがいいか上司へ訊いてみよう! ①デバッグが多くなりそうだからすぐ始める ②欠陥は少なそうなのでテストの時間は少なくて良さそう ③要求と設計を入念に実施したので問題は少なそう
準備って何するの??
準備①課題定義 システムが解決する課題を明記すること!
準備①課題定義 システムが解決する課題を明記すること
準備②要求 要求は絶対に明文化すること!! ・開発者とユーザーで共有し,議論を減らす. ・機能の実装で意見が食い違った場合に要求仕様書を見る. ・要求が明確でないと全部やり直しも...
要求は水のようなものだ (えらい人) とは言っても...
とは言っても... 初期段階で要求を明確に説明できる顧客は存在しない.. ・要求の約25%が変更される. (Boehm 1981; Jones 2000) →要求の変更による影響を最小限に抑える手段が必要
準備③要求変更への対処 ・新しい機能を思いついて興奮する顧客 |*・ω・)ノ シュッ≡≡≡≡≡[コスト][スケジュール] ・変更管理手順を策定する. ・変更に対応しやすい開発手法を用いる.
準備③要求変更への対処 「機能」≠「ビジネス上の価値」
要求がいい感じになったら... ・ソフトウェアアーキテクチャ(解決手段の設計) ・アーキテクチャのエラー ≒ 要求のエラー →表面上わかりにくいが影響が大きい.
要求がいい感じになったら... ・ソフトウェアアーキテクチャ(解決手段の設計) ・アーキテクチャのエラー ≒ 要求のエラー →表面上わかりにくいが影響が大きい.
アーキテクチャ設計 ・クラスの設計,データ設計,UIの設計,リソース管理 ・セキュリティ,パフォーマンス,スケーラビリティ ・国際化&地域化,エラー処理,フォールトトレランス ・実現可能性,オーバーエンジニアリング
優れたアーキテクチャ設計 ・上記の条項が考慮されていること. ・採用不採用の理由が明記されていること. ・必要のない機能が含まれていないこと.
今日のまとめ&私見
設計の準備は... ・要求を明文化すると無駄な議論をなくせる ・機能 ≠ 価値 ・アーキテクチャも明文化すべし
ご静聴ありがとうございました!