编程之美

  • 2018-09-18
  • 159
  • 0
  • 0

好久没有更博客,天天忙也不知道都忙了什么;
之前说要连续写30天博客,连续推送30天代码的目标在某一天给断了.
结果也不了了之
昨天晚上临睡前看了一会 O' Reilly Media, Inc 出的 Python学习手册, 在书中有一段讲Python和其他语言进行对比的段落,觉得说得很棒;
真是说到我心坎里了,因为最近正好做了一个项目,是二次开发; 嗯 ,说得好听的话叫做项目重构,说的不好听了叫项目重写;
当时拿到项目代码之后整个人是崩溃的,文件结构大概是这样子

AAAClass.h
AAAClass.m
BBBClass.h
BBBClass.m
CCCClass.h
CCCClass.m
....
....

嗯,还没有文档.....
花了两天读了一下代码, 没有重构,没有继承,各种oop思想没有;生生把Objective-C给写成了C语言;
我想所有的程序员应该都知道, 代码是写给人看的, 不是写给机器和电脑看的..
我觉得代码在设计和编写的时候更应该注重可读性,提高代码的可重用性,可维护性, 遵循这个原则,你的代码才不是写一次就丢掉的程序; 当然,一个人做项目是挺爽,没有约束,天马行空,肆意汪洋,但是一周两周三周一个月两个月后呢,当你去维护项目的时候怎么办....
对比Python和Perl这两种语言, 你可以用Python做到一切用Perl能到做到的事情, 但是做好之后, 你还可以阅读自己的程序代码; Python的美在于容易编写,容易阅读;更注重工程项目的可维护性;Perl就不一样,Perl很容易便携,但是程序员很难去阅读,你看代码很难猜到某一段代码的意图;
当然,这是因为两个语言的设计者背景不一样;
但是,这能体现人们选择使用Python的一些主要原因, 代码具有高度的统一性, 语法和工具集相当一致, 有一个很核心的概念, 简洁优美统一;
Perl呢, 完成的方法不只有一种,所以,有了这种鼓励,每个人的代码风格都充满了独特性,充满技巧性;而这种独特的技巧常常是Perl使用者之间的骄傲来源;
我想,任何做过实质性的代码维护工作的人,应该都可以正式, 自由的表达是一门很棒的艺术,但是对于一个工程来说就是很让人厌恶的一件事情了;在工程世界中,我们需要最小化功能集和可预测性;在工程世界中, 表达式自由度会造成维护的噩梦;
结果往往都是, 不行就推倒重来吧...
艺术和工程之间的关键差异在于个体的自由选择和一些独特的想法;但是一个优秀的程序员应该知道,代码应该是为下一个阅读它而进行维护或者重用的人写的. 如果下一个人无法理解代码,那在实际开发场景中就毫无用处了;
所以呀,好好写代码;
做好文档建设工作,认真写注释;

评论

还没有任何评论,你来说两句吧

你必须 登录 才能发表评论.