随想录(从编程语言到库、框架、软件)
【 声明:版权全部,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
从我開始学习计算机開始,接触的编程语言不下十余种。除了主要的C、C++、pascal、basic之外,光是脚本语言就接触了六、七种。出现这么多语言,一方面是由于业务的须要,还有一方面也来自于企业的推广。特别是近期多媒体、互联网的盛行,软件公司为程序猿做了大量的基础性编程工作,基本上程序猿做好业务逻辑的设计就能够了。
(1)编程语言
假设说什么语言是最基础性的,那么C语言能够说是当之无愧的。从语法结构上说,C语言基本上涵盖了最主要的语法集。之后出现的C++、java,包含在web端盛行的python、go、ruby等等,无一不是以此为基础进行设计的。所以,对于计算机系或者大一点说,对于工科的同学来说,掌握C语言应该是大家必须掌握的一门基础功课。即使将来不是从事编程工作,学习它简约的设计思想对自己也是大有裨益的。
(2)第三方库
无论什么编程语言,一般系统都会额外提供一个主要的函数库。这当中包含字符串处理、文件读写、多线程訪问、gui、数据库连接等等。当然上面这些函数库,还是远远不够的,非常多时候我们还须要引入大量的第三方函数库。比方加密库aes、校验代码库crc、网络库libevent、xml库、zlib压缩库、正則表達式库、ffmpeg编解码库、webkit引擎库、openssl库。非常多的库函数不仅被业界广泛使用,并且质量也有保证。当然,出现故障有时候也比較普遍,openssl就是一个范例。
(3)框架
有了编程语言,基本上你就能够開始甩开膀子干了。可是,非常多时候我们做的事实上是无用功。为什么呢?细心发现,我们就会看见原来市场上出现了非常多针对详细业务的软件框架了。比方说游戏界的cocos2d-x,webserver里面的webpy,javaserver端的spring,windows开发应用下的mfc框架,
大名鼎鼎的ruby on rails,各种各样的rtos等等。非常多时候,我们要做的不是又一次造船。由于这样不仅费时费力,软件质量也没有保障。与其把时间浪费在这个上面,还不如专心做好自己的业务呢。
(4)软件
有了上面的三个部分,规划一个几万行到几十万行代码量的软件应该是能够保证的。可是怎样管理项目、分析消费者需求、高速满足业务须要,这才是大多数开发人员须要啃下的硬骨头。无论是client还是server端,无论是运维还是售后支持,无论是性能拓展还是稳定性保证,这中间都有大量的工作要做。所以,有时想想,软件事实上真不是写代码这么简单的一件事情。