最开始的时候用C/C++, 然后因为工作的需要用过一段时间python,但是因为时间太短 实在是没有怎么入门,只是对这个语言充满了好奇与冲动。倒是是C# 一直做到了现在,但是也基本上是夹杂着C++来做一些模块。 ,以前用C C++的时候更多的关注的是一些语法 或者api的调用,曾经有极度的冲动 背api函数原型还有就是语法、一些小技巧等等。但是在用.net平台的时候更多的关注却是模式 设计方面的东西。
现在回过头来 转到了偏linux的程序设计,感觉转了圈圈又给转回来了,转回来了再想想以前还是颇有感触的。如果用俩个字来形容那就是 “道” 和“术”。
在我看来那些语法、函数、使用方法和技巧属于术这一层面的东西,术是基础、是根基、是工具,术的水平体现在我们对语法对函数等当前平台本身的能力了解, 就如我们在写代码的时候能够很迅速的反应出来 在当前环境下 别人为我们提供了什么、要求我们怎么做、我们能够做什么、怎么做。我曾经就有极度的冲动去背那些函数 语法,最后可能是因为我这人实在太懒了又没有毅力 未遂~~。
可是仅仅有这些还是不够的,在实际开发的过程中经常性我们发现程序设计之所以叫做设计,不是简单的把函数+算法用符合语法的方式给堆砌起来的。正如一千个人有一千个哈姆雷特一样,不同的人写的程序 抛开命名风格等等不论,就函数的分拆、类的组织,对于大型一点的程序来说 包括模块的分拆等等都是大相迥异的。而这些函数的分拆与组织、类的设计、模块的组成等等就是一种超越术层面的概念,我觉得用道这个词实在是比较贴切。我们依次而分析判断怎么样才能做好,有的时候 面对一些比较复杂或繁琐的需求的时候,如果没有合理的设计 甚至不是做好而是根本上完成不了的。并且这些也并不仅仅是架构者、设计者所需要关注的问题。实际上程序设计这个名词本身就包含这设计的概念咯。
当然就如我们不能在浮沙上建高塔一样,如果没有一定的功底,空谈类的设计也是枉然。正所谓 工欲善其事,必先利其器。对于工具的足够了解 在开发过程中绝对是有很大的帮助的。
呵呵 今天先扯淡 胡乱扯扯~~