Pull to refresh
23
Александр Братко@abratko

Прагматик, fullstack senior developer

4
Subscribers
Send message

ООП для управления состоянием во Vue

Level of difficultyEasy
Reading time8 min
Reach and readers7.8K

Чувак, уже есть Pinia, Pinia Colada, TanStack Query для Vue, зачем ещё один способ управлять состоянием во Vue?

Меня просто задолбало писать везде флаги отслеживания состояния для действий и делать store через фабричную функцию, как это делали наши праотцы в начале 2000-х. Запоминать зоопарк из разных composable-функций и хуков. Изучать какую-то другую систему реактивности, типа MobX, тоже не хочу. Это какой-то зашквар.

Я хочу использовать то, что есть: реактивность Vue везде, классы, методы. Хочу использовать классические шаблоны: SOLID, DDD и т.п. Хочу, чтобы Действие или запрос сами отслеживали и сообщали своё состояние. Хочу сконцентрироваться на бизнес-логике и писать меньше шаблонного кода.

И это возможно, покажу, как это работает на примере.

Погнали, если интересно

Формируй структуру папок согласно делению на модули и слои

Level of difficultyEasy
Reading time4 min
Reach and readers9.2K

Это третий принцип. Весь список здесь.

Периодически слышу и вижу в комментариях, что структура папок не должна отображать архитектуру и наоборот. У меня другое мнение. Повторю: это мой опыт, вам он может не подойти. Проверьте, протестируйте.

Я исхожу из того, что код — это продукт, и первый пользователь — это коллега рядом. Он первым будет его смотреть, комментировать, рефакторить. Структура папок и кода — это дизайн продукта. Хороший дизайн соответствует принципу наименьшего удивления. Я делю код по смыслу согласно «решётке», поэтому организую структуру папок 2-я способами в зависимости от проекта:

— Layer Folder Structure (LFS)
— Scope Folder Structure (SFS)

Читать далее

Почему на Хабре можно ставить минус без комментария?

Reading time2 min
Reach and readers3.7K

Я люблю критику. Я ищу точки роста. Мне не хватает интеллектуального диалога, так чтобы были аргументы и контраргументы, примеры и антипримеры. Я в поиске качественной обратной связи: конкретной, предметной, аргументированной. Я хочу видеть свои "мертвые зоны" и вектора развития.

Допустим..., на работе у меня с этим проблемы, я прихожу на Хабр. Мне кажется, что тут тусуются те, кто может мне её дать. И действительно, здесь есть коллеги, кто умеет это сделать. Но есть те, кто, не умеет и не хочет это делать.

Почему-то мне кажется, что Хабр поддерживает последних, что он им помогает.

Читать далее

Еще раз про Di-контейнеры в golang

Level of difficultyEasy
Reading time7 min
Reach and readers8.6K

В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....

Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не «тащим»?

Мой ответ — нет, uber‑fx не «тащим», потому что можно еще проще и понятнее.

Делаем...

Расскажите, зачем вам DI-контейнер в golang

Level of difficultyEasy
Reading time5 min
Reach and readers4.3K

Я много писал на PHP + Symfony, писал на Angular, Vue. Я понимаю зачем DI-контейнер в Symfony, могу понять зачем он на фронте, особенно PWA. Я понимаю, какую проблему/задачу он там решает, почему он там нужен.

Но никак не могу понять, зачем он в микросервисах и даже сервисах большого размера на Go. И вот почему...

Так почему же

Фасетные фильтры: структура и взаимодействие компонент

Reading time6 min
Reach and readers2.7K

В предыдущей статье я описал как построить запрос к Эластику для полнотекстового и фасетного поиска. Здесь расскажу как организовать структуру и взаимодействие компонент, чтобы построить такой запрос.  

Мы используем vue, vuex, vue-route, поэтому дальше повествование будет в этом контексте. В основе взаимодействия лежат хуки компонент, хранилище состояния, роутер. Такую структуру можно воспроизвести на любом фреймворке с таким же составными частями.

Поехали

Фасетные фильтры: как готовить и с чем подавать

Reading time7 min
Reach and readers37K

О чем речь 


Как сделать фасетный поиск в интернет-магазине? Как формируются значения в фильтрах фасетного поиска? Как выбор значения в фильтре влияет на значения в соседних фильтрах? В поиске ответов дошел до пятой страницы поисковой выдачи Google. Исчерпывающей информации не нашел, пришлось разобраться самому. Статья описывает:

  1. как реагирует UI, когда пользователь использует фильтры;
  2. алгоритм формирования значений фильтров; 
  3. шаблоны запросов и структуры индекса ElasticSearch с пояснениями.

Здесь нет готовых решений. Скопировать и вставить не получится. Для решения собственной задачи придется вникнуть.


Читать дальше →

Information

Rating
Does not participate
Registered
Activity