Втайне я был очень доволен тем, что перешел с AngularJS на Angular.
Незадолго до этого я только что начал новую работу в качестве разработчика интерфейса и, несмотря на мои попытки нарастить темпы, определенно еще не был там. Как известно каждому разработчику Angular, сложен не столько сам Angular, сколько все, что вокруг него. Почти все является классом, который сам по себе сильно отличается от AngularJS. Черт возьми, не так давно у javascript-разработчиков вообще не было классов; Мы чувствовали себя как дома, используя функции-конструкторы и прототипное наследование, чтобы ориентироваться. Теперь Angular приносит с собой классы, стрелочные функции, декораторы, две модульные системы, машинописный текст, наблюдаемые объекты, тестирование, хуки жизненного цикла и этот проклятый маршрутизатор. Я думаю, будет справедливо сказать, что подъем крутой.
Так что да, я был очень доволен тем, что перешел с AngularJS на Angular… но это заставило меня задуматься. Насколько сложно было бы создать приложение без какой-либо библиотеки на основе фреймворка. Не просто приложение как таковое, а воспроизводимый способ создания приложений, но без библиотеки, которая диктует, как это сделать. Думаю, это все равно будет фреймворк или путеводитель, но с нулевой библиотекой.
После долгих поисков и экспериментов я создал zero.js — фреймворк приложений JavaScript без библиотеки. Его можно использовать в качестве основы, руководства или просто для того, чтобы посмотреть, как это сделал кто-то другой. Компоненты Zero, поток данных и стратегия маршрутизации слабо связаны между собой и могут быть заменены чем-то другим или изменены.
Я получил массу удовольствия и многому научился, собирая ноль, и пришел к выводу, что с появлением es6 необходимость в раздутой всеобъемлющей библиотеке отпала. А удалив всеобъемлющую библиотеку, разработчики могут понять, как на самом деле работают их приложения. Это не означает, что приложение должно быть полностью лишено библиотек, и на самом деле zero успешно работает с большинством библиотек более низкого уровня, таких как rxjs, jquery и т. д.
В заключение я призываю каждого разработчика попробовать написать приложение, не привязываясь к библиотеке. Используйте ноль в качестве основы, ориентира или не используйте вообще. Суть в том, чтобы заново научиться делать аппликации!