开发语言的思考和理解

什么是程序的开发语言???
面对这个问题,也许作为开发人员的第一反应是:开发语言?写程序的啊!
还有深刻点的:开发语言?就是人与计算机沟通的语言啊!

但是,也许从另外一个角度看,程序开发语言是否可以理解为人类文明中的英语、汉语等同样的文化事物?语言可以这样定义:是人们进行沟通、交流的主要表达方式。只是对于程序开发语言来讲,这个定义中的“人们”的范围主要是指软件开发人员。而程序开发语言编译出来的程序可以视为这个语言的副产品。

在这种理解的基础上,我们看程序开发语言,尤其是看开发人员写的代码,特别是看开发人员如何写代码,写成怎样的代码?就很有意思了。

既然程序开发语言如英语、汉语,那程序开发人员写的代码就是文章,这些文章看上去会是说明文、记叙文、散文、还是诗歌?但也许更多的看上去像是天书。

为什么有的企业招聘开发人员时,可能会希望开发人员阅读、学习过某些著名框架的源代码,因为这些源代码往往是程序代码中的史诗级巨著。

同样是代码,为何有的能写成天书(即使其作者可能一个月后再回头看,也无法立即理解自己写的代码),而有的能写成似优美的文章?原因可能是对编码规范的执行、对业务逻辑的理解程度,对软件设计抽象的高度、对系统设计模式的掌握和对开发语言本质的认识。

对开发语言本质的认识如本文开始所述。到这里,在使用面向对象语言撰写代码时,最基础、核心的原则要求则是:代码的能体现语言的主语、宾语和动词。窃以为,体现了这一点,则真正理解了面向对象语言的内涵。

对编码规范的执行,是最基础的要求。最简单、常见的问题是:命名的规范。很多代码里面一个变量命名可以是 a、b、c,i、j、k,这种神一样的命名可以统称为神奇变量,目的只有一个:我的想法不告诉你,你自己猜......。俗话说,名不正则言不顺。在这里,理解这句话就是取名都取不好,说话(语言)也说不利落。作者就是不想用程序设计语言好好说话,就是不想多写几个字母,哪怕是写成 name、age 和 color等等,就是不说人话。

关于对业务逻辑的理解,可以用一个很好的原则去达到,就是采用领域驱动设计(DDD)的方法。

对软件设计抽象的高度主要是指面向对象若干设计原则:1、开闭原则;2、里氏替换原则;3、单一职责原则;4、接口隔离原则;5、依赖倒置原则;6、迪米特原则;7、组合/聚合复用原则等。

对系统设计模式的掌握主要是指能在适合的情景、以恰当的方式应用GOF23种设计模式。

所有的一切,总结起来就是:对技术的追求要上升成对艺术的追求,进而产生强迫症。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值