野生程序員是指僅憑對計算機(jī)開發(fā)的興趣進(jìn)入這個行業(yè)呼盆,從前端到后臺一手包攬,但各方面能力都不精通的人蚁廓。野生程序員有很強(qiáng)大的單兵作戰(zhàn)能力访圃,但是在編入“正規(guī)軍”之后,可能會不適應(yīng)新的做事方法相嵌。
上面這段話摘自網(wǎng)上的一篇文章腿时。
那篇文章描述了一個野生的程序員如何如何不能融入團(tuán)隊的事情。
我覺得饭宾,野生程序員不應(yīng)該是這樣的批糟!
野生是一種悲哀,野生是一種不甘看铆,野生是一種精神徽鼎!
野生中的“野”應(yīng)該是一種鉆研的精神,一種對未知技術(shù)的渴求,一種生命不息學(xué)習(xí)不止的向往否淤。
野生只是一種起步的狀態(tài)悄但,而不應(yīng)該讓這種狀態(tài)伴隨你的全部職業(yè)生涯!
筆者從11年正式開始寫代碼石抡,零零散散學(xué)了不少語言檐嚣,做了不少項目,可以說是一只純種野生的程序員啰扛。但我始終知道自己的情況嚎京,就像那篇文章里說的一樣:僅憑對計算機(jī)開發(fā)的興趣進(jìn)入這個行業(yè),從前端到后臺一手包攬隐解,但各方面能力都不精通挖藏。
我一直渴望能夠加入到一個團(tuán)隊中,看看團(tuán)隊開發(fā)到底是什么樣子的厢漩。好在去年6月有幸加入到羅輯思維的大家庭中膜眠,在這里也快一年了,真的成長很多溜嗜。今天就先給大家說說我開始團(tuán)隊開發(fā)之后認(rèn)識到的第一個問題宵膨。
代碼字段的可讀性
這是我開始團(tuán)隊開發(fā)之后的第一個深刻的感受。以前總是看到或聽到人提可讀性可讀性炸宵,字面意思理解辟躏,但實際根本不明白。直到真正的參與到一個項目的開發(fā)中土全。
public function format_address_struct($data) {
if (empty($data)) {
return array();
}
$format_data = array(
'address_id' => intval($data['id']),
'province' => $data['province'],
'city' => $data['city'],
'district' => $data['district'],
'address' => $data['address'],
'zip' => $data['zip'],
'name' => $data['name'],
'mobile' => $data['mobile'],
'phone' => $data['phone']
);
return $format_data;
}
這段代碼很簡單捎琐,就是一個格式化。$data是從數(shù)據(jù)庫里拿到的值裹匙。我第一次看到這段代碼的時候就非常的不理解:為什么要進(jìn)行這一步格式化呢瑞凑?明顯的前后字段都是一毛一樣的,就是為了把id編程address_id概页?我以前自己做項目就從來不會有這一步籽御。
由于當(dāng)時剛剛加入團(tuán)隊,我也不敢問惰匙,怕被鄙視(捂臉)
過了幾天技掏,leader讓我負(fù)責(zé)一個模塊的開發(fā),數(shù)據(jù)表已經(jīng)給我建好了项鬼,讓我直接寫代碼就好了哑梳。開發(fā)的時候我就按照我原來的方式開始寫代碼了,然后做著做著我突然就明白了格式化有什么用:可讀性绘盟!
由于數(shù)據(jù)表不是我自己設(shè)計的鸠真,字段肯定不是很熟悯仙,寫代碼的過程中總得去看數(shù)據(jù)表結(jié)構(gòu)。如果有了這一段格式化的代碼呢弧哎?那我直接看代碼就行了雁比!
這是第一個可讀性問題稚虎。還有第二個撤嫩。
代碼邏輯的可讀性
這一塊兒現(xiàn)在找不到例子了,就簡單說說蠢终。
根據(jù)業(yè)務(wù)邏輯的需求序攘,相同的功能經(jīng)常可以用不同的代碼實現(xiàn)寻拂。一種代碼就是看上去會特別精簡程奠,算法設(shè)計特別精妙。
但是祭钉,可能隔個幾天你自己再來看都得掰chi半天瞄沙。。慌核。
這種情況下距境,實際上應(yīng)該考慮代碼重構(gòu),最終的目標(biāo)就是增強(qiáng)代碼的可讀性垮卓,重構(gòu)之后可能會多出幾個變量垫桂,多出幾行代碼,但是可讀性大大增強(qiáng)了粟按。
一句話诬滩,為了增強(qiáng)可讀性,犧牲一定的性能是值得的灭将!
*** --- * * *
我是閆大伯疼鸟,一只野生的程序猿。