野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人。野生程序员有很强大的单兵作战能力,但是在编入“正规军”之后,可能会不适应新的做事方法。
上面这段话摘自网上的一篇文章。
那篇文章描述了一个野生的程序员如何如何不能融入团队的事情。
我觉得,野生程序员不应该是这样的!
野生是一种悲哀,野生是一种不甘,野生是一种精神!
野生中的“野”应该是一种钻研的精神,一种对未知技术的渴求,一种生命不息学习不止的向往。
野生只是一种起步的状态,而不应该让这种状态伴随你的全部职业生涯!
笔者从11年正式开始写代码,零零散散学了不少语言,做了不少项目,可以说是一只纯种野生的程序员。但我始终知道自己的情况,就像那篇文章里说的一样:仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通。
我一直渴望能够加入到一个团队中,看看团队开发到底是什么样子的。好在去年6月有幸加入到罗辑思维的大家庭中,在这里也快一年了,真的成长很多。今天就先给大家说说我开始团队开发之后认识到的第一个问题。
代码字段的可读性
这是我开始团队开发之后的第一个深刻的感受。以前总是看到或听到人提可读性可读性,字面意思理解,但实际根本不明白。直到真正的参与到一个项目的开发中。
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是从数据库里拿到的值。我第一次看到这段代码的时候就非常的不理解:为什么要进行这一步格式化呢?明显的前后字段都是一毛一样的,就是为了把id编程address_id?我以前自己做项目就从来不会有这一步。
由于当时刚刚加入团队,我也不敢问,怕被鄙视(捂脸)
过了几天,leader让我负责一个模块的开发,数据表已经给我建好了,让我直接写代码就好了。开发的时候我就按照我原来的方式开始写代码了,然后做着做着我突然就明白了格式化有什么用:可读性!
由于数据表不是我自己设计的,字段肯定不是很熟,写代码的过程中总得去看数据表结构。如果有了这一段格式化的代码呢?那我直接看代码就行了!
这是第一个可读性问题。还有第二个。
代码逻辑的可读性
这一块儿现在找不到例子了,就简单说说。
根据业务逻辑的需求,相同的功能经常可以用不同的代码实现。一种代码就是看上去会特别精简,算法设计特别精妙。
但是,可能隔个几天你自己再来看都得掰chi半天。。。
这种情况下,实际上应该考虑代码重构,最终的目标就是增强代码的可读性,重构之后可能会多出几个变量,多出几行代码,但是可读性大大增强了。
一句话,为了增强可读性,牺牲一定的性能是值得的!
*** --- * * *
我是闫大伯,一只野生的程序猿。