10

不要建立自己的框架

 2 years ago
source link: https://blog.p2hp.com/archives/9468
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Lenix Blog

终端命令“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关于标准的漫画(在新标签中打开)

standards.png

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK