你如何面对自己的失去动力继续 coding?

我大约一个月前开始开发一个 Linux 应用程序。第一版在一周内就完成了。它本来是想做一个小而简单的应用程序。

现在它仍在进展中。因为我浪费了很多时间。原因如下。

最初的计划:创建一个小型天气应用程序,用于 Linux 终端。有几个已经存在,但我想要一个可以显示我想要的数据的应用程序。我现在不想深入讨论细节。我的知识背景是 Python,所以我选择了 Python。有很多优秀的 TUI 框架,但我想要一个在裸骨 8 色终端中工作和看起来不错的应用程序,这是一个很大的限制,所以我选择了 curses。我有几个理由选择这个框架,其中一个是速度,另一个是与现有 TUI 框架相比的可移植性。要求应用程序在裸骨终端中工作的原因是因为我创建了自己的终端应用程序 Debian 混合版本,所以我想要应用程序在那里工作。

重要的是:没有 vibe coding。 我使用 AI 为建议或快速研究提供信息,因为它可以从几个来源中获取信息,但我不让它编写我的代码。 我编写代码。 我的年龄已经超过 40 岁,所以我习惯这种方式。

另外 - 我是专业开发人员,目前失业,所以我有很多空余时间,但我以前没有空余时间,所以从来没有编写过自己的应用程序。 工作和家庭占据了我的所有时间。另外 - 我以前一直在后端工作。 我有一些 web 前端经验,非常短暂的 Java Swing 用户界面经验和这些就是全部。 从来没有真正编写过一个 GUI 或 TUI 应用程序。

第一版完成并在一周内就完成了。然后我遇到自己的主要问题 - 我喜欢过度工程。 这可能是我的主要缺点。 我喜欢控制一切并让它按照我的方式工作,并添加未来的功能更容易的特性。 并且为什么会有人使用我的应用程序? 我想要做一些不同的事情,所以我做的是我想要它有多个视图。另外 - 应用程序从一开始就设计为只输出数据,所以我建立了一个小型 MV 类型骨架(接近框架)。 控制器组件超出了我的范围。

到目前为止一切都很好。 这需要我多花了一个多于一周的时间。

是的,好的,我知道规则和原则 - 编写功能列表并将其称为版本 - 这是我们通常如何抵御过度工程的方法。 但问题是 - 创建几个视图是我的第一版的末尾。 而我遇到了一个墙。

所以尝试 curses 也是一种挑战 - 它是一个核心的 Python 模块,我以前从未尝试过,我想看看它是如何工作的。 如果我要回滚,我可能会困在另一个框架里。 但它是 Python 之前的东西 - 来自 C++ 时代的成熟度,所以我想尝试一下。 对于那些从来没有尝试过它的人会说 - ncurses 工作得很好,但它是非常裸骨的,所以我以前有 Java Swing 时代的东西我必须从头开始编写。

我意识到创建一个新视图需要我一周的时间和大量的努力,所以我开始后退。 我想要制作 5 个不同的视图,但我意识到如果我想在未来添加一个新视图,我不想花费一周或更多的时间只为了添加一个看起来像一个孩子在 HTML 中几分钟内做的事情。

所以我的 MV 骨架演变成了一小块框架。 我实现了自动化。 我不想每次我想要在屏幕上显示什么时都计算屏幕坐标。

我实际上在这里经历了一个非常糟糕的经历。 很多年前在加拿大工作了四年,在一个非常大的公司(不说哪一个)我必须打印文档的精确位置。 我们被给予了一个非常裸骨的框架来完成这个任务。非常像 ncurses。 但从 HTML 世界来看,我编写了自己的小框架,它接受 XML 文件作为输入,并且非常类似于 HTML 语法。 我只需要关注什么应该打印出来,而框架负责确保它打印在哪里。 这使得我完成我的项目变得非常容易和快速。 我的经理(3 个经理换过)拒绝使用它,但我还是实现了它,以便我可以在时间内完成我的项目。

所以 ncurses 的情况是完全相同的。 除了输入不是从一个 XML 文件中获取的,带有 HTML 衍生式的布局,而是直接从代码中获取的。 通常我是一个巨大的 fan 分离事物,所以表现必须与业务逻辑分离,但在这种情况下,端口性是首要考虑的,我想要用户只需要携带一个文件。 这是我拒绝其他 TUI 框架的主要原因,除非应用程序必须在裸骨终端中工作。

所以这是我的动机。 我说过,我的东西演变成了一块全新的 TUI 框架,这仍然是一块工作在进展中,我会在我完成时发布它。 是的,我知道没有人使用 ncurses anymore,但仍然 - 我的框架解决了 Python TUI 应用程序的某些未解决的问题,所以也许有人会发现它有用。

所以虽然听起来很棒,但我还是遇到了 ncurses 工作方式的不同墙壁。 最后我变得非常失去动力继续工作我的应用程序。

现在这是我的过去。 我已经穿过了这个墙壁并继续工作了。 但我浪费了很多时间。 我可能浪费了两个多星期都没有碰代码,甚至没有测试应用程序,只是因为我非常失去动力继续。

我知道你们中有很多人会在某个时候遇到这种情况。

所以我只是想发泄一下我的情况,并问一下 - 你如何克服你完全失去动力继续 coding 的时候?

我知道有时候什么也不能做。 我本人去散步,外出,喝咖啡。 有时候在家玩游戏。 整个时间我都很生气,因为我知道我是在浪费时间,没编写代码,但我也不想碰我的代码。 运动非常重要。 我在家有重物,我锻炼帮助。当然也看了几部电影。 我必须说,观看编程纪录片帮助很多。 看到其他程序员的困难和如何推进给我最大的动力继续。

最后我坐下并继续编写代码。 所以现在我可以说我的应用程序已经完成了 75%。 大致来说。 当我完成它时,我会稍微打磨一下框架,会将它从应用程序中分离出来,会将其作为一个独立的应用程序发布。