|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。工夫过的仍是挺快的,第一次分开陕西是客岁3月份,3月2号第一次单独一人离开北京,还好北京另有高中舍友,在他那儿住了两早晨,3月4号当天正式进职如今的公司。在这一年中进步了很多,本人做个总结,是对本人的一次进步,也但愿能对初进行的ITers有个匡助,但愿人人能在这条路上少走一些弯路。先先容一下本人吧,我是做javaweb开辟的,用的手艺是SSI(spring、struts2、ibatis)、前台jquery、数据库mysql、oracle。夙昔台jsp页面到数据库都是我们本人写,没有专门的前台开辟职员也没有DBA。在这一年中我很感激带我发展的导师,他是一名年夜牛(惋惜已去职了),他教给了我良多,从他身上我也学到了良多。
先夙昔端提及吧,弄前段,起首都有个壮大的调试工具,chrome扫瞄器挺好用的,调试代码挺便利(听说firefox调试也挺便利的)。安装了chrome扫瞄器后,右键->检察元素,能够修改扫瞄器的调试。我经常使用到的是Elements、Network、Console,Elements次要用户调试HTML页面用的,能够检察一些元素的结构、CSS属性等。我用的最多的是Network,这个功效十分有效,在出了bug排查询题时十分有效。我以为程序能够看做是一个数据流,复杂的来讲,就是data夙昔台jsp页面流向后台,再耐久化到数据库。也有个相反的历程,data从数据库到背景再到前台jsp页面的活动历程。定位bug很主要,bug的发生一定是由数据的非常引发的,人人能够跟踪数据的活动来排查bug。起首要确认bug是在这个data活动的哪一个环节出了成绩,能够进一步减少bug发生的局限。人人能够看到我点了“查询”按钮今后,发送到服务器的数据:
云云,人人便能晓得扫瞄器发送给服务器的数据是甚么,与本人预期的数据是不是是一样的,假如纷歧样,那即是前真个成绩,进一步在前端排查,不然则是后端处置数据的过程当中引进的bug,能够进一步再排查,是从数据库中读取的数据就有成绩,仍是处置逻辑有成绩。
也能够看到服务器反应给扫瞄器的数据:
如许一来,人人就可以晓得服务器反应给扫瞄器的数据,假如与预期的数据纷歧致,那成绩就出在后端,不然就在前端。
接上去就是Console了,把持台能够便利的输入jsp页面的数据,在jsp页面顶用console.log("XXXXX");能够很便利的输入调试信息,相似java的System.out.println("XXX");
说完了前端,说一下后端吧,次要说一下编码标准吧。
1、定名很主要:一个毛病的定名会很误导人,不良的定名,关于浏览代码的人来讲很纠结。一个优秀的定名对本人也有很年夜的匡助。我团体定名的变量都对照长,通常为单词的全称,如许代码读起来易懂,有些缩写你基本不晓得它代表的单词是甚么,除像id代表identifier,org代表organization这些人人罕见的缩写定名。定名一个办法时分,最好能让人人见名知意,看到名字就可以猜出你的功效,而不必要往看办法的正文,乃至是读源码来懂得你的功效(比来入手下手浏览yale年夜学开源的cas代码,发明人家的正文写的很好,定名很标准,一个class的长度凌驾了70是很多多少个单词组合的)。
2、正文很主要:写一个办法时能够先把这个办法的功效、算法道理交卸一下,今后本人大概是其别人保护你的代码时分能够很便利,关于易堕落的部分加正文提示。
3、写办法的时分的参数,罕用基础范例的组合,而用class范例:好比写一个查找用户的办法queryUser(intage),最入手下手的营业需求是依据岁数来查找用户,厥后营业划定规矩产生了变更,你大概必要依据岁数和性别来查找用户,因而你又改成了如许queryUser(intage,intsex),假定用0代表男,1代表女(实在更好的完成是用列举来暗示男女),说不定你哪天的营业又变更了,必要依据岁数、性别、家庭住址来查询,因而乎你又改成了如许queryUser(intage,intsex,Stringaddress)。假如你事先计划的办法是:queryUser(Useruser)传进的参数是一个User类呢,那该多好啊,你基本不必要改接口。在实践项目开辟中改一个接口的本钱仍是挺年夜的,实践项目开辟中为了到达条理明晰、解耦的目标,背景分了很多多少层,action、business、dao个中dao另有分了dao接口和完成,一个接口修正得牵动几中央。而现在计划的接口授递的是User对象,那末你的代码能够复杂的增添几行就可以到达了目标,而不必要修正那末多的接口,一边修正一边纠结。
4、少复制、粘贴代码:一样的代码不要粘来粘往,事先写的时分的确是快了,但是今后必要修正的时分可就慢多了。更可骇的是你要修正多处,了局你只修正了一处,而你本人却觉得高枕无忧了,说不定哪天就蹦出个bug来。应当把这些大众的代码提取成一个class大概是一个办法。
5、一个办法中不要写太多的代码:一个办法中写很多多少代码,写的时分的确是很便利,很快,更好的举措是把一个年夜的办法分化成几个小的办法,然后在主办法中挪用其他字办法。假如把一切的逻辑都写在一个办法中,当需求产生变更的时分,再要修正那就慢多了。我本人写代码的时分,刚入手下手写某个功效的时分很慢,有几种完成很纠结究竟用那种完成,思索半天,给个变量起个名儿也得半天,偶然候还不晓得对应的英文单词,好吧,再翻开桌面辞书,查查单词。写个办法时也得纠结半天,先想好办法的名字,然后是参数,另有前往值。一小段逻辑的代码能够提掏出一个private办法,然后在一个办法中挪用好几个公有的小办法。如许读代码的人读起来也轻松,往后需求产生变更了,你的这些个小的逻辑代码块儿只需从头组合下,就又能满意新的功效,能够复用。我本人写一个新功效的时分,第一次写很慢,假如是这个新功效产生了变更,必要修正代码,修正起来十分快,很多代码块儿都是现成的,只必要从头组合一下办法的挪用便可。
6、增添一个新的功效模块时最好有个计划文档,先把各个方面都思索全面了,计划好了再编码完成。假如不如许,终极功效是完成了,假如一入手下手就有个计划文档,能把各个方面都思索全面,完成起来就简单多了,完成的代码还能文雅些,边写边修正,终极也能完成,一定不如一次就思索全面了完成的好。为了到达终极的目标,大概两头要走些弯路,假如增添的功效多了,每次完成都走一些弯路,体系终极会变的痴肥不胜。假如推倒重来,之前的工夫就都白搭了,不但是编码,另有测试部门的测试,偶然工夫也不同意重构,再说了重构另有风险,这个中的价值仍是挺年夜的。以是新增功效必定要把需求弄扫除,有个优秀的计划文档,思索全面了再编码完成。
7、在向SVN提交卸码时先做个功效测试,然后没成绩了,再做个codereview。
再说说数据库方面的一些内容吧。
1、写好sql语句最好粘在客户端工具中实行以下,看看有无语法毛病。假如在程序跑起来,发明sql语法有毛病,修正了sql语句还得重启服务器,挺贫苦的(我们耐久化层用的是ibatis,ibatis修正了sqlmap文件后,必要重启服务器)。
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,net网页编程Beans等等,但是我认为如果java想超越.net网页编程,那么他首先要解决的就是IDE工具的整合。 |
|