Forwarded from kamyshev.code
Собрал размазанный по каналу конспект "Чистой архитектуры" в один пост.
Чистая архитектура | Конспект книги Дядюшки Боба
#чистая_архитектура #конспект
Чистая архитектура | Конспект книги Дядюшки Боба
#чистая_архитектура #конспект
Глубокий JS
JS используется повсеместно. Бытует мнение, что это простой язык. На самом деле, это не так. В результате получаются тонны отвратительного нечитаемого и полного багов кода.
Чтобы рассказывать о скрытых стороных JS, мы с камрадом @UncleSeneca завели канал — @deep_js
Будем рассказывать там о стадартной библиотеке, принятых подходах и инструментах.
#общие_знания
JS используется повсеместно. Бытует мнение, что это простой язык. На самом деле, это не так. В результате получаются тонны отвратительного нечитаемого и полного багов кода.
Чтобы рассказывать о скрытых стороных JS, мы с камрадом @UncleSeneca завели канал — @deep_js
Будем рассказывать там о стадартной библиотеке, принятых подходах и инструментах.
#общие_знания
Закончить проект сложно
Большая часть проекта делается легко. Это интересно и весело команде разработки, все проблемы быстро решаются, а код получается блестящим и поддерживаемым.
Потом подкарадывается конец и все ломается. В код добавляются десятки каких-то костылей, генерируются баги и вообще проект явно начинает дурно пахнуть.
Сегодня утром коллега скинул в рабочий чатик ссылку на замечательную заметку "Про незаканчивание". В ней говорится, что с этой ситуацией нужно бороться менеджменту, что безусловно, отличная идея. Но и разработчики должны знать о проблеме и искать пути решения.
#сделывание
Большая часть проекта делается легко. Это интересно и весело команде разработки, все проблемы быстро решаются, а код получается блестящим и поддерживаемым.
Потом подкарадывается конец и все ломается. В код добавляются десятки каких-то костылей, генерируются баги и вообще проект явно начинает дурно пахнуть.
Сегодня утром коллега скинул в рабочий чатик ссылку на замечательную заметку "Про незаканчивание". В ней говорится, что с этой ситуацией нужно бороться менеджменту, что безусловно, отличная идея. Но и разработчики должны знать о проблеме и искать пути решения.
#сделывание
Ссылка
Вадим Макеев рассказывает не про доступность в докладе "Делайте из слона муху".
Наши веб-приложения тяжелые, медленные и часто неоптимальные. Хороший доклад о том, как и зачем оптимизировать интерфейсную графику.
#производительность
Вадим Макеев рассказывает не про доступность в докладе "Делайте из слона муху".
Наши веб-приложения тяжелые, медленные и часто неоптимальные. Хороший доклад о том, как и зачем оптимизировать интерфейсную графику.
#производительность
YouTube
007. Делайте из слона муху - Вадим Макеев
У разметки, стилей и скриптов есть всё: спецификации, документация, множество конкурирующих решений, понятные лучшие практики. Через 25 лет после появления тега img графика для веба — всё ещё чёртова магия, которая передаётся в устной традиции: «Мой дед всю…
Наследование
Как-то уже писал, что не люблю наследование и считаю его ключевой проблемой объектно-ориентированного дизайна. В субботу ходил на митап, в одном из докладов сравнивалось создание бибилиотеки компонентов основанной на наследовании и основанной на композиции. Ожидаемо, композиция оказалсь более гибкой.
Посмотрите презентацию, в ней очень наглядные примеры.
#ссылка
Как-то уже писал, что не люблю наследование и считаю его ключевой проблемой объектно-ориентированного дизайна. В субботу ходил на митап, в одном из докладов сравнивалось создание бибилиотеки компонентов основанной на наследовании и основанной на композиции. Ожидаемо, композиция оказалсь более гибкой.
Посмотрите презентацию, в ней очень наглядные примеры.
#ссылка
Современный веб пронизан фреймворками. Это не плохо! Проекты запускается быстро, а поддерживать их легко. Но иногда стоит избегать использования сторонних решений.
Проникся этой идеей и переписал свой сайт с Next.js (обвязка вокруг React) на чистый JS/CSS/HTML. Стало быстро, очень быстро. Новый сайт задизайнил Дима Журавлев.
Мой опыт — Как сделать сайт легким и быстрым без проблем
#производительность
Проникся этой идеей и переписал свой сайт с Next.js (обвязка вокруг React) на чистый JS/CSS/HTML. Стало быстро, очень быстро. Новый сайт задизайнил Дима Журавлев.
Мой опыт — Как сделать сайт легким и быстрым без проблем
#производительность
Вебпак
Я не умею конфигурировать Вебпак. И потому всегда с удовольствием смотрю доклады и читаю статьи о том как этому научиться.
Крутой доклад "Вебпак, вид сквозь монокль" про оптимизацию билда, DX и, внезапно, функциональные линзы для управления конфигами.
#производительность
Я не умею конфигурировать Вебпак. И потому всегда с удовольствием смотрю доклады и читаю статьи о том как этому научиться.
Крутой доклад "Вебпак, вид сквозь монокль" про оптимизацию билда, DX и, внезапно, функциональные линзы для управления конфигами.
#производительность
YouTube
003. Вебпак, вид сквозь монокль - Антон Кастрицкий
Рассмотрим хорошие практики современных сборщиков в мире фронтенда. Разберём популярные проблемы. Попрощаемся со страхом копания в конфигах, а также узнаем, как настроить вебпак со снайперской точностью.
Презентация по ссылке: https://events.yandex.ru/lib/talks/6980/
Презентация по ссылке: https://events.yandex.ru/lib/talks/6980/
Магия
Поведение системы должно быть предсказумым. И чем проще сказать как поведет себя система в той или иной ситуации просто посмотрев на ее код, тем лучше.
Есть два хороших маркера понятности системы:
+ Отсутствие внутреннего состояния. Если функция (класс, модуль) в работе основывается только на принятые параметры, его не только легко тестировать, но и проще понимать.
+ Разделение чтения и записи. Функция не должна возвращать что-то, если она изменяет внешний мир. И напротив, если функция что-то возвращает, то она не может мутировать ничего.
Пример неочевидного поведения — некотрые методы регулярных выражений в JS.
#архитектура
Поведение системы должно быть предсказумым. И чем проще сказать как поведет себя система в той или иной ситуации просто посмотрев на ее код, тем лучше.
Есть два хороших маркера понятности системы:
+ Отсутствие внутреннего состояния. Если функция (класс, модуль) в работе основывается только на принятые параметры, его не только легко тестировать, но и проще понимать.
+ Разделение чтения и записи. Функция не должна возвращать что-то, если она изменяет внешний мир. И напротив, если функция что-то возвращает, то она не может мутировать ничего.
Пример неочевидного поведения — некотрые методы регулярных выражений в JS.
#архитектура
ФП
Функциональное программирование помогает избежать магического поведения системы.
+ Если все функции чистые, то они никак не могут иметь внутреннего состояния и всегда зависят только от своих параметров.
+ Если все структуры данных иммутабельны, то невозможно написать функцию изменяющую какие-то данные.
Функциональные подходы применимы почти к любой системе и всегда они повышают ее надежность.
#архитектура
Функциональное программирование помогает избежать магического поведения системы.
+ Если все функции чистые, то они никак не могут иметь внутреннего состояния и всегда зависят только от своих параметров.
+ Если все структуры данных иммутабельны, то невозможно написать функцию изменяющую какие-то данные.
Функциональные подходы применимы почти к любой системе и всегда они повышают ее надежность.
#архитектура