第一次正式java web开发项目的总结
去年下半年到现在,因为公司人员流动,也有好几个新进的员工分给我来带领,也有刚从学校出来的,在和他们交流的过程中,不由的想起自己刚刚进入这行的一些感想。
记得自己当初写过一篇总结的,我想这些对于刚出校门没什么工作经验的程序员应该会有一些帮助,但是却怎么也无法在csdn博客列表中找到这片文章。
后来无意中发现它竟然跑到了我的回收站中,我已忘记是因为什么原因使他跑到了这里,但是我想恢复的时候又发现有点坑的是,csdn回收站的东西无法恢复,因此只好重新发表了。
以下是当时的总结:
从学校走出来,转眼间就过去三四个月了,在公司的这几个月来,终于在最近几个星期迎来了第一个正式的开发项目,确切的说,是项目迭代。
截止到今天,这一轮迭代已能算是基本完成,虽然分到自己的任务并不是很多,甚至可以说非常少,但是从中得到的收获依旧是巨大的,这大概就是所谓的实践出真知吧!
在培训学校学了四个月,感觉学了很多东西,但是一直迷迷糊糊的,连书本上的许多习题都不能独立搞定。每每看到一个小程序的代码的时候,总感觉非常的简单,但是当只是给自己一个需求让自己找思路的时候,却又总是感觉无从下手。
而来到公司之后,或许是因为不一样的气氛的缘故,在不断的学习的过程中,当我再回过头去找一些以前没有做过的小习题时,居然很是惊讶的发现并不是之前看到的那么难,解决思路也都像是原本就有一样水到渠成。
或许这就是积累的力量吧,坚持走下去,就会有很多事在不知不觉间发生了改变!
在这一轮的迭代中,我只负责一个查询功能的实现,整体比较简单,只是对查询出的结果进行处理的过程看似有一点点复杂。因为是第一次独立的开发,所以在这个过程中犯了一大堆的错,思路变了又变,代码改了又改,也正是因为这样,让自己才获得了很大的收获。
这个小小的功能,代码被我重写了好几遍。刚开始的时候,因为对mongodb数据库的完全陌生,所以只是简单的套用别人的查询语句得到一个自己看不太懂的结果,然后进行了一系列的变换,最终把结果变成了我所熟悉的字符串和list集合,再在这个基础上进行处理,最终得到我想要的结果。
结果最终是被我弄出来了,很是兴奋,但是经过高手的检查之后,告诉我的却是这样的写法太不可取了,原本应该很简单的实现不该被弄的这么复杂。于是乎,在高手的指点下重新设计思路,完全摒弃了用字符串来处理的想法,于是几乎整个的代码就都成为了废品,只能重头再来!
不断的查资料,不断的询问,不断的尝试,一两天的煎熬后,终于又成功使用第二种思路得到了我想要的结果。然后反反复复的检查了很多遍,再次确定似乎是很符合要求了之后,我便又找来了高手给我检查。
满心期待,但结果还是不符合要求,原因是我们的web项目使用的是springmvc结构,而我的代码处理逻辑几乎是全部都在dao的实现类中一气呵成了!
对于高手的点评,我是心服口服,因为对于mvc三层结构,以及controller、service、dao这三层,我在培训学校的时候一直都没有弄明白,一直到现在开发的时候我都分不清该怎么用。
高手告诉我说,dao中只需和数据库打交道,得到了数据库中的结果就ok,然后主要的处理逻辑在service中,service中返回的结果要能够供别人调用,最后返回的结果的最终处理放在controller。
于是,再次整理思路,把dao中的代码进行分解,然后适当的放到另外两层中,再进行数次的调试,最终又成功迎来了我想要的结果。
我想,这下应该是可以了吧!我在本机上测试了无数次了都没有任何问题,应该算是完工了吧!但是当最后和前台一联调才发现完全不是那么回事,前台无论发送什么样的请求给我,我给他返回的竟然都是“message:没有数据;result:success”!
这是一个多么令人沮丧的结果,尚差一步,但就是尚差一步!于是只能再次拼命的分析,绞尽脑汁的测试。
但是结果却是不尽人意的,我怎么想,怎么测都觉得应该是没有问题,可是他结果偏偏就是有问题,于是我只能是不停的抓耳捞腮!
这里是公司,不同于在学校,结果出不来不能就这样了,再没办法也要想办法!于是在最终感觉真的是黔驴技穷的时候,我便只能又找来了高手。
结果,高手随便瞄了一眼就找到了问题所在,这让我长久的折腾更显得徒劳!原来问题只是我在接收前台参数的时候多加了一个@requestbody的注解,我以为接收参数就要这个注解,而实际上这个注解并不能这样乱用!
在高手的再次指点下,我删除了那个注解,结果tomcat一启动,页面一刷新,想要的画面就那样神奇的出现在了界面上,这时候真是感觉颇为无语,说不出感觉的无语。
和前台联调成功,这个任务算是基本完成了,这个过程中,初步清楚了mvc,初步懂了mongodb数据库,初步明白了公司项目开发的整个流程,也初步掌握了debug调试。
综上等等,在这一次项目中,最大的收获应该主要有两个,第一个就是了解了公司正式项目的基本开发流程,使自己刚进公司时的忐忑心理变得略微踏实了一些。
总结一下,大概的流程应该就是这样的:
首先由需求人员向项目组提出需求,然后给项目组的所有人进行需求讲解,大家一起探讨需求中各项细节的可行性。
当开发人员和需求人员一起确定需求没有问题的时候,如果有时间,可以让开发人员进行一次需求反讲,在需求和开发都确认没有问题的时候,需求便算是正式定下来了。
需求确定以后,开发人员进行分工协调,然后订制开发设计概要和API,后端API中一般包括一些接口,需要的参数,还要和前端一起确定好访问路径,需要传递的参数以及返回给前端的数据格式。
在设计api的过程中,前后端各自设计好以后,要召开专门的会议互相讲解,在讲解讨论的过程中达到相关意见的一致,此过程中测试人员也要参加。
当api也都确定好以后,开发人员正式开始开发,测试人员也开始写测试用例。
在开发人员写代码的过程中,要针对自己的代码进行单元测试,同时需要写好单元测试文档,在测试的过程中不断的修改和优化自己的代码,以保证逻辑更严谨,执行效率更高,代码更整洁。
然后,在前后端各自都测试并完善好自己的功能点后,前后端人员一起进行联调,进一步确保功能没有问题。
如果上一步骤也都没有问题以后,代码就打包部署到测试服务器交由测试人员来专业的测试,进一步寻找问题,以求最终的程序更加完善。
这一次的开发基本步骤大概就是这样了,那么第二个收获就是学会了比较正确的开发态度。
之前培训的时候,可能是因为环境不一样吧,那时候遇到一个习题或者是一个需求的时候,都会一开始想一阵子办法,当一段时间的努力还是无法解决问题的时候,通常就会忍不住去看看参考答案,然后在参考答案的帮助下,自以为找到了自己的思路,然后会看似成功的完成代码,而这样的后果是,其实并没有真的得到该有的收获。
而这次真正的开发中,没有参考答案,也没有做不出来就不管了的说法,无论怎样都必须想办法得出想要的结果,正是因为这样,才使自己在开发中得到了与之前完全不同的收获和感悟。
人生有许多的第一次,第一次总是让人记忆尤深!第一次之后还会有无数次的其他经历,许多事只有走下去才知道结果如何;许多事,只要不断的走下去,就会有意想不到的收获!实践出真知,行动得结果,空谈会误国,实干才兴邦!在理论中实践,在错误中成长,在失败中总结,在跌倒中爬起,坚持不断的走下去,学下去,这世间终究会有一片属于自己的天空!
路就在脚下,坚持走下去,以编程书写人生,使代码产生力量,用软件展现价值,让程序推动梦想!!
第一次正式java web开发项目的总结的更多相关文章
- 第二次正式java web开发项目的总结(回收站恢复)
都说互联网行业加班很是厉害,记得前不久网上还晒出了几个大城市互联网行业的加班排名调查,但是我们公司,或者说我们项目组倒是非常的例外,进公司也差不多半年了,才仅仅上个月有一个周六加过一天班而已. 不过好 ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...
- java web 开发三剑客 -------电子书
Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...
- Java Web开发环境配置(JDK+Tomcat++IDEA 14)
对于未接触过java web开发的大家而言,应该和我一样对java web编程开发比较迷茫,通过查一些资料,大致清楚了java web开发环境的一些基本配置,未做过相关编程的人员可以看一看,由于我刚接 ...
- java web开发中常用的协议的使用和java-web 常见的缓冲技术
一.DNS协议 作用将域名解析为IP 类似于我们只需要知道中央一台,中央二台,而不需要知道它的频率,方便记忆. java dns 域名解析协议实现 1 域名解析,将域名可转换为ip地址InetAd ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- java web开发必备知识
从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...
随机推荐
- 一个好用的Log管理类
public class L { private static String className; //所在的类名 private static String methodName; //所在的方法名 ...
- map遍历的四种方法
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- spring二级缓存的ehcache 的 配置文件
<ehcache> <!-- Sets the path to the directory where cache .data files are created. If the p ...
- Testing Round #8 A. IQ Test 水题
题目链接:http://codeforces.com/problemset/problem/328/A 这道题目wa了一次,注意这句话: You should also print 42 if the ...
- 基于Spring MVC的Web应用开发(三) - Resources
基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...
- spark新能优化之多次使用RDD的持久化或checkPoint
如果程序中,对某一个RDD,基于它进行了多次transformation或者action操作.那么就非常有必要对其进行持久化操作,以避免对一个RDD反复进行计算. 此外,如果要保证在RDD的持久化数据 ...
- URAL 1227 Rally Championship(树的直径)(无向图判环)
1227. Rally Championship Time limit: 1.0 secondMemory limit: 64 MB A high-level international rally ...
- ARM的工作模式和寄存器
以前学的时候学的是S3C6410的开发板,它是三星公司推出的基于ARM v6架构(指令集),处理器是ARM11. ARM架构是构建每个ARM处理器的基础. 目前最新的是ARM v8架构:http:// ...
- Java——java多态
/* * 多态: * 成员的特点: * 1.成员变量. * 编译时:参开引用型变量所属类中的是否有调用的成员变量, 有:编译通过, 没有 编译失败. * 运行时: 参考引用变量所属的类 ...
- 黑马程序员——JAVA基础之多线程的安全问题
------- android培训.java培训.期待与您交流! ---------- 导致多线程出现问题的一个特殊的状态:就绪.具备了执行资格,但是还没有获取资源. 导致安全问题的出现的原因: 1. ...