自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于軟件設(shè)計,我們都錯了

開發(fā) 架構(gòu) 后端
我們都錯了。當(dāng)開始討論觀點(diǎn)時,這就是事情本身的樣子。每個人有他或她自己的信念,它由該領(lǐng)域的多年經(jīng)驗(yàn)、令人沮喪的代碼、書、成功等等形成。所有這些背景是如何歸結(jié)為一個統(tǒng)一理論的?它們只是還不可以。

 

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

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

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

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

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

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

我在Litmus工作,一家盈利豐厚的公司。如果我把下面的代碼放在一個模板里,你會因?yàn)槲业膯T工就發(fā)現(xiàn)它是合理的嗎?

  1. <%  
  2.   require 'mysql2'  
  3.    
  4.   client = Mysql2::Client.new({  
  5.     host: 'host',  
  6.     username: 'username',  
  7.     database: 'database'})  
  8.    
  9.   rows = client.query(%{SELECT * FROM previews  
  10.     ORDER BY created_at DESC  
  11.     LIMIT 5})  
  12. %> 
  13.    
  14. <ul> 
  15. <% rows.each do |row| %> 
  16.   <li><%= row.fetch(:title) %></li> 
  17. <% end %> 
  18. </ul> 

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

這不是一個論據(jù),只是廢話。

原文地址:http://lucaguidi.com/2014/04/28/we-are-all-wrong-about-software-design.html

譯文鏈接:http://www.labazhou.net/2014/04/we-are-all-wrong-about-software-design/

責(zé)任編輯:林師授 來源: labazhou.net
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號