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、项目所用到的技术,要去深究,不能一直只浮在表面,不然可能会产生许多不可意料的坑。

转载于:https://www.cnblogs.com/yanfei1819/p/10856203.html

分享一篇去年的项目总结相关推荐

  1. 分享一篇我很喜欢的文章《不破不立的哲学与个人成长》

    本文引用自张鑫旭的博客 原文地址:http://www.zhangxinxu.com/life/?p=801 前言 分享一篇我个人特别喜欢的一篇文章,每隔一段时间我都会搜出来看一看,提醒激励一下自己, ...

  2. 【无私分享:ASP.NET CORE 项目实战】目录索引

    简介 首先,我们的  [无私分享:从入门到精通ASP.NET MVC]   系列已经接近尾声,希望大家在这个过程中学到了一些思路和方法,而不仅仅是源码. 因为是第一次写博客,我感觉还是比较混乱的,其中 ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

    基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目 转载于:https://github.com/Meowv/Blog 既然开发完成了,还是拿出来溜溜比较好,本篇是本 ...

  4. 分享一篇关于陌生人社交的竞品分析报告

    上次分享了学员写的陌生人竞品分析报告上(分享一篇关于陌生人社交的竞品分析报告(上)),这次接着分享下半部分,也欢迎大家提意见. 3.5 重要数据对比 数据来源 -- 易观数据2020年3月 根据以上数 ...

  5. 【爬虫】Python爬虫经验分享--爬取码市招聘项目

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途, ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/details/ ...

  6. 【社区分享 - 游戏篇】AWS云科技助力游戏内容开发 - 游戏项目构建篇 运行篇 增长篇

    [社区分享 - 游戏篇]AWS云科技助力游戏内容开发 - 游戏项目构建篇 & 运行篇 & 增长篇 文章目录 [社区分享 - 游戏篇]AWS云科技助力游戏内容开发 - 游戏项目构建篇 & ...

  7. 分享一个进销存项目(多层架构)

    分享一个进销存项目(多层架构) 花了点时间完成了一个进销存的项目,个人觉得对逻辑分析,架构思想都有一定的体会,故拿出来和大家分享下,首先介绍下项目的功能吧,主要功能有采购管理,销售管理,库存管理,人员 ...

  8. iOS开发拓展篇——如何把项目托管到GitHub

    iOS开发拓展篇--如何把项目托管到GitHub 说明:本文主要介绍如何把一个OC项目托管到Github,重操作轻理论. 第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注 ...

  9. 「实战篇」开源项目docker化运维部署-后端java部署(七)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「实战篇」开源项目docker化运维部署-后端java部署(七) 本节主要说说后端的部署需要注意的点,本身renren-fas ...

  10. [转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现

    本文转自:http://www.cnblogs.com/yuangang/p/6000460.html 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客 ...

最新文章

  1. Visual Studio 2005中文版
  2. CentOS上Nginx服务器安装phpmyadmin
  3. 剑网3 最新服务器,《剑网3》各服务器IP及所在地
  4. 从Windows上用SSH链接接入Ubuntu
  5. Ranger-Yarn插件安装
  6. easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
  7. IDC:大数据——数字化转型时代的大商机
  8. Waves13混音效果全套插件
  9. 服务器字体显示繁体字怎么解决,win7繁体字乱码怎么办?win7繁体字显示乱码解决方法...
  10. Python中的and和or运算
  11. ubuntu下安装gfortran
  12. C语言 —— 多维数组
  13. 清理工作区git clean -fd
  14. 邓号用计算机怎么输入,电脑上顿号怎么打出来
  15. java输出GPA,简单的C GPA计算器问题
  16. 基恩士编程c语言,基恩士xg7000系列.pdf
  17. python 八进制转十_python进制转换(二丶八丶十丶十六)
  18. JavaScript的逆袭
  19. 使用sql如何找出两张表中同一字段的不同值
  20. 解决easyExcel读取EXCEL用String去接收数字,出现小数点BUG

热门文章

  1. #读取json某一节点数据_06596.2.0Hive处理JSON格式数据
  2. 为什么visual的联机浏览功能不能用_Minecraft非正版联机教程
  3. java 性能优化分析工具_【java】JVM性能调优监控工具、可视化在线内存分析工具...
  4. 翻译: 4.1 多层感知器MLP Multilayer Perceptrons pytorch
  5. c语言显示cpuid_ccpuid:CPUID信息模块。范例:显示所有的CPUID信息
  6. java 内部邮件_java – 来自内部存储的电子邮件
  7. mysql手动编译安装_手动编译安装Mysql
  8. MAB多臂老虎机/赌博机
  9. 说明assert()的作用:assert()是一个调试程序时经常使用的宏,在程序执行时计算括号内的表达式,如果表达式为假,程序报告错误,并终止执行;若表达式为真,则继续执行后面的语句。
  10. 创建一个超链接,点击这个超链接,显示数据库中的数据信息:MVC模式查询