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

軟件開(kāi)發(fā)“自我毀滅”的七宗罪

譯文 精選
開(kāi)發(fā)
資深程序員的經(jīng)驗(yàn)告訴我們,最好的步驟是停下來(lái),計(jì)劃,測(cè)試計(jì)劃,然后再完善計(jì)劃。寫(xiě)計(jì)劃可能看起來(lái)很乏味,但當(dāng)你進(jìn)行抽象思考時(shí),嘗試新想法的速度可能會(huì)快10倍。

作者丨Peter Wayner

譯者 | 晶顏

審校 | 重樓

軟件開(kāi)發(fā)是一門(mén)具有挑戰(zhàn)性的學(xué)科,它建立在數(shù)以百萬(wàn)計(jì)的參數(shù)、變量、庫(kù)以及更多必須絕對(duì)正確的因素之上。即便是一個(gè)字符不合適,整個(gè)堆棧也會(huì)隨之瓦解。

多年來(lái),軟件開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)想出了一些完成工作的規(guī)則。從復(fù)雜的方法論到新興的學(xué)科和哲學(xué),軟件開(kāi)發(fā)的規(guī)則手冊(cè)使每個(gè)人都能夠協(xié)作,并以有效的方式到達(dá)終點(diǎn)。然而,即便如此,仍然存在失敗模式:有時(shí)是這些方法被誤用了,或是好的想法過(guò)于偏向理論化;有時(shí)開(kāi)發(fā)者只是忘記了他們應(yīng)該做什么,或是故意為之。

軟件開(kāi)發(fā)中的這些錯(cuò)誤幾乎可以破壞任何項(xiàng)目。因此,如果想要確保您的團(tuán)隊(duì)能夠構(gòu)建偉大的項(xiàng)目,那么是時(shí)候停下來(lái)考慮一下以下錯(cuò)誤行為了。

1、選擇錯(cuò)誤的方法   

所有的軟件開(kāi)發(fā)方法都有狂熱的擁躉,他們熱衷于那些定義自己最喜歡的團(tuán)隊(duì)組織方式的規(guī)則。但問(wèn)題往往是如何為您的團(tuán)隊(duì)選擇合適的工具。

一個(gè)很大的錯(cuò)誤是從高層強(qiáng)加這些規(guī)則。如果程序員是另一種方法的忠實(shí)信徒,那么當(dāng)他們被迫使用另一種方法時(shí),他們通常會(huì)抱怨和發(fā)牢騷。另一個(gè)錯(cuò)誤是讓程序員自由地選擇他們最喜歡的方法,然而這可能并不是對(duì)整個(gè)團(tuán)隊(duì)最好的方法。

選擇正確的方法并不能解決所有的問(wèn)題,但是它可以減少組織工作流程時(shí)產(chǎn)生的摩擦。團(tuán)隊(duì)將了解他們的角色,以及他們將如何在其中編寫(xiě)代碼。

2、忽略可擴(kuò)展性   

一些軟件開(kāi)發(fā)問(wèn)題可以稍后修復(fù),但這絕不包括構(gòu)建一個(gè)能夠有效擴(kuò)展以處理數(shù)百萬(wàn)或數(shù)十億個(gè)事件的應(yīng)用程序。當(dāng)應(yīng)用程序最終全面運(yùn)行時(shí),創(chuàng)建沒(méi)有瓶頸的有效代碼需要足夠的深謀遠(yuǎn)慮和高層領(lǐng)導(dǎo)的支持。這不是以后用一些有針對(duì)性的編碼和虛擬管道就能解決的問(wèn)題。

算法和數(shù)據(jù)結(jié)構(gòu)需要從一開(kāi)始就進(jìn)行規(guī)劃。這意味著架構(gòu)師和管理層需要仔細(xì)考慮將為每個(gè)用戶存儲(chǔ)和處理的數(shù)據(jù)。當(dāng)100萬(wàn)或10億用戶出現(xiàn)時(shí),信息洪流會(huì)淹沒(méi)哪一層?我們?cè)撊绾翁崆盀檫@些時(shí)刻做好計(jì)劃呢?

