使用无聊堆栈的优点

为什么我认为选择无聊的堆栈在编程中很重要

几天前有人问我一个问题。这个人想创建一个博客,他们决定使用前端的Angular为其编写自己的平台。

我的回答是,如果目标是写博客,那么他们必须放弃这个想法,并使用现成的解决方案。

那一定是很不受欢迎的,因为我没有得到答复,但是我的意思是:如果您想创建一个博客并认真对待它,那么请使用您能找到的最无聊和最防弹的东西。确实如果您想进行任何认真的博客撰写,请不要在您的博客基础结构上使用

技术必须走开,您应该只专注于内容

否则,您将花费大部分的空闲时间来调整博客平台(请注意-除了你不在乎的人),而不是编写内容。没有人关心这种基础设施。

如果要制作视频,是否要先编写YouTube克隆文件?它可以同时接待1亿游客吗?让我想起了一些人,他们希望编写视频游戏并首先开始构建物理引擎,但从未停止过该过程。

我使用的是静态网站生成器Hugo。

雨果(Hugo)对我来说是最好的,因为它专注于博客和降价促销。它是无聊的。它的模板语言很无聊。太无聊了,以至于当我不得不调整某些东西时我就睡着了。我喜欢它。

雨果的最大特点是快速地,我认为这主要归功于引擎盖下Go的使用。这些天看起来像无聊的功能。

“看看盖茨比,它是如此奇特而有光泽!”

盖茨比(仅用作示例,没有什么反对的)对我来说已经太花哨了,尽管它是一项很棒的技术。为什么?它使您过多地关注技术而不关注结果。作为开发人员,您可能会觉得很棒,但事实并非如此。 React,GraphQL,这太令人兴奋了。

这让我想起Redux,人们对“时光旅行”的演示感到兴奋,这对于日常编码[笑话结束]确实非常有用。人们只是为了使用闪亮的技术而高兴地使他们的应用程序过于复杂。

让我们谈谈例如预取。当静态站点已经尽可能快时,我们真的需要预取吗?我们的博客访问者是否要求它?缺点是什么?有什么问题吗?

记住墨菲定律:“任何可能出错的地方都会出错”

我曾经与一个使用Gatsby创建博客的人交谈,只是意识到他们即使启用了服务器端渲染也没有启用服务器端渲染,这使该博客对Google几乎不可见(是的,我知道他们执行JS有时但是,请忍受我,坚持无聊的服务器端渲染)。

在一个普通的博客中,每个用户的平均页面浏览量为1.1 / 1.2。这意味着您的绝大多数用户可能会通过Google进入您的网站,然后快速浏览并离开。您真的需要预取所有链接吗?为什么要浪费所有这些数据和电力?

让我们停止反对盖茨比,我真的很喜欢它作为制作网站和应用程序的工具。

我的观点是,创建一个简单的博客可能不需要80%的工作。使用更简单的工具,该工具仅用于撰写博客,并且绝对不要自己编写。

这适用于更复杂的应用程序。您应该使用已经使用了10年的技术,还是应该跳起一无所知的炫酷技术,但是每个人都很好地谈论它?您应该使用Rails还是Elixir?我应该在下面编写我的下一个应用程序吗打字稿还是原因? C,去还是生锈?

随着我们集体从旧图书馆过渡到新图书馆,从旧框架过渡到新框架,很多很多的工时永远消失了。想想jQuery,Backbone和Ember,以及之前或之后的所有专精。想想AngularJS vs Angular。想一想在Laravel席卷PHP世界之前出现的所有PHP框架。还记得NoSQL的“革命”使我们大家重新考虑使用MySQL来支持更高级,更灵活的数据库系统吗?事实证明,SQL仍然很强大。

“Just use MySQL, the boring tech revolution is here” Marty Weiner, Reddit CTO, 2016

开发人员认为行业标准的大多数工具都是由Google和Facebook等大型公司构建的,非常适合他们的需求。一个小的团队或一个单独的开发人员可能碰巧有相同的需求,但这可能吗?还是所有这些都是由同伴的压力和炒作所驱动?还是通过营销?

您想用纯JavaScript和Java完美实现的事情是DOMAPI,还是您确实需要重写所有应用程序?反应花几天时间尝试Webpack你想做什么?有时,这是一个不错的选择,有时却不是一个完美的选择。使用DOM API感到无聊,但这可能会使您的应用程序更快,而工程界的每个其他人都说这将是一团糟,您可以将其交付的时间减少10倍,并且工作速度可能会提高10倍。

一个规则是,您知道平台的陷阱,篱笆另一侧的草地总是绿色,并且您想像一下新平台是100%完美的。那永远不会发生,魔鬼在细节上。

您可能在多年的投资中精通了这些细节,但现在看来,这对您来说很无聊,因为您是工程师!你喜欢挑战!您不想错过学习新事物的机会!

您仍然可以做到。

我认为您应该始终进行实验,创建辅助项目,但是当涉及到关键平台(例如您的博客平台,如果您认真对待它就很关键)时,无聊的技术会更好。理解这个概念是成为高级开发人员的一部分。


更多实验教程: