可能在我们刚刚学习了某一门语言之后,包括HTML或者C.......我们就可以简单的写出一些代码,然后带来我们想要的效果,但是这充其量是程序员的第一个境界,但是后来随着我们知识的增长,我们可能会学习一些面向对象的变成方式例如我们学习了C++ 或者java,这时我们开始学习了大量的类库,这时要是让我们编一段 短小的程序,或者写一个工具类,可能都不在话下了,通常我们在写这一种程序的时候,通常我们我们可能也不想具体的思路,因为程序短小比较简单,遇到一些更聪明的人干脆从网上找一段程序,在自己的IDE上调试一下,感觉没有任何问题,这就可以开始对这段程序投入使用了。
还记得我们在上学那会,我们在学软件工程的时候,老师和教材总是教导我们,应该先写一个需求分析和程序的具体流程图,然后才可以着手进行软件开发,我们刚开始之所以可以不用写需求说明,也不用画流程图,大概是因为我们可能还没有从事一个真正的软件开发工作,在真正的软件开发过程中,我们必须做到,首先要考虑需求分析问题,然后最重要的就要考虑画流程图,也就是程序的具体数据流的方向,或者说程序的执行时序是什么,如果我们不想这些,可能我们根本都不能成功的进行编程,或者好一点来说,程序编到最后可能根本不是我们想要的。
实际上在真正的软件开发过程中需求分析和流程图是非常有必要的(非常有经验的或者开发过类似项目的这些大牛们排除掉),例如说,当我们在开发一个项目时我们要明确我们的目标,我们到底是要干什么,我们开发出来的东西具体要有哪些功能,我们怎么实现这些功能,实现上这些功能的过程中我们在技术上可能会遇到什么问题,遇到问题后我们的解决方式都有哪些。围绕这些话题我们可以继续讨论下去..........
首先需求要明确,在需求明确之后,我们千万记住流程图每一步都要画的非常清楚,因为在开发过程中我们可能会遇到各种各样的问题,特别对初入职场的程序员来说,例如说:我们现在要干这样一件工作,由于数据库的部分数据我们有特殊的需要,我们需要迁移出来一部分合并到另外一种数据库中,而且这一部分数据量特别大,我们就开始想了,如果直接查出来插入进去势必会导致速度特别慢,我们这时可能会想到使用一些工具例如MQ(消息队列),当我们在使用这写框架之类的时候特别是数据量非常大时,我们就要考虑到长时间连接的问题,或者说如果出现了具体问题我们又该怎么办呢,所以说如果团队里面没有对一个框架特别熟悉的特别了解的时候,我们最好还是暂时不要使用,因为这样很可能,我们的工作时间会变成研究这个框架的时间,所以这时候我们就要考虑一些我们经常熟练使用的一些方法,例如我们可以使用多线程,分页获取的办法,因为这些都在我们的控制范围之内。每一步都要考虑的非常清楚,才能开始着手工作,如果我们一边想一边做,可能会浪费大量的时间,也可能一切都很顺利,就差最后一点我们按着这个思路没法实现,这时我们前面的所作的所有工作都将白费时间。
这就是告诉我们,我们在进行一项开发工作时每一步必须考虑的非常清楚,一直到程序的完成阶段。在没有任何问题之后,以及在开发过程中可能我们出现的问题,我们都需要详细考虑一下,然后才能开始着手开发,这样我们在开发的过程中无论是在时间上还是在人力上势必会提高我们的工作效率。当然我不是不提倡使用新技术,在使用的前提下我们是对这个东西的性能非常明了的情况下在使用为好。这是我简单总结的开发过程中我们需要注意的问题,大家有什么好的意见也可以给我交流交流,让我也好好学习一下。