JavaRush /Java 博客 /Random-ZH /Java 开发人员在项目中的典型任务

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

已在 Random-ZH 群组中发布
Java 开发人员的典型职责是什么?毕竟,您需要了解自己的目标以及最终要做什么,对吧?今天我想谈谈 Java 开发人员执行的十项主要任务。Java 开发人员在项目中的典型任务 - 1但首先,让我们熟悉一下 Jira 这样的工具。或者,如果您已经熟悉的话,让我们回顾一下。 Jira是一个用户交互工具,尽管在某些情况下它也用于项目管理。换句话说,项目开发被分解为该工具中描述的小任务。这些任务被分配(分配)给开发人员,开发人员将负责其实施。例如,我们所说的任务是指添加一些功能。随着进展的进展,开发人员和其他专家会添加关于谁做了什么以及他们花费了多少时间的评论 - 他们跟踪时间。这样做是为了跟踪所花费的时间:花费了多少以及花在什么上。理想情况下,每天执行一次:在晚上离开之前,您可以跟踪您在 8 小时内完成的任务。Jira 的功能比上面描述的要广泛得多,但这对于初步理解来说已经足够了。那么,Java 开发人员的职责是什么?

1. 开发新的解决方案

在创建和实施某些东西之前,您需要想出它,对吧?正如我所说,这可能就像分配给您的Jira任务一样简单,您将致力于开发一个新的解决方案,并在 Jira 中记录您花费了多少时间以及做什么。这也可以是小组电话会议的讨论:每个人都可以表达自己的意见并提出他们认为最好的方法。在这里我想指出几点。首先,开发人员职业是一个非常有创造力的领域,因为您需要想出独特的方法来使用标准工具解决问题。通常,一个问题可以有多种不同的解决方案:相应地,一切都取决于开发人员的“创造精神”、积累的知识基础和经验。在这里你可以展示你所有的创造力和天才,但最重要的是不要做得太过分:在这种情况下,代码将变得过于复杂且难以阅读,结果是,在你离开后,没有人会完全理解它是什么,并且怎么运行的。而且您需要从头开始重写所有内容。他们可能会记得你。而且不止一次。这些不太可能是温暖、善意的话。你需要它吗?Java 开发人员在项目中的典型任务 - 2其次,开发人员必须保持灵活性,即您不应该陷入一种解决方案并对其他解决方案封闭。就像,你只需要这样做,而无需做其他事情。发生这种情况的原因有多种:例如,您想证明您的观点,或者您已经开发并实施了您的解决方案,您对此非常依恋,当然,不想承认它不是您的解决方案。最好的。这几乎会让你失明。事实上,您需要能够承认自己的错误并始终对新事物持开放态度(“开放思想”),即使您必须删除您已经编写了数周且引以为傲的功能。我记得有一次,有人在 Jira 中的时间轨迹决定了一整天的心情,并评论道: “我删除了我胎死腹中的功能。我哭了”

2. 编写新功能

Это логический шаг вслед за предыдущим — реализация нового функционала. Вся работа над проектом разбита на задачи в джире, которые получают разработчики по мере загруженности. Есть различные подходы в этом вопросе — “методологии”, подробнее о которых можно почитать в этой статье на JavaRush. Как правило у задач есть “Estimation” — прогнозируемое затраченное время на выполнение. Его выставляете либо вы сами, когда берете задачу, либо тимлид, либо во время планинга разработчики сообща его прикидывают. Это время очень редко угадывается точно, так How на разработку влияет множество различных факторов. Например, знаком or не знаком программист с данной технологией, Howов его общий опыт, различные подводные камни, которые могут стать видны уже во время разработки и т.д. Поэтому если при разработке функционала вы не уложитесь в это время, ничего страшного не случится. Это всего лишь общие прикидки. Но опять же, эстимация задач есть не на всех проектах и, How по мне, без неё жить гораздо легче, особенно когда PM по пару раз в день не тыкает тебя в бок с вопросом — “Где эстимейты?” Соответственно, вы берете задачу, разрабатываете необходимый функционал, заливаете в общую ветку в GIT, и в джире переводите статус задачи на “Ready for review”, то есть, готовая для просмотра (проверки) и молитесь, чтобы её вам не вернули с замечаниями на доработку.

3. Написание тестов для функционала

Проверяющему ваш code человеку — ревьюеру — разработанный вами функционал понравился, но у него появляется вопрос: а где тесты к нему? И он возвращает вам задачу на доработку. Тесты — важная часть любого Java-applications. Запустив их, можно сразу отлавливать места неправильной работы applications. К примеру, разработчик внес некоторые изменения в одной части системы, которые потянули за собой изменения поведения в другой, и не заметил этого при разработке. Запустив тесты, он сможет увидеть упавшие (правильно не сработавшие) тесты. Это подскажет ему, что в другой части системы что-то сломалось. Поэтому он не зальет ломающие изменения на server, а продолжит дорабатывать своё решение. Да, несомненно, мало Howие разработчики питают любовь к тестам, но нельзя отрицать ту пользу, которую они приносят приложению. Часто сами клиенты указывают, Howого уровня покрытия тестами необходимо придерживаться (например, 80%).Java 开发人员在项目中的典型任务 - 3Поэтому и нужно знать различные виды тестов и уметь их писать. Java-разработчики в основном пишут юнит-тесты и интеграционные тесты, а более обширными (сквозными) занимаются AQA — тестировщики-автоматизаторы. Подробнее о них и других представителях IT-профессий вы можете почитать в моем обзоре.

4. Поиск и починка бага

这对于 Java 开发人员来说也是一个非常常见且频繁的任务。QA和AQA的主要任务是捕捉bug。也就是说,他们寻找程序行为不正确的地方,在 Jira 中创建问题并将其归咎于某人。例如,团队负责人根据他们的负载和对系统这部分的熟悉程度来决定将其分配给哪个开发人员。此后,开发人员搜索错误,在调试器中花费数小时,使用 QA 专家对问题的描述来重复错误发生的情况。接下来,开发人员发现错误,修复它,并将其发送以供审核。好吧,开发人员可能无法重现该错误,他将任务返回给 QA 专家并附上评论。似乎不需要那么长时间就能找到并修复该错误,但还是有一些细微差别。一切主要取决于开发人员对这段代码的熟悉程度、经验以及对理论问题的了解。有时一个 bug 可以在 20 分钟内找到并修复,有时可能需要三天。因此,这种类型的任务特别难以提前评估,除非开发人员在阅读描述后立即了解出了什么问题、在哪里以及出了什么问题。这样的话,他就能或多或少准确地猜出时间了。

5. 代码审查

上面提到,任务完成后,需要送去审核,如果通过了,就进入通用线程,如果没有通过,就会返回给开发者,并附上需要审核的意见。已更正。很明显,这一切都不是由某些更高权力机构检查的,而是由其他开发人员检查的。但并不是所有的开发人员都可以成为评审员,只有最有经验的开发人员才能成为评审员,他们有实践经验,能够区分好代码和坏代码。Java 开发人员在项目中的典型任务 - 4代码审查通常使用辅助工具完成,例如Crucible。审阅者审阅代码,并在必要时在某些行下留下注释。评论也可以有多种类型。例如,关键的,如果不进行纠正,审阅者将无法通过代码,而其他的则更可能只是对所选方法的评论,开发人员可以听取、记录或忽略。团队可以创建自己的审查程序和规则,就什么值得关注、什么不值得关注、应该在什么时间范围内进行代码审查等达成一致。要进行审查,仅靠经验是不够的:你还需要在技术方向上进行大量开发,阅读各种书籍(例如《Clean Code》)。如果您对根据 Google 进行代码审查的细微差别感兴趣,我建议您阅读这篇文章

6. 代码分析

由于该项目是由几个想法不同的人同时编写的,因此他们的代码和方法会有所不同。而随着时间的推移,一切都会逐渐变成糊状。为了改进代码,有时您会创建任务来分析(可能是特定模块或整个应用程序),以查找缺陷并标记它们,然后根据这些注释创建重构任务。该分析还有助于解决某些更简单的快捷方式从开发之初不可见但现在可以看到的情况。例如,相同的逻辑经常在某些方法中重复,因此,可以将其移至单独的方法中并重复使用多次。好吧,要么某些类变得非常臃肿,要么某些代码变得难以维护或过时,或者......分析任务有助于提高代码和应用程​​序的质量。尽管在我看来,分析大量代码可能是一项无聊的任务。Java 开发人员在项目中的典型任务 - 5

7. 代码重构

分析的下一部分是代码重构。它可能已经过时、不再需要、写得不好、难以阅读等等。您应该始终追求完美(尽管它不存在)和最新的代码,删除所有不必要的内容,因为这只会让您感到困惑并阻止您看到功能的本质。不用说,您不太可能在项目开始时看到这些任务:它们仅在开发的后期阶段发生,此时应用程序已被完善并趋于完美。Java 开发人员在项目中的典型任务 - 6在这里,可能应该向同事咨询他们将如何做到这一点以及他们看到的陷阱。此类任务的本质类似于新功能的开发。例如,您收到一项编辑某些功能而不更改其行为的任务。为此,您需要删除旧的,编写自己的并检查测试。如果您正确地完成了所有操作,而不对测试进行更改,它们应该像以前一样工作。代码中的所有内容都解决后,我们将其发送给审核并去喝咖啡))

8. 编写文档

想象一下,您是某个已经开发了很长时间的项目的新开发人员。您需要熟悉它或执行一些特定的任务,例如捕获错误。您将如何引导该项目?每五分钟拉一次你的团队成员?如果他们很忙或在周末,那又怎样?这就是文档存在的原因,以便不熟悉功能的人可以进入,找到正确的页面并快速找出他感兴趣的应用程序部分的用途。但还必须有人填写文档 ^^ 如果项目有开发人员必须支持的文档,那么在实现新功能时,他们会对其进行描述,并通过各种更改和重构来更新文档。当聘请一名单独的专家(技术作家)来编写、支持和控制文档时,也可能出现这种情况。如果存在这样的专家,那么普通开发人员的生活就会变得轻松一些。

九、参加各类集会

开发人员花费大量时间进行各种会议、谈判和规划。最简单的例子就是“每日会议”(daily Meetings),你需要告诉自己昨天做了什么以及今天要做什么。此外,您需要进行一对一的通话,例如与 QA 专家进行通话,以便他可以展示/解释重现错误的细微差别,或者与业务分析师或组织讨论细微差别和要求。与 PM 的问题。因此,即使开发人员可能是一个喜欢独处的内向者,他仍然必须能够与其他人找到共同语言(嗯,至少有一点)。Java 开发人员在项目中的典型任务 - 7开发人员的级别越高,他需要花在沟通上的时间就越多,而编写代码的时间就越少。开发团队领导甚至可以将一半甚至更多的工作时间花在对话和会议上,并减少编写代码的次数(这可能会导致失去一点控制力)。但如果你也是一个喜欢说话的人,你很容易从团队领导的位置发展到管理端,完全忘记代码,整天与各个团队、客户和其他经理沟通。

10. 进行/通过面试

如果您在外包或外包公司工作,当您需要“推销”给客户时,您将需要进行频繁的外部面试(然后您可以接受客户方面的人员面试),以及内部面试,以了解更多信息。提高您在公司内的级别。我认为这是一个发展的好因素,因为由于频繁的面试,你的知识应该始终处于成型状态:你不会生疏和放松,因为如果你在IT领域放松,你就可以完全飞出领域。当你成为一名更有经验的开发人员时,你将能够拜访对方:不是通过,而是进行采访。相信我,如果你从这个角度来看,你会感到非常惊讶,因为面试可能比通过更可怕。您需要有自己的面试策略、问题清单,并有时间在一小时内就所有必要的主题提出问题。之后,你有责任提供反馈,因为依靠它,一个人可能会也可能不会收到这样期待已久的优惠或促销。好吧,反之亦然:你可能会错过一个坦率地说很弱的候选人,而他并不适合担任一个职位,然后你可能会被问:你怎么会错过他拥有如此丰富的知识水平?因此,在面试时,请记住,你对面的人也正在经历困难,他也可能正在承受压力。 任何面试对于候选人和面试官来说都是有压力的。Java 开发人员在项目中的典型任务 - 8或许我们就到此为止吧。感谢大家读完:喜欢并学习Java^^
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION