關于軟件設計,我們都錯了

jopen 10年前發布 | 6K 次閱讀 軟件設計

英文原文:We Are All Wrong About Software Design

  我們都錯了。當開始討論觀點時,這就是事情本身的樣子。每個人有他或她自己的信念,它由該領域的多年經驗、令人沮喪的代碼、書、成功等等形成。所有這些背景是如何歸結為一個統一理論的?它們只是還不可以。

  你一直被告訴在工作中找到正確的工具。但什么是正確的工具呢?你決定的,根據你的實踐知識。

  我愛 Ruby 因為我覺得它自然,但是其他開發者討厭這種語言。我喜歡干凈的代碼,其他人不關心。我贊成 RSpec 和 Capybara,其他人喜歡 Test::Unit。CoffeeScript 和 plain JavaScript, ERb 和 HAML,Postgres 和 MySQL. Vim 或 Emacs? Mac 或 Linux? TDD 或不用 TDD, 任何一個呢?

  有了這些分割,我們不能把人們從教條中解放出來,但僅僅產生了一個相反觀點的粉絲。

  相對論也可以被應用到軟件設計。我需要多少級的間接尋址才能完成一定的工作?好吧,看情況。它取決于各種不錯的理由,但是主要在于你的判斷。對你來說是優秀的,然而對于其他人卻是讓人失望的。

  我們可以討論折衷方案,但是請不要把你的成功產品當做你在代碼方面是正確的資格。

  我在 Litmus 工作,一家盈利豐厚的公司。如果我把下面的代碼放在一個模板里,你會因為我的員工就發現它是合理的嗎?

<%
  require 'mysql2'

client = Mysql2::Client.new ({ host: 'host', username: 'username', database: 'database'})

rows = client.query (%{SELECT * FROM previews ORDER BY created_at DESC LIMIT 5}) %> <ul> <% rows.each do |row| %> <li><%= row.fetch (:title) %></li> <% end %> </ul></pre>

  嗨,是的!誰需要那些像控制器和 ORM 的高級抽象,誰完全需要框架!那種結構是為太空架構師(architecture astronauts)準備的。離開我的草坪!看看我,我是個實用主義者。我通過破壞了我工作的億萬富翁的軟件證明了這一點。

  這不是一個論據,只是廢話。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!