如何编写好的应用程序

  编写良好的应用程序,是一名程序员具备的优秀素质,我们都从点滴的学习和代码编写的过程中,逐渐形成个人的编程习惯。在企业或团队中,初次参加工作的人,总会被要求认真了解本团队常用的编码风格和各种约定成俗的要求。除非是技术创新,在技术应用这个问题上总是仁者见仁智者见智。笔者总结自身在学习过程中的几点体会。


  很多人总在询问,我该学习一门什么技术才具有竞争力呢。曾经我有这样的疑问,并伴随很久,虽然至今仍旧持续地了解并学习一些技术,但随着学习,慢慢就会找到自己的答案。学会几门不同种类的编程语言,这其实不难,多数语言的语法存在相似性,C、C#、python。抛开对语言的成见,任何一门语言都能够达成你要的目的。正如多年以前javascript只能停留在DOM的操作上一样,现如今能够编写如socket等网络技术有关的应用。至于是解释型,还是编译型,更是一个模糊的无关痛痒的纠结。得益于编译技术的不断进步,需要放下相关的成见。编程语言不是技术但包括技术。不要把掌握某种语言变成挂在嘴边的对某种技术的得心应手。虽然从计算机科学的角度,语言和编译器都是相关的技术科学;但这很难成为所有人都能炫耀和生存的技术资本。静下心来,学习数据库操作,会编写网络程序,掌握数据结构,会远程调用;任何一门语言想要编写出实用的应用程序,没有这些技术怎么行。无论是PC,还是iOS,抑或是android;技术的内涵没有发生改变。换一下语言,换一种API外观,一切都是那么的熟悉。


  学习并掌握一个优秀的应用框架成为开发应用的必然,这是集体智慧的产物。好的框架既包括对已有技术的继承和发扬,同时会持续保持对新的技术手法、设计理念的持续跟进。应用框架同时包括对该技术的最佳实践,这给新手能够快速成长为老手提供了捷径。技术的奥秘总在一些奇技淫巧中,也就是交流中提到的某某某技术方法的最佳应用方法 。看看castle、spring这样的开源框架,如何使用我们早已经熟知的技术,才会明白,编程和掌握技术包括哪些要素。框架有很多优点,对直白的就是约束自身形成解决问题的思路和代码范式。这需要点滴的积累,和不断对已有认识的重构。
深入所用技术的内幕,这一点对于短期地帮助写好应用程序没有太多效果。不过通过理解技术细节,在应用时才能够快速发现各种技术的应用限制和程序的瓶颈。有助于程序员选择恰当合适的技术方案,改善已有程序的性能。对于成长为更高层次的人物大有裨益。


  学会质疑,科学理性地看待技术。爱编程,但不能狂热迷信,需要理性和科学知识的积累。即便如spring、hibernate这样成熟的框架,有时就是你编写应用的性能瓶颈。当有足够的能力时,去定制技术方案。使用适合的技术,正确的技术思路解决问题。我们做技术的,不只是会用好这门技术。


  了解多核。在单核时代,我们已经积累了大量通过网络集群的技术方法,并在当今不断发展。而在多核时间,甚至众核的情况下,硬件的体系架构发生了很大的变化。核与核有别于设备与设备的关系。数据通讯、运算交换,由于多线程存在差异。学习有关并行和并发有关的技术,让程序更加适应现代的体系架构是当今程序员不容忽视的问题。


  认识硬件加速,这也是个和硬件相关的探讨,实现起来也是绝非易事。单机的资源闲置越来越多,买回家的电脑或是服务器,性能翻倍了,但程序的运行没有改观。问题出在哪里?是操作系统还是应用程序,我想程序员要为这个问题埋单。

posted @ 2013-06-01 09:28  王忠惠  阅读(621)  评论(0编辑  收藏  举报