🔥

Тред (@bespoyasov)


Привет! На этой неделе у микрофона Саша @bespoyasov. Работаю в DRIVE2. Пришёл туда как фронтендер, потом писал бекенд, а сейчас занимаюсь R&D проектами с анализом текста и компьютерным зрением 😃

В основном пишу на TS, иногда на Python и C#. В разное время писал на PHP и C++, не зашло ни то, ни то 😃 Пробовал Lisp, но продуктового опыта на нём нет. Веду блог: bespoyasov.ru, топлю за TDD, люблю React. Написал (и переписал) Тяжеловато fuckgrechka.ru/tzlvt

Как и обещал, начнём с наброса 😃 Что такое чистая архитектура, зачем нужна, плюсы, издержки. Если вы работали c ytq, расскажите о своём опыте? Что было круто, что было неудобно? Будем разбираться, действительно ли это полезный инструмент, или просто переусложнённый хайп.
Что происходило на неделе / Понедельник: Архитектура, проектирование, зачем это всё, как подружить DDD и чистую архитектуру с фронтендом twitter.com/jsunderhood/st…

Да! ^_^ Недавно меня уже спрашивали в Твитере, что-куда-и-как можно вынести. Я ответил на примере приложения с котиками 😼 twitter.com/ch_ronik/statu…
Спроектировали магазин печенек по всем канонам ЧА и DDD: twitter.com/jsunderhood/st…

Теперь немного о собственно проектировании. Допустим, мы знаем, что нашему проекту нужна суровая масштабируемость. Что делать? Первым делом стоит взять ручку, бумажку и пойти «программировать ногами» 😃 twitter.com/lizuschiykotik…
Обсудили практические аспекты проектирования: twitter.com/jsunderhood/st…

Писать код ещё рано. Проектиурем! twitter.com/jsunderhood/st…
Подвели итоги: twitter.com/jsunderhood/st…

Доброе утро! Сегодня вторник, а значит поговорим об ООП на фронте. Пока я заливаю в себя кофе, давайте проведём опрос. Как вы думаете, ООП и фронтенд:
Вторник: ООП, надо ли его использовать во фронтенде, как это делать, как это делать проще. twitter.com/jsunderhood/st…

Парадигма программирования, как и архитектура, — это инструмент для укрощения сложности. И, как с архитектурой, нам стоит исследовать выгоды и издержки перед применением.
Обсудили, почему проектировать удобнее в терминах ООП, но не обязательно в них: twitter.com/jsunderhood/st…

Продолжим 🙂 Чем ООП полезен? Мне очень нравится, как ООП помогает делать мой код масштабируемым и тестируемым.
Чем ООП полезно: twitter.com/jsunderhood/st…

Теперь поговорим о том, чем ООП неудобен 🙂 Расскажите о своём опыте тоже? пробовали ли? что не понравилось?
Чем ООП неудобно: twitter.com/jsunderhood/st…

А теперь — о том, почему наследование как концепт должно умереть 😃
Composition over inheritance: twitter.com/jsunderhood/st…

А сегодня поговорим о том, как сделать код читаемым и тестируемым ^_^ Расскажите о своих приёмах, как вы улучшаете кодовую базу на проектах? Какие применяете методы, принципы, эвристики? Я пока начну 🧶
Среда: как сделать код читаемым и тестируемым. twitter.com/jsunderhood/st…

Шаблон A/HC/LC: prefix? + action (A) + high context (HC) + low context? (LC) В идеале по названию переменной должно быть понятно, функция это, булево значение или что-то ещё. pic.twitter.com/MsKqMF25WA
Шаблон для нейминга сущностей: twitter.com/jsunderhood/st…

Используйте паттерны проектирования. Есть замечательная подборка паттернов на том же Гитхабе, очень советую посмотреть: github.com/kamranahmedse/…
Паттерны проектирования: twitter.com/jsunderhood/st…

От читаемости к тестированию! 🦸 Используйте TDD 🙂
Как и зачем использовать TDD: twitter.com/jsunderhood/st…

Продолжим! Ещё один приём, который улучшает читаемость — CQS, command-query separation. - bespoyasov.ru/blog/commands-…
Приёмы и эвристики для улучшения читаемости: twitter.com/jsunderhood/st…

Да ^_^ Если приходится писать тесты для махрового легаси, которое писали до вас, то советую посмотреть на книжку Физерса «Эффективная работа с легаси»: bespoyasov.ru/blog/working-e… Чуть подробнее сегодня писал вот тут: twitter.com/jsunderhood/st… twitter.com/nat_davydova/s…
Что делать с махровым легаси: twitter.com/jsunderhood/st…

