前言
最近入职了一家新公司,看到公司的代码,简直头皮发麻,无从新手。代码间各种嵌套引用、封装复用、链式继承,牵一发而动全身啊。
个人观点
人生中大部分事情,应该都会经历三个阶段吧:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水;它通过对 “山水” 意象的三重解读,揭示了人在认知世界、探寻真理过程中的心路历程,蕴含着从懵懂到困惑、再到通透的螺旋式成长逻辑。写代码亦是如此,看一个人的代码水平或多或少能对此人有一丢丢的了解
看山是山看水是水
这个阶段或许是刚入行的程序员,刚开始写代码的阶段。对代码的理解比较单纯,停留在代码的表面(山就是山的形态,水就是水的模样,一切非黑即白,善恶分明,世界以简单直接的方式呈现在眼前)。 function方法就是一个方法,一个var的变量就是一个变量,代码没有过多的复用、封装、引用、容错等能力。代码不报错,功能能完成,那就大功告成了,还很有成就感
看山不是山,看水不是水
我入行3-5年了,来瞅瞅我的代码。3-5应该就是这个阶段了啊。水已经不在是那个流动的液体了,山也不在是那个物理形态的山了。代码飞起,A文件引入B文件,B文件引用C文件;A继承了B,B又继承了C,C甚至继承了Base;一个util方法,又引入了另外一个方法;一个项目搭建起来,真是庞大且富有超级成就感啊,从此也是独自搭过项目的人了。
看山是山看水是水
历经困惑与探索后,终于穿透表象,抵达对本质的觉悟。此时,山仍是山,水仍是水,但视角已从 “见山是山” 的懵懂升华为 “见山只是山” 的通透。这样的代码我想才是回归了代码的本色之道,简洁、清爽、干练,具有容错性、可阅读性、可维护性。
程序员何苦为难程序员啊