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

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

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

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

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

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

在我们的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. ZOJ 1113 u Calculate e

    原题链接 题目大意:迭代求自然常数e. 解法:没什么好说的,注意数据类型和输出格式. 参考代码: #include<stdio.h> #include<math.h> int ...

  2. 准备开始自己搞企业管理软件,从openerp入手

    公司运行了半年多,人还比较少,只用了一些即时通讯工具,还有svn等基本的工具 记账用的是gnucash 其他的管理急需相应的软件,找了很长时间也没有合适的 想了想,还是从开源的openerp odoo ...

  3. leetcode 110 Balanced Binary Tree ----- java

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  4. Sublime Text 转

    距第一篇的开箱水文,已经有4个月的时间了,但因为懒,就没有下文了.终于,今天,我觉得写一篇准技术文章了. 忘记了是怎么开始用的ST,应该是在网上看到别人推荐才用到吧,用了有半年了.在windows下是 ...

  5. Java中将16进制字符串转换成汉字

    技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...

  6. Error using subsindex Function 'subsindex' is not defined for values of class 'struct'.

    clc; clear all; close all; image_path = '/media/wangxiao/Elements/image_segment_backup/'; savePath = ...

  7. SpringMVC给外部资源加版本号避免缓存

    一.属性文件:version.properties ->内容:version=201608  二.java代码 public class configVersion implements Ser ...

  8. dotnetConf

    https://channel9.msdn.com/Events/dotnetConf/2016 https://channel9.msdn.com/Events/dotnetConf/2016?so ...

  9. Python中的repr()函数

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式. 在python的官方AP ...

  10. PostgreSQL连接Python

    安装 PostgreSQL可以用Python psycopg2模块集成. sycopg2是Python编程语言的PostgreSQL数据库的适配器. 其程序代码少,速度快,稳定.不需要单独安装这个模块 ...