技术开发 频道

讨论:程序员高手和菜鸟的区别是什么?

  4.异常处理与稳定健壮

  通过异常处理可以看出一个程序员程序设计的严谨与扎实的基础知识。对于Java开发人员而言,会发现每一个方法都有可能需要强制的处理异常和声明这个函数需要处理的异常,这中强制的约束,会强迫开发人员来习惯性的考虑和思考它。不过,对于大部分人来说,它处理异常的方式就是简单的使用try { … } catch(Exception anyException) { // 忽略异常 },用这种方式来捕捉所有的异常信息。

  这样做的好处就是快,傻,缺点就是一旦出现问题,就不知道问题在哪发生,怎么回事,如果有靠谱的QA还好一些,比如外企,他们都有规范的测试方法和测试流程,一旦发现问题,就会将重现捕捉完整的描述出来给开发者看。不过,在国内没有严格的测试是很正常的,那么出现问题时,就傻了。客户是绝对不可能把出现问题的方式给你完整的Repro的,一旦出现问题,客户会干的就是急眼,那接下来怎么办?你就老老实实加班,老老实实的去猜去找问题。当“try { … } catch(Exception anyException) { // 忽略异常 }”这样的代码充斥整个软件系统时,你就可以想象有多可怕,这个软件能稳定就怪了!

异常处理与稳定健壮

  我曾经在一个热电公司,在半夜12点,好几个厂家的人聚在热电,等待0点时刻数据采集,一旦数据少了,那么你就麻烦了。我到现场之后,发现有很多开发人员拿个本子,需要不停的看数据库,或者需要将软件Debug打开,然后看看每一个时刻数据是否正常上来。这真是让我喜出望外,因为竞争对手太弱了!你们的软件在此之前,难道对它7×24小时不间断稳定运行那么没有信心?我们的软件,我通过系统运行过程的消息和日志,我就可以看出所有的东西,如下,消息窗口能够展示系统后台运行的详细过程。此外,还有非常完整的日志,任何异常我都可以找到,并想办法重现。

  关于异常处理,另一面,就是菜鸟程序员在写代码或者实现功能的时候,一般不考虑反面情况,一个软件按照正常步骤可能能走通,但是一旦出点意外,就麻烦了。以下就是一个典型的代码。

If(*****)
{
// ….do something…
}

  这个代码处理了if,但是万一出现else的情况呢?可想而知,系统将会出现无法意料的情况。因此,这也是菜鸟程序员做的系统一般都非常不稳定的一个根源,做程序一般只考虑功能实现,忽略掉意外情况。

  5.优雅与美观

  菜鸟程序员并不是缺乏审美,缺乏的是优雅和美观的抽象能力。一个好的系统,要做到两点,好用,好看!因此,这绝对不是单单功能上的堆砌。很多国产软件都深深的烙上了技术人员设计的印子,一看就知道这个软件是出自一个技术人员的设计和实现,一看就知道这个软件的实现过程,这简直是惨不忍睹,不过,各位看官,这就是你们的机遇啊。

  菜鸟技术人员开发功能的时候,一般都是从实现的角度进行堆砌,怎么简单,怎么来。不会去仔细分析,用户在操作这个功能的时候,到底还会做什么事情,各个功能之间怎么进行有机结合来完整的进行结合。相反,一些技术比较好的程序员往往都要直面客户,经常被客户骂,骂着骂着,也有点觉悟了。

  当然,也有一些程序员因为自尊,直接不干了。不过,我觉得厉害的程序员基本都有用户意识,也希望自己的软件能有很好的评价,甚至能够影响社会。好用,好看,是软件能够被普遍采用的前提,因此,我们需要学会抽象优雅。

  6.基础扎实

  技术知识决定一个人能做的技术的层次。基础的知识有计算机组成原理、计算机操作系统、网络原理、数据库原理、计算机图形学、编译原理、数据结构、离散数学、人工智能等等很高深的理论知识。

  在这些基础知识之上,就是软件开发语言、类库、框架,面向过程、面向对象、面向服务等编程思想,架构思想等等。

3
相关文章