CodeGym /Java 博客 /随机的 /Java 开发人员在项目中的典型任务
John Squirrels
第 41 级
San Francisco

Java 开发人员在项目中的典型任务

已在 随机的 群组中发布
Java 开发人员的典型职责是什么?毕竟,您需要了解自己正在从事什么以及最终会做什么,对吗?今天我想谈谈 Java 开发人员执行的十项重要任务。 Java 开发人员在项目中的典型任务 - 1但首先,让我们熟悉一个名为 Jira 的工具。或者刷新您对它的记忆,如果您已经熟悉它的话。 吉拉是一种组织人际互动的工具,尽管在某些情况下它也用于项目管理。换句话说,一个项目被分解成这个工具中描述的小任务。这些任务分配给负责实施的开发人员。例如,任务可以是添加一些功能。在执行任务时,开发人员和其他专家会添加关于谁做了什么以及他们花费了多少时间的评论。这样做是为了时间跟踪目的——了解在哪些任务上花费了多少时间。理想情况下,每天完成一次:在晚上离开办公桌之前,指出您在 8 个工作小时中花费了多少时间在各种任务上。Jira 的功能比上面描述的要多得多,但这足以初步了解。

1. 设计新的解决方案

在创建和实施某些东西之前,您需要将其概念化,对吗?正如我之前所说,这可能只是 Jira 中分配给您的一项任务,因此您要努力设计一个新的解决方案,在 Jira 中记录您花费了多少时间以及在哪些方面。这项工作也可以在团队电话会议的讨论中进行:每个人都可以发表意见并提出他们认为最好的方法。在这里我想指出几点。首先,软件开发是一个非常有创造力的职业,因为你需要使用标准工具来想出解决问题的新方法。一项任务往往可以有许多不同的解决方案。因此,一切都取决于开发人员的创造力,这在很大程度上受到他们积累的知识和经验的影响。你可以在这里展示你所有的创造力和天才,但重要的是不要过度。如果这样做,代码将变得过于复杂且难以阅读。结果,在你离开之后,没有人会完全理解你编码的内容以及它是如何工作的。他们将不得不从头开始重写所有内容。他们可能会想起你。不止一次。而且不太可能会说出温暖、友善的话。你需要那个吗?其次,开发人员必须保持心理灵活性,即您不应该坚持单一的解决方案并对其他解决方案变得封闭。好像你只能用一种方式做某事,没有其他选择。你可能会因为各种原因掉入这个陷阱。例如,假设你想证明你的观点是正确的。或者您可能已经设计并实施了自己熟悉的解决方案——当然,你不想承认它不是最好的。这些情况会让你相当失明。事实上,你需要能够承认自己的错误并始终保持开放的心态,即使你不得不删除你引以为豪并且已经编码了一个多星期的功能。我记得一位同事如何通过在 Jira 中留下这条时间跟踪评论来让每个人的一天都变得愉快: “我去除了死产的特征。并哀悼。”

2.编写新功能

这一步——实现新功能——在逻辑上跟在前一步之后。项目中涉及的所有工作都在 Jira 中划分为任务,然后根据开发人员的工作量将其分配给开发人员。此过程有不同的方法,称为“方法论”,您可以在CodeGym 上的这篇文章中阅读更多详细信息。通常,任务有一个估计,这是完成它们所需的预测时间。它可以由您(开发人员)在收到任务时设置,也可以由团队负责人设置,也可以在计划期间由开发团队共同设置。这次猜测很少准确,因为影响软件开发的因素太多了。例如,程序员对相关技术的熟悉程度、不熟悉程度、整体经验、各种不可预见的陷阱等。这些只是一般估计。也就是说,并非所有项目都需要时间估算。就我个人而言,我发现没有它生活得更轻松,尤其是当 PM 没有每天多次问我“你的时间估计在哪里?”的问题时。所以,你接到一个任务,Ready for review ” 在 Jira 中,并祈祷您的代码更改不会连同评论一起返回进行修订。

3. 编写测试

