高效編程的規(guī)則有哪些

這篇文章主要講解了“高效編程的規(guī)則有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“高效編程的規(guī)則有哪些”吧!

專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站制作,高端網(wǎng)站制作設(shè)計(jì),微信小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠服務(wù),采用H5建站+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動,隨時(shí)提供解決方案,暢聊想法和感受。

1. 童子軍規(guī)則

"一定要讓營地的清潔劑比您發(fā)現(xiàn)的要干凈"-這是一個(gè)很好的生活準(zhǔn)則。 當(dāng)您靠近營地時(shí),即使不是由您自己造成的,也應(yīng)使其清潔。 這是偵察兵的規(guī)則之一。  編程同樣適用。 正如羅伯特·C·馬丁(Robert C. Martin)所說:"讓代碼比發(fā)現(xiàn)的要好"。  如果我們發(fā)現(xiàn)別人寫的一些難以閱讀的應(yīng)用程序,并且花了一些時(shí)間來理解,那就讓它至少好一點(diǎn)。  如果它不在我們正在處理的任務(wù)范圍之內(nèi),則可以始終創(chuàng)建一個(gè)新的小型技術(shù)任務(wù),對其進(jìn)行詳細(xì)描述并將其帶入下一個(gè)沖刺。

此規(guī)則的簡約版本更像是在公共廁所中唱歌。  我們至少應(yīng)該至少不惡化它所處的條件。我們必須記住,有些人有一天會接管我們開發(fā)的那部分應(yīng)用程序,并嘗試對其進(jìn)行修改。 讓我們不要讓生活更艱難。

2. 考慮問題,而不僅僅是解決方案

軟件開發(fā)人員確實(shí)非常擅長實(shí)施解決方案。 我們了解語言,模式,庫,框架,并了解如何使用它們。 問題在于,從業(yè)務(wù)的角度來看,我們經(jīng)常做的事情沒有任何意義。  您正在開發(fā)的某些功能可能與企業(yè)所有者不知道的現(xiàn)有功能重復(fù)。 有些可能沒有經(jīng)過深思熟慮,將永遠(yuǎn)無法發(fā)布到下一個(gè)版本,或者根本沒有用戶會使用它們。  那是浪費(fèi)時(shí)間,金錢和挫敗感的巨大浪費(fèi)。 很多人都不想問開發(fā)人員他們的意見,只是假設(shè)他們的工作就是交付功能。 沒有商量。 僅技術(shù)工作。

開發(fā)人員每天都在使用該應(yīng)用程序。 他們知道每個(gè)功能,即使沒有人使用它。 有時(shí),從業(yè)務(wù)角度看似乎容易完成的任務(wù)需要花費(fèi)數(shù)月的開發(fā)時(shí)間。  有些似乎幾乎不可能的工作要花幾天時(shí)間。 原因是將要實(shí)施一項(xiàng)功能的人員與提出該功能的人員之間缺乏溝通。 兩者之間存在巨大差異:

  • 為用戶的購物車創(chuàng)建永久存儲

  • 用戶應(yīng)該能夠保存他們的購物車,并在移動和Web應(yīng)用程序上使用它

第一個(gè)很簡單。 無話可問。 第二個(gè)要難一些,因?yàn)樗鼓伎纪评恚鷮⒊蔀樘岢鼋o定問題的解決方案的人。  關(guān)于細(xì)節(jié),功能要求,質(zhì)量屬性和其他方面,會有很多問題。 由于您現(xiàn)在不僅是執(zhí)行者,因此解決方案將更好地解決。

3. 考慮總擁有成本

有時(shí)會偷工減料,以后跳過測試,留下臨時(shí)解決方案并承諾稍后進(jìn)行糾正,這是非常誘人的。 在大多數(shù)情況下,如果它不會破裂,您將永遠(yuǎn)不會。  將有一個(gè)新任務(wù),優(yōu)先級,要實(shí)現(xiàn)的功能和要解決的問題。 您將遇到的問題是這樣的應(yīng)用程序可能會損壞。 而且,將很難修復(fù)。

