軟體開發態度
2004 年 3 月 8 日
軟體開發中的許多辯論都以講者是否具有 指導態度 或 促進態度 為基礎。這些不同的態度會影響對語言、設計、工具、流程等等的選擇。
以下是這種二分法的幾個例子
- 一場由喬爾·斯波爾斯基在 例外 上發表的文章引發的辯論。他不喜歡例外,因為它們可能會被嚴重濫用,導致程式碼混淆(指導)。比爾·卡普托 指出,當例外使用得當時,會讓生活變得更容易(促進)。
- 靜態/動態類型辯論中提出了一些觀點。一些支持靜態類型的論點談到它們如何防止人們犯下某些類型的錯誤(指導),而動態類型則指出靜態類型如何限制一些有用的慣用語(促進)。
- 敏捷流程是 以人為導向(促進),而計畫驅動的方法則旨在確保即使是表現不佳的團隊也能完成可接受的工作(指導)。
這些不是硬性態度。人們在某些情況下往往是指導性的,而在其他情況下則是促進性的。但我認為這裡存在一種根深蒂固的傾向,通常是人格問題,它潛藏在我們如何製作軟體的許多討論之下。(我非常屬於促進類別,如果你看不出來的話。)
你可能會認為對開發人員所做的事情的所有限制都意味著指導態度,但事情沒那麼簡單。舉例來說,考慮記憶體管理。你可以將其視為一項指導功能:無法信任程式設計人員正確管理記憶體,因此取消他們分配記憶體的能力。但我將記憶體管理視為一項促進技術——它消除了我不想擔心的問題,因此我可以更好地專注於我在乎的事情。史蒂夫 很好地將這個想法與問題和困難之間的差異聯繫起來。
於 2014 年 3 月 11 日重新發布