如何做一个工程(牛腩总结)

牛腩新闻发布系统今天发布了,这个阶段差不多接近尾声了,仔细回想了一下做整个系统的过程,最后就剩下了一句话:“我还有很多很多的东西要学”;

          整个系统过程再现:

          一,牛腩老师分析了整个系统的功能,运用工程思想来做工程,这里写了一份软件设计说明书,虽然这里只是写了一份软件设计说明书,图也只是画了一种用例图。但是对于这个小系统,或者对于作者来说已经够了。工程思想做工程,目的不是为了将每个工程文档写的天花乱坠,将每种图画的的让人目眩神迷,恰恰相反,我们画图写文档,在能够用来交流的前提下要尽量简介,画图来代替文字就也有这么个目的。

         虽说够用就行,但是我们自己仔细想想,我们平时画一种图,写一份文档对于我们自己或者合作的伙伴够用吗?能够将整个系统借助文档和图很好的理解吗?所以说即使为了够有文档和图的数量也是少不了的。

         对比了一下牛腩新闻发布系统,仔细的回想了一下自己做过机房收费系统,自己在做这部分分析内容的时候,大体上遵循这么个步骤,首先画用例图,先在大粒度上分析整个系统都包含了哪些功能,然后是画活动图,画出活动图来的目的是让自己大体上了解每一个功能的实现大概经历了哪些步骤,这里活动图比用例图的粒度更加的精细了,再然后是画包图,类图,我感觉画这两个图的目的是为了时序图服务的,个人认为,只有在画时序图的时候才能够将每个功能的每个细节勾勒的非常清楚,而画时序图当然少不了包图和类图的辅助。用例图,活动图,时序图,粒度逐渐精细,系统在这个过程也是从一个骨架慢慢的演变成了一个有血有肉的“人”了。


        二,牛老师分析完系统功能,做好准备工作,按照分析的业务将数据库建出来了,个人感觉是他这数据库建的太轻松了。多方面原因,可是能设计的数据少,还有就是牛老师乃IT神人,信手拈来,这就是经验,经过验证的东西就成了经验,你学不来,只有自己去验证才能慢慢的成为自己的经验。所以牛老师是牛人数据库新手拈来,我们学不来,我们还是按部就班的一点点的分析的好。

       还是那句对比自己做机房收费系统,数据库的建立,个人感觉首先找实体,然后是画E-R图,真正做的时候才明白,思考真的代替不了画图,只有当你画图的时候实体间的关系才能够越来越清晰。这里做出的就是大名鼎鼎的概念图,然后根据数据库概念图,然后根据概念图导出数据库逻辑图,最后根据逻辑图生成了数据库的物理图。这些做完了工程中的数据库设计说明书也就出来了,牛老师没这么做,但我们要做,所以数据库设计说明书还是很重要的。


      三,牛老师做出了界面图,我们专业叫法是原型图。个人对此想法不多,做机房收费系统的时候原型图是本身就有了,稍微做了一下改动也就拿来用了,虽然是拿来用,但是这里体现了复用的原则,不丢人。真正的做系统的时候很多情况下很多现成的东西是提倡拿来用的,很多公司都是这么做的,这样节约人力,物力,更重要的是节约财力了。当然现阶段来学习还是不提倡的。


      四,牛老师开始写代码了,关于写代码可有的说了,当然不打算说技术,只是说经验,技术很容易学,但是经验,你不经过时间点点滴滴的来验证很难有的。

       整个系统的架构是按照三层来的,首先写的是D层,D层分类是按照表和视图来分的。类中的方法全部都是对表的基本的增删改查,按照道理来说基本上不做逻辑判断,当然规矩是死的人是活的,为了更高效,为了更高的追求总要有舍有得。这里不得不说的是牛老师的经验,牛老师调用类中方法的时候很少先声明,而是直接用 new来初始化,至于为什么牛人总是这么做,自己慢慢体会吧。还有就是实体类建立的时候每个必用构造函数来赋初值,这是牛人的习惯,很好的习惯,我们要学习,这样写,后面会省很多的代码量。不过不完全是好,如果老总按照代码行数来开工资,估计牛老师绝对不会这么做。

       sqlhelp,一个说不完道不尽的话题,这里只说,牛人写的真好,至于是不是最好的,可以肯定的说不是,但是至今是我见到的最好的,没见到更好的,只是自己孤陋寡闻的。还是那句话,自己需要学的东西还有很多。当然这里一些什么防注入啊,触发器啊,存储过程,等等这些,开发人员的基础,不会就赶紧学吧。


     五,BLL层的编写,这个一个让我很无语的层,完全没有一点作用,判断直接都放在D层了,没有存在的必要了,但是事实上又不是如此,只能说即使是牛人,可能因为某些原因也不能把事情做到尽善尽美的。


      六,这里牛人介绍了一些若工程用的软件工具,牛人的系统放到哪里都能照样运行。这里体会到一点东西,那就是不论是做系统还是做事都要以人为本,即使不能做到尽善尽美,我们也要有一颗尽善尽美的心,米老师说的那样,这些就是素质,技术能学,素质就不好说了。

 

  七,开始了界面的制作了,这里是整个系统最最纠结的开始,深深的体会到了为什么要让我们做这个系统,在我们很多知识不具备的前提下。

      首先我们要学的是快速学习和使用,知识是学不完的,尤其是IT行业,知识的更新换代的速度让你拍马难及,可是你又需要这些知识怎么办,这里就是考验每个程序员的基本素质了,快速学习上手使用,需要用到什么了,马上查,即使不是很懂,没关系,能照着葫芦画出瓢来就行了,因为很多知识很可能这辈子你就用一次,用完忘了就行了。当然这种素质不是做个系统就能培养出来的,首先培养的是意识,快速学习的使用的意识,当然做到这些需要大量的专业知识做你的坚强后盾。这里做这个系统另一个目的就是为下一个阶段的学习来个提纲挈领式的体验。css不懂,Javascript不懂, jquery不懂,ajax不懂,不懂没关系,知道有这些技术吗,知道大概干嘛用吗,这些就够了,然后我们就是会系统的学习这些知识,而我们再学习这些知识的时候已经不是无源的水,无根的草了,因为我们已经做了牛腩发布系统了,当我们学的时候对照着这个系统学习,事半功倍。

       最后还是那句话,我需要学习的东西还有很多,路还有很长,庆幸的是知道自己的路在何方,路在脚下。

 

你可能感兴趣的:(总结)