偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

作者丨Peter Wayner

譯者 | 晶顏

審校 | 重樓

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

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

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

1、選擇錯誤的方法   

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

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

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

2、忽略可擴展性   

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

算法和數(shù)據(jù)結(jié)構(gòu)需要從一開始就進行規(guī)劃。這意味著架構(gòu)師和管理層需要仔細考慮將為每個用戶存儲和處理的數(shù)據(jù)。當100萬或10億用戶出現(xiàn)時,信息洪流會淹沒哪一層?我們該如何提前為這些時刻做好計劃呢?

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

開發(fā)者并不總是想要考慮大局。他們很容易就會一頭扎進去開始創(chuàng)作。但是聰明的開發(fā)團隊和管理者會花時間預(yù)測這些問題,因為如果他們不這樣做,就會面臨失敗的結(jié)局。

3、沉迷最新趨勢   

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

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

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

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

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

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

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

5、外包錯誤的工作   

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

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

6、忽略測試   

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

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

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

7、低估了計劃的力量   

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

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

計劃還意味著包括來自其他團隊和涉眾的輸入。他們將是將來使用代碼的人,因此花時間討論項目并了解他們的需求,將在之后避免大量的挫折。這是避免上述列出的許多錯誤的最好方法。

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

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

2011-02-21 09:04:25

2024-06-19 19:28:51

2023-05-08 10:54:39

IT管理CIO

2011-03-02 08:47:08

IT技術(shù)周刊

2018-02-05 23:14:35

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

2012-10-29 13:33:01

2014-01-13 09:35:13

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

2012-09-07 14:41:26

2019-04-15 09:00:00

SQLOracle數(shù)據(jù)庫

2015-07-16 09:14:50

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

2021-03-03 14:08:48

自動化高管IT投資

2012-04-04 22:15:19

移動游戲

2016-12-08 13:12:36

數(shù)據(jù)中心綠色認證

2021-03-01 18:48:21

Go管理工具

2013-01-17 17:14:52

Objective-C

2015-09-15 13:22:08

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

2013-05-10 10:49:53

2010-08-18 10:05:27

IE7IE6

2011-02-23 10:51:36

Chrome

2013-12-04 09:52:27

程序員漫畫
點贊
收藏

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