在生活这条路上,虽有‘条条大路通罗马’这一说,但是总会在一个点上交汇,在编程这条路上,我们刚开始过着前人播种后人收的的路,但是总有一天我们会有自己的想法,走自己的路,但不可否认,在有些问题上,我们又交汇在了一起。
虽然我们刚开始选择了不同的编程语言,后来出于编程语言的种种微妙的关联,我们又走到了同一个问题上。今天51CTO的记者以***视角为您讲述一个从项目中成长的Java程序员的故事,作为编程语言排行榜持续排名***的Java语言,可想而知其开发者也并不在少数。
编程的开端
大多数人***次接触到编程语言应该是在你大学课程开始的那一刻,我也不例外,当年开了两门课程,一个是Java、一个就是PHP,但是Java当时很火,并且使用广泛,用的人多了查询问题也就方便了~那时Java给我的感觉就像是一个巨人,感觉就相当于站在巨人的肩膀上继续前进,于是我的编程道路就这么开始了。
初级Java工程师
大学的课程内容我基本已经记不清了,只是模模糊糊的记得有一搭无一搭的听着,哪里感兴趣就多听听,回去多写几次代码,但有些深入的地方也确实让我觉得有点‘不可理喻’,不过我知道不懂没关系,但是起码基础知识要牢固。就这样,到了毕业前的实习期,我也算是有了一个初级Java工程师的名号。
真正开始接触新的语言
刚开始工作时,就是人家让你干什么,就去干什么,也不是很难,有些问题若是没思路还可以看看别人的解决方法,或是看看以前公司项目中的一些代码。慢慢的我开始参与了我的***个项目,这个项目也是我***次开始认认真真的接触一个新的语言——JavaScript。JS是个页面脚本语言,很多时候都要用它,我当时的工作内容就是用JS 来美化网页布局和客户端的信息验证。
JS给我的***印象就是他的华丽,并且我可以轻轻松松的用网上的代码来实现我需要的功能。这时我才真正意识到一个编程语言在工作中是不够用的,每个编程语言都是工具,每一个工具都适合用来解决特定的问题。具体在工作中使用哪一种,大部分情况都是和项目类型有关。
于是项目结束后,我就开始思考我未来的编程语言之路会是个什么方向,这时一个跟我一样做Java的同事,刚开始是为了生活为了工作才使用的JAVA,但他一直喜欢游戏,后来转了 C++ 去开发游戏了,其中的原因当然是自己的兴趣爱好了。就在我犹豫不定学习什么语言的时候,另一个项目悄然而至。
在项目中成长
这次是一个基于XP系统的员工管理项目,我的主要职责是负责管理员模块以及协助完成主管模块。功能是根据员工的不同级别来分配其权限,管理员可对公司员工的个人信息进行管理,包括员工编号, 员工姓名,员工性别,员工年龄,基本学历等资料进行相关操作,可为主管分配下属员工(运用Ajax来提示员工信息)等内容,相关的技术用到了存储过程,触发器,视图,Struts2 + Hibernate + Spring + Jsp + JavaScript + Ajax。
这次的项目因为又用到了JavaScript,所以我开始格外的重视这个对我来讲比较新鲜的语言,这次JS给我的感觉就他是再客户端执行的脚本语言,这样有些动作就不用传回到服务器端做,节省了很大的资源,而且安全方面JS也很不错。此时我有了一个新的认知,学习新的语言肯定是有帮助,如果以后再做其他的项目,就可以直接上手不用再学习一遍,这也是一种经验。虽然也许只是一个项目中使用的语言,但是技不压身。
此时,一个前辈给我了一些指点,让我有时间可以从头看一遍C和C++的书籍,也方便以后向其他语言转向。此刻的我听到别人的指点,毫不犹豫的就开始啃起了C语言,让我明白的很多底层机制,了解了基本的程序设计思维。期间也跟了两个别的项目,在这里也不多说了,因为没有什么可以拿出来值得说的地方,只是在机缘巧合下接触到了Python和 AR,却是无意中在我一个大项目中发挥了作用。
一次大型项目
这次的项目是国内某大型保险公司的服务管理系统(虽然只是优化),这次的内容主要是由JAVA和AR(BMC remedy)两种程序进行结合开发,进行系统的主要部分优化,以及新需求模块的开发与运维Bug的修复。
这次目组一直困扰我们和客户的问题难点就是用户数据量,并发量大,导致系统经常报没有license的错误。AR并发使用***达到并发3000以上。Web并发***5000人以上,所以在解决这个问题之前唯一的解决方案就是大量的申请临时license,记忆中最多申请临时license申请了16000个。***几乎BMC方面已经不提供给我们临时license,所以这个问题已经是项目组和客户使用这个系统的一个很大的瓶颈。
也就是这个项目,让我意识到我不知不觉的已经成长了,从以前的看别人的思路去解决问题,到现在有自己独立的思维解决方式,并去和别人分享,欣喜若狂的我立刻记录下了我自认为目前为止写的最满意的一段代码,是一个公用导出Excel方法。(下页为当时写的一个手册,附代码)
#p#
公用类介绍
位于:
JSP页面调用CommonExcelAction.java类中的公用导出方法
--->会去调用ExportExcel.java中的导出Excel方法
--->会去调用PraseXML.java解析配置文件方法
使用方法3部曲
1准备好查询SQL
1. 在进行查询操作时将sql注入到Session中,一般此语句写在Action中
- //为导出ExcelSql保存SQL
- request.getSession().setAttribute("excelSql",strb.toString());
注意excelSql此名字不要改变
位置如下图:
因为要在SQL已经拼接查询条件过后再保存
页面引入导出图标
添加JS
- <script type="text/javascript">
- functionExportExcel()
- {
- varcount = document.QueryForm.total.value;
- if(count==0){
- alert("没有查询到数据");
- }else{
- if(count > 5000)
- {
- alert("查询结果的***数限制为5000条,当前查询结果为"+count+"条,请精确搜索条件查询后,再导出Excel表格");
- }
- else
- {
- //导出Excel需要传入 root此Excel的配置节点
- document.QueryForm.action = "${ctx }/commonExcelAction.do?method=exportExcelCommon&root=satisfi";
- document.QueryForm.target="_self";
- document.QueryForm.submit();
- document.QueryForm.action = "";
- }
- }
- }
- </script>
PS:每次只需要改变红色部分satisfi这个名字和第3步的节点相对应
XML配置导出信息
- 在WEB-INF/下的exportExcel.xml文件中配置
- <!--自助单满意度清单查询导出Excel -->
- <satisfi>
- <!--导出的Excel文件名 -->
- <name>自助单满意度清单查询导出</name>
- <!--导出的Excel标题 -->
- <title>公司,自助单号,建单人,建单人部门,
- 是否确认未解决,未解决说明,服务是否满意,服务不满意说明</title>
- <!--导出Excel查询的SQL字段名 PS:不要换行 -->
- <pro>GONGSI,BASESN,CREATEREN,BUMEN,ISPINGJIA,PINGJIAINFO,
- ISMANYI,BUMANYI</pro>
- </satisfi>
回头看自己
路都是自己走出来的,这句话说的一点都没错,刚开始我们可以跟着别人走过的路一步一步的平稳前进,总有一天我们会觉得前人走过的路有的未必适合自己,所以我们就会岔开这条路,开辟一条属于自己的新路。虽然我们不敢说抱着自己的梦想在这条路上前进,但是我们可以带着想法把这条路走下去。