功能的總擁有成本是從開發(fā)開始到部署,維護(hù)再到終止所花費(fèi)的金錢和精力的總和。 如果我們在開發(fā)過程中采用捷徑,那將是最便宜的部分。  您可能發(fā)布的速度更快,但是維護(hù)會很麻煩,用戶會感到不滿意,并且總的來說,所有東西都比它應(yīng)該的貴。

4. 使用SOLID

在編程中,有很多很棒的規(guī)則以首字母縮略詞形式出現(xiàn):DRY,KISS,YAGNI,SOLID等。  SOLID是一組規(guī)則,可以幫助使代碼更整潔并避免常見的陷阱。

在將代碼推送到存儲庫之前,這可能是一個(gè)很棒的清單。 該課程是否支持"單一責(zé)任原則"? 可以用同一層次結(jié)構(gòu)中的任何其他類替代該類(是否滿足LSP)?  這將有助于過濾掉許多未來問題的來源。 理解并有意識地運(yùn)用每條規(guī)則背后的原因,將使您成為一名更好的程序員,并提高代碼審查的質(zhì)量。

5. 使用設(shè)計(jì)模式

在大多數(shù)情況下,您不是第一個(gè)嘗試解決您面臨的問題或?qū)崿F(xiàn)具有類似要求的功能的人。  已經(jīng)有成千上萬的CRM,CMS,銀行系統(tǒng),聊天室,在線商店,市場以及人們能想到的基本上任何可能的應(yīng)用程序類型。  您正在開發(fā)的系統(tǒng)可能是市場上最好的,或者具有其他人所沒有的某些極其先進(jìn)和獨(dú)特的功能。 不過,大多數(shù)工作在某種程度上都是參考性的。  其他人可能會嘗試以多種不同的方式來做到這一點(diǎn),甚至描述整個(gè)過程。 它可以為您省去很多麻煩,并為您提供更好的解決方案。

四人幫有一本很棒的書,介紹了一些可用于解決常見問題的可重復(fù)模式。 它寫于1994年,但那些仍然有效和有用。  在軟件中,那是古老的時(shí)代,但是現(xiàn)在我們在編寫代碼時(shí)面臨的問題并沒有太大不同。 從那以后,出現(xiàn)了許多新的設(shè)計(jì)模式。 了解他們可以使您的工作輕松得多。

所有設(shè)計(jì)都是重新設(shè)計(jì)。 向他人學(xué)習(xí)

6. 最小化復(fù)雜度

從本質(zhì)上講,軟件開發(fā)是一項(xiàng)復(fù)雜的任務(wù)。 不要使其變得不必要的復(fù)雜。 有時(shí)通過在函數(shù)中引入一些額外的" if"或"循環(huán)"來實(shí)現(xiàn)一些業(yè)務(wù)規(guī)則非常誘人。  開發(fā)將更快,但是代碼將變得更暗,添加新功能只會使其變得更加復(fù)雜。 如果出現(xiàn)問題,將更難找出原因。

有一個(gè)偉大而又非常簡單的度量標(biāo)準(zhǔn),其秘密名稱為" Cyclomatic Complexity"。 它是在70年代推出的,但仍然非常有用。  此度量標(biāo)準(zhǔn)衡量代碼執(zhí)行的多種方式。 每個(gè)條件語句和循環(huán)都將得分加+1。 分?jǐn)?shù)越小越好。 當(dāng)我們分析一種方法時(shí),分?jǐn)?shù)在范圍內(nèi):

  • 0-10:代碼結(jié)構(gòu)合理,不應(yīng)引起意外問題

  • 10–20:代碼非常復(fù)雜,并且有很多潛在的執(zhí)行路徑可供測試。 重構(gòu)候選人

  • 20–50:代碼非常復(fù)雜,應(yīng)進(jìn)行重構(gòu)

  • 50歲以上:必須進(jìn)行重構(gòu)

可讀性比性能更重要。 該聲明有一些限制,但從長遠(yuǎn)來看,可讀性基本上是有回報(bào)的。 您可以使用更少的錯誤來更改代碼。  微觀優(yōu)化可能很容易使您的代碼變得一團(tuán)糟,并且不會給用戶帶來太多價(jià)值。

7. 不要一個(gè)人做

