都说互联网行业加班很是厉害,记得前不久网上还晒出了几个大城市互联网行业的加班排名调查,但是我们公司,或者说我们项目组倒是非常的例外,进公司也差不多半年了,才仅仅上个月有一个周六加过一天班而已。

不过好在,虽然不加班,但是事情还是有的,每个月基本上都有任务,一周需求,一周开发,一周联调,然后再一周测试,可能细节上不完全这样,但大体上也就这样吧。因而虽然不怎么加班,倒也不至于说是什么事都没有。

介于这样的安排,上上个月完成了我的第一次正式项目,也就是我们项目的迭代八,而上个月一个月的时间,又结束了我的第二次正式项目,也就是我们项目的迭代九。

相对于迭代八我只负责一个功能的实现来说,迭代九的工作就要多很多了。

因为之前两个来的久一点的同事被调到了其他项目组,所以我不仅要接手其中一个人的模块维护,还要负责新的迭代中两个统计模块,这样不仅从量上变多了,逻辑复杂度上也比迭代八要高。

这一轮的迭代,虽然说不是完全的新模块,只是在旧模块上修改,但是实际上在实现的时候,基本上跟新增没有多大的区别。

在我们的mongodb数据库中,统计需要用到的源数据表有四个,在统计的时候,之前的做法是把四张表的数据跑定时器统计出来,然后放到一个新的统计表中,再在项目页面统计的时候,直接拿出统计表中的数据就够了。

而新的需求中,要求把定时变成实时,如此一来,每一次的统计都需要根据不同的条件查询四张表,再把四张表的数据进行一定的处理:合并或者拆分。

同时查询四张表,如果是关系型数据库,可能会简单很多,但是mongodb是非关系型数据库,又因为自己对mongodb的使用并不是很熟,因此也是绕了相当多的弯子才勉强搞定。

应该是有了上一轮迭代的经验积累吧,这一次虽说工作比上次多了而且难了,但是我实际用的时间并不比上一次的多,甚至从某种程度上来说所花费的时间还要少一点。

这一轮的迭代,对mongodb的基本操作有了更进一步的掌握,上一轮中,学会了基本的增删改查语句,这一轮在此基础上新掌握了不同数据库间表的导入和导出,根据多条件查询以及排序和分组。

因为统计涉及到的数据很多,在测试调试的过程中,也要不断的把页面上的数据和数据库中的数据对比,因此也算是更熟练的掌握了调错、找错的技能,能更快的找到问题根源。

相对于上一次基本上弄清了springmvc的三层结构,这一次也算是进一步练习了三层结构的使用,除此之外,对于集合、数组等数据的封装和拆分也有了更进一步的理解和使用。

如果说收获的话,这一次最大的收获,大概就是关于代码优化和重构了。我所负责的两个模块,实现细节上有很多的不同,但是有一些环节却是大同小异的,可能是由于经验方面的不足,或者是知识方面的欠缺,所以在好几个地方都有看起来似乎一样的,但仔细看又不一样的代码。

当看到这些代码的时候,我想过要提炼出来,但是几经尝试后,没能提炼成功,我以为可能是真的不能提炼了。直到后来项目经理看到后,热情的帮我弄了一下,我才发现原来并不是不能提炼,而是自己经验不足,所以思维过于局限了。

值得一提的是,在项目经理指导我提炼上边代码的时候,顺便指出了我另外一个可以优化的地方。

在代码中,我有几个地方需要判断一个list中的元素是否存在于另一个list中,于是我用了for循环,结果项目经理只用了一个contains方法就搞定了我十几行。由此可见,有的时候多掌握一点知识,可能就能为我们省下很多的工夫了。

书山有路勤为径,学海无涯苦作舟,这句很早以前的名言早就烙印在我的心中,但是自从进入软件行业以来,我突然发现虽然要学的东西很多,但其实也是乐趣无穷!

第二次正式java web开发项目的总结(回收站恢复)的更多相关文章

  1. 第一次正式java web开发项目的总结

    去年下半年到现在,因为公司人员流动,也有好几个新进的员工分给我来带领,也有刚从学校出来的,在和他们交流的过程中,不由的想起自己刚刚进入这行的一些感想. 记得自己当初写过一篇总结的,我想这些对于刚出校门 ...

  2. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  3. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  4. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

  5. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  6. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

  7. java web开发中常用的协议的使用和java-web 常见的缓冲技术

    一.DNS协议 作用将域名解析为IP   类似于我们只需要知道中央一台,中央二台,而不需要知道它的频率,方便记忆. java dns 域名解析协议实现 1 域名解析,将域名可转换为ip地址InetAd ...

  8. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  9. java web开发必备知识

    从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...

随机推荐

  1. hdu 2680 最短路径(dijkstra算法+多源最短路径单源化求最小值)这题有点意思

    Choose the best route Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  2. JavaScript个人学习记录总结(二)——验证表单输入之模式匹配

    该示例检查从文本窗口部件中获取姓名和电话号码这两个表单数据的有效性.当文本框中的值发生变化时,即引发一个change事件,从而可以调用一个函数来检查这两个输入值的格式是否正确. validator.h ...

  3. LAMT基于mod_proxy方式的负载均衡集群

    一.apache服务器 # httpd -D DUMP_MODULES | grep  proxy查看是否有 proxy_balancer_module (shared)模块 二.编辑配置文件 1.编 ...

  4. Android——GridView

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  5. 记事本写JAVA程序

    编写程序源码: 1.新建记事本程序,修改文件名称为HelloWorld.java 打开编辑以下内容,保存. public class HelloWorld { public static void m ...

  6. PHP安全配置

    vi /etc/php.ini #编辑 date.timezone = PRC #在946行把前面的分号去掉,改为date.timezone = PRC disable_functions = pas ...

  7. SPL迭代器的工作和代理模式OuterIterator

    1.迭代器通过foreach语言结构来实现迭代,没有实现迭代器接口(Iterator)的普通对象使用foreach结构会遍历公共属性. 2.OuterIterator用于做为实际迭代器的代理(即代理模 ...

  8. Floating Action Button(漂浮按钮)

    参考:http://blog.csdn.net/pengkv/article/details/46427891 效果图: 步骤一: 在build.gradle添加以下代码,导入包 dependenci ...

  9. Python元组的简单介绍

    1.实际上元组是跟列表非常相近的另一种容器类型.元组和列表看上去的不同的一点是元组用圆括号而列表用方括号.而在功能上,元组是一种不可变的类型.正是因为这个原因,元组可以做一些列表不可以做的事情,比如用 ...

  10. vb6中webbrowser控件树转换备忘

    Dim doc As HTMLDocument Set doc = WebBrowser1.Document Dim inputs As IHTMLElementCollection Set inpu ...