当前位置:首页 > 如何评估个人的软件开发能力
●建立用例模型。
●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。
●细化分析模型到设计模型。
●用具体的技术去实现。
●测试、部署、总结。
1.3 基本API的学习
进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的\不需要重新发明轮子\。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,JAVA DOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。
基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查JAVA DOC文档(参考文献4.4),二是使用JBuilder/Eclipse等IDE的代码提示功能。
1.4 特定API的学习
JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。
1.5 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具
JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。
从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是JAVA集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的JAVA IDE大战中,以其快速的版本更新击败IBM的Visual Age for JAVA等而成就一番伟业。IBM在Visual Age for JAVA上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓\柳暗花明又一村\。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。
1.6 学习软件工程
对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见\软件开发学习路线\小节。
2. 学习要点
确立的学习路线之后,我们还需要总结一下JAVA的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。
2.1勤查API文档
当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用\工具(包含在JDK中)生成标准的JAVA DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址:http://java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下载。也可以在线查看:http://java.sun.com/j2se/1.5.0/docs/api/index.html。
对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍。
当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。使用步骤一般如下:
●找特定的包,包一般根据功能组织。
●找需要使用类,类命名规范的话我们由类的名字可猜出一二。
●选择构造器,大多数使用类的方式是创建对象。
●选择你需要的方法。
2.2 查书/google->写代码测试->查看源代码->请教别人
当我们遇到问题的时候该如何解决?
这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像\某些类/方法如何使用的问题\,DOC文档就是答案。对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。而有的问题,你可能需要直接看API的源代码验证你的想法。万不得已才去请教别人。
2.3学习开源软件的设计思想
JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。
2.4 规范的重要性
没有规矩,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到http://www.jcp.org下载JSRXXX规范,多读规范,这是最权威准确最新的教材。第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。JAVA编码规范到此查看或下载http://java.sun.com/docs/codeconv/,中文的也有,啊,还要问我在哪,请参考3.2.2节。
2.5 不局限于JAVA
很不幸,很幸运,要学习的东西还有很多。不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。
JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵。
一. 工具的重要性
江湖中人为抢夺\屠龙刀\等神兵利器而掀起阵阵腥风血雨。世界列强为称霸世界或求自保而争相研发核武器、航空母舰。为什么?是因为认识到工具对人类的重要性。
《现代汉语词典》上对人的定义是:人是能制造工具并使用工具进行劳动的高等动物。
一部生产力发展史,就是人的生产工具不断发明改变的历史;一部社会发展史,是社会工具即组织及其制度发明、运用和变更的历史;而一部科学史,就是人用自然和人工的语言、逻辑规范,以及使用多种实验工具的认识史或发现史。可见工具之于人类是多么的重要。JAVA开发人员当然也不例外,在开发过程中需要用到形形色色的工具,这些工具可以帮助我们高效率的开发出满足客户需要的产品。
2004年01月07日, 由10家软件公司组成的JavaToolsCommunity(JTC)组织宣布成立。该组织致力于为开发商提供更为简单和高效的Java工具。JTC还希望为Java整合开发环境(IDE)提供一个通用的插件(add-on,plug-in)系统。通过建立一个插件与Java工具连接的标准化途径,开发商就能够混合使用来自不同供应商的各种不同工具。JTC目前正在开发一个名为JSR198的插件标准化系统。令人关注的Java工具重量级企业IBM和Borland目前还拒绝加入该组织,原因是什么?笔者认为根本原因在于这两家公司都拥有出色的JAVA开发工具。Borland的JBuilder,IBM支持的Eclipse,这两种IDE占据了绝大多数的市场份额。因此他们不想加入由SUN公司把持话语权的JTC也就可想而知了。在工具的标准方面,又一场龙虎斗拉开了序幕。
二.工具分类
那么JAVA开发人员需要什么类型的工具?如何选择工具?我们下面就开始分类进行探讨。
1. 纯文本开发工具
在开始学习JAVA的时候,我们一般使用纯文本的开发工具来编写JAVA程序。常见的纯文本编辑工具有Notepad记事本、Editplus、VI、Emacs、JCreator、UltraEdit等等。其中VI、Emacs是在Linux环境下使用,其余工具在Windows下使用。Notepad不支持关键词高亮显示,并且需切换到命令终端编译运行,因此一般使用在机器上没有别的编辑器的临时场合。JCreator支持关键词高亮显示,但只能够用于编写JAVA Applet及Application,在学习J2SE的时候使用的人还挺多的。
UltraEdit是一个很好的文字、Hex、ASCII 码编辑器,它的默认配置可以对C/C++, VB, HTML, Java和 Perl进行语法着色。可同时编辑多个文件。一般常会用其来修改EXE或DLL文件,如破解软件、修改游戏等等。与EditPlus很相似。
EditPlus 是 32 位文本编辑程序器,它可以完全替换记事本,它也提供网页开发人员及程序设计师许多强悍的功能。支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript 及 VBScript的语法关键词高亮显示。并且它可以在自定义语法文件后扩充支持其他的程序设计语言。嵌合网页浏览器作 HTML 页的预览,及 FTP 命令做本地文件上传到 FTP 服务器。在JAVA开发人员中很有市场,尤其是初学者。我们把编辑、编译、运行Applet/Application都集成在Editplus中,可以认为它就是一个小型的IDE。也是笔者钟爱的开发工具,强烈推荐。
2.反编译、混淆器工具
共分享92篇相关文档