当前位置 : 首页> Java培训 > 当一名Java工程师都做什么工作

当一名Java工程师都做什么工作

时间:2020-12-25 21:30:23   已访问:947次
热门专业

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

一个刚从培训机构出来的人,想要从事Java工作,但是怕完不成公司的活,在此求教。谢谢!

干中学,边干边学边学边干,成长最快。要勤奋,多尝试,遇到问题可以网络上搜索别人的方案学习。关键是要有信心、有定力

说下我的日常吧。

早上七点二十起床,洗漱,坐地铁,九点钟到公司打个卡,下楼买早餐。

吃完早餐看一眼公司的任务平台,有没有新任务,钉钉上有没有需要解决的问题,bug,如果有,就构思一下,着手开始写,然后放到测试环境,跟提出问题的人打声招唿,跟测试说一下,到某个环境了,让他们检查一下,没问题就等着迭代周期到了上线,有问题继续改。

如果没有新任务,新功能,就登录微信,群里开始吹水,同时打开一些java相关的图书,最近在看深入理解java虚拟机。有感兴趣的话题就在群里聊天,没有就看书,一会思考一会儿打字,很难被人发现我是在摸鱼。

熬到下班,如果没有紧急的事儿,准时开熘,一分钟都不多待,然后就是最难熬的挤地铁,感觉上八个小时班都没有挤一个多小时地铁累。

到家和女朋友看看吃外卖还是去外面整点好的,吃外卖就一起看电视剧一起吃,腻歪一会儿,我打我的游戏,她刷她的抖音。新买的赛博朋克2077,不过之前很少玩fps游戏,一开始又调的困难,被虐惨了,还是刺客信条放松心情,一路砍过去多爽。

偶尔晚上去健身,最近因为成都的疫情加上天气太冷了就没去过了。

周末就是宅在家里打游戏。

流水账结束。

给刚入行的兄弟一点建议,因为我也是培训入行程序员的,刚去公司,不熟代码,写不出来东西很正常,别说培训刚出来,就是老手,去接手新的业务,如果文档不全,交接不到位,也得好几天才能上手写。技术问题问搜索引擎,业务问题问同事,尽量参照项目之前的代码写,别想着创新优化什么的,先把功能完成了再说其他的。

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

开发工作:

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

需求评审

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

系统设计

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

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

代码实现

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

测试回归

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

功能上线

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

效果验证

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

文档记录

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

运维工作

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

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

答疑工作

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

工作外的充电

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

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

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

对新人的建议

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

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

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


推荐内容