精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

程序員,請優先提高代碼的可讀性

開發 后端 前端
當我開始編程時,所擁有的處理器執行速度很慢,內存空間也非常有限 —— 有時僅以KB衡量。因此,必須合理考慮內存的使用和優化。

現在,當有人提及“優化”一詞時,他們通常是指“優化執行時間”,除非他們明確表明要優化GPU的內存消耗,網絡流量等等。

了解優化對象

當我開始編程時,所擁有的處理器執行速度很慢,內存空間也非常有限 —— 有時僅以KB衡量。因此,必須合理考慮內存的使用和優化。

在大學里,我們知道了優化的兩個極端情況:

  • 你可以犧牲空間來換取執行速度的提升,
  • 或者通過執行重復操作來換取內存消耗的優化。

如今,沒有人會太在意內存的使用(除了demoseners,嵌入式系統工程師,部分手游開發者),不僅是對于RAM空間,硬盤空間也是。 試想一下僅安裝看門狗就耗費硬盤近25Gb 空間。 此外,我在谷歌瀏覽器選項卡中寫這篇文章時,占用了130Mb的RAM空間。

實際上需要優化的對象有很多:

  • 隨著智能手機市場的增長,電量損耗的優化備受關注;
  • 優化可讀性可以讓代碼易于閱讀和調試,從而縮短開發周期,降低開發成本;
  • 還有很多優化類型,此處不再贅述……

優化可讀性——讓代碼更容易閱讀、跟蹤和理解。

你應該明白,你在優化時難以兼顧各個方面。 例如,當致力于性能優化時,你很可能讓應用程序內存消耗增加,同時代碼可讀性也變差。

為何優化可讀性

開發者大量工作時間并不是在編寫代碼,而是閱讀代碼,調試代碼,查閱他人提交的開發文檔,學習新的庫等。

當閱讀代碼時,開發者實際上是充當代碼解釋器的角色(雖比不上計算機)—— 在他們的頭腦中執行代碼,并試圖記住當前執行狀態。 這就是程序員在閱讀代碼過程中被打攪脾氣暴躁的原因。

時間== 金錢

你應該意識到一件很最重要的事,是你和你的同事浪費了大量時間。 即使是一個努力工作的開發者,在做下面的事時仍然浪費了大量時間:

  • 實現一些現在不需要,以后也可能永遠用不到的功能。
  • 做一些沒有實際價值的改進。 例如,花費一周時間優化一個函數的執行時間,而該函數在1小時內僅被調用10ms的時間。
  • 編寫的代碼難以調試,卻還要試圖從中找出錯誤。
  • 編寫的代碼他人難以理解。 注意,“他人”也可能是短短一周后的你。

上述情況是假設遇到問題的開發者經驗豐富并且熟知高效算法和簡潔代碼如何書寫,否則要列出的情況要更多。

優化可讀性

唐納德·克努特說過一句名言。 我敢打賭你聽過很多次。

“在編程中,過早優化是萬惡之源。 ” —— D.Knuth,1974

我遇到很多知道這句話的人,但真正理解這句話的卻很少。 最常見的錯誤理解像這樣:

  • —為何這么簡單的任務,代碼卻如此復雜?
  • —我優化了X和Y,因為在將來……
  • —難道你沒聽說過早的優化是萬惡之源嗎?
  • —當然,但這并不是過早優化,我能肯定這樣做程序執行效率會更高。

我想這是由于對過早優化這個詞沒有明確界定的原因。 這就是這些人一點也不認為他們那么做屬于過早優化的原因。 那么,我們該如何界定這個詞呢?

過早優化——在工作系統中分析和運行測試前的任何優化嘗試。

除可讀性之外任何修改都屬于過早優化。 所以,與其說一個人不應該做什么,不如說應該做什么。 那么,這句引言可以這樣理解:

優先提高可讀性。

什么阻礙了開發者閱讀代碼

好吧,我們一致認為,我們應該讓代碼更易于閱讀,這樣可以節約時間和金錢,對吧?但這究竟意味著什么?

有跡象表明,下面兩個基本方面極大地降低了開發者閱讀代碼的速度:

  1. 代碼晦澀難懂,
  2. 代碼難以跟蹤。

代碼艱澀難懂

遺憾的是,人們并不能像軟件解釋器那樣,可以不必理會將兩個數相加并調用一個函數這部分代碼的功能(機械式的編譯)。

為了查找代碼異常的原因,程序員必須理解源程序中編寫的代碼實現了何種功能,編寫的初衷是為了實現何種功能。

什么讓代碼晦澀難懂?

下面情況是對于經驗豐富的開發者而言,這些開發者熟悉代碼開發使用的語言和程序中使用的算法(即他們有足夠的知識來理解這段代碼)。

  1. 代碼不良。 單個字母的奇怪變量和1000行代碼的冗長函數。
  2. 代碼的格式不正確或不一致。
  3. 代碼中包含冗余代碼
  4. 代碼中包含未備注的低層次優化。
  5. 代碼過于高明。

我將跳過前兩條,因為無論如何你不應該閱讀不良代碼。 如果你所在的公司有人編寫了不良代碼,你應該糾正它們或者將其廢棄。 當然,你必須為你的整個代碼庫執行嚴格的編程規范。

3. 代碼中包含冗余代碼

亦或所謂的行數優化。 嵌套函數調用和條件運算符的長行代碼難以剖析。 當然,你可能會說這種觀點是片面的。 但這些人覺得源程序代碼越短越好,不必考慮可讀性。

4. 未備注地層次優化

最初,代碼的可讀性很好,工作也很穩定,但有些人決定在某些方面對其進行優化。 經過認真剖析,這可能是一個很好的優化,但此時的代碼看上去像是數組、位運算和幻數的結合體。 沒有人知道代碼在做什么,甚至代碼應該做什么,因為完成優化的人沒有提交任何說明。

也許你聽說過優秀的代碼不需要說明文檔。 但是經過優化的代碼(特別是優化效果很理想的情況)必須要有說明文檔。

在你的代碼庫中,可能大部分的優化只是像這樣的未備注行

  1. if (val != val) { ... }  

5. 代碼過于高明

作為軟件開發者,我們掌握越來越多的學術技巧并將其運用到實際代碼開發中。 畢竟,我們是計算機科學家,而不只是碼農!

有些語言甚至鼓勵開發者使用前沿技術,使代碼更具表現力和學術性。 當你用代碼建立了一個非常健壯的系統,特別當你用數學方法證明了一個高深定理,而99.997%受過教育的人對這種方法都不理解,你就會有這種成就感。

即使代碼被良好地封裝成模塊/類/函數并且這些模塊包含完全可讀的命令式代碼,但其他人想要讀懂這段代碼,他們必須掌握整個代碼的框架以及所有使用的相關技術和模式。

再一次強調,記住“其他人”可能就是一周后的你。

極可能這是我在工作中僅認識兩個使用Scala語言人的原因。就我個人而言,非常喜歡Scala語言。 對我來說,它就是一個學術操場,我可以在那里建造玻璃城堡。 一旦你越了解它,它的越多特性也就能為你所用,你也就越明白它本質上只是一門編程語言(請不要在這里引用我?。?/span>

雖不如Perl語言,但即使最漂亮的代碼庫也需要修改和更新。 現在,你需要尋找一個能夠理解這些優美代碼的人……

簡潔高明的代碼難以閱讀似乎是有爭議的。

“軟件調試要比編寫代碼困難一倍,如果你發揮了***才智編寫代碼,那么你的智商便不足以調試這個代碼。 ” —— Brian Kernighan

#p#

代碼難以跟蹤

閱讀代碼時,通常需要頻繁的從一個函數或類跳轉到另一個函數或類。 掌握你使用的集成開發環境(IDE),可以節約很多閱讀時間。 通過使用集成開發環境(例如Visual Studio)的“跳轉至聲明”,“查找使用”,“導航至”,“檢查”等特性,你可以將整個代碼看作是一幅連通圖。

在Notepad中編寫代碼是不錯的選擇,但是如果你想有效的閱讀代碼,必須掌握一個集成開發環境。

那么,究竟什么是連通圖呢?

連通圖是在拓撲空間中連接的圖,即圖中任意兩點之間都有一條通路。(來源)

graph

換句話來說,在“連通”代碼中,你可以方便的從一個方法中跟蹤到另一個方法中,并在你頭腦中建立這段代碼的功能框架。

如果代碼中某一部分鏈接被破壞(在這種情況下,集成開發環境不能幫助你實現函數間的跳轉),通常你必須花一些時間自己查找鏈接。代碼中被破壞的鏈部分越多,越難以跟蹤,代碼也就越難以閱讀。

那么,為什么代碼圖會被斷開?原因是多方面的,下面將列出一些常見情況:

1. 使用字符串引用方法和屬性

一些框架就喜歡這樣做,他們將”回調”作為字符串傳遞并在需要時使用反射。 此時你需要使用CMD+F查找。

最可惡的是動態語言中的動態字符串…… 對這個問題,向JavaScript或AS3致敬!

2. 代碼被分割成互不相連的部分

例如,你的代碼一半使用C#編寫,另一半是在可視化節點編輯器生成。 在這兩者之間跳轉非常不易。

依賴注入框架和其他XML配置工具也是。雖然沒有明確說明,但編寫XML配置文件也屬于編程。 這就是所謂的的聲明式編程(更不用說那些構建基于XML命令式語言的瘋狂的人)。

3. 巨大的圖節點

20個鏈接跳轉到這個包含1000行代碼的函數?。。哎喲。 你不需要包含這種節點的圖。

4. 一切都過于抽象

通過跳轉至聲明,你可到達一個接口或者一個抽象類,必須弄清楚有哪些實現。 依賴注入,抽象工廠和其他所有反對依賴的方法使得這一切變得更糟。 代碼圖中節點間的聯系過于抽象。

這樣說來,我討厭依賴注入(DI)和擴展標識語言(XML)。但DI是一個很棒的工具,它可以讓你避免書寫面條式代碼并讓程序的架構更加模塊化,更具可測試性。但像其他好的事物一樣,過度依賴必然產生負面效果。

我曾在審查一個應用程序時感到完全氣餒,因為我意識到自己弄不明白程序從何處開始。。。例如它的入口點在哪。 這一切都是在程序開始時從XML配置工具自動生成。

但我確實討厭XML配置工具。

***

所以,到這里你應該已經學會:

  • 掌握你的集成開發環境,
  • 盡可能保持代碼圖連通,
  • 首先編寫簡單代碼,
  • 編寫不必要的代碼,就是在浪費金錢。

強迫自己編寫簡單的代碼,避免在早期階段優化確實有一定難度,這需要花費時間。

在截止期前2小時已連續工作48小時,如果你在半睡半醒的狀態下能夠閱讀你所使用的代碼,你應該對過去的自己說聲“謝謝”。

附言

不要錯過reddithackernews上的精彩討論。

非常感謝/u/Arandur糾正了大量語法錯誤!

(備注:限于譯者的水平,譯文中肯定有錯誤和不妥之處,懇請批評指正!)

本文由 伯樂在線 - ashiontang 翻譯自 Valentin Simonov

責任編輯:林師授 來源: 伯樂在線
相關推薦

2014-07-28 10:28:25

程序員

2022-08-23 14:57:43

Python技巧函數

2022-08-29 00:37:53

Python技巧代碼

2017-11-23 10:59:17

程序員代碼編程

2023-10-30 18:05:55

Python類型

2024-10-11 06:00:00

Python代碼編程

2021-10-09 10:24:53

Java 代碼可讀性

2021-04-01 16:43:05

代碼可讀性開發

2017-10-30 15:22:29

代碼可讀性技巧

2019-06-06 08:48:14

代碼函數編程語言

2023-07-07 07:43:37

AutoMapper映射庫

2015-08-27 13:11:18

JavaScript代碼

2025-05-12 10:00:00

JavaScript代碼編碼

2021-12-08 23:38:25

Python工具代碼

2024-04-23 08:01:20

面向對象C 語言代碼

2010-09-02 10:43:24

CSS文件

2020-11-08 14:36:27

pandas數據分析pipe()

2024-01-31 08:04:43

PygmentsPython

2022-11-04 11:18:16

代碼優化可讀性

2019-12-03 09:32:32

JavaScript代碼開發
點贊
收藏

51CTO技術棧公眾號

成人av地址| 视频三区在线观看| 亚洲精品a级片| 精品电影一区二区三区| 黄色片视频在线播放| yourporn在线观看中文站| 国产一区二区三区精品视频| 欧美精品18videos性欧美| 日韩中文字幕电影| 24小时成人在线视频| 亚洲mv在线观看| 亚洲va韩国va欧美va精四季| 韩国av电影在线观看| 日韩激情视频网站| 欧美大片大片在线播放| 精品人妻无码一区二区三区| 9999在线精品视频| 色综合一区二区三区| 中文字幕の友人北条麻妃| 久久精品色图| 国产999精品久久久久久| 国产精品美女网站| 国产精品黄色网| 你懂的亚洲视频| 一区二区亚洲欧洲国产日韩| 国产精品伦子伦| 久久精品九色| 欧美精品xxxxbbbb| 日韩精品视频在线观看视频| 日本中文字幕电影在线免费观看| 99re热这里只有精品免费视频| 成人伊人精品色xxxx视频| 4438国产精品一区二区| 亚洲国产精品第一区二区三区| 精品国产一区av| 国产成人福利在线| 欧美jizz19性欧美| 欧美va亚洲va| 国产伦精品一区二区三区妓女下载| 精品日本视频| 一本一本大道香蕉久在线精品 | 亚洲精品成人久久久998| 99国产精品免费| 九九综合在线| 亚洲久久久久久久久久久| 亚洲免费观看在线| 日韩精品亚洲专区在线观看| 制服视频三区第一页精品| 黄大色黄女片18第一次| 青青热久免费精品视频在线18| 欧美性少妇18aaaa视频| 男人日女人下面视频| 99re6在线精品视频免费播放| 亚洲蜜臀av乱码久久精品蜜桃| 五月天色婷婷综合| 黄色免费在线看| 亚洲免费观看高清完整版在线| 中文字幕一区二区中文字幕| 五月婷婷在线视频| 中文字幕一区二区三区精华液| 亚洲巨乳在线观看| 欧美jizzhd欧美| 亚洲三级免费电影| 日本男女交配视频| 日本不卡1234视频| 91精品办公室少妇高潮对白| www.色就是色| 亚洲综合视频| 精品福利一二区| 熟妇高潮精品一区二区三区| 亚欧日韩另类中文欧美| 国产一区二区三区视频在线观看 | 国外成人在线直播| 台湾佬中文在线| 人人超碰91尤物精品国产| 国产精品欧美一区二区| 国产精品一区二区人人爽| 国产精品18久久久久久久久| 精品产品国产在线不卡| 国产小视频福利在线| 国产精品国产三级国产aⅴ原创| 懂色av粉嫩av蜜臀av| 国产极品人妖在线观看| 色呦呦日韩精品| www.cao超碰| 成人h动漫精品一区二区器材| 亚洲欧美日韩国产| 五月天网站亚洲| 免费观看精品视频| 久久亚洲精品人成综合网| 欧美一区二区三区成人| 日韩综合第一页| 成人激情开心网| 欧美日韩第一视频| 狠狠人妻久久久久久综合| 蜜桃视频在线一区| 国产亚洲欧美一区二区| seseavlu视频在线| 亚洲香蕉伊在人在线观| 欧美日韩一区二区在线免费观看 | 亚洲成人直播| 国产精品美女久久| 国产美女无遮挡永久免费| 26uuu久久天堂性欧美| 99亚洲精品视频| 色综合一本到久久亚洲91| 91精品婷婷国产综合久久| 欧美熟妇精品黑人巨大一二三区| 天天做综合网| 国产成人精品电影久久久| 亚洲产国偷v产偷v自拍涩爱| 中文字幕精品三区| av7777777| 日韩在线网址| 色噜噜国产精品视频一区二区| 日韩xxx高潮hd| 精品无人区卡一卡二卡三乱码免费卡| 国产精品视频500部| 黄在线免费观看| 欧美日韩日本国产| 精品人妻伦一二三区久| 一区二区日韩欧美| 国产欧美精品一区二区三区-老狼| 五月婷婷在线播放| 亚洲高清中文字幕| 一级片黄色免费| 久久国产中文字幕| 国产精品7m视频| 深夜视频在线免费| 天天综合色天天综合| gogo亚洲国模私拍人体| 91精品国产成人观看| 国产精品私拍pans大尺度在线| 亚洲三级黄色片| 午夜精品福利视频网站| 91精品国产综合久久福利| 在线观看av免费观看| 欧美在线色图| 日韩免费高清在线观看| 亚洲色图欧美视频| 性做久久久久久久免费看| 亚洲精品鲁一鲁一区二区三区| 国产精品久久天天影视| 国产精品美女在线观看| 福利在线午夜| 欧美艳星brazzers| 青娱乐国产视频| 视频一区二区三区在线| 日本一区视频在线播放| 你懂得影院夜精品a| 在线观看国产精品日韩av| 欧美一区二区三区久久久| 久久亚洲欧美国产精品乐播| 国产成人a亚洲精v品无码| 亚洲区小说区图片区qvod| 欧美性做爰毛片| 久蕉在线视频| 欧美日韩国产综合一区二区 | 91成人精品视频| 91中文在线观看| 欧洲精品二区| 亚洲激情久久久| 亚洲GV成人无码久久精品| 久久久久9999亚洲精品| 牛夜精品久久久久久久| 欧美1级片网站| 2022国产精品| 麻豆理论在线观看| 一区二区三区视频在线| 亚洲综合网av| 一区二区欧美在线观看| 亚洲av成人片色在线观看高潮| 香蕉久久夜色精品| 亚洲精品自在在线观看| 午夜精品在线| 欧美在线一级视频| 四虎久久免费| 欧美va亚洲va在线观看蝴蝶网| 一级片中文字幕| 国产精品欧美久久久久一区二区 | 精品中文视频| 97久久超碰福利国产精品…| 九一国产在线| 日韩一区二区免费视频| 亚洲伊人成人网| 国产精品一区二区三区在线免费观看| av福利精品导航| 欧美三级午夜理伦三级富婆| 欧美成人嫩草网站| 久久精品一区二区三区不卡免费视频| 国产经典一区| 久久久人成影片一区二区三区观看 | 亚洲成年网站在线观看| av片免费观看| 亚洲九九爱视频| 男人天堂av电影| 国产成人一区在线| 蜜臀av免费观看| 亚洲午夜视频| 杨幂一区欧美专区| 日韩欧美天堂| 亚洲在线一区二区| 国产精品久久久久av电视剧| 九色精品免费永久在线| 国产男人搡女人免费视频| 亚洲国产人成综合网站| 国产传媒视频在线 | 韩国三级hd中文字幕| 国产成人亚洲综合a∨婷婷| 国产精品人人妻人人爽人人牛| 欧美视频福利| 一区二区视频国产| 美女少妇全过程你懂的久久| 97影院在线午夜| 97成人超碰| 欧美一级电影在线| 毛片大全在线观看| 精品国产拍在线观看| 国产免费永久在线观看| 亚洲国产精品成人av| 国产人妖一区二区三区| 欧美系列日韩一区| 国产婷婷色一区二区在线观看| 一区二区高清在线| 无码黑人精品一区二区| 国产日韩亚洲欧美综合| 国产精品探花一区二区在线观看| 国产精品香蕉一区二区三区| 国产一二三区av| 天堂成人免费av电影一区| 青草网在线观看| 重囗味另类老妇506070| 一区二区不卡在线| 欧美残忍xxxx极端| 亚洲第一综合| 成人羞羞网站| 鲁丝一区二区三区免费| 日本在线免费| 亚洲裸体俱乐部裸体舞表演av| 免费国产一区二区| 色先锋久久影院av| 久久精品国产精品青草色艺| 大型av综合网站| 国产精品国产三级国产专区53| 亚洲五码在线| 97自拍视频| 动漫3d精品一区二区三区乱码| 成人资源视频网站免费| 在这里有精品| 国产一区二区三区无遮挡| 国产suv精品一区| 国产欧美日韩在线播放| 日韩高清一级| 日韩欧美精品久久| 久久久综合色| 女同性恋一区二区| 欧美日韩影院| 免费欧美一级视频| 视频一区欧美精品| 亚洲天堂av一区二区| 国产乱码精品一区二区三区忘忧草| 久久6免费视频| 国产91精品精华液一区二区三区 | 久久99久久亚洲国产| 黄网在线免费看| 欧美亚洲国产另类| 日韩成人亚洲| 91色在线观看| 加勒比中文字幕精品| 蜜桃91精品入口| 日韩情爱电影在线观看| 91香蕉视频网址| 激情另类综合| 美女一区二区三区视频| 国产一区欧美日韩| 亚洲天堂美女视频| 欧美国产一区二区在线观看| 九九精品视频免费| 亚洲第一av色| 欧美激情一区二区三区免费观看| 6080午夜不卡| 丝袜+亚洲+另类+欧美+变态| 中文日韩在线观看| 蜜桃成人365av| 国产精品日韩av| 成人线上播放| 亚洲欧洲日韩精品| 狠狠88综合久久久久综合网| 精品视频无码一区二区三区| 国产揄拍国内精品对白| 欧洲一级黄色片| 亚洲丝袜美腿综合| 性无码专区无码| 制服丝袜亚洲色图| 亚洲 美腿 欧美 偷拍| 精品国产美女在线| 久久青青视频| av一区和二区| 四季av一区二区三区免费观看| 少妇高潮毛片色欲ava片| www.av视频在线观看| 欧美激情综合在线| 日韩成人在线免费视频| 欧美伦理视频网站| 牛牛影视精品影视| 欧美精品xxx| 日韩免费大片| 欧美在线一区二区三区四区| 欧美日韩1区2区3区| 婷婷免费在线观看| 久久久99久久精品欧美| 精品无码一区二区三区电影桃花 | 凹凸成人精品亚洲精品密奴| 丰满的少妇愉情hd高清果冻传媒| 麻豆精品一区二区| 亚洲第一香蕉网| 精品国产户外野外| 亚洲va欧美va| 久久精品国产91精品亚洲| 人人鲁人人莫人人爱精品| 国产一区二区久久久| 在线中文字幕第一区| 性生活免费在线观看| 久久精品在线观看| 久久久久久久极品| 亚洲第一精品福利| 欧美性猛片xxxxx免费中国| 91久久久久久久| 日韩久久电影| 日本中文字幕高清| 国产丝袜欧美中文另类| 久久久久久少妇| 日韩国产在线播放| 国产在线88av| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 日韩精品一区二区三区中文不卡 | 91av国产在线| 久久av国产紧身裤| 加勒比成人在线| 成人性生交大片免费看视频在线| 好吊色视频在线观看| 日韩一区二区免费电影| 日本高清在线观看| 97av影视网在线观看| 欧美日韩亚洲三区| 97中文字幕在线观看| 亚洲成a人v欧美综合天堂下载| 成人久久久精品国产乱码一区二区| 九九热精品视频在线播放| 91精品国产自产精品男人的天堂| 国产一区二区三区在线免费| 成人性生交大片免费看中文| 国产污视频在线观看| 亚洲精品国产美女| 都市激情综合| 亚洲精品美女久久7777777| 久久er99精品| 久热这里有精品| 亚洲成人精品视频| 亚洲女同志freevdieo| 日本高清久久一区二区三区| 免费在线欧美视频| h色网站在线观看| 精品国产一区二区三区久久影院| www555久久| 欧美极品色图| 久久精品国产免费| 成人性生交大片免费看小说| 91涩漫在线观看| 国产在线视频一区| 欧美女人交a| aaaaa级少妇高潮大片免费看| 在线看国产日韩| 国产剧情在线| 精品欧美一区二区三区久久久| 久久久久久亚洲精品杨幂换脸| 日韩丰满少妇无码内射| 制服丝袜日韩国产| 中文字幕乱码在线播放| 亚洲aⅴ天堂av在线电影软件| 国产福利91精品| 久久夜色精品国产噜噜亚洲av| 久久久久北条麻妃免费看| 成人另类视频| 黄色永久免费网站| 亚洲国产视频一区二区| 国产在线超碰| 99在线视频播放| 老司机精品视频网站| 91插插插插插插| 精品一区二区电影| 国产在线一区不卡| 久草资源站在线观看| 中文字幕一区二区三区不卡在线 | 精品国产依人香蕉在线精品| www国产精品| 中文字幕第88页| 欧美日韩人人澡狠狠躁视频| 成人福利网站| 神马影院午夜我不卡影院|