让我们再次让网络变得更好

图片

现代网络是一个不断变化的复杂动态系统。 如许多文章所述,由于几乎每天都有新工具和框架出现,因此很难跟踪所有更改。 知识在立足之前就已经过时了。 当然,所有这些都是快速发展和增长的明显结果,但这不可避免地增加了Web开发人员的复杂性并增加了进入该行业的门槛。

荒谬的是,您必须先配置babel,然后配置webpack,然后处理特定于所选框架的设置以创建简单的用户数据输入表单...对于负责此简单任务的团队的新手来说,这可能是太多的新词了。 。 不,项目很可能已经配置好,初学者肯定不会任由命运任由简短地告诉他做什么的。 但是值得认识到的是,它确实变得太复杂了,我们似乎在所有这些构建系统上花费了大量时间,并在配置上作了努力。

但是,让我们尝试记住-一直都是这样吗? 网络的创造者是否梦想过这样的未来? 不,该死,再次不! 毕竟,没有人(通常很丑)到处都是花招和花招,但是网络却不一样-简单易懂! 在这里,我们添加了一个脚本,这是一种样式,这是我们的页面布局。 那么出了什么问题,真的一切变得如此糟糕吗? 毕竟,javascript和整个网络只是在增长和改进,语言变得更强大,更具表现力,出现了模块化,各种体系结构模板的优势变得显而易见,但是-以前的简单性在哪里? 我们真的真的永远失去了她吗?

图片
(宏伟的蜘蛛侠)

答案实际上非常简单明了。 网络确实已经发展并且变得更加复杂,现在在浏览器中找到完全针对网络技术或3D游戏编写的多媒体应用程序已经很普遍了,这在10年前是无法想象的。 但是主要的问题是,我们经常需要从网络上获取最新的技术和标准,实验性的建筑模板,一切都只是最新的和最现代的,所以它应该随时随地适用于所有人,并且请尽快。 然后,一个由webpack带领的狂野团伙出现在现场,并开始纠正球。 现在,您已经挂了复杂的配置,您的项目大约需要一分半钟,重达50兆字节。 Finito la comedia。 与配置的争夺始于试图压缩更多性能并减小尺寸的尝试。 然后,如果我们将大部分时间花在装配线设置上,那么可以讨论什么样的想法开发和实施。 承认您的Webpack团队专家是谁?

图片

我们并不习惯于此,而是说这是正常的,但是还有什么呢? 我们迷上了类型和框架,法团主义,安全性-您甚至无法吵架。 但是,这种弱类型的动态语言的构想却使实验的这种简便易行性何去何从? 而所有的东西,而不是她的东西,都消失在捆扎成堆的企业之下。 但是真的无能为力吗?

值得停下来思考,但是我们在做什么,为什么呢? 毕竟,如果我们使用webpack,汇总,宗地(必要时加下划线)并创建所有这些不可读的包,那么即使使用源地图也无法调试它们,那么肯定有人需要它,对吗? 是的,一切都如此,要想快速有效地从捆绑软件中进行生产,您将无处可寻,甚至新推出的HTTP2也使这项工作变得不那么容易。 这就是为什么开发人员在漫长的秋天傍晚在办公室收拾东西,保持更长的工作时间并燃烧数十万千瓦的能源,在部门中打包,在公司中打包,在整个世界打包,传递太阳运动的原因。 就是这样,这就是法律。 杜拉·莱克斯,塞德·莱克斯。 因此,真正的莎士比亚问题是要怪还是不怪-它死于没有时间打破年轻的哈姆雷特的嘴,后者开办了视觉工作室以堆积另一个杰作。

图片
(好)

但是,等等,您说所有这些对于生产都是必需的,但是开发呢? 为什么仅仅通过启动服务器然后打包所有内容然后再将其发送到生产环境,就不可能像过去那样舒适地进行开发? 为什么我们通常使用相同的工具进行生产和开发? 为什么不使用专门为开发量身定制的解决方案,因为我们正在做的事情在某种程度上并不是特别合理。

这确实是不合逻辑的,我们宁愿在没有其他选择的情况下这样做,或者仅仅是因为我们已经习惯了。 但是,如果我说您可以选择呢?

图片

认识hq-用于开发Web应用程序的专用服务器。 hq是类固醇上的静态服务器,它了解普通服务器无法处理的所有内容。 您是否要使用javascript标准的最新功能,但您的浏览器尚不支持该功能? -拜托! 您的库使用commonjs格式-没问题! 借助经过改进的可与每个特定框架一起使用的各种工具,hq立即支持它们。 总部是如此酷,它不需要任何配置,它可以正常工作。 没有包裹,一切都与您的包裹不同,总部实际上不需要任何配置,只是不存在,所以无处可去。 安装一次

npm install -g @hqjs/hq

然后在项目的根部使用一个命令运行以立即开始实验

hq

