前言

  • 随着环境的变迁,大家总会更换工作,有裁员的,有跳槽的,除了进进出出的老人,还有源源不断入坑的新人。

  • 很多人入职之后还不知道怎么快速适应工作,对我而言,除去寥寥可数的同事感情,对我而言,更换工作更像是换个环境办公。

  • 今天记录一下每次功能开发的工作流程,当然这个流程并不具有代表性,特别是与"大公司"完善的制度相比,这只能算是给新人指路而已。每个公司的需求开发步骤都不相同,让我们一起完善这个开发步骤,给后来者指明方向。

注:步骤是死的,人是活的,不清楚的地方及时提问,毕竟向同事提问是不收费的。

1 开发文档获取

  • 开发之前,都会有开发文档、产品原型说明之类的辅助资料,就算是在细小简单的功能,基本上都会有相应的描述。如果全是口头描诉的功能,那就?跑?!hhh

2 需求理解及准备工作

  • 在阅读需求文档的时候,需要仔细阅读,并且阅读的时候,弄清楚这个功能的定位。特别是对于写代码的人来说,要知道这个功能开放式属于哪个功能模块里面的,至少你的代码写在哪里,这个你还是要弄清楚的。

  • 不论是shi山雕花,还是堆砌新的shi山,功能前后关系都要捋清楚,这个功能是新功能,还是扩展功能,这个功能跟其他模块相关联的代码要阅读,有关的数据表要提前捋一下。如果弄不清楚前后关系,那么开发的功能很容易偏离实际的功能要求。

  • 如果通过看代码,看文档,看需求文档,有些地方还不能理解的,也不用着急,因为后面还会有会议讨论,这些需要做的就是尽力去理解,对于一知半解的地方可以去询问其他同事,如果还是有疑问,记录下来,开会的时候提问即可。这样的情况我也遇到过,当时有点慌,但是开完会,我就理解了。

3 会议记录

  • 会议还是比较重要的,如果第一次开会一直蒙圈,那就要做功课复习了。

  • 会议上需要明确需求功能点,开发功能点,如果遇到棘手的地方要及时提问,这时候还有不理解的,一定要在会议上提问清楚,如果弄不清楚,开发起来会很痛苦。这时候需求的提前理解,相关的代码阅读,数据库表的提前了解,在这里显得尤为重要,不然你很可能不知道会议在聊啥。

  • 会议上捕抓到的重要信息,大概记录下来,我的建议是开会之前带个本子:好记性不如烂笔头

注意:到了这一步,决定你是否能和产品同事进行有效交流

4 接口定义

  • 会议开完,一般都是和前端需要定义好接口数据,入参和返回值,固定的接口结构,避免定义好的结构在后期进行大改,不然很容易阻碍项目的开发进度。
  • 作为一个后端,一个原则:尽量宠前端,后端能做的事情尽量在后端去做,秉承着能不让前端修改就不让前端修改,你把前端宠得像个小娇妻,你们的对接工作不就轻松愉快了嘛。一个功能的开发万万不可离开前端,否则就是一个人玩过家家了,有修改的地方,及时通知到位,别到最后,直接甩文档给到前端,这无疑会增加双方的工作量。
  • 如果还没有专门的接口工具类,所以和前端整理好接口结构之后,最好自己整理一遍,这样开发的过程中才不至于模凌两可。

注意:很多后端后面和前端同事闹得不愉快,就是因为这里的基础没打好。

5 代码开发

  • 代码开发之前,需要明确自己的代码是基于哪个分支去开发的,怎么明确?问呗!大家都会问,那我就把目前的开发分支信息给截图一下。千万别盲目参考文档,有些文档写完之后就从不更新了。所以你需要去和同事或者领导多多交流。尽量弄清楚每个分支的作用,这样有助于我们后面的工作进行。
  • 功能开发完成,需要在本地调试一下,大多数时候我都是用 postman 请求一遍自己的接口,看看入参和返回值是否一样。一般我们调试,都是把免登陆打开,专注看接口功能就行。免登陆只需要在接口上加上:@NoLogin 注解即可 。至于单元测试,每个人根据自己的情况来定,这个不好言语。

6 代码提交&环境构建&前后端联调

  • 代码开发完成,需要提交到test分支,与前端进行联调(或者在本地联调也可以)
  • 代码提交后需要借助 jenkins 进行环境构建(这一步每个公司不一样了)

