软件开发的终极境界?
来源:广州软件开发 编辑:广州软件开发公司 日期:2017-03-22
软件开发的终极境界是什么呢?数学?哲学?or艺术?
第一重境界应该毫无疑问,是数学。
软件开发一个至关重要的方面是算法,一切的现实问题要用软件来实现归根到底要实现为相应的算法,而要让实现算法并且让算法高效必然需要利用好各种数学工具,掌握精深的数学知识无疑是学好算法的关键。
第二重境界是哲学?
看看各种设计模式,企业架构模式,其中透露的都是软件开发的哲学。举个例子,有一句话说:“任何软件开发问题都可以通过加一个层来解决”。分层设计俨然就是软件开发的哲学。再看看面向对象的开发中,继承,封装,面向接口等等思想,都很容易上升到哲学的高度,而且很多思想和其他的社会问题都是相通的。比如我们日常生活中对一件事情进行闭环实现的四个环节是APDC(Analyze, Plan, Do, Check),即分析,建议,行动,事后评估,而在软件开发中我们最关键的四个环节也是需求分析,设计,开发,测试。何其类似?很多软件问题的解决事实上要依赖于哲学上的思考
第三重境界是艺术?
看看《代码之美》,《架构设计艺术》,《程序设计艺术》等等冠以艺术之名的计算机开发书籍如雨后春笋般不断涌现,我们便知道越来越多的开发人员把软件开发看成一种艺术创作,把自己开发出来的软件当作一件艺术品一样精雕细琢。美正是艺术的终极追求,什么样的软件是美的,什么样的软件能让我们醉心其中,流连忘返?简单是美么?结构上的美么?还是那些UML图本身就像山水画/水墨画/油画一般的让我们感受到一种图像之美?
相关阅读