聽起來可能違反直覺,但是編程是一種社交活動。 隱藏在地下室黑暗中的程序員時(shí)代已經(jīng)結(jié)束。 分享專業(yè)知識和經(jīng)驗(yàn)變得越來越重要。  在最壞的情況下,您要與之交談的人將成為您的橡皮鴨,但很可能您會收到一些有價(jià)值的反饋。 有人可能會發(fā)現(xiàn)您根本沒有考慮的解決方案中的問題。  從不同的角度看待是一個(gè)很好的工具,并且非常容易獲得。

任何人都不應(yīng)對已部署的代碼負(fù)責(zé)。 提供新功能是團(tuán)隊(duì)而非個(gè)人的工作。  代碼審查,配對編程,拉取請求是一種工具,可以承擔(dān)一個(gè)人的責(zé)任,并將其移交給具有最佳跨職能技能的一群人。  對于可能影響整個(gè)公司業(yè)績的重要功能,開發(fā)人員的責(zé)任實(shí)在太大了。 這種情況非常不健康,絕不應(yīng)該發(fā)生。

8. 測試是必須的

盡早發(fā)現(xiàn)錯誤非常重要,可以節(jié)省大量的工作量和客戶的憤怒電話。 盡早發(fā)現(xiàn)問題使他們更容易解決。 在開發(fā)特定應(yīng)用程序時(shí),我們能夠最好地記住所有細(xì)節(jié)和邏輯。  我們記得做出特定決定的所有理由以及如何調(diào)試每個(gè)應(yīng)用程序。 修復(fù)錯誤的成本會隨著時(shí)間呈指數(shù)增長。

9. 學(xué)習(xí)英語

共享知識一直是軟件社區(qū)的基礎(chǔ)之一。 大多數(shù)信息是用英語編寫的,并且易于訪問。 目前,它是軟件世界中最流行的語言。  如果您不會用英語讀寫,您將會遇到很多困難,并失去很多機(jī)會。 而且,幾乎每種語言的語法默認(rèn)情況下都是用英語書寫的。

用英語寫注釋和名稱也是一個(gè)好習(xí)慣。 它使代碼更整潔,并且與語法更加一致。  如果我們要與他人(尤其是來自不同國家/地區(qū)的人)共享代碼,那么基本上沒有比英語更好的方法了。

10. 多任務(wù)使你變得愚蠢

人們根本無法一次做好多件事情。 軟件開發(fā)需要使用抽象概念,并且通常需要構(gòu)建非常復(fù)雜的思維模型。  如果您分心或開始從事其他工作,那么您將失去一切,必須從頭開始。 此外,有多項(xiàng)研究證明多任務(wù)處理對性能,生產(chǎn)率和智商有負(fù)面影響。

我曾經(jīng)在軟件公司參加過一次培訓(xùn),介紹了一種非常有用的實(shí)踐。 如果您沒有任何預(yù)定的會議或電話,則可以自由播放"西紅柿"。 規(guī)則非常簡單-您無需與任何人交談。  如果有人問您任何問題,您將用一個(gè)單詞回答:"西紅柿"。 因此,您表明自己正在工作之中,不想被打擾。 人們處于"西紅柿模式"時(shí),他們還會在日歷中顯示選定的時(shí)間。  完全"蕃茄"化并不總是一件好事,但這是一種改善性能的有趣方式。

11. 少做多好

更少的代碼和更好的維護(hù)基礎(chǔ)架構(gòu)。 有很多人喜歡在他們的應(yīng)用程序,模塊,服務(wù)器,節(jié)點(diǎn),pod,微服務(wù)或任何其他東西中吹噓大量的代碼行。  應(yīng)用程序中的每一行代碼都有可能具有最高的質(zhì)量,并且恰好位于正確的位置。 但這是非常罕見的情況。 如果您可以使用較少的資源來完成相同的工作,則應(yīng)該這樣做。  質(zhì)量是目標(biāo),而不是數(shù)量。

感謝各位的閱讀,以上就是“高效編程的規(guī)則有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對高效編程的規(guī)則有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前標(biāo)題:高效編程的規(guī)則有哪些
本文路徑:http://muchs.cn/article10/jogido.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)外貿(mào)網(wǎng)站建設(shè)、Google、網(wǎng)頁設(shè)計(jì)公司、虛擬主機(jī)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化