7 代码审核&发布文档编写

  • 发布完成,就等前端联调完成即可,工作完成之后需要书写发布计划文档以及找人帮 review 代码。

到这里,作为后端开发的主要工作就差不多完成了,剩下的是不断测试,修改bug,发布,后面的步骤每个公司具体执行都有差异。最后就是提交代码,合并到master,但是我们也不一定有合并权限,根据实际情况去处理。到这里,基本上就完成一个功能的开发了。

结尾

  • 好像说完了,好像又没有说完。这里主要还是作为一个后端开发,去"干活"的一个角度描写,当然,我是不希望大家止步于文章这里。比如很多时候,我们需要根据产品文档写一篇自己的技术文档,然后做一下技术评审,或者是各个环节中的跨部门交流的能力显得尤为重要,这里往往能提现出一个人的强大与否。最后祝大家事业有成节节高~

Java开发中的工作流程和步骤的更多相关文章

  1. 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]

    完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ...

  2. java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  3. 【转】Java开发中JDBC连接数据库代码和步骤总结

    (转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个 ...

  4. 完整java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  5. 完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  6. (转)完整java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  7. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  8. [ 转载 ] Java开发中的23种设计模式详解(转)

    Java开发中的23种设计模式详解(转)   设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...

  9. zigbee学习:示例程序SampleApp中按键工作流程

    zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...

  10. fir.im Weekly - iOS开发中的Git流程

    本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用. 精仿知乎日报 iOS 端 @我偏 ...

随机推荐

  1. #Powerbi 10分钟,理解 Rankx 排名函数

    一:本文思维导图及示例数据图 1.1思维导图 1.2  示例数据图 二:度量值示例 2.1 函数简介 RANKX 首先为的每一行计值表达式,将结果临时存储为一个值列表.然后在当前筛选上下文中计值,将得 ...

  2. 《架构整洁之道》学习笔记 Part 2 编程范式

    计算机编程发展至今,一共只有三个编程范式: 结构化编程 面向对象编程 函数式编程 编程范式和软件架构的关系 结构化编程是各个模块的算法实现基础 多态(面向对象编程)是跨越架构边界的手段 函数式编程是规 ...

  3. docker部署zabbix 6.0高可用集群实验

    0 实验环境 虚拟机,postgresql本地部署,zabbix server及nginx容器部署 1 postgresql 参看前作 <postgresql + timescaledb离线安装 ...

  4. debezium同步postgresql数据至kafka笔记

    实验环境 全部部署于本地虚拟机 debezium docker部署 postgresql.kafka本机部署 1 postgresql 1.1 配置 设置postgres密码为123 仿照exampl ...

  5. java volatile是如何保证可见性的?

    lock前缀指令干的事. volatile 修饰的变量在进行写操作时会多出一条如下的汇编指令: lock addl $0x0,(%esp) volatile就是靠这个lock前缀指令去实现可见性的,当 ...

  6. 如何为物联网设备注入“华为云+鸿蒙DNA”?

    本文分享自华为云社区<如何为物联网设备注入"华为云+鸿蒙DNA"?看华为云IoT怎么答[华为云IoT +鸿蒙]>,作者: 华为IoT云服务. 根据市场咨询机构预测,20 ...

  7. asset module type 替代 loader 处理图片字体等文件资源

    前面文章中 体验了webpack的打包 .解析css资源 ,接下来看看项目中常用到的图片.字体.文件该怎么处理吧~ 项目路径如下,在上一篇 解析css资源 项目基础上增加了一些文件 demo ├─ s ...

  8. [nginx]反向代理grpc

    前言 nginx从1.13.10版本开始提供对gRPC代理的支持.由于grpc基于http2,因此编译nginx时需要添加参数--with-http_v2_module来启用对http2协议的支持. ...

  9. 让 GPT-4 给开源项目 GoPool Review 社区贡献者的 PR - 每天5分钟玩转 GPT 编程系列(5)

    目录 1. 嘚瑟一下 2. 言归正传 2.1 GoPool 的第一个 PR 2.2 祭出 GPT-4 2.3 问问 GPT-4 怎么看这个 PR 2.4 让 GPT-4 重构代码 3. 打完收工 1. ...

  10. 《Pro Git》起步笔记

    @ 目录 什么是版本控制 本地版本控制系统 集中化的版本控制 分布式的版本控制系统 Git简史 Git是什么 安装Git 在Linux上安装 在Windows上安装 初次运行Git前的配置 用户信息 ...