终端命令“rm -rf .git”,被随机字符包围。

在 2019 年,我想创建一个紧跟我们的定制设计并具有流畅动画和交互的网站。我看着UIkit(在新标签中打开),但我没有选择它有两个原因:

  • 它对设计有自己的看法
  • 它不符合我对“流畅”的要求

这导致我搜索其他框架,这些框架与 UIkit 不同,仅提供基本的 JavaScript 功能,允许您根据需要设置样式和动画。我什么也没找到。所以,很自然,我决定自己做(在新标签中打开).

我正在与我正在开发的网站并行开发框架,这很棒。我能够使代码恰到好处并实现我需要的功能。我从 UIkit 中获得了一些灵感,但坚持我的主要想法。

后来发现效率不高,所以决定重构。但是因为我正在开发那个框架并同时使用它,所以我不仅要重新设计框架,还要重新设计网站。除此之外,我试图使这项工作适用于尽可能多的用例。如果你使用 React 会怎样?如果你不这样做呢?如果你使用 jQuery 会怎样?如果你连 JavaScript 都不太了解怎么办?

至此,我的热情开始慢慢消退。不知不觉中,我把自己置于一个想要解决尚不存在的问题并完美解决它们的位置。但我仍然相信,最终,它会是“值得的”。

然后,我们的团队开始壮大。我不再是唯一一个在那个网站上工作的人。因为它使用了我的框架,所以我不得不让新人使用它。这意味着我必须编写自述文件,然后是文档、示例用法等。尽管如此,我们仍然需要在 Slack 中清理一些东西。

因为我们的团队在成长,所以我们的工作量也在增加。这导致与网站并行的框架工作在周末和清晨过渡到框架工作。

不过,我继续。我有(并且到现在仍然有)放弃项目的习惯,所以我决定至少将框架简化为可以通过 npm 下载的有组织的小 JavaScript 片段。但是我是否使用自定义元素(在新标签中打开)甚至比这更简单,只使用 ES6 类?

最近,我开始越来越多地进入 React 生态系统。我知道派对迟到了。我也开始注意到更多带有<div id="__next">or__nuxt或的网站___gatsby。因此,无论我如何构建我的框架,它都不适合大多数人为 Web 构建的方式。因为我也想开始使用这些工具,所以我的框架也不适合我。

与此无关,我慢慢开始更加关注自己的健康和幸福。我改变了我的饮食和睡眠习惯,开始更多地锻炼和伸展,我什至开始阅读书籍……这让周末和清晨变得更加充实和有价值。

现在我在这里。我做了一些没有人真正使用过的东西,但仍然代表了我们工作流程的重要组成部分。我该怎么办?嗯,我想我在过去 3 年中学到了一些教训。

代码无关紧要

除非您正在为飞机或医疗设备构建软件,否则没有人真正关心您的代码,您也不应该关心。特别是在Web开发中。归根结底,您需要一堆带有文本和图像的框。你可以拥有一个地狱般的代码库,但仍然可以完成工作。不存在完美的代码库。至少在很长一段时间内不会,在大型项目中,或者涉及很多人。事情变得一团糟,你应该准备好接受这一点。

维护是一种负担

假设您已经构建了一些东西并且它运行良好。那不会持续很长时间。错误会出现,新人会加入,需要文档,需要功能。谁来处理?如果您将此作为一个副项目进行,您是否准备好在工作时被这些事情分心?如果没有,你准备好在空闲时间做吗?

即使人们开始通过拉取请求做出贡献并减轻您的一些负担,您仍然必须审查和批准正在发生的事情。

第三方没问题

如果您找到为您完成工作的其他人,请使用它。可能有些东西你不喜欢,但与自己维护某物的隐性成本相比,它们无关紧要。如果该第三方代码已经发布了很长时间,那么很可能大多数常见的错误和边缘情况已经得到处理。自己做事应该是你最后的手段,因为你会慢慢发现同样的问题,并把时间浪费在解决的问题上。

提早启动

如果您真的想要或必须构建某些东西,请尽快启动它。正如 David Heinemeier Hansson在 Rework 播客的“Launch Now”一集中所说的那样(在新标签中打开)

如果您在启动时还没有感到不舒服,那就太晚了。

我从来没有真正启动过我的副业。它还没有“准备好”。同时,它在我们的主要项目中成为越来越大的依赖。这是一个问题,因为您是在其他人未验证的东西之上构建的。如果我分享了它,也许人们会提供帮助并给出改进的想法。或者,也许人们会批评它并让我质疑它是否有价值。

这就是我最害怕的——这个项目没有价值。但是,无论你为某件事付出了多少努力,在其他人给出自己的观点之前,你仍然无法确定它是否有价值。这就是为什么最好尽快启动:

  • 如果你创造了一些有价值的东西,你会得到更多志同道合的人来帮助你

  • 如果您构建了一些毫无意义的东西,您将节省时间并可能了解新的更好的方法

结论

我将归档我的项目。这些问题已经被很多人解决了很多次。我们都知道,每天都有一个新的 JavaScript 框架诞生(在新标签中打开). 发生这种情况是因为像我这样的人认为他们拥有灵丹妙药,可以一劳永逸地解决某个问题。但这是不可能的和妄想的。就像xkcd关于标准的漫画(在新标签中打开)

我们应该致力于解决新问题,而不是现有问题。如果您发现其他人的代码有问题,请报告它或直接提交拉取请求并修复它。不只是为了自己,也是为了大家!您的贡献将受到热烈欢迎!不要创造带有自身问题的新事物。

完全靠自己建造东西是不可能的。在某些时候,您的“原始”代码将不得不与其他人的“杂乱”代码进行交互。当然,您可能不会在您的网站上使用第三方代码,但它的存在仍然取决于它。它运行的操作系统不是由您构建的。您的观众用来查看它的浏览器不是由您构建的。通过网络传输数据的协议不是由您设计的。

你将永远依赖别人的工作。拥抱它!

不要建立自己的框架
标签: