• 分享一篇去年的项目总结


    xxxTMS项目总结

    追梦1819(2017-7-26)

     

    作者:追梦1819
    原文:https://www.cnblogs.com/yanfei1819/p/10856203.html
    版权声明:本文为博主原创文章,转载请附上博文链接!

    背景

      今天是2019年5月13日,而这篇总结是去年7月26号写的。博主一直都有一个习惯,就是在一个项目完成时或者一个大的版本迭代后,都会对工作的方方面面进行一个总结。不过这篇总结比较特殊,公司领导要求我们写的,而博主的这篇总结,也被领导拿出来给其余同事当范例参考。当时开发的是公司的 xxxTMS 项目,项目开发不久,团队也是新组建的,大家处在一个探索期和磨合期。

      可是再回头看是,这个团队以及当时领导的管理,是我见过的效率最高和管理最好的(此处的管理是指项目管理,不涉及公司层面的行政或者人事管理)。今天拿出这篇总结,目的是提醒自己不管什么时候,都不能忘记自己的初心,同时要对自己的工作的方方面面不断思考,而不只是做一个敲代码的机器。

    前言
      TMS本次迭代开发,我负责的模块主要有:到达确认、回单上传、回单确认、企业钱包等功能。在开发过程中,遇到了很多问题,以下是对所遇到问题的描述以及总结。

    正文

    一、问题描述

      项目开发过程中,我将所遇到的问题分为两个部分,需求理解部分(1-6)和功能实现部分(7-9)。

    1、需求文档不够详细。下面是所遇到的几个实例。

    1) 回单录入列表,应该是“有回单”且“已到达”状态,但文档只有“仅显示待回单录入的运单”几个字;

    2) 到达确认的逻辑,有到付金额显示到付金额,无到付金额显示尾款,两者都无不显示,这个逻辑在需求文档中都没有;

    3) 钱包注册过程中,在使用体验上来说是应该有【上一步】按钮,但是需求文档没提到,后面使我们自己加入的;

    4) 检索部,为提升用户的体验效果,有的字段可以作为检索条件,比如运单编号;

    2、部分新的需求或者新的样式到开发后期产品部才确定下来,比如钱包相关的功能,这在一定程度上同样会影响开发进度;

    3、需求的不断变更(难以避免);

    4、如果是调用上海那边的接口,很容易出问题,他们所给的api文档,可能不是最新的;

    5、每个人只关注了自己的个人开发模块,对项目没有一个整体的认识,或者说与自己相关的模块都没有去了解;

    6、业务理解得不够深刻,甚至把比较复杂的逻辑理解得很简单,导致开发后期手忙脚乱;

    7、基本上都只是相似功能代码的复制粘贴和修改。这导致了很多问题:

    1) 出现很多没用的垃圾代码;

    2) 不理解所以然,会出现很多意想不到的bug;

    3) 很多不规范的代码甚至错误的代码会不断“流传下去”,会进入一个恶性循环;

    4) 看似相同的功能,但是实现方式不同的代码,并不能复用,更加不能简单的复制粘贴。例如系统中有很多的照片上传功能,但是实现时,有的接口是接受图片路径,有的接口直接接收图片;

    8、框架不熟,如angular和bootstrap;

    9、部分字段的校验被忽略。

    二、总结

      遇到问题,我们得总结出相应的方法去解决,避免下一次掉进同样的坑。

    1、关于需求理解,我一直都认为是开发过程中的重中之重。只有正确的、深刻的理解好需求,才能更好更快的进行开发,以下是关于需求理解的一些感想:

    1) 尽可能细化需求文档,更深入理解,不理解的、不够详细的或者我们想到而产品部没有提到的,尽早跟产品部沟通;

    2) 复杂的逻辑,尽量能画出图表,有助于理解和修正;

    3) 需求的不断变更,是在任何项目开发、产品开发的过程中无法避免的。但是希望产品部的设计人员能够以书面的方式通知需求变更,然后调整相应的开发时间和测试时间。而不是仅仅口头说变就变,这样可能影响开发进度;

    4) 在深入了解自己开发模块的前提下,至少要理解跟自己相关的模块,比如数据的来源的对应模块,数据的输出对应模块等。拿运单管理模块来说,运单的状态变化要了然于胸;

    5) 如果是调用别人的接口,一定要保证沟通的正确性(如字段名、字段类型)、及时性(必须是最新的接口);

    2、关于功能实现的总结

    1) 在开发过程中,要善于总结,比如类似功能的代码,框架的基本使用,一些常用字段的校验等,形成自己的“代码库”,这样在后续的开发过程中会极大的提高效率;

    2) 复制粘贴类似功能的代码,一定要多问几个为什么。尽量做到理解每一行代码的意义,不写无用无效的代码;

    3) 所用到的框架(TMS系统主要用到了spring+hibernate(后端),bootstrap+angular(前端)),应该主动、多花时间去熟悉去学习,尽量能够做到知其然知其所以然;

    三、后续

    1、开发过程中,我们不应是为了开发而开发。要多多站在用户的角度考虑(当然,这个如果跟需求文档设计的不一致,就要先跟产品部沟通)。比如上面说到的检索部加一些比较实用的检索条件、钱包开户加【上一步】按钮等;

    2、项目所用到的技术,要去深究,不能一直只浮在表面,不然可能会产生许多不可意料的坑。

  • 相关阅读:
    利用GetCharWidth32获取字符串宽度
    活着,就一直在忙碌,从未有停歇。
    AutoMapper 创建嵌套对象映射(原创)
    停下,为了更好的前行---给自己画像
    iOS开发——真机调试证书—发布证书
    iOS开发——免证书调试(Xcode7,iOS9)
    iOS开发——常用字符串string相关方法和处理
    iOS开发——图文混排(CoreText—TextKit)
    iOS开发——语言适配——中文英文
    iOS开发——富文本——自定义字体
  • 原文地址:https://www.cnblogs.com/yanfei1819/p/10856203.html
Copyright © 2020-2023  润新知