无废话阿里巴巴技术部新人指南.docx
无废话阿里巴巴技术部新人指南1 .写作目的首先,欢迎你加入阿里巴巴技术部大家庭!阿里巴巴技术部的工程师的工作内容比较复杂,新人适应工作有一定的复杂度,我们希望能有一份指南能回答新人遇到的常见问题,这样能帮助他们快速适应工作。本文档期望通过一些简明的指引,在技术层面上,帮助你了尽快掌握并参与到阿里巴巴的技术开发工作。阿里巴巴技术部Java开发工程师工作时会遇到的所有常见问题都能在这里找到解答。对于普通的问题,可能在这里直接给出答案。对于复杂的问题,这里可能仅指出一个解答问题的指引(网址、知道问题答案的人的联系方式)。2 .阿里巴巴Java技术框架概述阿里巴巴的主流Java框架是自己写的,同时结合了大量opensource的资源。令WEB层使用webx框架。主要利用velocity模板技术来展现页面。个业务层主要使用command模式实现。WEB层通过commanddispatcher的调用来使用业务逻辑。< 数据访问层使用DAO(DataAccessObject)模式。底层使用iBatis来访问数据库。数据采用的是Oracle。数据库操作的SQL语句需要你手工书写相关的SQL代码(对于复杂的SQL语句需要通过DBA的评审)。< 在所有层次上,我们都广泛使用了Springframework。因此你需要对Spring有一定的了解才行。令开发工具,我们采用IDE和命令行相结合的模式。在命令行上,我们用antx工具来组织项目、build项目、发布项目。但我们多数时间会在eclipse集成环境上,开发、调试应用。< 版本控制,我们采用了Subversiono但部分项目因为历史的原因,暂时使用CVS,将来必然会迁移到Subversion上。令Subversion有很多种操作方式:通过命令行、通过TortoiseSVN集成工具、通过WEB、通过Eclipse插件。本文最后附有可用资源的列表,供你参考。3 .开发准备31了解一些规范编码规范开发流程3.2. 工具软件321 .软件分类令开发1、IDE:统一使用Eclipse,目前的版本是3.22、编译和部署:antx3、版本管理:TortoiseSVN和TortoiseCVS4、JBoss(原来使用weblogic)或Tomcat5Eclipse6、Oracle客户端:不用安装,参看:#安装ORACLEclient令辅助工具1、Ultraedit:文字编辑2、office:办公用文档3、project:制定、查看工作计划4、outlook:进行时间、任务管理5pl/develop工具,查看数据库322 .下载地址323 .开发环境的安装俗话说磨刀不误砍柴工。花点时间把开发环境搭得舒服一点,对以后的开发有事半功倍的效果。33.1.安装cygwin(可选,但推荐)Cygwin中包含大量unix风格实用命令,可以极大方便我们开发中的一些操作。例如:令查找指定文件:find.-namemyfile.txt。在文件中查找内容:grep-rstringToFind*。查找所有.svn目录,并删除之:find.-name.svn|xargsrm-rf<查看(自动更新)日志文件:tail-fmylog.txt令查找一个可执行文件的位置:whichantx令此外,如果你想用eclipse开发C/C+程序,那么必须安装cygwin以及其中的gcc。安装cygwin的方法:1 .下载cygwin并执行安装。注意安装程序的界面有点古怪,需要看得仔细一点。其中可以选择要安装的部件,想要全装就选择installallo2 .将cygwinbin放到PATH路径中。注意最好放在c:windowssystem32目录之前。原因是system32目录下也有find.exe之类的程序,但我们希望使用cygwin的find。3 .打开一个cmd命令行新窗口,试一下1s命令。如果能行,说明cygwin已经装好了。使用cygwin不一定要进入cygwin提供的bashshell中,只要你按上面的方法设置了PATH路径,就可以在标准的windowscmd命令行上使用所有cygwin命令。33.2.安装UltraEdit(可选,但推荐)UltraEdit是我们推荐的纯文本编辑器。下载并安装完以后,我们推荐你再做下面的步骤,使之更易用。1 .用下载的ultraedit提供的notepad.exe取代windowsnotepad«这样就可以在任何使用notepad的地方使用UltraEdit了。方法是:将notepad.exe复制到c:windowssystem32dllcache目录中,然后再复制到c:windowssystem32和c:windows目录中。如果系统提示文件被替换的警告,直接忽略它。2 .检验的方法是,打开IE,在页面上按右键,查看源代码。如果打开了UltraEdit,就对了。3.3.3.安装JDK现在当然是装JDK5啦。1 .下载JDK5、JDK5文档、JCE出口限制包。2 .安装JDK到任意目录。3 .设置环境变量:JAVA_HOME=JDK安装目录。这个环境变量对Windows是没有用的,但许多应用会利用这个变量,例如ant、tomcat等。4 .%JAVA_HOME%bin目录放至ljPATH环境变量中,以便在命令行上执行java命令。5 .安装出口限制安全包,安装在JAVA_HOME%jrelibsecurity目录下,覆盖原始文件。6 .展开JDK文档,展开到$JAVA_HOMEdocs目录下。33.4.安装Subversion或CVS取决于你的项目的需要。一般来说你应该安装Subversion,但有时需要两样都装。1 .下载并安装TortoiseSVNo这是一个和资源管理器相结合的Subversion客户端工具。2 .下载并安装Subversion命令行客户端。3 .如果你要用CVS的话,请安装TortoiseCVS。这是一个和资源管理器相结合的CVS客户端工具。4 .装了TortoiseCVS就同时拥有了CVS命令行客户端(这点和Subversion不同)。5 .请把Subversion命令行安装目录bin以及TortoiseCVS安装目录加入到PATH环境变量中,以便命令行上查找。注意,请将TortoiseCVS安装目录安排在cygwin'bin目录之前,原因是cygwin下也包含cvs的功能,但我们希望使用TortoiseCVS下的cvs.exe。33.5.安装Eclipse安装Eclipse,包括安装Eclipse的常用插件。1 .展开Eclipse包,并建立eclipse快捷方式(桌面上、开始菜单、或快捷工具栏)。2 .设置Eclipse自身占用的内存。默认情况下,Eclipse会以保守的方式起动,有时会发生内存不够的情况,甚至影响Eclipse的性能。改进的方法是:修改快捷方式,增加内存参数,例如:eclipse.exe-vmp:devsunjdk1.5.0binjavaw-vmargs-Xms256M-Xmx256M详见eclipsereadme,就在eclipsereadmereadme_eclipse.html03 .安装常用的eclipseplugins,包括:a) copyfully:方便地取得fullqualified类名。b) jadclipse:反编译(需要指定jad.exe的位置:c:ProgramFilesdecompjad.exe,如果你没有jad,请下载并安装个decomp)。c) jalopy:格式化源码(请在Window>JalopyPreferences菜单中导入标准格式定义文件:jalopy-profile.xml)d) oxygen:XMLeditor。e) velocity:velocityeditor。3.3.6. 安装Antx我们使用Antx来build、组织、发布项目。目前Antx是以源码的形式发布,必须从Subversion中checkout源码。1 .CheckoutAntx到任意目录:svncohttp:/svn.alibaba-2 .BuildAntx:执行antx目录下的build.bat或buikl.sh。3 .添加PATH路径:将antxdistantxbin目录添加到PATH环境变量中。4 .这样antx就能用了。在命令行上试一下:antx。5 .CheckoutAntx第二方类库。Antx的核心之一是类库管理。根据类库开源的不同,分为第一方、第二方、第三方类库。其中第二方类库需要从Subversion中checkout出来才能用,第三方类库已经随着antx本身一起checkout出来了。默认情况下,第二方类库存放在14(加£%2而/年0$让0舛1'0)©以目录下,你可以这样checkout:svncohttp:/svn.alibaba-当然你也可以只checkout其中的一部分,例如最常用的toolkit。6 .修改repository的存放路径。AntxRepository很大,往往会占用你很多硬盘空间。有时你想把repository整理到非默认的目录里,这是可以的!a)你可以把第二方类库%HOME%.antxrepository.project和第三方类库antxrepository移到任意你希望的目录中。b)在140乂£%下创建一个antx.properties文件,如果文件已经存在,则打开之。c)在里面添加如下内容:antx.repository.extemal=mydir/repository#第三方类库antx.repository.project=mydir/repository.project#第二方类库33.7.安装Antxclipse插件(可选,但推荐)在Eclipse中运行antx创建/维护antx项目、提高开发效率。1 .在eclipse>help>softwareupdate>findandinstall菜单中安装。2 .详见:http:svn.alibaba-3.3.8.安装Tomcat或Jboss如果你只需要运行Servlet/JSP的应用,Tomcat就够啦。如果还有别的,比如:JMS、EJB之类的,那么就请安装Jboss。不过Jboss的WEB部分其实就是Tomcat。这里我只简介一下Tomcal的安装要点。有关Jboss,请参考相关文档。1 .将Tomcat展开到任何目录(如果是安装版本,请安装到任何目录)。2 .修改Tomcat配置文件(重要!)conf/server.xml:<Connectorport="8080" useBodyEncodingForURI=ntrue,7><Connectorport="8009H useBodyEncodingForURI=,true,7>修改的目录请参见:Tomcat5/JBoss中表单提交乱码问题的解决方法3.修改Tom