有時(shí)候,這種架構(gòu)上的深謀遠(yuǎn)慮意味著扼殺一些偉大的想法。有時(shí),管理層需要權(quán)衡大規(guī)模交付功能的收益和成本。有些數(shù)據(jù)分析在大范圍內(nèi)并不適用。一些公式隨著用戶的增加呈指數(shù)級(jí)增長(zhǎng)。計(jì)算使硬件不堪重負(fù),并阻塞了通信。

開(kāi)發(fā)者并不總是想要考慮大局。他們很容易就會(huì)一頭扎進(jìn)去開(kāi)始創(chuàng)作。但是聰明的開(kāi)發(fā)團(tuán)隊(duì)和管理者會(huì)花時(shí)間預(yù)測(cè)這些問(wèn)題,因?yàn)槿绻麄儾贿@樣做,就會(huì)面臨失敗的結(jié)局。

3、沉迷最新趨勢(shì)   

眾所周知,軟件開(kāi)發(fā)人員很容易被新奇的想法所吸引。也許它是一種提供更復(fù)雜查詢(xún)的新型數(shù)據(jù)庫(kù);也許它是一種新的編程語(yǔ)言,可以修復(fù)舊語(yǔ)言造成的所有錯(cuò)誤。

有時(shí)候這些想法是有價(jià)值的。然而,很多時(shí)候,由于每個(gè)人都試圖學(xué)習(xí)新技術(shù),最終會(huì)減慢開(kāi)發(fā)速度。有時(shí)候,新想法中會(huì)存在隱藏的缺陷,只有在項(xiàng)目必須交付之前,每個(gè)人都投入到工作中之后,這些缺陷才會(huì)顯現(xiàn)出來(lái)。

謹(jǐn)慎往往是采用新技術(shù)的最佳準(zhǔn)則。這也是一些規(guī)模最大、歷史最悠久的公司仍在繼續(xù)運(yùn)行由COBOL編寫(xiě)的軟件的原因所在。趨勢(shì)變化無(wú)常,但運(yùn)行代碼中的工作邏輯不會(huì)過(guò)時(shí)。

4、保留過(guò)多的數(shù)據(jù)   

程序員是天生的囤積狂,他們喜歡儲(chǔ)存信息以備不時(shí)之需,而此舉可能會(huì)導(dǎo)致安全漏洞或侵犯用戶隱私。

對(duì)于出生日期或其他詳細(xì)個(gè)人信息,問(wèn)題可能更大。一些領(lǐng)域(如財(cái)務(wù)記錄或健康記錄)受到嚴(yán)格監(jiān)管,更容易違反規(guī)定。

好的軟件架構(gòu)需要提前計(jì)劃,以盡量減少存儲(chǔ)的數(shù)據(jù)量。它可以保護(hù)每個(gè)人,并節(jié)省存儲(chǔ)費(fèi)用,甚至可以通過(guò)減少移動(dòng)數(shù)據(jù)量來(lái)加快系統(tǒng)速度。

5、外包錯(cuò)誤的工作   

關(guān)于究竟是自行構(gòu)建還是購(gòu)買(mǎi)軟件的爭(zhēng)論由來(lái)已久,目前尚無(wú)明確定論。然而,軟件開(kāi)發(fā)人員的選擇往往很糟糕。也許有一個(gè)價(jià)格合理的完美解決方案,但他們卻不舍得把自己的定制堆棧與內(nèi)部團(tuán)隊(duì)閑置一邊。相反的情況也會(huì)發(fā)生。一些管理者購(gòu)買(mǎi)了外部供應(yīng)商的產(chǎn)品線,結(jié)果卻眼睜睜地看著供應(yīng)商在鎖定完成后大幅提高價(jià)格。

不幸的是,對(duì)于軟件開(kāi)發(fā)團(tuán)隊(duì)及其管理者來(lái)說(shuō),決定使用哪種外部工具是一個(gè)持續(xù)的挑戰(zhàn)。利用合適的外部資源是天才之舉,但選擇了錯(cuò)誤的供應(yīng)商則是通往高價(jià)監(jiān)獄的門(mén)票。

