当写下将Angular作为技术选择之一的内容时,我不小心写下了我对目前前端的想法的文章

這篇文章是DMM Advent Calendar 2019的第13天的文章。

这次,也许我们可以把在一般社会认知度和使用率相对较低的 Angular(据我感觉)作为前端开发的一个选择之一,怎么样?

我对这个内容做了松散的思考,如果你能陪我一起,我将不胜感激。

※筆者目前對Angular尚未完全掌握,正在逐漸加深對它的理解。請注意,可能有一些內容未涵蓋到。然而,即使在這個階段,我仍然覺得使用Angular有足夠的好處,所以我將其寫入了這篇文章中。

此外,本文將不會以貶低技術為目的,只是對於 Angular 的線索性的比較。各種技術都有其優點和缺點,而且在不同的情境下,對於這些優點和缺點的理解也因人而異。

※3我本来是随意思考的,但在中途变得跟标题一样的展开。希望若有人能对同样的想法产生共鸣。

很抱歉,对于taumu关于VDOM时代的有趣故事,我并没有用VDOM的角度写文章。

總之

qiita.png

我得出的结论是,或许可以把Angular作为一种更积极的技术选择 casually 引入进来。

个人而言,React并不像Vue那样严谨,也不像Vue那样自由随性,这一点给我留下了很深的印象。

从技术的角度来看

大致上都齐全了。

尽管我已将其以图表形式呈现,但现在的前端开发面临许多必须考虑的问题。
对于这些抽象的挑战,我试图列举Angular能够解决的程度,结果基本上是Angular能够“基本上完全满足需求”。

我认为这种“大致已经准备好”的情况相当重要,在已经准备好所需的开发库等的阶段,可以集中思考选择的设计(在这里所说的设计是指从规范到源代码的抽象架构。例如使用DDD或者加入Flux)是非常有魅力的。

「这个库肯定有一些优点和缺点,但相对于从头选择符合特定要求的库来说,在前端开发中使用一些经过一定时间确认的库来设计/开发应用程序,我认为这是一个必要的速度感。」

由于在Angular中可以使用CLI进行升级,因此在运营等方面可能产生影响。

DI 在前端是新且简单的。

Angular采用了独特的依赖注入(DI)机制,这种抽象度非常好。

在很多前端和后端独立构建的应用程序中,我认为前端的异步处理和副作用处理是让大家相对困惑的部分。

然而,关于如何在前端的哪个部分进行处理,似乎没有正确的答案。例如,Redux 需要单独考虑处理副作用的中间件,这是一个挑战。

我认为 Angular 的这种DI概念在以前的前端开发中并没有受到太多关注,但是当我实际上使用DI来处理异步处理/副作用处理等功能,并将其依赖于各个组件时,我开始感到它的实际效果。

虽然不是要强制使用某种方式,但我相当喜欢当我想这样做的时候,只需使用DI,就能实现这种通用性。

这里的实现方式不过分严肃,开发者注重 SOLID 原则,同时也考虑了灵活性,这就是依赖注入与其相配合的地方吧。

当然,在使用NgRx在Angular内实现Flux时,与Redux类似,通过DI创建的服务可以起到类似Redux中间件的作用,这也体现了其灵活性。

從前端情況的角度來看現況

未来中,仅仅熟悉现代库和框架对于前端不再具备优势。

我个人认为,这段话触及了关键的问题,并且我认为它也与将Angular纳入技术选择的原因相关。

我在前端领域已经深度参与了大约6年的时间,当时React、Vue、AngularJS等等只要能够“使用”和“开发”,在业界看来都是具有很大优势的事物。

然而,观察最近的前端趋势,虽然各个社区都逐渐成熟起来,
但是不论是React、Vue还是Angular,都已经具备了一定程度的日语文档,方便学习和开发任何库。

这是一件非常好的事情,对于这件事我没有什么可说的。

然而,我认为很多人也意识到,随着技术差距的消失,曾被视为技术差距象征的库和框架的门槛正在消失,这意味着在实际应用设计中,对前端世界来说更多的是对底层的理解和技术的需求。

我想要聊一下,作为DMM.com新毕业生培训1和新毕业生培训2的前端培训负责人,我对这种现象有着非常强烈的感受。

有一个令人印象深刻的例子是,在为毕业生举办的React培训中,一位有志于成为基础架构工程师的新毕业生第一次接触React就轻松地完成了一个TODO应用程序。

另外,当我与学生们就招聘等事宜交流时,他们都能够轻松地运用上述的库和框架,这使我对这里的技术差距几乎不存在有了直接体验。

前端多样化

换句话说,从现在开始,特定的库和框架只是解决前端问题的一种手段,而已。

我认为与应用开发相关的知识、技术和经验,例如SOLID原则、依赖注入和其他设计模式,以及RESTful等后端API的创建,都会对应用开发产生重要影响。(更进一步说,我觉得在前端和独立的Web服务器托管时代,没有网络知识可能会相当困难。)

当然,在吸收前端独有的Worker、PWA、AMP、Cache、WEB API、WASM等迅速发展的技术方面我们也不例外。

结局 Angular 是

在这个技术成为商品化的过程中(至少在我的工作环境中),Angular 对于应用设计的问题非常适合。就像.NET对于C#一样,它是一个全能的解决方案。关于如何进行应用设计和将自己的想法融入其中,Angular非常相配。

我最近看了一些Angular的文档,重新意识到了SOLID的重要性,也增加了这样的时刻的感觉。(我们公司也开始将学习SOLID作为一项举措开展)

联结

我在写关于将Angular作为技术选择之一的内容时,可能完全变成了那种感觉。抱歉。

我不确定未来前端会如何发展(WebAssembly(WASM)已经被推荐为Web标准),但我觉得前端领域可能会增加更多注重一般软件原则和设计模式的使用例子(例如,最近经常看到的Clean Architecture和DDD)。

在这样的情况下,我认为Angular的概念是否容易满足未来的需求。

第14天的推荐是关于@funa1g先生的建议。最近,推荐在各种服务中广泛使用,所以我很期待。

广告
将在 10 秒后关闭
bannerAds