看来偶的WEB软件开发基本功还得再扎实一些
刚才来网吧的时候看见一个哥们在玩“劲乐团”,弹奏的是《菠菜进行曲》,整个弹下来竟然一个也没错,而且是百分之90都是“Cool”,真是太精彩了。是呀,干什么都有高手,开发软件也是,偶怎么说写程序也一年多了。可是现在感觉基础还是不够扎实,尤其是开发web程序,相关的技术和知识很杂,客户端的Javascript,CSS,VML,XML,XSLT,XPATH,DOM,HTML,HTC等,这些都是经常用到的web客户端技术(当然有一些是通用的技术,不一定非在客户端使用),服务段vbs,c#,ASP.NET,ASP,这些也是我常用的。还有一些知识是建立在具体技术上的,需求分析,项目管理,风险跟踪,BUG管理,单元测试,源码控制等等,当然还有一些通用的跨语言的编程知识,OO思想,数据库设计,数据库管理,算法,正则表达式,数据结构等。每种具体语言或者技术里又分着很多详细的技术细节,拿c#来说吧,多线程,异步调用,异常处理,反射等都有很多的知识要掌握,而且每项技术都很重要。当然做好一个程序还有一些整体上的技巧,这些技巧贯穿整个软件开发过程,界面人本性设计,安全性考虑,可维护性考虑,提高性能技巧,扩展性考虑,兼容性考虑,可移植性考虑,易用性考虑等等吧,这些是判断软件是否成功的依据。再加上一些新技术还在不断的出现web服务,o/r mapping,MDA,UML2.0,产生式编程,AOP,SOA,重构,AJAX,FDD,XP,RUP等等。
简直是太恐怖了,这么多摆在面前的东西真是让我眼花缭乱,仔细看看吧,哪个也有用,哪个也很有道理,很有实际意义,而且对这些东西也都有一些粗浅的了解,大多都是在网上或书上通过一两篇文章了解的。这些天仔细想了想,我还得再从头开始复习一下基础,不能让这些眼花缭乱的东西迷惑了我的视线,经过考虑,我列举了一些基础的底层的技术来学习(当然我指的是web的底层,不是说硬件开发)。以后也不老看一些网上新出的文章了,有空了多下载一些成熟的源码来看看,改改,我感觉这是能最快的也是最好的利用网络资源的方法,看了文章,学了技术,不一定就能做出软件,而直接看源码(当然不能一点儿基础也没有),改动一下就可以投入生产中去,而且还可以直接借鉴成熟的开发思路,有的软件别说看源码,就是看演示也能给我很大的启发,比如操作流程,界面设计等方面。我想,只要用心一些,从实例入手,肯定能从中汲取知识的。
我列举了一下我认为基础的必要的WEB开发知识。
Javascript&DHTML
CSS
.NET类库
c#语言
单元测试
BUG跟踪
写开发文档
理由不说了,总之我认为这些是基础的,应该学的扎实扎实再扎实的程度,当然除了这些还有好多相当重要的技术要掌握,但我认为这些是基础的技术。我打算最近要从这几方面来巩固编程基础。
关于Javascript,CSS我已经下载了Wrox的两本书的源码,我想有空了就看看这些源码,试图去分析解释一下那些代码,毕竟我对javascript和css不是一点儿也不懂,直接看演示代码我感觉会更好一些,如果有什么新的发现,我会把源码做全面的注释保存起来的。
.NET类库就看MSDN了,从简单的类和接口开始看,ArrayList,StringBuilder,HashTable,DataTable之类的开始,把这些基础的每个类的属性和方法都记熟了,我感觉基础的类一定要背过。然后着中学习一些高级的类,大概知道这些高级类的成员可以完成那些功能,以便以后用的时候知道用哪个空间下的哪些类。
c#语言嘛,这些语言特性的东西也很重要,豆浆给我买了《高效掌握c#》,刚开始看着不怎么样,主要是因为翻译的有些句子太生硬,不好理解,后来也习惯了,感觉内容还挺好,也实用,说的都在点儿上,在容易出错的地方都做了一些说明,而且知识结构划分的也很合理。另外我还下载了《C#小黑书》(一本很出名的书)的源码,有空了从头把哪些例子调试一下,以迅速掌握c#编程的通用常规技巧。
单元测试和BUG跟踪还有写开发文档主要还是在于培养一种良好的习惯,关于源码控制,单元测试还有BUG管理我了解的还非常少,得再找几篇经典的文章看看,再下载一些相关的工具来配合使用,我认为这几项都是提高软件质量和开发效率的关键技术,所以应该有意识的培养一下这方面的习惯,多做测试,多写文档,但我想我不会弄的特别过渡的吧,如果严格按照CMM的规定来开发软件那不累死呀。
磨刀不误砍柴功,我看这写软件不是一天两天的事,大不了从头再来。学不好知识怎么能写好软件呢。