• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            為什么開(kāi)發(fā)者總是選昏招 (轉(zhuǎn))

              當(dāng)前,軟件開(kāi)發(fā)者在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí)總是面臨很多選擇。我們時(shí)常被過(guò)多的選擇轟炸并習(xí)慣于應(yīng)付像NoSQL、云、REST、Map-Reduce等流行詞。然而,負(fù)責(zé)設(shè)計(jì)系統(tǒng)的開(kāi)發(fā)者很容易被誘導(dǎo)而采用沒(méi)有明顯優(yōu)點(diǎn)的新技術(shù),反而忽視了那些看起來(lái)不夠現(xiàn)代和時(shí)髦的簡(jiǎn)單方案。看來(lái)KISS原則(Keep it simple,stupid!)雖然常被提起,但在支持企業(yè)級(jí)方案時(shí)卻往往被忽略。這是為什么呢?

              原因可能有很多,下面我總結(jié)了幾條,我想能覆蓋大部分情況。作為職業(yè)開(kāi)發(fā)者,我強(qiáng)烈認(rèn)為,我們有責(zé)任為雇主提供最好的、長(zhǎng)期的解決方案,當(dāng)我們的個(gè)人喜好與此目標(biāo)沖突時(shí),我們應(yīng)該控制自己。軟件開(kāi)發(fā)仍舊不同于醫(yī)藥或工程領(lǐng)域,但我想我們確實(shí)需要學(xué)習(xí)這些領(lǐng)域中的工作所帶有的專(zhuān)業(yè)精神、責(zé)任和義務(wù)。


              原因1-厭倦重復(fù)

              開(kāi)發(fā)者經(jīng)常重復(fù)的解決同類(lèi)問(wèn)題。不是所有人都能一直從事新工作,就算有機(jī)會(huì),也很可能還是老環(huán)境下的;類(lèi)似的問(wèn)題常常已經(jīng)被全球的軟件開(kāi)發(fā)者解決過(guò)成千上萬(wàn)次了。

              即使之前我們能熟練的解決某一問(wèn)題,我們還是想嘗試新的事物,這并不奇怪。我們是天生的難題解決者,而且有時(shí)僅僅是想嘗試下新的難題。我確信很多有幾年經(jīng)驗(yàn)的人都看到過(guò)這樣的現(xiàn)象,采用不同技術(shù)的新實(shí)現(xiàn)將原功能系統(tǒng)替換掉,而此舉除了滿(mǎn)足新開(kāi)發(fā)者的個(gè)人喜好之外實(shí)際上沒(méi)有什么明確的原因。

              我們應(yīng)該如何處理呢?我們?cè)撊绾慰刂谱约簩?duì)新事物的渴求?比起嘗試最新的NoSQL平臺(tái)來(lái),關(guān)系數(shù)據(jù)庫(kù)真讓人煩躁。誰(shuí)在意是不是我們未能有效利用它呢?哦,我想我們還是有幾項(xiàng)可選的。比如,采取主動(dòng),找到可能受益于新技術(shù)的平臺(tái)構(gòu)建方式。為什么不利用業(yè)余時(shí)間做一些試驗(yàn)性項(xiàng)目來(lái)滿(mǎn)足自己對(duì)新技術(shù)的渴望呢?畢竟我們的工作是交付高質(zhì)量軟件,而非取悅自我。

              這里要說(shuō)明一下,我并不是要?jiǎng)褡枞魏稳耸褂眯录夹g(shù),只是建議一定要了解技術(shù)的優(yōu)點(diǎn),并確認(rèn)這是否是你的最佳選擇;如果說(shuō)離了這個(gè)新技術(shù)干不成事,那就盡情去用吧!


              原因2-簡(jiǎn)歷加料

              這可能是使開(kāi)發(fā)者選昏招的最悲哀的原因,主要會(huì)影響決策過(guò)程不良的團(tuán)隊(duì)。這個(gè)原因也是很常見(jiàn)的。

              目前,軟件開(kāi)發(fā)中的合同和職位經(jīng)常變動(dòng)——開(kāi)發(fā)者一兩年跳個(gè)槽很正常。忌諱跳槽的時(shí)代早就過(guò)去了。正因如此,開(kāi)發(fā)者通過(guò)不斷的跳槽向上爬。對(duì)平均水平或者不夠熟練的開(kāi)發(fā)者而言,通過(guò)跳槽獲得提升比在一家公司等晉升要容易的多。

              因此,開(kāi)發(fā)者希望采用新技術(shù)并獲得一些經(jīng)驗(yàn),以此為自己的簡(jiǎn)歷增加閃光點(diǎn)。至于新技術(shù)對(duì)平臺(tái)到底有多大用處,重要性倒在其次。通常,真正用到多少并不重要——找新工作的時(shí)候沒(méi)有人能假裝他們沒(méi)有夸大自己的技能。所以,平臺(tái)在從小變大的過(guò)程中,往往因?yàn)楦鞣N原因而死掉,比如使用了未經(jīng)測(cè)試的技術(shù),或者使用了內(nèi)部人士都沒(méi)有真正理解的技術(shù)。隨著開(kāi)發(fā)人員跳到更有前景的地方,公司剩下的就只有因使用了太多技術(shù)而無(wú)人維護(hù)的系統(tǒng)了。

              我想大多數(shù)開(kāi)發(fā)者不會(huì)這么做。當(dāng)面對(duì)要做出錯(cuò)誤選擇的開(kāi)發(fā)者時(shí),有反對(duì)意見(jiàn)的人要努力阻止他們。


              原因3-同伴壓力

              同伴壓力可能是最難抵制的原因了。我們都愿意相信,我們是獨(dú)立的、可以做出明智的決策的個(gè)體,但我們都是人,即使最敏感的人也是社會(huì)性的動(dòng)物,也想有一個(gè)開(kāi)心融洽的團(tuán)體。

              當(dāng)面對(duì)新的或者時(shí)髦的技術(shù)時(shí),很多人都有點(diǎn)害怕去抵制實(shí)現(xiàn)那些看起來(lái)并未必多好的想法。我們要盡量壓制這種感覺(jué)。如果在你所處的環(huán)境中,討論和爭(zhēng)論是重要的(就像人們所期待的那樣),你要隨意的說(shuō)出你的擔(dān)憂(yōu),即使你不完全熟悉最新的和最好的技術(shù)。別忘了雖然軟件技術(shù)變化不定但基本原理幾乎保持不變。要是有些東西看起來(lái)不合理,那就說(shuō)出來(lái)。即使你是初級(jí)開(kāi)發(fā)者,也應(yīng)該自由的加入你的看法——有經(jīng)驗(yàn)不代表就正確。此外,在決策過(guò)程中你也可以獲得一些洞察力。


              原因4-缺乏理解

              技術(shù)選擇可能是在開(kāi)發(fā)者不了解平臺(tái)如何工作,甚至他們都不想去了解的情況下做出的。

              比如,你因?yàn)闆](méi)有高性能關(guān)系數(shù)據(jù)庫(kù)經(jīng)驗(yàn),而又擔(dān)心實(shí)現(xiàn)的東西不具有可伸縮性,所以?xún)A向于選擇NoSQL路線(xiàn)。雖然往往這種擔(dān)心是沒(méi)有任何理由的。如果你錯(cuò)誤的使用了工具,當(dāng)然它就起不到好的作用。不要在缺乏理解或認(rèn)識(shí)的情況下就輕率的采取行動(dòng)。如果事實(shí)上采用關(guān)系數(shù)據(jù)庫(kù)的方案可以很好的實(shí)現(xiàn)系統(tǒng),并且你的平臺(tái)已經(jīng)在使用這種方案,那么僅僅因?yàn)槟銓?duì)當(dāng)前方案不熟悉而引入新的依賴(lài)是愚蠢的。

              為了避免這樣的問(wèn)題,你需要多加閱讀和學(xué)習(xí)!如果你在做技術(shù)選擇,請(qǐng)檢查你的假設(shè)是否成立。就討論中的工具與有經(jīng)驗(yàn)的開(kāi)發(fā)者溝通,并詳細(xì)咨詢(xún)工具的優(yōu)缺點(diǎn)。學(xué)習(xí)可用工具的更多信息并不是浪費(fèi),你的行動(dòng)很有可能在未來(lái)得到益處。


              原因#5-誤解或者解決不存在的問(wèn)題

              這點(diǎn)與前一點(diǎn)有些聯(lián)系,但這個(gè)問(wèn)題非常重要,值得單獨(dú)討論。

              當(dāng)開(kāi)發(fā)者定位新技術(shù)時(shí),通常都會(huì)因?yàn)樵摷夹g(shù)可以做X和Y,還能對(duì)抗Z而選擇它。但實(shí)際上,大部分情況下X,Y和Z根本就不是問(wèn)題。例如,如果我們有一個(gè)只讀的數(shù)據(jù)集需要緩存到集群中的多個(gè)節(jié)點(diǎn)上,有人可能選擇一個(gè)支持分布式數(shù)據(jù)集且每個(gè)節(jié)點(diǎn)上元素都不同的緩存技術(shù)。但是,如果數(shù)據(jù)集很小且我們不修改數(shù)據(jù)集,那分布式緩存有必要嗎?我們將為不存在的問(wèn)題而引入了速度慢、可靠性差且復(fù)雜度高的新技術(shù)。

              為了預(yù)防這一點(diǎn),開(kāi)發(fā)者需要確保自始至終都理解問(wèn)題域,也需要反復(fù)核對(duì)假設(shè)以確保其正確性。有時(shí)我們假設(shè)的事情可能并非事實(shí),所以反復(fù)核對(duì)非常重要,從而避免覆蓋假設(shè)情況的誘惑。非必要的情況下不要增加功能。增加功能也是要耗費(fèi)力氣的,而我們把在后期做修改的代價(jià)看的過(guò)高了,卻沒(méi)有意識(shí)到我們現(xiàn)在投入相同的努力僅僅是為了避免在以后付出同樣工作進(jìn)行修改的機(jī)會(huì),其實(shí)這種機(jī)會(huì)往往很少出現(xiàn)。


              我們應(yīng)該做什么?

              當(dāng)選擇技術(shù)時(shí),怎么做才是正確的呢?首先,你需要回顧下面幾點(diǎn),盡量形成團(tuán)隊(duì)決策。投入越多,越不容易漏掉那些可能讓你改變決策的信息。

            • 復(fù)查需求——確認(rèn)一致性、容錯(cuò)、性能等需求點(diǎn)。
            • 評(píng)估一下現(xiàn)有的東西能否滿(mǎn)足需求,如果能,那它基本上就是最佳選擇。
            • 調(diào)查其他技術(shù)如何滿(mǎn)足需求,并考慮額外依賴(lài)和潛在失效點(diǎn)帶來(lái)的成本(沒(méi)有免費(fèi)的午餐,新技術(shù)可能都有較大的維護(hù)成本)。
            • 征求團(tuán)隊(duì)中的專(zhuān)家意見(jiàn)——支持你真正理解的。
            • 考察任何其他的關(guān)注點(diǎn),比如價(jià)格、時(shí)間表等。
            • 團(tuán)隊(duì)討論并列出贊成和反對(duì)的理由。

              這只是一些指導(dǎo)原則,你可以采用任何你喜歡的方式,關(guān)鍵還是仔細(xì)和理性的做出決策。

              希望不要有人把本文的意思誤解為新技術(shù)是可怕的或者說(shuō)要避免新技術(shù)。其實(shí)我已經(jīng)在實(shí)際中使用過(guò)NoSQL技術(shù)。我相信它能很好的滿(mǎn)足既有需求,并且我之前曾經(jīng)用它來(lái)解決過(guò)具體問(wèn)題。有時(shí)我想我們是糾纏于新技術(shù)里有趣的地方而忘記了我們的最終目標(biāo)。記住你的目標(biāo),盡可能做出最好的、長(zhǎng)期的選擇。

            posted on 2012-05-27 23:18 coreBugZJ 閱讀(507) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 技術(shù)視野Software

            久久91精品国产91久久户| 浪潮AV色综合久久天堂| 99久久国产热无码精品免费久久久久| 午夜人妻久久久久久久久| 国产亚洲欧美精品久久久| 久久综合久久久| 久久综合久久综合亚洲| 欧美丰满熟妇BBB久久久| 久久国产精品99久久久久久老狼 | 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久无码人妻一区二区三区| 久久午夜电影网| 一本色道久久综合狠狠躁篇| 久久久久人妻一区精品色| 久久久久人妻精品一区三寸蜜桃 | 久久婷婷综合中文字幕| 国产精品亚洲综合久久| 曰曰摸天天摸人人看久久久| 狠狠色综合网站久久久久久久高清 | 久久精品毛片免费观看| 日产久久强奸免费的看| 日本一区精品久久久久影院| 亚洲级αV无码毛片久久精品| 久久精品国产福利国产琪琪| 久久精品国产亚洲AV无码麻豆| 人妻无码久久精品| 国产精品免费久久久久影院| 久久国产亚洲精品无码| 无码伊人66久久大杳蕉网站谷歌 | 国产精品青草久久久久福利99| 久久夜色精品国产网站| 国产精品久久久久免费a∨| 热99re久久国超精品首页| 99久久精品费精品国产一区二区| 日韩人妻无码一区二区三区久久99| 久久国产视屏| 久久久无码精品亚洲日韩软件| 99久久99久久精品国产| 91精品国产91久久久久久蜜臀| 亚洲精品国产成人99久久| 999久久久免费精品国产|