6、忽略測(cè)試   

高效的軟件開(kāi)發(fā)人員及其管理者都知道,測(cè)試是一個(gè)持續(xù)的挑戰(zhàn),就像編寫(xiě)遞歸代碼或設(shè)計(jì)優(yōu)雅的數(shù)據(jù)結(jié)構(gòu)一樣,是工作的一部分。測(cè)試過(guò)程應(yīng)該從一開(kāi)始就包含在內(nèi),因?yàn)閱卧獪y(cè)試和集成測(cè)試對(duì)于確保代碼在整個(gè)開(kāi)發(fā)過(guò)程中保持可行性至關(guān)重要。

測(cè)試對(duì)于處理大規(guī)模負(fù)載也很重要。當(dāng)我們是唯一的用戶時(shí),編寫(xiě)在桌面上運(yùn)行順暢的代碼十分容易。如果應(yīng)用程序擁有數(shù)百、數(shù)千甚至數(shù)十萬(wàn)用戶,則需要確保代碼是高效的,且部署能夠處理大規(guī)模負(fù)載。

許多團(tuán)隊(duì)會(huì)引入質(zhì)量保證測(cè)試人員,以發(fā)現(xiàn)并糾正程序員所犯的錯(cuò)誤。比如說(shuō),他們知道如何將一個(gè)參數(shù)設(shè)置為0,只是為了看看它是否會(huì)導(dǎo)致除0錯(cuò)誤(divide-by-zero error)。當(dāng)用例變得如此復(fù)雜,以至于任何一個(gè)人都很難想到所有的變化并編寫(xiě)干凈的代碼來(lái)預(yù)測(cè)它們時(shí),這種對(duì)測(cè)試的持續(xù)關(guān)注是必不可少的。

7、低估了計(jì)劃的力量   

大多數(shù)代碼在構(gòu)建前期都需要進(jìn)行一定的計(jì)劃。但大多數(shù)程序員通常只是想直接進(jìn)入并開(kāi)始編寫(xiě)代碼。

資深程序員的經(jīng)驗(yàn)告訴我們,最好的步驟是停下來(lái),計(jì)劃,測(cè)試計(jì)劃,然后再完善計(jì)劃。寫(xiě)計(jì)劃可能看起來(lái)很乏味,但當(dāng)你進(jìn)行抽象思考時(shí),嘗試新想法的速度可能會(huì)快10倍。

計(jì)劃還意味著包括來(lái)自其他團(tuán)隊(duì)和涉眾的輸入。他們將是將來(lái)使用代碼的人,因此花時(shí)間討論項(xiàng)目并了解他們的需求,將在之后避免大量的挫折。這是避免上述列出的許多錯(cuò)誤的最好方法。

參考鏈接:https://www.cio.com/article/654284/7-sins-of-software-development.html

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2011-02-21 09:04:25

2023-05-08 10:54:39

IT管理CIO

2018-02-05 23:14:35

光纖網(wǎng)絡(luò)光纖施工

2024-06-19 19:28:51

2014-01-13 09:35:13

創(chuàng)業(yè)企業(yè)

2011-03-02 08:47:08

IT技術(shù)周刊

2021-03-01 18:48:21

Go管理工具

2012-10-29 13:33:01

2013-01-17 17:14:52

Objective-C

2013-05-10 10:49:53

2015-09-15 13:22:08

數(shù)據(jù)分析七宗罪

2011-02-23 10:51:36

Chrome

2010-08-18 10:05:27

IE7IE6

2017-01-09 15:25:49

物聯(lián)網(wǎng)策略設(shè)計(jì)

2017-08-02 16:24:04

2015-09-06 11:25:57

七宗罪失敗案例

2012-04-04 22:17:40

移動(dòng)游戲

2021-04-24 20:25:29

CISO內(nèi)部威脅網(wǎng)絡(luò)安全

2015-06-26 16:20:51

數(shù)據(jù)中心

2012-09-07 14:41:26

點(diǎn)贊
收藏

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