鮑勃大叔是一個從未交付過軟體的欺詐者? - Nico
這是Nicolas Carlo個人針對釋出“Clean程式碼”和“單一職責原則”的羅伯特·馬丁的權威質疑:
自從我得出羅伯特·馬丁(鮑勃大叔)對軟體開發生命週期一無所知的結論以來,已經有一段時間了。最近看了他的視訊,想真正瞭解鮑勃大叔,因為顯然我對他的批評過於嚴厲。
好的程式碼很重要?
與鮑勃大叔所寫的其他演講和書籍一樣,他的視訊的假設前提是:好的程式碼很重要。
從表面上看,我們都同意好的程式碼很重要。我相信你會點頭同意。好的程式碼很重要,你可以把它印在T恤上。但在你這樣做之前,幫我一個忙,向自己解釋這實際上意味著什麼。“好程式碼”的普遍科學定義是什麼?
這種提問方式不是我發明的。最近,來自 Molly Rocket 的 Casey Muratori 在他的一個名為“壞程式碼從何而來?”的視訊中提到了這一點。.
Bob 大叔認為:不僅好的程式碼很重要,乾淨clean程式碼也很重要。顯然,這種說法對任何人來說都不是什麼大驚喜。鮑勃叔叔用一個非常相似的書名寫了這本書。然而,問題仍然存在,“乾淨的程式碼”的定義也很模糊,因人而異。
Sword公司
鮑勃大叔在視訊中舉了一個Sword公司的例子,根據鮑勃大叔的說法,這家公司因為程式碼錯誤而宣佈破產。他用來支援他的觀點的例子是如此複雜和扭曲,以至於在邏輯上甚至沒有意義。
他聲稱 Sword Inc. 失敗了,因為他們無法讓 C 解析器適應足夠快的速度來解析 C++。這是錯誤程式碼的結果。換句話說,如果他們從一開始就編寫了乾淨的程式碼,就不會發生這種情況。
然後他繼續扮演一些在這家公司工作的老開發人員的角色。根據這位開發人員的說法,所有的錯都在於……猜猜是誰?這是正確的!營銷和管理。
軟體界有誰沒有聽過這些藉口?
現實情況
如果您深入挖掘,您會發現 Sword Inc. 的最大問題之一不是糟糕的程式碼,而是邊界範圍蔓延(banq注:有界上下文比干淨清潔程式碼更重要)。猜猜看,邊界範圍蠕變的最大支持者之一就是鮑勃叔叔本人。這是敏捷宣言的第二個原則:
歡迎不斷變化的需求,即使是在
開發後期。敏捷流程利用變化來
獲得客戶的競爭優勢。
鮑勃叔叔不僅是敏捷的最大支持者,他還是宣言的合著者!僅這一塊垃圾就導致了我們在整個行業中不得不處理的一些最糟糕的範圍蔓延。
回到Sword Inc. 的例子。Sword Inc. 當時顯然也在處理範圍蔓延。根據 Uncle Bob 扮演的開發者角色,他們不僅要快速交付產品,還要不斷新增新功能。這讓他們沒有時間做任何內部重構提升。(技術債務)
並不是經理們突然想出了他們想要的新功能。新功能是他們從客戶那裡收到的請求!
我從經驗中知道,一旦你接受了客戶不切實際的要求,你就應該繼續實現它們。無論您生成的程式碼質量如何,都會發生這種情況。即使您不使用軟體,也會發生這種情況。鮑勃叔叔做過真正的工作嗎?!
做出無法兌現的承諾對於任何企業來說都是最可怕的行為方式之一。這是破產的必經之路。即使您的程式碼庫非常乾淨,也會發生這種情況。
商業中最重要的短語之一,這適用於任何行業,是:
承諾不足和超額交付。
顯然,Sword Inc. 違反了上述規定。
最後,這更多是在軟體設計實踐的範圍內,鮑勃叔叔的開發人員角色說“我們就是不能讓我們的 C 解析器與 C++ 一起工作”。
歸根結底,Sword Inc. 似乎是開發人員與管理層之間以及管理層與客戶之間大規模溝通中斷的典型例子。正如我所說,無論他們的程式碼是否乾淨,無論這在實際中意味著什麼,他們都會面臨這些問題。
相關文章
- 鮑勃大叔認為軟體不同於數學,軟體是科學,科學與數學是有區別的
- 鮑勃大叔為敏捷正名敏捷
- 持續交付一——軟體交付的問題
- 拜託:不要像鮑勃大叔那樣重構
- 鮑勃大叔:程式設計正規化並不排斥!程式設計
- 鮑勃大叔:會計學是一門高度創造性學科,取決於系統思維
- SynchroTrap : 一個月內檢測 200 萬欺詐帳戶
- 鮑勃大叔:是否有些語言不需要設計模式?設計模式
- Bob大叔的忠告做一個專業軟體開發者必須精通的事項
- 金融欺詐資料分析
- 軟體的未來是無碼
- 專注於金融盜竊、欺詐,最大移動惡意軟體市場之一浮出水面
- 鮑勃大叔實錘:類與資料結構的比較!每個優秀的軟體設計師和架構師都需要牢記的問題資料結構架構
- 鮑勃大叔:SOLID原則適合函式程式設計嗎?Solid函式程式設計
- 趨勢科技員工將多達70000個客戶資料出售給欺詐者
- DAIC:針對BEC欺詐的開源利器AI
- 剖析谷歌打擊廣告欺詐的秘密戰爭谷歌
- 就業培訓中的欺詐和無良就業
- 信貸風控全流程-反欺詐
- 反欺詐(羊毛盾)API 實現使用者行為分析的思路分析API
- 我是一個壞軟體開發者
- 對鮑勃大叔《Clean Code》書籍各種不同意見的評論收集
- 微軟因涉嫌欺詐消費遭河南消費者再次起訴微軟
- 機器學習專案實戰----信用卡欺詐檢測(一)機器學習
- 反欺詐中所用到的機器學習模型有哪些?機器學習模型
- Hadoop應用的架構:欺詐檢測Hadoop架構
- 個體軟體過程
- 金融反欺詐-交易基礎介紹
- 軟體設計的切入點是什麼?如何從最初的需求提取出一個粗粒度的軟體結構?
- 機器學習領域:硬體的未來是軟體 - octoml機器學習TOML
- ICO調查:80%是欺詐專案,只有8%在交易所上市
- 一個使用者執行另外一個使用者的過程查詢的是哪個使用者下的物件物件
- 騰訊安全被Forrester評為亞太地區企業欺詐管理“領導者”REST
- 生命是個軟體,我是個啥?
- 軟體工程博士講師:軟體工程是一個學習過程,程式碼只是學習的副產品軟體工程
- 用深度學習進行欺詐檢測深度學習
- Stripe如何解決信用卡欺詐? - Patrick
- 日劇《黑鷺/詐欺獵人》故事簡介