仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 573|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA编程:进职一年多的码农做一个履历总结,也但愿对刚进职的码农有个匡助仓酷云 ...

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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工具的整合。
莫相离 该用户已被删除
沙发
发表于 2015-1-18 13:15:18 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
兰色精灵 该用户已被删除
板凳
 楼主| 发表于 2015-1-22 05:40:42 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
海妖 该用户已被删除
地板
发表于 2015-1-30 23:03:54 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
再现理想 该用户已被删除
5#
发表于 2015-2-6 16:35:24 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
柔情似水 该用户已被删除
6#
发表于 2015-2-7 16:16:21 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
admin 该用户已被删除
7#
发表于 2015-2-7 18:28:34 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
蒙在股里 该用户已被删除
8#
发表于 2015-2-22 20:37:55 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
简单生活 该用户已被删除
9#
发表于 2015-2-28 19:22:43 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
飘灵儿 该用户已被删除
10#
发表于 2015-3-10 05:29:49 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
因胸联盟 该用户已被删除
11#
发表于 2015-3-17 04:39:34 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
12#
发表于 2015-3-23 19:25:02 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 20:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表