Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Code Complete 第2版 第1部 第3章 / Code Complete Secon...
Search
taroosg
October 24, 2018
Programming
120
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
47
Code Complete 第2版 第2部 第5章 / Code Complete Second Edition Part 02 Chapter 05
taroosg
0
87
let's-deploy
taroosg
0
54
PCに関するジェネレーションギャップの話 / Generation Gap on PC
taroosg
0
50
Code Complete 第2版 第1部 第4章 / Code Complete Second Edition Part 1 Chapter 4
taroosg
0
69
ブラウザゲームをハッキング / Hacking browser games
taroosg
0
740
Code Complete 第2版 第1部 第1章&第2章 / Code Complete Second Edition Part 1 Chapter 1 and Chapter 2
taroosg
1
46
はじめてのプログラミング教育 / First programming education
taroosg
0
59
Other Decks in Programming
See All in Programming
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
480
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
220
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Ethics towards AI in product and experience design
skipperchong
2
430
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
sira's awesome portfolio website redesign presentation
elsirapls
0
460
30 Presentation Tips
portentint
PRO
1
430
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Bash Introduction
62gerente
615
220k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
Claude Code のすすめ
schroneko
67
230k
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の設計,リソース管理 ・セキュリティ,パフォーマンス,スケーラビリティ ・国際化&地域化,エラー処理,フォールトトレランス ・実現可能性,オーバーエンジニアリング
優れたアーキテクチャ設計 ・上記の条項が考慮されていること. ・採用不採用の理由が明記されていること. ・必要のない機能が含まれていないこと.
今日のまとめ&私見
設計の準備は... ・要求を明文化すると無駄な議論をなくせる ・機能 ≠ 価値 ・アーキテクチャも明文化すべし
ご静聴ありがとうございました!