Programming Beyond Practices
生活是個謎,就像一個巨大的“what if”,但生活的樂趣在于我們?yōu)樽约涸O(shè)定要選擇的方向。我們有得有失,但隨著時間一天天流逝,我們會一點點成長
【新手】
- 故事1:新品開發(fā)
- 「線框圖」,快速討論需求;
- 搭建可用的「測試系統(tǒng)」;
- 故事2:產(chǎn)品迭代(☆☆☆☆)
- 耦合無處不在;即使代碼獨立,數(shù)據(jù)庫依舊可能耦合;
- 隱性依賴:存儲機制,處理能力,數(shù)據(jù)庫,外部服務(wù),依賴庫(dll/jar/pip/gem),用戶界面
- 故事3:整合外部服務(wù)(☆☆☆☆)
- 外部服務(wù)不可靠:過期的lib可以用,過期的web服務(wù)會宕機;
- 不存在純粹的內(nèi)部問題
- 系統(tǒng)風(fēng)險:異常報告系統(tǒng)和客戶通知系統(tǒng)共用一套郵件投遞機制,是有風(fēng)險的;
【高手】
- 故事4:解決復(fù)雜問題的過程
- 每個問題背后都有一堆簡單的子問題,不斷拆解
- 故事5:自下而上
- 從MVP開始,不斷優(yōu)化、重構(gòu)代碼
- 優(yōu)點:保持代碼的簡潔
- 局限:盲人摸象,缺少整體性
- 故事6:系統(tǒng)升級
- 康威定律:組織在設(shè)計系統(tǒng)時會被其自身的溝通結(jié)構(gòu)所限制,設(shè)計出的系統(tǒng)具有相同的結(jié)構(gòu)
- 「引申」:系統(tǒng)與管理方式要匹配
【專家】
- 故事7:軟件項目管理(☆☆☆☆☆)
- 約束理論:突破工作過程中的一個瓶頸,很自然地會讓人看到另一瓶頸
- 未上線的代碼不是資產(chǎn),而是存貨,而且會腐壞,具有持有成本(不斷貶值)
- 過載:流入量大于流出量;新特性速度 > 發(fā)布速度;
- 開發(fā)計劃 與 發(fā)布日程同步
- 「玫瑰、花蕾和荊棘」:跨部門總結(jié)
- 海盜指標(biāo):AARRR, Acquisition, Activation, Retention, Revenue, Referral
- 故事8:行業(yè)未來展望
- 理想:程序員是用技術(shù)解決人類社會常見問題的人
- 現(xiàn)實:大部分時間用來查找缺失的分號,閱讀沒有注釋的代碼等等;