就我的工作而言,我从事多个不同的科学软件项目,以及与任何“办公室”工作并驾齐驱的一般管理任务。因此,任何特定的工作周都可能涉及到这些软件项目的任何进展或全部进展。
简单地说,我的问题是,我浪费了很多时间(有时是几天),当我从其中一个软件项目中拿起一个软件项目时,我会从它停下来的地方捡起它。通常这是因为我必须重新学习:
在软件开发中,什么是最有效和最好的方法,以避免这个“死期”/“滞后”的时间,当你重新开始一个项目的开发后,长时间停止工作?
PS -我是一个专业的科学家,而不是一个软件开发人员,所以我为这个问题的基本/基本性质道歉。而且,许多项目都是我自己开发的。
发布于 2022-12-02 15:51:25
让我放慢你的速度。
听说过谁才是最好的家庭教师吗?不是老师的问题。是某个学生刚刚上的课。记得那场斗争的人。
为此,我希望你在做新工作之前进行重构。因为现在你真正理解了代码是多么的混乱。以及为您的新功能添加新代码有多难。现在你看到的问题比以往任何时候都要好。
稍后,当您添加了这个新特性后,您将再次变得愚蠢。你会很清楚它是怎么工作的。所以你不会知道它有多可读性。
当你独自工作时,这是你所能做的最好的事情。
如果您想这样做,最好想办法让其他人来查看您的代码。当你还愿意改变它的时候,在你写完它之后马上去做。当你不能并将使你远离做傻事就因为你能时,他们可以看到它真正需要的东西。
当然,测试,好名字,空格,所有那些好东西,都是很重要的。你越早做那件事越好。但是写代码会改变你的大脑,直到你不再是代码的目标受众。它是为那些还不知道它是如何工作的人准备的。测试它的可读性。
作家可能会认识到这种模式。当他们校对自己的作品时,有时需要花一些时间在抽屉里,然后再读一遍。这是为了让他们能够看到自己的排版,而不是仅仅看到他们想说什么。
这意味着,当你因为上次碰它没有让它变得更容易而自责的时候,你就是没有离开。你的大脑在那时候被破坏了。现在它痊愈了。快一点,用那个治愈的大脑来解决你现在看到的问题,以免它再次受到损害。
发布于 2022-12-03 09:20:56
中一样
把你未来的自己想象成另一个团队成员,拥有相同的技能,但不了解你的代码。遵循其他团队成员通常会遵循的所有流程。
关于最后一颗子弹的有趣故事。我曾经认识一位将数据库字段命名为object_state的工程师,因为他正在研究一个通用的数据同步特性,他需要一种方法来跟踪每个对象的状态。在他的头脑中是完全有意义的,但对任何其他人来说都可能意味着任何事情(所有的数据都是某种对象状态)。有时,你必须仔细思考,以避免假设一个不会出现在其他人身上的心理环境。
当您在软件团队工作时,源代码的要点不是告诉计算机该做什么,而是告诉其他团队成员您想要做什么。正如马丁·福勒所说:
任何傻瓜都能写出计算机能理解的代码。优秀的程序员编写人类能够理解的代码。
你的“未来你”是另一个人。有一整本书是关于如何帮助他理解的。
如果你的工作开始了,你会很高兴你做了所有这一切,并且你需要雇佣另一个开发人员。
发布于 2022-12-02 15:34:08
这是完全正常的,并期望你必须重新学习一个代码基后,你没有工作了很长一段时间。这段时间越长,你需要重新学习的部分就越大。
在软件开发中,什么是最有效和最好的方法,以避免这个“死期”/“滞后”的时间,当你重新开始一个项目的开发后,长时间停止工作?
有许多实践有助于减少这种重新学习的时间,它们可以概括为“使用良好的工程实践”:
https://softwareengineering.stackexchange.com/questions/442594
复制相似问题