好吧,您说老帮帮我们提供了同样的东西,好吧,也许更多的配置,简单的简单,但是一切都非常相似,那么为什么在处女世界中我们需要这个新的Chuck Norris? 然后,我将以Greyjoy房子的新格言回答您-“我们不是土匪!”。 是的,事实上,我们不是黑帮!

图片
(House Greyjoy。我们不播种束缚)

嗨,我从13岁起就从事网络开发工作,从19岁起就开始学习。当我去他的车库时,我的朋友迷上了我,他在车库里昼夜不停地飞行。 我问你在做什么? 他说这是新事物,现在非常时尚和酷,我绝对必须尝试。 最初,我只是粘贴文件,然后尝试使用封闭编译器进行小捆绑,然后我无法停止。 gulp,browserify和webpack ...我的捆绑包变得更难了。 我不知道该怎么停,我陷入了一个不允许我离开的周期。 每次我进入一个新项目时,都会有人在那敲打,根本无法拒绝。 没有强盗就没有声望! 专业人士甚至亲密的朋友都拒绝交流,当他们发现我要停止时也没有给我回电话。 因此无处可去。 但是现在我很干净! 我在开发过程中不再是强盗! 我的朋友和熟人不再和我吵架,现在我们公司不接受。 你知道吗? 我从来没有这么好过! 世界终于开始以新的色彩玩耍了,工作和家庭上的时间都开始了。

严重的是,捆扎的缺乏极大地简化了生活。 记住令人难以忍受的情况,那就是不仅不可能在表达式上甚至在所需的行上都设置断点! 或由webpack __webpack __ @#%^ $ !!!生成的这些变量名称! 当您阅读它们时,称其为Satan也就不足为奇了,但是您不想将它们写到游戏机和敌人身上,而最相反的是,它们被隐藏在普通的人名后面,所以请猜测其他情况。 通常,即使使用完整的源映射,调试也经常会变成地狱。 您一天要在node_modules中发誓几次代码? 不幸的React和Angular开发人员的头上有多少诅咒,因为不可能理解错误消息,并且该错误发生在哪里? 切换到总部后,我们把这一切都当作噩梦了。 确实还有更多的时间,现在您不必怀疑为什么它不行或只是默默地行不通,而且我们在哪里将这个拥有10兆字节存储空间的库放在哪里,现在您可以清楚地看到位置! 痛苦减少了,工作变得更容易了,事实证明这很有趣。

图片
(这个人是Varg或不断变化的皮肤,他可以渗透到动物的意识中。现在他与老鹰一起飞翔,寻找敌人)

最好的部分是,总部似乎并没有什么新奇和复杂,感觉就像他一直在我们身边一样,一切都如此简单和熟悉。 hq是只了解您的静态服务器。 新项目的启动变得非常快,只需在控制台中输入一个命令即可开始实验。 框架,库,格式,体系结构方法-所有这些都不再构成障碍,而且一切都可以像过去的美好时光一样快速,简单且合乎逻辑地工作! 另外,您可以使用hq 开源项目,您可以随时对其进行改进或添加对某些新格式的支持。

坦率地说,我们发现了缺陷。 以前,使用webpack进行构建需要花几分钟的时间,这是进入厨房看一杯香浓咖啡的绝妙借口,但是现在一切都变得如此快,以至于根本没有时间这样做。 虽然,有什么需要找借口喝杯好咖啡的吗?

图片

这一切如何运作? 这可能给人的印象是,hq是弗兰肯斯坦博士编织的沉重的怪物,它由各种不同且不连贯的部分组成,并带有一些黑魔法。 但实际上,一切都非常和谐统一。 hq可以根据请求分别分发每个文件,就像常规的静态服务器一样。 这给我们提供了一个很少的机会来摆脱未使用的代码,而不会引起整个树的震动,但是它节省了很多用于依赖关系分析的时间。 所有转换都是即时发生的。 而且,仅转换必要的最小值。 如果您使用现代浏览器并遵守Web标准,则您的代码几乎不可能被更改。 尽管您可以依赖标准,但不能保证您习惯于使用这些库。 它们中的大多数可能会以commonjs格式提供,这不允许它们按原样在浏览器中工作。 hq会处理此问题,并将commonjs模块转换为ESM格式,处理非标准但相当普通的导入(例如css或json),并在需要时解构导入的对象。 hq与Web浏览器结合使用,使用其缓存系统来加速资产的交付并仅传输已更改的文件。 当您更改代码时,它将自动重新加载页面,以便您可以立即评估更改的结果。 hq可以与许多框架一起使用,但是不依赖于它们的代码。 相反,hq使用专门为hq创建的babel插件进行了一系列AST转换,以便可以将开发中使用的各种技术和方法理解和转换为浏览器支持的单一标准。

因此,尽管现代网络带来了种种困难和挑战,但项目开发可以保持简单直观,就像在网络技术兴起之初一样。 立即尝试总部,以改善您在旧项目中的开发经验,或使用它来创建令人兴奋的新项目!

npm install -g @hqjs/hq

Source: https://habr.com/ru/post/zh-CN428864/


All Articles