Виталий Архипов @arvitaly
Программист
Information
- Rating
- Does not participate
- Location
- Таиланд, Таиланд
- Registered
- Activity
Specialization
Frontend Developer, Fullstack Developer
Lead
JavaScript
HTML
CSS
React
TypeScript
Node.js
Adaptive layout
Crossbrowser layout
Web development
Webpack
TypeScript — это не синтаксический сахар для корпораций, это автоматизация работы/тестирования, статический анализ, вместе с Реактом шел Flow, а затем и полноценная поддержка TS.
Писать на чистом JavaScript в 2020 — это откат назад, в прошлое, где нужно проверять типы руками и писать тесты там, где TS покрывает этот код автоматически, синтаксисом.
Та же проблема с Angular и шаблонами в нем, с учетом директив, пайпов и всего того, что можно засунуть в шаблон — это нереальная боль. С другой стороны во всем остальном, Angular полностью поддерживает TS.
Последняя версия Vue достаточно хорошо поддерживает типизацию из коробки, но до Реакта далеко.
Конечно, есть инструменты для статического анализа и шаблонов ангуляра и Svelte, но говорить в 2020 году, что статическая типизация во Frontend только для корпораций — это провокация или глупость.
Вопрос, что важнее иметь айфон X или качественную еду уже не стоит.
Рекомендую посмотреть видео доктора биологических наук МГУ и профессора Вячеслава Дубынина "Нейросети не хотят стареть".
Он рассказывает абсолютно о противоположном, чтобы избежать деменции и паркинсонизма нужно интересоваться как можно больше разными вещами и максимально избегать рутинной работы (один ЯП и 2 библиотеки).
Это уже не так.
Однако, для программ с необходимостью хранения множества объектов с часто изменяющимся внутренним состоянием — удобнее, когда имя дается один раз, а значения под этим именем меняются.
Это как если бы мы дали одно и то же название любому каррированию этой конкретной функции, вне зависимости от аргументов. Чего мы сделать в ФП не можем, да и зачем.
ООП не обязано, в отличии от ФП, быть деревом, оно может быть любым видом графа, а в случае метапрограммирования, еще и многомерным. (В функциональный Реакт это заставляет вводить Context, в дополнение к глобальному стору).
В примере из статьи, ООП написано как ФП, поэтому не нашлось разницы.
На самом деле в описанном классе не хватает тех самых данных, которые будут отличать ООП от ФП, а конкретно — можно закешировать внутри объекта результаты вычислений радиуса. Именно это является ключевым отличием, а не синтаксис. В ФП нет таких отдельных маленьких сущностей с состоянием, его приходится хранить отдельно в глобальных структурах и прокидывать для вычислений внутрь каждой функции.
Конечно, если у нас в программе нет закешированных данных и есть лишь небольшой объем входных, т.е. каждое значение мы считаем заново, то использовать парадигмы, предназначенные для кеширования результатов вычисления глупо.
Например, во фронтенде сейчас это прекрасно видно на примере React+Redux, когда Store становится большим, он становится поистине God-object и весь выигрыш в чистых функциях и едином месте, где видно состояние всего приложения пропадает.
А когда в дело вступает многопоточность — идея глобальных хранилищ начинает еще сильнее трещать по швам, в случае редакса опять же прекрасно видно на примере асинхронных экшнов.
Идея ООП хранить данные не в одном месте, а в виде графа, распределенного по всей программе не лучше и не хуже идеи хранить данные в одном месте.
1. Редактирование файла-конфига
2. От API внешнего пришел ответ в виде JSON, иногда нужно лишнее убрать/изменить.
3. Свое тело запроса подготовить для Postman, к примеру.
Все это можно и в IDE делать или в консоли браузера, но тут такие возможности!