Хлебголова
826 subscribers
48 photos
15 videos
55 links
Про студию Breadhead. Факапы, технологии, дизайн, процессы, деньги, отношение к делу.

💬 @hellobreadhead 🌍 https://breadhead.ru/
Download Telegram
Жесткое #techno

О, можно я вместо тега technologies буду ставить сокращенно #techno? Классно звучит: #design и #techno! 6 байт вместо 10! В общем, хочу рассказать про технологии.

Сегодня будет день хардкор-техно: расскажу сразу про архитектуру, стек и фулл-стек.
Архитектура

Сейчас любой веб-сервис, который мы запускаем, состоит минимум из 2 отдельных приложений: фронтенд-приложения с API (json, à la REST) и бэкенд-приложения. Бэкендов и фронтендов может быть больше. Например, кроме публичной части, админка может быть выполнена в виде отдельного фронтенд-приложения, общающегося с API. Некоторые тяжёлые интерфейсы API могут быть вынесены в отдельные приложения. Так что, иногда, в рамках проекта мы создаём больше 5 изолированных приложений.

#techno #architecture #development
На чем пишем

🤓Осторожно! Тексты про технологии написаны для технологических задротов.

Раньше бэкенды у нас были на yii2 (php), но с прошлой осени все новые проекты пишутся на typescript под node.js. На фронтенде мы используем самый популярный фронтенд фреймворк – React. И это классно – один язык и одна инфраструктура (npm) для бека и фронта. Универсальные программисты: большинство с уклоном во фронтенд, но решить задачи на беке тоже могут все, просто не на уровне архитектуры.

То есть у нас, вроде бы, всего один основной язык и на беке, и на фронте. Но теперь, когда мы бьем приложения на небольшие части (еще не микросервисы, но до них не далеко), мы используем более широкий набор языков. Например, для быстрого прототипа я недавно за 5 минут запилил php скрипт из 5 строк вместо целого приложения на node.js, у которого только настройка окружения и деплоя займет минимум полчаса. Эксперементировали и с headless cms (Prismic, Strapi, GraphCMS). Можем использовать хоть Python или R для игр с нейросетями. Если приложение небольшое, в нем легко будет разобраться, не важно на каком оно языке.

Итого: у нас теперь один основной язык – javascript (typescript). Но используем мы больше языков: при необходимости, можем сделать микросервис на более подходящем стеке.

#techno
🤓Fullstack разработчики

Как я писал выше, у нас почти все разработчики фуллстек – пишут и серверный и клиентский код. Разберу два стереотипа на этот счет.

1. C одной стороны, фуллстек разработчики – это мечта: полностью взаимозаменяемые сотрудники, на которых и загрузку планировать не нужно. Дизайн еще не готов – ок, пишем API для всего проекта, потом переключимся на фронт. Нужно внести правки в рамках поддержки текущего проекта? Любой разработчик справится, отвлекай кого удобнее.

2. С другой стороны, считается, что хорошие фуллстек разработчики большая редкость. Типа, будет тут хороший миддл-бэкендер (а в мечтах синьор-архитектор) шрифтами играть. А из верстальщиков хорошие бэкедеры редко вырастают.

Первое – вдвойне правда. Нет, у всех конечно есть свои сильные стороны, кто-то лучше напишет АПИ, кто-то всем подскажет по Редаксу или Реакт-Спрингу. Но поработать вместе с более опытным разработчиком над задачей, если требует график или свои задачи кончились, смогут все.

Почему вдвойне? Потому что заказчик от этого тоже выиграет, если решит набирать штат (это сейчас распространено, мы несколько раз помогали клиентам искать разработчиков в штат после запуска). С нашим стеком для старта внутренней разработки у заказчика достаточно будет одного разработчика.

Второе – тоже правда. Спросите бэкендеров, что они думают про javascript. У нас, когда бэкенд был на php, бэкендеры плевались от JS.

Но есть исключение: именно в связке React + Node.js вырастает гармоничный фуллстек. Он работает с одним языком и ему не приходится мириться со вторым. Реакт со всей его инфраструктурой прививает правильные навыки по структурированию кода. Там реально красивые архитектурные паттерны, кое-где нужно поломать голову, прежде чем поймешь красоту. То есть это совсем не верстальщик, а на пару ступеней выше. Ему проще врубиться в серверную разработку, особенно, если там прозрачная архитектура.

#techno #fullstack #people
Запаренный разработчик — явление частое. Как не выгорать?

Мы организуем ивенты

Раз или два в месяц собираем свои митапы, где рассказываем доклады и общаемся. Из последних: воркшоп по CD и созданию собственных правил линтера (не спрашивайте). Это помогает быстрее учиться и освежать фокус.

Ходим на конференции и митапы

Недавно были на Holyjs, в августе пойдем на TechTrain. Конференции — отличный способ узнать о новых технологиях, познакомиться с людьми, узнать «как у них».

Просто переключаемся на другую задачу

Бывает, что текущий проект задолбал. Тогда разработчик может переключиться и быстро сделать прототип какой-нибудь интересной идеи.

#techno #programming #burnout #people
Все хотят, чтобы переходы между экранами на сайтах были с анимациями, как в мобильном приложении? Вот Вова написал статью об анимации переходов с помощью react-spring.

#techno #react #animation