诸暨哪有Java的培训班-Java开发者每天做什么

广义的开发工作的内容非常复杂,涵盖的范围也非常广,从最基础的开会讨论环节(例如需求评审或者是设计评审)到狭义的开发环节即代码Coding实现到测试和上线都是属于开发工作的一部分,详细来说开发工作包含了如下内容:
需求评审
在项目中,需求分析是最开始的工作,同时也是最重要的工作。在这一步骤中,开发人员需要和产品经理,测试等人员就有关于项目目标,需求理解,系统原型和术语定义等达成一致。
系统设计
在理解项目的目标之后就可以开始作系统设计,其中包含了技术选型(项目使用什么语言,使用什么框架,数据持久化选用sql/nosql,数据库又该选用什么),模块拆分(大到网关/入口/功能/基础设施的架构分层设计,小到具体功能间的耦合拆分设计),细节设计(通过诸如时序图,类图等描述某个功能或者设计的关系与流程,定义交互协议的数据格式),设计评审(通过团队内外评审的方式查缺补漏看看设计是否有错误或者是不恰当的地方)。
这一步在整体开发工作中有着至关重要的作用,一个好的系统设计可以非常有效地减少编写代码时的思考量和工作量。
代码实现
在完成系统或者是方案设计后,就可以按照预先定义的流程进行代码编写和实现,在完成编写后需要邀请1位以上的同学进行CodeReview评审代码的质量与逻辑的完备性。
测试回归
对于开发人员来说,测试主要是代码层面的和功能实现层面的测试,前者主要是编写unittest单元测试以方法或者类的维度验证代码的正确性,后者是功能编写完毕后进行全链路的测试从入口开始编造流量看整体效果是否和预期一致,通常这步也需要专业的测试人员介入,在出现异常问题时,需要进行debug和问题修复。
功能上线
任何一个功能或者是系统上线都是比较复杂的,引入流量前需要配置关键业务节点上的监控,发布过程中最开始先beta灰度并进行功能验证,确认功能正常,指标监控平稳后可以开始作分批发布(如果是大规模的系统集群),在发布过程中与完成后需要实时紧盯监控指标以防止出现线上问题。
效果验证
项目上线后就可以通过服务端的埋点日志数据进行筛选统计,查看上线后整体功能是否满足预期的目标。
文档记录
写文档是一个开发人员工作的本职工作,上述的每一个开发步骤都应该在项目文档或者是系统文档中予以记录。
运维工作
运维工作包括了日常运维包括系统容器的状态的管理(重启/置换/扩容/缩容),大促运维(预算申报,预案管理与演练,重保节点配置等)。
举我本人为例,我负责的是淘宝直播互动消息扩散架构,在每次大促活动或者是头部主播(如薇娅或者是李佳琪等)有搞大活动,都会需要作直播间相关信息的提前配置与准备,确认容器状态都正常,这些都是系统运维相关的工作。
答疑工作
每个人负责的系统应该都只是一个系统链路的一部分,这种时候对于你的业务方就需要提供答疑工作:帮助完成系统接入,帮助排查问题,解答功能细节等等,现在在阿里巴巴内部这部分工作逐渐转为由自动化答疑和排查工具来完成,但是还是免不了会出现疑难杂症需要开发人员介入来解决。
工作外的充电
阿里巴巴内部有一个ATA的技术分享论坛,在其中能看到各种系统设计介绍,疑难问题的排查亦或者是思维方法论等等,我们在闲暇时间都会在论坛上学习他人的分享,采坑记录或者是成功经验。