审阅者,即检查您代码的人,喜欢您实现的功能,但她有一个问题要问您:相关测试在哪里?所以她把任务发回给你修改。测试是任何 Java 应用程序的重要组成部分。通过运行测试,您可以立即识别应用程序无法正常工作的地方。例如,开发人员在系统的一部分进行了一些更改,导致另一部分的行为发生了变化,但他在编码时没有注意到这一点。通过运行测试,他将能够看到某些测试失败了,这意味着它们没有产生预期的结果。这告诉他系统中的其他地方出现了问题。知道这一点后,他不会将重大更改提交给服务器,而是继续调试他的代码。是的,很少有开发人员喜欢编写测试,但不可否认它们给软件开发带来的好处。客户自己通常会指明他们想要保持的测试覆盖率水平(例如,80%)。这意味着你需要知道各种类型的测试,并能够编写它们。Java 开发人员主要编写单元测试和集成测试,而更广泛的(端到端)测试由 QA 和测试自动化专家处理。

4. 查找和修复错误

对于 Java 开发人员来说,这也是一项非常常见、频繁的任务。QA 和测试自动化专家的主要工作是捕捉错误。换句话说,他们寻找程序行为不正确的地方,然后他们在 Jira 中创建任务并将它们分配给某人。例如,对于团队负责人,团队负责人又决定将他们分配给哪些开发人员,具体取决于他们的工作量和对系统相关部分的熟悉程度。之后,指定的开发人员会在调试器中花费数小时来寻找错误的根本原因,使用 QA 专家提供的错误描述来重现错误发生的情况。一旦开发人员发现错误并修复它,他就会将修复程序发送给审查。有时开发人员无法重现错误,因此他将任务连同解释性评论一起发回给 QA 专家。查找和修复错误似乎不会花很长时间,但还是有一些细微差别。这一切主要取决于开发人员对这部分代码的熟悉程度,以及他的经验和理论知识。有时一个bug可以在20分钟内找到并修复,有时则需要三天时间。这意味着此类任务特别难以提前估计,除非开发人员在阅读描述后立即了解错误的内容、位置和方式。在这种情况下,

5.代码审查

如上所述,一旦完成任务,就应该将其送审。如果通过审核,则进入主分支。如果没有,它将连同需要解决的评论一起返回给开发人员。当然,你明白你的代码都是由其他开发人员检查的,而不是由一些高权力者检查的。也就是说,并不是每个人都可以执行代码审查——只有经过现实世界实践磨练的最有经验的开发人员才能分辨好代码和坏代码之间的区别。代码审查通常使用辅助工具(例如Crucible )执行. 审阅者检查代码,并在必要时对某些行留下评论。可以有各种评论。例如,有些是关键的。如果它们没有得到解决,那么审阅者将不允许提交代码。例如,其他评论只是对所选方法的简单评论。开发人员可以听取、注意或忽略这些内容。团队可以创建自己的代码审查规则和程序,就哪些值得关注、哪些不值得关注、完成代码审查应分配的时间范围等达成一致。仅凭经验不足以进行审查:您仍然需要大大提高您的技术技能并阅读各种书籍(例如,“Clean Code”)。

6.代码分析

由于多个想法不同的人同时为项目编写代码,因此他们的代码和方法会有所不同。随着时间的推移,一切都逐渐变得一团糟。为了改进代码,有时会创建任务来分析某个模块或整个应用程序,发现并记录缺点,然后根据此分析创建重构任务。在开发开始时,团队看不到一些更简单、更简洁的解决方案但他们现在看到了的情况下,此类分析也有帮助。例如,逻辑经常在某些方法中重复。因此,它可以被提取到一个单独的方法中,然后可以多次重复使用。或者一个类可能变得过于臃肿,或者一些代码变得难以维护或过时,或者...... 分析任务有助于提高代码和应用程​​序的质量。也就是说,对我来说,分析大量代码可能很无聊。

7.重构代码

代码分析的下一部分是重构。代码可能已经过时、过时、写得不好、难以阅读等等。您应该始终力求完美(尽管它不存在)和最新的代码,删除任何多余的东西,因为多余的东西只会导致混乱并干扰查看代码功能的能力。不用说,您不太可能在项目开始时看到这些任务:您会在开发的后期阶段遇到它们,当应用程序被打磨和完善时。在这里,与同事商量他们会做什么以及他们看到的陷阱可能是合适的。从本质上讲,这些任务类似于开发新功能。例如,假设您收到一项任务,要在不更改其行为的情况下编辑某些功能。为此,您删除旧代码,编写自己的代码并检查测试。如果您做的一切都正确,那么在不对测试进行任何更改的情况下,它们应该都像以前一样通过。在代码中的所有内容都符合预期后,我们将其送去审核,然后去喝杯咖啡 :)

8. 编写文档

想象一下,您是某个长期软件开发项目的新开发人员。您需要熟悉代码库或执行某些特定任务,例如诊断错误。您将如何浏览该项目?每五分钟纠缠你的队友?如果他们很忙或者是周末怎么办?这正是我们拥有文档的原因 — 以便不熟悉代码的人可以进来,找到相关页面,并快速弄清楚应用程序中她感兴趣的部分发生了什么。但是必须有人创建文档,哈哈。如果一个项目有开发人员必须支持的文档,那么当他们实现新功能时,他们会描述它并更新文档以及任何代码更改或重构。您还可以雇用一名单独的员工(技术作家)来编写、维护和监督文档。如果有这样的专家,普通开发人员的生活就会轻松一些。

9、各种会议

开发人员的大量时间花在了各种会议、谈判和计划上。最简单的例子就是每日站会,你需要汇报昨天做了什么,今天要做什么。此外,您需要与测试人员进行一对一的电话通话,以便他们可以演示/解释重现错误的细微差别,或者与业务分析师讨论微妙之处和要求,或者讨论组织问题与下午。这意味着尽管开发人员可能是一个喜欢独处的内向者,但她仍然需要能够找到与其他人的共同点(嗯,至少是一点点)。 Java 开发人员在项目中的典型任务 - 2开发人员的级别越高,她需要花在沟通上的时间就越多,写代码的时间就越少。开发负责人可以将一半甚至更多的工作时间花在单独的对话和会议上,并且编写代码的频率可能会降低(可能会导致他失去一点编码能力)。但如果你只是喜欢说话,你可以作为一个团队领导,过渡到管理,完全忘记编写代码,而是整天与各种团队、客户和其他经理沟通。

10. 进行/通过面试

如果你在外包或外包公司工作,你将经常需要通过外部面试,在那里你需要将自己“推销”给客户(你可能会被为客户工作的人面试),以及内部面试那些在公司内部晋升的人。我会称这是一个很好的成长机会,因为频繁的面试会迫使你保持知识的敏锐:你不会生锈和软弱。毕竟IT软了,完全可以掉出这个领域。当您成为更有经验的开发人员时,您将能够发现自己在桌子的另一边,进行面试而不是通过面试。相信我,当你从这个角度看时,你会非常惊讶,因为问面试问题比回答问题更可怕。您需要有自己的面试策略、问题列表以及在一小时内针对所有必要主题提出问题的时间。之后,您有责任提供反馈,这将影响招聘决定以及候选人是否会收到期待已久的工作机会或晋升。或者,您可能会允许一个明显较弱的候选人获得她不合格的职位,然后您可能会被问到,“您怎么能允许她以这种知识水平被录用”?所以,当你在面试中处于困境时,请记住,你面前的人也面临着挑战,并且可能会感到压力很大。您有责任提供反馈,这将影响招聘决定以及候选人是否会收到期待已久的聘用或晋升。或者,您可能会允许一个明显较弱的候选人获得她不合格的职位,然后您可能会被问到,“您怎么能允许她以这种知识水平被录用”?所以,当你在面试中处于困境时,请记住,你面前的人也面临着挑战,并且可能会感到压力很大。您有责任提供反馈,这将影响招聘决定以及候选人是否会收到期待已久的聘用或晋升。或者,您可能会允许一个明显较弱的候选人获得她不合格的职位,然后您可能会被问到,“您怎么能允许她以这种知识水平被录用”?所以,当你在面试中处于困境时,请记住,你面前的人也面临着挑战,并且可能会感到压力很大。 任何面试对候选人和面试官来说都是有压力的。 我们可能会在这里结束。感谢所有阅读这篇文章的人。留下一个赞并继续学习 Java :)
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION