狠狠撸

狠狠撸Share a Scribd company logo
別傻了
你就是不寫測試才會沒時間!
Kuma Syu -> 講者怕寂寞,歡迎發問或互動 XD
X
關於我
https://medium.com/kuma老師的軟體工程教室
2
-> 講者怕寂寞,歡迎發問或互動 XD
如果你有朋友在找工作的話…
We are Hiring!(全遠端)
3
無情工商
4
在開始之前
你今天有什麼想了解的問題?
寫下來
一張一題
用粗筆寫
2 mins
5
寫下來以後…
起立!
找一位「今天你還沒與他講到話的伙伴」
交換一下意見
5 mins
6
還沒有得到解答的…
7
RD 最困擾的事情?
沒時間
120%
8
為什麼沒時間?
9
為什麼沒時間
老闆亂接需求
客戶不懂程式
設計不好
修 bug 花太多時間
改東壞西
不敢改舊東西,只好複製貼上
10
什麼是好設計?
11
什麼是好設計?
高內聚、低耦合
12
什麼是好設計?
為了 A 而做的修改不會破壞服務 B 的元件
已經存在好好的東西不用一直改
細節有變時,使用者就算不知道,也不會壞
使用者只使用「量身打造」的介面
使用者專注在自身的抽象邏輯,不用太在意依賴的細節
13
什麼是好設計?
為了 A 而做的修改不會破壞服務 B 的元件
已經存在好好的東西不用一直改
細節有變時,使用者就算不知道,也不會壞
使用者只使用「量身打造」的介面
使用者專注在自身的抽象邏輯,不用太在意依賴的細節
SRP
OCP
LSP
ISP
DIP
14
原則有了,那實際應用呢?
15
以建築業為例…
16
這兩個設計哪個好?
沒有 Context 的 Solution,無法評論其優劣。
17
18
這個設計好不好?
什麼時候設計?
19
Ref: Winston Royce: Managing the development for large software systems
http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
20
所謂的「never succeed」:
21
Zoom In 一下:
22
所以說…
人對系統與領域的了解,會隨參與時間越久而越深入
在一開始時對系統做的設計,往往不合後來的使用
雖然一開始也要設計,但此後還是要經常改設計 (e.g., 重構)
設計總在重構時 => 天天重構,你敢嗎?
23
誰給你勇氣?
24
誰給你勇氣?
25
科學與數學
Q:軟體是科學還是數學?
26
Test First? Code First?
27
Test First
專注於行為,而非實作細節
士氣
斷絕後路
少打 Code
Code First
Test First
28
光 Test First 不夠
還是要力行「重構」
29
多久一次?我是指重構
越短越好。我是指週期。
30
所謂的「短」...
31
32
Flashback
沒時間
設計與 Context
時時重構才會快
測試給你勇氣
科學、TDD,與快速反饋
所謂的「快」…
33
但…我們專案有 spec 了,不就照刻就好嗎?
好問題!
34
朋友買了一件衣料...
「啊,好像棋盤似的。」
「我看倒有點像稿紙。」我說。
「真像一塊塊綠豆糕。」
35
那…叫 QA 測不行嗎?
好問題!
36
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
SRP
OCP
LSP
ISP
DIP
37
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
?
B
38
Delay
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
單元測試
B
支持重構
39
Delay
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
單元測試
B
分給 QA 的
功能測試數
B
40
Delay
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
單元測試
B
分給 QA 的
功能測試數
B
外界對 RD
速度的期待/幻想
41
Delay
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
單元測試
B
分給 QA 的
功能測試數
B
外界對 RD
速度的期待/幻想
超額工作
42
Delay
動態系統下的 RD 與單元測試
沒時間
系統簡潔度
單元測試
B
分給 QA 的
功能測試數
B
外界對 RD
速度的期待/幻想
超額工作 R
43
時程壓力
所謂的「軟體工程」…
Scrum 在哪裡?
CI/CD 在哪裡?
Spring Boot 在哪裡?
Kent Beck /
Ron Jeffries
44
Live Coding
45
Live Coding
單元測試 ABC
TDD 與重構
Legacy Code
重構與 Design Pattern
46
Return, status, verify
FizzBuzz
Greeting
Cache Decorator
一些遺珠…
Clean Architecture
User Story
Exception Handling
Multi-Threads
Anti-Patterns
… etc
47
Q&A
以上內容節錄自:
加入我們: 48

More Related Content

別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf