我以前的博客文章在Twitter上发布了。 它指出了一个问题:始终坚持遵守某些规则的义务实际上并不能帮助人们更好地工作。 我在博客文章中遇到的最常见问题(或反对意见)是:那么我们如何教新编码员如何进行良好编码。 这篇博客文章就是关于这个话题的。
首先学习合作
我们应该教的最重要的技能是如何在共享代码库上与他人良好地合作。 在我的职业生涯中,我花了很多年才开始擅长于此,但这对我的效率影响最大。 因此,这是我准备从准备加入工作队伍的开发人员开始的地方。 在我们从事的几乎所有项目中,我们的成功都将取决于其他项目。
可以教与他人合作。 以下是一些对我有用的技术:
- 配对编程。 好的结对编程需要培训,但是存在诸如编码dojos和代码撤退之类的培训风格。 作为培训的一部分,世界上一些最好的编程教练会积极使用结对编程。
- 代码审查。 我在结对编程方面做了大量工作,因此我个人认为代码审查的优先级较低。 但是许多团队在其中发现了巨大的价值。
- 忍耐。 使用结对编程时,很容易陷入参数中。 我们的职业几乎没有提到人际交往能力,但我们一直都依赖他们。 尝试以下操作:当结对编程时,您发现您的结对有误,请在闯入之前先看看她是否发现了自己。
- 谦逊。 我经常被问到“如何说服他人编写干净的代码”。 当然,该问题假设您是对的,而他们是错的。 我们大多数人对改变主意绝对是垃圾。 在结对编程时,如果您的一对想要做某件事,您认为错了,请尝试放纵他们。 最糟糕的是,您有机会教给他们一些东西。 充其量是,您自己学习一些东西。
除非您自己编写所有代码,否则协作技能至关重要。 如果您“不同意”团队的代码,则“知道”代码的外观并不重要。
现在,让我们谈谈代码!
如果您是跳到本节的人员之一,请返回并阅读有关协作的信息。 说真的 如果您无法与他人合作,那么我对代码的任何评论都不会对您有所帮助。
继续,再读一遍。 我在这里等
很高兴见到你! 现在让我们讨论学习编写好的代码。 当然,良好的代码对于专业成功至关重要。 如果代码基础更好,则您花在修复错误上的时间更少,您将来可以更轻松地更改代码,并且您的团队将有更好的时间与您合作。 这是可以理解的。
学习编写好的代码非常简单:您必须阅读代码,必须编写代码,必须更改代码,必须观察容易和难的事,还必须删除代码并重新开始。
对于这些要点中的第一点,好的书籍可以帮助您阅读代码:干净的代码,实现模式,重构,敏捷艺术,实用程序员,敏捷开发人员的实践,设计模式。 我非常喜欢阅读所有这些书。 这些书将教您一些考虑因素,例如低耦合,高内聚和简单设计。 他们将教给您有用的原则,例如单一责任原则和开放式封闭原则(尽管我发现我几乎从不提及SOLID的其余部分)。 模式和原则教您单词,与团队讨论代码。
对于第二点,测试驱动开发是学习如何编写代码的一种不错的方法。 我喜欢自己编写kata编码,经常将其用于教学。 但是编写代码时最有价值的技能是我在代码务虚会上学到的一项技能(谢谢您,Corey Haines!)。 学习删除您编写的代码。 我不仅意味着将其重构为更小。 我的意思是,对于编码练习,突出显示所有文件,然后按Delete键。 对于生产代码,我的意思是在花了几个小时完成任务后,(有时) git reset --hard HEAD
。
出色的代码的特点是更改起来很容易。 您可以浏览代码吗? 您可以快速发现错误吗? 您知道在哪里进行特定更改吗? 您可以通过阅读有关原理的知识来学习,但是最安全的老师是让自己接触更多的经验。 (我打算写一篇关于有时原理的博客文章,但并不总是与好的代码一致)。 在编写和更改代码时,请反思代码的局限性和当前的技能如何阻碍您要进行的更改。
简而言之:编写更多代码,听一下代码,然后听听您的同伴。
你能顺利释放吗
我几乎忘记了优质代码的#1质量:必须使用它! 团队的发布周期可以从每天几次到每年几次。 如果您可以随意发布代码,则可以了解有关代码和用户的信息。 当整个团队得知您明天或下周再次发布时,“现在或以后”的优先事项就变得容易了。 当您一年只发布几次时,人们会感到压力,讨论会变得很热烈。
我几乎总是发现该团队没有意识到花费时间在构建和部署工具及脚本上的价值。
“不要故意做愚蠢的事情”
如果您发现不满意的代码,则需要记住它是那样的,因为它是那样的。 人们之所以这样做,是因为原因。 这些理由是正确的,无论是因为周围的需求发生了变化,还是由于开发商的经验不足,由于完成工作的压力,因为他们想回家而不是坐在办公室里而又没有回家,或者他们只是有所不同认为什么是好的代码。
并非所有人都对此表示赞同,“那些不在乎的人呢?” 经过20年的程序员工作,我从未遇到过任何不在乎的人。 我遇到的程序员与我的程序员有不同的喜好,我遇到了在短期限内交付的程序员,我遇到了因表扬进步而受到称赞的程序员,但他们却牺牲了编写好的代码。 我遇到了很多程序员,他们对代码的关心程度不如我 。 在我们的生活中拥有其他兴趣是花更少的时间来完善代码的绝佳理由。
但是我从来没有遇到过一个不在乎的程序员。 有吗 我很想从你的故事中学到东西。
翻译自: https://www.javacodegeeks.com/2018/06/write-better-code.html