首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从长远来看,持续开发一款软件最有效的方法是什么?

从长远来看,持续开发一款软件最有效的方法是什么?
EN

Software Engineering用户
提问于 2022-12-02 14:37:28
回答 11查看 6.4K关注 0票数 41

就我的工作而言,我从事多个不同的科学软件项目,以及与任何“办公室”工作并驾齐驱的一般管理任务。因此,任何特定的工作周都可能涉及到这些软件项目的任何进展或全部进展。

简单地说,我的问题是,我浪费了很多时间(有时是几天),当我从其中一个软件项目中拿起一个软件项目时,我会从它停下来的地方捡起它。通常这是因为我必须重新学习:

  • 我看到的特定函数/类是如何适应整个项目的?
  • 该软件用于我们用例的一般流程/算法。
  • 我已经写过的方法/类等(即为了确保与进一步的工作保持干性)

在软件开发中,什么是最有效和最好的方法,以避免这个“死期”/“滞后”的时间,当你重新开始一个项目的开发后,长时间停止工作?

PS -我是一个专业的科学家,而不是一个软件开发人员,所以我为这个问题的基本/基本性质道歉。而且,许多项目都是我自己开发的。

EN

回答 11

Software Engineering用户

发布于 2022-12-02 15:51:25

让我放慢你的速度。

听说过谁才是最好的家庭教师吗?不是老师的问题。是某个学生刚刚上的课。记得那场斗争的人。

为此,我希望你在做新工作之前进行重构。因为现在你真正理解了代码是多么的混乱。以及为您的新功能添加新代码有多难。现在你看到的问题比以往任何时候都要好。

稍后,当您添加了这个新特性后,您将再次变得愚蠢。你会很清楚它是怎么工作的。所以你不会知道它有多可读性。

当你独自工作时,这是你所能做的最好的事情。

如果您想这样做,最好想办法让其他人来查看您的代码。当你还愿意改变它的时候,在你写完它之后马上去做。当你不能并将使你远离做傻事就因为你能时,他们可以看到它真正需要的东西。

当然,测试,好名字,空格,所有那些好东西,都是很重要的。你越早做那件事越好。但是写代码会改变你的大脑,直到你不再是代码的目标受众。它是为那些还不知道它是如何工作的人准备的。测试它的可读性。

作家可能会认识到这种模式。当他们校对自己的作品时,有时需要花一些时间在抽屉里,然后再读一遍。这是为了让他们能够看到自己的排版,而不是仅仅看到他们想说什么。

这意味着,当你因为上次碰它没有让它变得更容易而自责的时候,你就是没有离开。你的大脑在那时候被破坏了。现在它痊愈了。快一点,用那个治愈的大脑来解决你现在看到的问题,以免它再次受到损害。

票数 55
EN

Software Engineering用户

发布于 2022-12-03 09:20:56

工作时就像在团队

中一样

把你未来的自己想象成另一个团队成员,拥有相同的技能,但不了解你的代码。遵循其他团队成员通常会遵循的所有流程。

  • 遵循任务和代码管理过程,例如保持回购,创建特性/修复分支,并使用简短、有意义的提交消息
  • 尽可能使用最简单的设计,并在适用时使用常见的设计模式。
  • 编写语言的习语代码。
  • 如果可能的话,坚持使用核心库,如果不是的话,使用众所周知的、稳定的库.
  • 保持某种类型的文档,但保持简短(你的未来,你不会想要涉猎太多的东西)。我发现Wiki很好用。
  • 编写自动化单元测试。这是一种文件形式。他们也会告诉你未来的自我,当你弄脏了一些东西。
  • 遵循最小惊讶原则
  • 对于任何类型的库或长期依赖项(即其他模块所依赖的需要维护的代码),编写实心代码。我是值得努力
  • 不要害怕编写非常明显的代码,即使它看起来像是更多的打字。一般来说,代码读取的次数比编写的要多。
  • 验证输入参数,并使用有意义的异常消息。即使您的输入总是有效的,验证代码也可以帮助表示函数是如何被其他程序员使用的。
  • 用名字称呼事物,这对其他人来说意味着什么,而不需要知道太多的上下文。

关于最后一颗子弹的有趣故事。我曾经认识一位将数据库字段命名为object_state的工程师,因为他正在研究一个通用的数据同步特性,他需要一种方法来跟踪每个对象的状态。在他的头脑中是完全有意义的,但对任何其他人来说都可能意味着任何事情(所有的数据都是某种对象状态)。有时,你必须仔细思考,以避免假设一个不会出现在其他人身上的心理环境。

当您在软件团队工作时,源代码的要点不是告诉计算机该做什么,而是告诉其他团队成员您想要做什么。正如马丁·福勒所说:

任何傻瓜都能写出计算机能理解的代码。优秀的程序员编写人类能够理解的代码。

你的“未来你”是另一个人。有一整本书是关于如何帮助他理解的。

如果你的工作开始了,你会很高兴你做了所有这一切,并且你需要雇佣另一个开发人员。

票数 30
EN

Software Engineering用户

发布于 2022-12-02 15:34:08

这是完全正常的,并期望你必须重新学习一个代码基后,你没有工作了很长一段时间。这段时间越长,你需要重新学习的部分就越大。

在软件开发中,什么是最有效和最好的方法,以避免这个“死期”/“滞后”的时间,当你重新开始一个项目的开发后,长时间停止工作?

有许多实践有助于减少这种重新学习的时间,它们可以概括为“使用良好的工程实践”:

  • 使用好的描述性名称
  • 使用一致的编码样式
  • 适当使用抽象和封装
  • 编写文档,帮助一个新的人提高速度(经过长时间的休息之后,你自己也是一个新的人)。
  • ..。(我可能错过了几次)
票数 17
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/442594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档