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

職業(yè)程序員啥不可饒恕?看不懂自己寫的代碼!

開發(fā) 項(xiàng)目管理
最近遇到一個(gè)事情讓我大為不解。一個(gè)程序員自豪的宣稱他完全看不懂自己一周前寫的任何代碼。我真的想探明他的這種自豪感從何而來,但無解。他是在驕傲每天寫如此多的代碼嗎?有人會(huì)愿意聘請(qǐng)這樣的人去寫程序嗎?

[[76777]]

最近遇到一個(gè)事情讓我大為不解。一個(gè)程序員自豪的宣稱他完全看不懂自己一周前寫的任何代碼。我真的想探明他的這種自豪感從何而來,但無解。他是在驕傲每天寫如此多的代碼嗎?有人會(huì)愿意聘請(qǐng)這樣的人去寫程序嗎?

首先讓我明確的闡明我對(duì)此事的觀點(diǎn):不能理解一周前或一年前自己寫的代碼,這對(duì)一個(gè)職業(yè)程序員來說是不可饒恕的。

我就把話放這?,F(xiàn)在,讓我詳細(xì)的說一下。我已經(jīng)兢兢業(yè)業(yè)的編程編了15年。很早我就接受了一些編程習(xí)慣,至今沒有改變。我能輕松的看懂我一年前寫的代碼,甚至2年前,12年前。各種語言的代碼,在各種業(yè)務(wù)領(lǐng)域里。算法,解析器,web應(yīng)用,嵌入式控制器,腳本,鏈接,所有你能想到的。即使有些很早的代碼,理解起來有些困難,但我仍然能從中看出一些模式的影子。

我能做到這些,主要的方法是認(rèn)識(shí)到代碼必須易讀。自己易讀,別人也易讀。代碼如果不可讀,那就會(huì)跟不可用的代碼一樣糟,甚至更糟。如果一段時(shí)間后你看不懂你自己寫的代碼,別人就更不可能看懂了,沒有這種可能。不會(huì)有任何一個(gè)軟件產(chǎn)品會(huì)因?yàn)槟愣档抿湴痢?/p>

我無法用更大的聲音強(qiáng)調(diào),讓自己的代碼易讀、易理解是何等的重要。不僅僅是它能讓你的軟件產(chǎn)品更好,更容易被別人維護(hù),同時(shí),這些代碼也將成為你自己的私人工具箱,你將會(huì)在今后的職業(yè)生涯里使用、反復(fù)的使用它們。擁有這樣一個(gè)工具箱,你將變得超級(jí)的強(qiáng)大,這將是你區(qū)別于其他編程高手的重要特征之一。我己經(jīng)記不清有多少次,當(dāng)面對(duì)一些似曾相識(shí)的問題時(shí),我通過回憶,在我的歷史代碼庫里搜尋,輕松快速的就能找到或整編出問題的解決方案。很顯然,你不能理解的代碼是進(jìn)入不了這樣的工具箱里的。

這樣結(jié)束這篇文章似乎有點(diǎn)玩世不恭,我應(yīng)該解釋一下是如何練就這樣的功力的。坦率地說,這很難用文字描述,但我盡力。

我非常確信,我的這種方法也被作家們(以及任何從事創(chuàng)新性職業(yè)的人)使用。一旦你寫完一段代碼(越小越好),你需要停下來,看看它是否易讀、易懂。讀它,反復(fù)的讀它數(shù)次。跳出你對(duì)這個(gè)問題熟知的環(huán)境,想象那些完全不知道上下文情況的人在讀這段代碼。這樣的一個(gè)人能讀懂嗎?如果不能,是因?yàn)槭裁??從你的?a class="book lazy " data-bookid="b1" href="javascript:void(0);">《代碼大全》等好書豐富而成的“代碼可讀性”百寶箱里找出所有可以的技巧,應(yīng)用它們,直到你確信這段代碼變得易讀為止。

一旦你滿意了,再讀一遍。幾天后再讀一遍。這讓我想起了我寫一些高深技術(shù)的文章時(shí),每一個(gè)句子,我都要讀上20遍,重寫5次。我寫代碼也經(jīng)常是如此。***可以因天賦而成,也可通過無情的重復(fù)和實(shí)驗(yàn)實(shí)現(xiàn)。因?yàn)槲也痪哂星罢?,我就一直?jiān)持著后者。

***,重構(gòu),無畏的改進(jìn)。如果你遇到一段可以更清晰的代碼,那就讓它更清晰。改進(jìn)代碼質(zhì)量是我們這種職業(yè)中一種難以把握的附加任務(wù),但當(dāng)你遇到一個(gè)持續(xù)一、兩年,涉及多人的大型項(xiàng)目后,你自然就會(huì)領(lǐng)悟其重要。

英文原文:Understanding your own code

譯文鏈接:http://www.aqee.net/understanding-your-own-code/

責(zé)任編輯:林師授 來源: 外刊IT評(píng)論
相關(guān)推薦

2020-03-30 16:45:06

代碼看不懂

2023-01-02 17:22:45

英文版動(dòng)機(jī)程序員

2020-03-06 11:30:08

JavaGitHub編程

2020-02-25 22:41:41

程序員技能開發(fā)者

2022-07-26 14:38:08

JavaScriptWeb安全自動(dòng)化

2023-06-30 08:01:04

Reactuse關(guān)鍵詞

2022-06-16 14:07:26

Java代碼代碼review

2019-10-24 08:56:38

語言代碼Java

2020-08-13 13:45:08

程序員技能開發(fā)者

2022-02-07 09:05:00

GitHub功能AI

2019-12-09 08:29:26

Netty架構(gòu)系統(tǒng)

2012-12-11 09:31:19

程序員職業(yè)素養(yǎng)

2015-12-14 17:26:42

程序員生活

2009-03-05 10:31:35

程序員IT行業(yè)職業(yè)規(guī)劃

2021-12-09 11:59:49

JavaScript前端提案

2022-12-12 07:40:36

服務(wù)器項(xiàng)目Serverless

2012-12-04 10:08:25

程序員

2009-02-23 13:00:17

程序員職業(yè)習(xí)慣

2013-07-25 09:47:40

程序員職業(yè)發(fā)展

2014-11-10 09:40:56

程序員
點(diǎn)贊
收藏

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