Копипаста, кстати, не всегда однозначное зло: bespoyasov.ru/blog/copy-past… twitter.com/myjsalterego/s…
Копипаста — не всегда однозначное зло: twitter.com/jsunderhood/st…

Доброе утро четверга! ^_^ Чем ближе конце недели, тем больше мы уходим от хард-скилов 😃 Сегодня поговорим о том, где разработчикам набираться опыта, вообще и эффективнее всего. Опрос! Что из перечисленного оказало на вас сильнейшее влияние?
Четверг: как расти разработчикам, как расти эффективнее. twitter.com/jsunderhood/st…

Давайте начнём с университета ¯_(ツ)_/¯ Я понимаю, что не мне с моим дипломом Уфимского технического говорить об университетском образовании, но тем не менее.
Плюсы и минусы университета: twitter.com/jsunderhood/st…

Курсы! 😃 Я проходил какие-то курсы на Udemy и где-то ещё. Тут могу сказать, что любые новые знания с курсов надо сразу пробовать включать в работу. Потому что иначе всё быстро забудется, и толку не будет.
О курсах программирования: twitter.com/jsunderhood/st…

Идём к самому интересному 😃 Давайте следующим пунктом выберем боевую разработку.
Боевая разработка — помогает расти: twitter.com/jsunderhood/st…

Продолжим! Расскажу, почему я считаю, что ментор нужен, почему не только джунам и почему боевая разработка без менторства растит медленнее.
Зачем нужны менторы и не только джунам: twitter.com/jsunderhood/st…

Ну теперь давайте поговорим и об опен-сорсе! У меня опыта в трушном™ опен-сорсе нет. Весь мой Гитхаб — это пара небольших пакетов да исходники книг: github.com/bespoyasov/
Как расти через опен-сорс? twitter.com/jsunderhood/st…

Давайте под конец рабочей недели поговорим о ведении технического (и не только) блога! - Зачем вообще вести, как начать писать; - Насколько глубоко уходить в тех. детали в постах; - Свой хостинг или блогоплатформа; - Русский или английский язык. Кидайте ссылки на свои блоги!
Пятница; говорим о технических блогах, зачем вести, как, что это даёт: twitter.com/jsunderhood/st…

Я пока начну и расскажу о своём блоге: bespoyasov.ru/blog/ Начал я его вести примерно тогда же, когда начал работать. Правда, самые первые посты не сохранились, мой первый пост сейчас 2012 года. Причин «зачем это надо» могу назвать штук 6. Сейчас пройдёмся по каждой :–)
6 причин, для чего вести: twitter.com/jsunderhood/st…

А сейчас поговорим о том, как вытащить из себя статью. - Что делать, если я постоянно отвлекаюсь? - Как и когда редактировать? - Насколько уходить в детали, если есть примеры кода?
Как помочь себе начать писать и довести статью до конца: twitter.com/jsunderhood/st…

И тут наступает проблема «белого листа» — С Ч Е Г О Н А Ч А Т Ь ? 😃 Используйте второй принцип: «ну блин короче». Начните ваш текст поста с «Ну, блин, короче...» и дальше пишите всё, что считаете нужным.
Проблема белого листа
: twitter.com/jsunderhood/st…

Продолжим 🙂 Давайте ещё один опрос! Self-hosted блог или чья-то платформа?
Self-hosted блог или блого-платформа: twitter.com/jsunderhood/st…

Окей, а что с языком? 😃 На каком языке писать: русском или английском. Мне гораздо проще писать на русском и потом переводить на английский ¯_(ツ)_/¯ Я понимаю, что это контрпродуктивно, но вот так :–/
Какой выбрать язык: twitter.com/jsunderhood/st…

А теперь о примерах кода 😃 Вот мы пишем статью о какой-то технологии или случае из разработки. Там будет код. Как его правильно оформить?
Как добавлять примеры кода: twitter.com/jsunderhood/st…

Доброе утро субботы! ^_^ Давайте сегодня поболтаем о пет-проектах? - Как относитесь к идее пет-проектов вообще: положительно, отрицательно? Почему? - Работаете ли над ними? - Над какими? Чем гордитесь? - Как появилась идея?
Суббота — пет-проекты и всё рядом: twitter.com/jsunderhood/st…