Size: a a a

JavaScript.Ninja

2020 January 04

И

Иьоравепт иавупитоо in JavaScript.Ninja
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Вот его вебинар
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Очень крутой по декораторам аля джава вэй
источник

VK

Vladimir Klimov in JavaScript.Ninja
Вставлю свои пять копеек)
Мне кажется, что эти паттерны полезны для любого программиста) И большинство можно реализовать на js, а если нельзя на js - точно на ts можно) Это же лучшие практики, выработанные и проверенные годами)  не очень правильно думать, что js в этом плане дает возможность обо всем этом забыть) Это скорее его недостаток, с которым кстати активно воюют (тот же тс, фреймворки типа nest). По-моему, знаешь паттерны, а именно ПОНИМАЕШЬ ЗАЧЕМ ОНИ - пишешь код лучше)
источник

IL

Ihor Levchenko in JavaScript.Ninja
Andrey Saenko
Singleton и Builder
остальные не помню
На самом деле можно и без них обходиться.
Излишнее усложнение.

Это больше зависит уже от в принципе взглядов команды и подходов

Я конечно больше за ООП подход, я везде беру ТС, но в чистом жс лучше не надо
источник

AK

Anton Kharkhonov in JavaScript.Ninja
паттерны знать нужно, но начинать учить их только тогда, когда сам почувствуешь что нужно иначе проку не будет
источник

s🐱

special agent 🐱 in JavaScript.Ninja
Vladimir Klimov
Вставлю свои пять копеек)
Мне кажется, что эти паттерны полезны для любого программиста) И большинство можно реализовать на js, а если нельзя на js - точно на ts можно) Это же лучшие практики, выработанные и проверенные годами)  не очень правильно думать, что js в этом плане дает возможность обо всем этом забыть) Это скорее его недостаток, с которым кстати активно воюют (тот же тс, фреймворки типа nest). По-моему, знаешь паттерны, а именно ПОНИМАЕШЬ ЗАЧЕМ ОНИ - пишешь код лучше)
Кстати умные ребята сейчас довольно часто отказываются от паттернов (в сторону фп, кто бы сомневался) и продавливают идею что ООП экспоненциально плодит количество классов которые нужно поддерживать. У этой медали есть две стороны, но быть знакомым с паттернами не помешает
источник

VK

Vladimir Klimov in JavaScript.Ninja
Ihor Levchenko
На самом деле можно и без них обходиться.
Излишнее усложнение.

Это больше зависит уже от в принципе взглядов команды и подходов

Я конечно больше за ООП подход, я везде беру ТС, но в чистом жс лучше не надо
Где-то слышал фразу, что сложность побеждается сложностью) Понятно, что паттерны проектирования покажут свою пользу только в долгоиграющем сложном (комплексном) проекте, который надо расширять и поддерживать)
источник

AS

Andrey Saenko in JavaScript.Ninja
Ihor Levchenko
На самом деле можно и без них обходиться.
Излишнее усложнение.

Это больше зависит уже от в принципе взглядов команды и подходов

Я конечно больше за ООП подход, я везде беру ТС, но в чистом жс лучше не надо
спасибо за ответы учту
источник

IL

Ihor Levchenko in JavaScript.Ninja
Andrey Saenko
спасибо за ответы учту
Если взять, допустим, обсервер..
Он в принципе не очень нужен так как js кроме всего это событийно ориентированный язык и все вращается вокруг событий (чего уж, в ядре всего то ивент луп).
Важно понимать как он работает и почему нужно всегда использовать асинхронность и как ею управлять.

Взять тот же DI, его невозможно реализовать в каноническом виде в чистом жс и даже в тс из-за того что интервейсов в принципе не существует в рантайме, даже рефлексия это эдакой муляж.
Потому DI тоже неполноценный и в большинстве случаев он может только навредить, а не дать преимущества.

И тут лучше уж вникать в конкретную реализацию .. например, inversify.
Но очень осторожно

В ангуляре/NestJS весьма интересная реализация тоже.
источник

VK

Vladimir Klimov in JavaScript.Ninja
special agent 🐱
Кстати умные ребята сейчас довольно часто отказываются от паттернов (в сторону фп, кто бы сомневался) и продавливают идею что ООП экспоненциально плодит количество классов которые нужно поддерживать. У этой медали есть две стороны, но быть знакомым с паттернами не помешает
Если следовать open/closed  принципу, то для добавления новых фич нужно добавлять новый код и по минимуму править старый)
Но это действительно в полной мере оправданно в больших проектах со сложной бизнес логикой)
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Ihor Levchenko
Если взять, допустим, обсервер..
Он в принципе не очень нужен так как js кроме всего это событийно ориентированный язык и все вращается вокруг событий (чего уж, в ядре всего то ивент луп).
Важно понимать как он работает и почему нужно всегда использовать асинхронность и как ею управлять.

Взять тот же DI, его невозможно реализовать в каноническом виде в чистом жс и даже в тс из-за того что интервейсов в принципе не существует в рантайме, даже рефлексия это эдакой муляж.
Потому DI тоже неполноценный и в большинстве случаев он может только навредить, а не дать преимущества.

И тут лучше уж вникать в конкретную реализацию .. например, inversify.
Но очень осторожно

В ангуляре/NestJS весьма интересная реализация тоже.
В ангуляре есть injection token
источник

AS

Andrey Saenko in JavaScript.Ninja
Vladimir Klimov
Если следовать open/closed  принципу, то для добавления новых фич нужно добавлять новый код и по минимуму править старый)
Но это действительно в полной мере оправданно в больших проектах со сложной бизнес логикой)
я так понял там как раз нужны джуны на легаси на експрессе
источник

s🐱

special agent 🐱 in JavaScript.Ninja
Vladimir Klimov
Если следовать open/closed  принципу, то для добавления новых фич нужно добавлять новый код и по минимуму править старый)
Но это действительно в полной мере оправданно в больших проектах со сложной бизнес логикой)
Solid в проектах работает еще реже, чем паттерны)
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Который роль интерфейса для di
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Выполняет
источник

s🐱

special agent 🐱 in JavaScript.Ninja
special agent 🐱
Solid в проектах работает еще реже, чем паттерны)
Как и grasp, в общем то
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
Костыльно но както работает
источник

VK

Vladimir Klimov in JavaScript.Ninja
Плюс паттерны позволяют разработчикам говорить на одном языке плюс/минус) А не "у нас так принято")
источник

И

Иьоравепт иавупитоо in JavaScript.Ninja
В тестах можно подменять зависимости
источник