浅谈程序设计的艺术

来源:互联网 发布:数据库中查找学生名字 编辑:程序博客网 时间:2024/05/15 02:52
 刚才来计院的时候,经过了艺术学院,那儿好像有一个人的画展
我突然意识到,对我,这个世界上只有一种艺术,那就是编程的艺术

人们总是认为写程序是一件很枯燥,很无聊的事
即使是很多IT从业者也有这样的想法
所以会觉得做程序员是一件很苦的事情

其实任何一份工作这样你喜欢,就不会无聊
即使像程序这样没有生命的东西,也有很多美妙的东西可以说

说到语言,我们很多人首先会想到的就是语法
没错,语法很重要,但他就像ABC之于英国人,最基础不过了
所以,语法于艺术无关

对于程序设计,无非以下的规则:简洁,易懂,效率高(当然,功能的实现也与艺术无关)
移植性,扩展性是分析员要考虑的工作,与我们无关。

首先说的是简洁易懂
为了让维护人员更好地理解我们的程序,我们要写出更规范的代码
buf1,buf2,temp1,temp2这样的变量名只会招致别人的唾骂
驼峰式和匈牙利命名法是目前比较流行的命名规则
简洁就意味着goto这样的语句是不可以使用的了
而java里的两层或两层以上的break语句也是能省则省的

下面说的就是效率了
多项式的时间复杂度是解决任何问题的目标
决不能为了偷工减料而采用复杂度较差的算法
永远记住,越来越快的CPU永远只为用户服务
提到效率,就得说说java了
其实我在大一的时候就已经开始看java方面的书了
但我对java一直很抵制,就是因为他的解释执行
但是凡事都有两面性,java的平台无关性从某种意义上意味着未来的趋势

好了,说了这么多,该言归正传了
程序设计的艺术应该是在完成上述所说的高效率编程的基础之上在加上一些画龙点睛之笔
所谓画龙点睛就是一些看似微不足道的语句,事实上却带来程序翻天覆地变化的地方
前两天看到了一个程序,关于快速排序的
就是一段交换的语句让我看了足足半个小时,
天哪,太美了
就是这个简单的三句交换的语句却可以极大地提高执行效率
我粗略地估计了一下,对于一个16个数字的数组
不加这一段和加上这一段执行的次数分别为15和9
效率提高了足足三分之一
太神奇了

说了这么多,好像就没有对程序设计的艺术下个定义
本来有想的,可是写到这儿我突然意识到,我只是看到了冰山的一角
我根本没有资格给他下定义,真的害怕会贻笑大方
但不管怎样,我追求艺术的心永远不会停止