- 論壇徽章:
- 0
|
本帖最后由 duanjigang 于 2011-01-25 09:39 編輯
作為一篇參考文章,提醒我們?cè)诩軜?gòu)設(shè)計(jì)或者選擇時(shí)應(yīng)該注意哪些問(wèn)題,或者是哪些事情是重要的。
原文:http://friendlydingo.com/blog/20 ... cks-and-i-dont-care
By Ryan, January 3, 2011
Oh, your app’s architecture is perfect? Well, that’s why you haven’t launched your app and you stay awake at night worrying about separation of responsibilities(instead of worrying about traffic and conversion rates).
Besides, who am I to say your architecture sucks? And why don’t I care? Because I am your users, and I don’t care what your codebase looks like, I don’t care what it’s called, and I don’t care what language it’s written in. I care that it solves my problem in the simplest and fastest way possible.
Your users don’t care about architecture, they only care if your app works.
I’ve fallen prey to this before. In my startup before I began Friendly Dingo, I was obsessed with architecture. I wanted my code to be the cleanest code anyone had ever seen, and I wanted every file, dll, and class to be follow every coding standard you’ve ever heard of. And it was, it was great. But my products came out slow, and I spent more time tweaking my code structure(that nobody else ever saw, btw) then I did responding to customer requests for features. The end result was mediocre product reviews and slow sales. But man, was my code beautiful.
This time around, I picked an architecture in the first week of development and I’ve stuck with it since then. As Friendly Dingo’s first product nears an initial release date, I feel confident that even though there are some things I don’t like about my code structure, I know that the features I’ve built are things that my USERS will actually want and care about. The architecture is sufficient for what it needs to do, and nothing more.
So next time you find yourself refactoring code, stop and ask yourself if it’s something your users will benefit from. Because in the end, that’s all that really matters.
oschina提供的中文翻譯
你的架構(gòu)很爛,但我并不在意
嗨,你的應(yīng)用的架構(gòu)很完美嗎?對(duì)呀,這就是為什么你還沒(méi)有發(fā)布你的應(yīng)用的原因,你仍然在徹夜不眠的擔(dān)憂著各個(gè)功能模塊之間的責(zé)任分離(你沒(méi)時(shí)間去關(guān)心應(yīng)用的流量和訪問(wèn)率)。
可是,除了我之外,誰(shuí)還會(huì)對(duì)你說(shuō)你的架構(gòu)很爛?為什么我要關(guān)心你的架構(gòu)?因?yàn)槲抑皇悄愕挠脩簦也魂P(guān)心你的程序長(zhǎng)的什么樣、如何被調(diào)用的、用什么語(yǔ)言寫成的。我關(guān)心的是它能用最簡(jiǎn)單的、最迅速的方式解決我的問(wèn)題。
你的用戶并不關(guān)心架構(gòu)的問(wèn)題,他們只關(guān)心你的應(yīng)用是否好用。
我以前就是一個(gè)不理解這個(gè)道理的受害者。在 Friendly Dingo 之前的一個(gè)公司時(shí),我癡迷于架構(gòu)。我希望我的代碼對(duì)于任何人來(lái)看都是最簡(jiǎn)潔的,我希望每個(gè)文件、dll、類都滿足你們?cè)?jīng)聽(tīng)說(shuō)過(guò)的任何編碼標(biāo)準(zhǔn)。而且我做 到了,很完美。但是我的產(chǎn)品卻延后了發(fā)布,因?yàn)槲乙ǜ嗟臅r(shí)間整理程序架構(gòu)(順便提一下,沒(méi)有人知道我在做這個(gè)事情),然后我才處理客戶的增加功能的請(qǐng) 求。這最終的結(jié)果是一個(gè)中等產(chǎn)品評(píng)價(jià)和不好的銷售情況。但是朋友們,我的程序是完美的。
到如今,在開(kāi)發(fā)的第一周,我先架構(gòu)選型,然后就搭建這個(gè)架構(gòu)。當(dāng)產(chǎn)品的首次發(fā)布日期快要到時(shí),我已經(jīng)很有信心,不再關(guān)心架構(gòu),盡管在某些方面還不盡如人意,因?yàn)槲抑溃撼绦虻墓δ懿攀俏易龅乃泄ぷ髦杏脩粽嬲胍完P(guān)心的。架構(gòu)能夠滿足應(yīng)用的需要即可。
所以,下次當(dāng)你發(fā)現(xiàn)自己在重構(gòu)代碼時(shí),請(qǐng)停一停,問(wèn)問(wèn)自己你的用戶是否會(huì)因此受益?因?yàn)樽罱K,這才是最重要的。 |
|