美国上市公司,专注Java培训22年

阿里巴巴Java开发工作者每天在做什么?


阿里巴巴Java开发工作者每天在做什么?有些小伙伴只知道Java行业就业薪资比较高,但是Java工程师具体每天都干什么?工作内容是什么,是很多小伙伴不是很清楚的,下面小编汇总了一下阿里巴巴的Java开发工作者的工作内容

作为一名阿里巴巴普通java开发工作者,从工作模块和职责的角度,给大家分享一下我的具体工作范围,从个人经验角度也给出一点对新人的建议。

在阿里巴巴,像我这样的一个普通java开发工作者的工作时间普遍是早上9点到晚上8点。

具体工作内容可以分为开发,运维,答疑,每一项工作的时间占比对于不同岗位职责的同学比例也有所区别,在一个成熟的中间件或者是运维团队可能答疑运维的时间和工作量会多很多,而在一个初创的刚起步的业务团队可能开发工作会占绝大部分比例。

阿里巴巴的Java开发工程师每天做什么

我的具体工作内容如下——

一、Java开发工作

广义的开发工作的内容非常复杂,涵盖的范围也非常广,从最基础的开会讨论环节(例如需求评审或者是设计评审)到狭义的开发环节即代码Coding实现到测试和上线都是属于开发工作的一部分,详细来说开发工作包含了如下内容:

二、需求评审

在项目中,需求分析是最开始的工作,同时也是最重要的工作。在这一步骤中,开发人员需要和产品经理,测试等人员就有关于项目目标,需求理解,系统原型和术语定义等达成一致。

三、系统设计

在理解项目的目标之后就可以开始作系统设计,其中包含了技术选型(项目使用什么语言,使用什么框架,数据持久化选用sql/nosql,数据库又该选用什么),模块拆分(大到网关/入口/功能/基础设施的架构分层设计,小到具体功能间的耦合拆分设计),细节设计(通过诸如时序图,类图等描述某个功能或者设计的关系与流程,定义交互协议的数据格式),设计评审(通过团队内外评审的方式查缺补漏看看设计是否有错误或者是不恰当的地方)。

这一步在整体开发工作中有着至关重要的作用,一个好的系统设计可以非常有效地减少编写代码时的思考量和工作量。

四、代码实现

在完成系统或者是方案设计后,就可以按照预先定义的流程进行代码编写和实现,在完成编写后需要邀请1位以上的同学进行CodeReview评审代码的质量与逻辑的完备性。

五、测试回归

对于开发人员来说,测试主要是代码层面的和功能实现层面的测试,前者主要是编写unittest单元测试以方法或者类的维度验证代码的正确性,后者是功能编写完毕后进行全链路的测试从入口开始编造流量看整体效果是否和预期一致,通常这步也需要专业的测试人员介入,在出现异常问题时,需要进行debug和问题修复。

六、功能上线

任何一个功能或者是系统上线都是比较复杂的,引入流量前需要配置关键业务节点上的监控,发布过程中最开始先beta灰度并进行功能验证,确认功能正常,指标监控平稳后可以开始作分批发布(如果是大规模的系统集群),在发布过程中与完成后需要实时紧盯监控指标以防止出现线上问题。

七、效果验证

项目上线后就可以通过服务端的埋点日志数据进行筛选统计,查看上线后整体功能是否满足预期的目标。

八、文档记录

写文档是一个开发人员工作的本职工作,上述的每一个开发步骤都应该在项目文档或者是系统文档中予以记录。

九、运维工作

运维工作包括了日常运维包括系统容器的状态的管理(重启/置换/扩容/缩容),大促运维(预算申报,预案管理与演练,重保节点配置等)。

举我本人为例,我负责的是淘宝直播互动消息扩散架构,在每次大促活动或者是头部主播(如薇娅或者是李佳琪等)有搞大活动,都会需要作直播间相关信息的提前配置与准备,确认容器状态都正常,这些都是系统运维相关的工作。

十、答疑工作

每个人负责的系统应该都只是一个系统链路的一部分,这种时候对于你的业务方就需要提供答疑工作:帮助完成系统接入,帮助排查问题,解答功能细节等等,现在在阿里巴巴内部这部分工作逐渐转为由自动化答疑和排查工具来完成,但是还是免不了会出现疑难杂症需要开发人员介入来解决。

十一、工作外的充电

阿里巴巴内部有一个ATA的技术分享论坛,在其中能看到各种系统设计介绍,疑难问题的排查亦或者是思维方法论等等,我们在闲暇时间都会在论坛上学习他人的分享,采坑记录或者是成功经验。

我们团队内部也经常会有技术分享和文章书籍介绍,例如《领域驱动设计》《重构》《DesigningData-IntensiveApplication》等等,这些必要的充电对于个人能力的提升也是非常巨大的。

对了,最后,作为先入行的前辈,给一点自己的经验和建议——

十二、对新人的建议

一般情况下,团队内来了新人后会有一段时间来适应工作环境和内容,团队也会给新人配备一个mentor的角色,在阿里巴巴则称之为”师兄“来负责入职后的适应阶段。

新人做的第一件事情就是熟悉环境,包括同事间的相处风格,公司技术栈,中间件等等。在适应完成后一般主管会给你分配一些简单的任务比如一个模块功能的实现,新人就需要通过这样一个任务去落地,包括功能效果的实现,团队和上下游业务的熟悉了解等等。

最后给新人的一些建议就是要在工作中要多沟通交流,刚入职的时候对整体的业务和技术栈甚至包括自己担任的职责和负责的范围等等都会有疑惑,这是非常正常的一件事情。这种时候多和主管或者是mentor作沟通交流不断明确你的工作的目标和当前的进度情况,这样新人落地也会更加顺利一点。同时有时候新人同样在技术实现上也会遇到一些困难,这种时候除了需要靠自己多思考学习外同样需要多和同事讨论,向资深员工学习请教也会让你工作更加顺利。

以上是关于阿里巴巴Java开发者的工作内容,你作为Java工程师每天都在干什么呢?


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • 中级Java发开工程师需要那些技术和工程师证
    中级Java发开工程师需要那些技术和工程师证
    中级Java发开工程师需要那些技术和工程师证?中级Java开发工程师通常需要具备以下技术和技能: 详情>>

    2024-04-02

  • Java高级工程师岗位要求
    Java高级工程师岗位要求
    Java高级工程师岗位要求,Java高级工程师是企业中非常关键的技术岗位,主要负责软件的设计、开发、测试和维护工作。具体岗位要求可能因企业的规模、行业、产品和技术栈的不同而有所差异,但通常包括以下几个方面: 详情>>

    2024-03-05

  • 面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?面试Java开发工程师时,面试官通常会从多个角度评估应聘者的技能和经验,包括基础知识、编程能力、项目经验、问题解决能力、沟通能力以及对Java技术的理解。以下是一些常见的面试问题: 详情>>

    2024-02-29

  • 如何用Java开发游戏?
    如何用Java开发游戏?
    如何用Java开发游戏?使用Java开发游戏可以分为几个步骤,下面是一些基础的指导: 详情>>

    2024-02-29

  • Java开班时间

    收起