Очередь в backend: за чем стоим и с чего начать свой путь
Для всех, кто не любит делать UI, «дышит» очередями и мечтает об идеальном API, в четвёртый выпуск подкаста «Сушите вёсла» мы позвали backend-разработчиков Андрея, Азата и Антона.
Железные разработчики Redmadrobot Артём и Рома записывают подкаст, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов и делятся опытом в диджитале. В четвёртом выпуске ведущие разузнали у собеседников, с чего начинался их путь в backend, какой web-framework стоит выбрать, снится ли им верстка экранов и как объяснить маме, кем ты работаешь.
Прикладываем подкаст и ответы на несколько животрепещущих вопросов.
Тайминг
01:27 — Как приходят в backend-разработку.
10:33 — Что привлекает специалистов в backend.
12:32 — Срыв покровов: нужны ли глубокие знания алгоритмов для тех, кто «пилит апишку»?
15:17 — Вопросики масштабирования и безопасности.
16:23 — Одинаковую ли работу делают все backend-разработчики?
19:23 — Ruby on Rails, его «магия», взлёт и падение.
24:23 — Как выбрать платформу?
28:06 — Зачем нужны микрофреймворки и как с ними работать?
33:55 — Что такое асинхронный сервер и для чего он нужен?
35:58 — Go: простота и архитектура.
41:46 — Postgresql вместо MySQL. Почему?
44:58 — Зачем нужно изучить Docker как можно быстрее и для чего стоит поставить nginx?
50:49 — «Зелёные» разработчики: какими минимальными навыками необходимо обладать выпускникам университетов, чтобы устроиться на работу?
1:04:21 — Лучшие книги по алгоритмам.
1:09:33 — Что нужно знать и что не нужно делать на собеседовании?
1:14:29 — Не хочется ли ребятам уйти из backend?
1:20:28 — И все-таки, чего не стоит делать на работе и почему «с людьми нужно общаться»?
Как приходят в backend-разработку?
Несмотря на популярность мобильной разработки, остались еще те, кому милее старый-добрый backend. Среди них, разумеется, и наши гости.
Азат, например, рассказал, как он не пошел в мобильную разработку и решил, что логичнее заниматься веб-разработкой в широком смысле. А вот история Антона тесно связана с Python.
Что привлекает людей в backend…
…Когда есть суперпопулярный frontend?
Артём вспомнил множество собеседований, на которых соискатели рассказывали, почему они хотят строить карьеру в мобильной разработке. Просто чтобы потом похвастаться крутостью приложения. В backend с этим сложнее.
Но на самом деле, если друзья, с которыми ты делишься радостью создания backend, понимают в ИТ-разработке, то они похвалят тебя. А вот маме можно сказать, что делал сервер для мобильного приложения магазина, которым она пользуется. И даже если ей не до конца понятно, что такое сервер, мама всё равно будет гордиться.
Плюсы backend-разработки
Азат предположил, что людей привлекает тот факт, что не нужно верстать. Ещё есть мнение, что backend сложнее и круче, хотя каждому, конечно же, свое. После этого ребята ушли в беседу о масштабировании и безопасности. Подробнее — с 15:17.
Все ли backend-разработчики делают одну работу?
Это не так. Задачи в backend-разработке бывают разными, и они зависят не от языка или платформы, а от потребностей и специфики компании, а также от уровня самого разработчика.
Иногда работа может заключаться в том, чтобы доработать уже существующий метод API или сделать интеграцию между двумя сторонними системами, а где-то может потребоваться разработать архитектуру распределенной системы с нуля.
Python, Ruby, Go, С++ и все-все-все
Ребята в студии заговорили о том, как выбрать платформу. А также о том, что Ruby «ещё живет» (Рома недавно видел доказательство), а ещё почему Антон начал учить Python, о странных именах создателей языков программирования, простоте Go, микрофреймворках (о них говорили особенно много — слушайте с 28:06), MySQL, Docker, асинхронных серверах и магии рельсов.
«Зелёные» разработчики и минимальные навыки для соискателя
Насколько глубоко должен, например, выпускник университета разбираться в backend, чтобы получить работу?
Во время обсуждения выяснилось, что он должен быть «уверенным пользователем ПК». А если серьезно, то? по мнению Азата, молодой специалист обязан обладать минимальными навыками администрирования Unix-систем — знать определенный набор команд: cd, ls и другие.
Также должен понимать, что такое процесс, какие есть права доступа, какая система прав Linux и как вообще в ней функционируют сети, как работает IPC (inter process communications), TCP сокеты. Для начала этого достаточно. Нужно просто уметь программировать.
Иными словами, для начала погружаться в это с головой не нужно.
Начинающему специалисту не обязательно знать все существующие алгоритмы сортировки. Но при этом подобный вопрос встречается на собеседованиях. Нужен он для того, чтобы посмотреть, как человек мыслит и какое решение он предложит.
Какие книги по алгоритмам стоит прочитать
Андрей «топил» за Стивена Скиена и его «Алгоритмы. Разработка и применение». Антон порекомендовал книгу Томаса Кормена, в которой «есть баланс между строгостью, понятностью и простотой изложения», и ещё “Cracking the Coding Interview” — хорошее практическое руководство, чтобы быстро разобраться в алгоритмах.
Также гости посоветовали «Искусство программирования» Дональда Кнута, которая задумывалась как пособие по компиляторам, а стала настоящей «книгой книг».
В итоге backend — да или нет?
Ребята пришли к выводу, что во всех сферах веб-разработки есть свои плюсы и минусы. И это нормально. Если вам нравится backend, алгоритмы и очереди, то вам стоит задуматься о карьере именно в нём. Это если кратко.
Если же хочется вживую услышать рассуждения, то включайтесь в подкаст с 1:14:29.
Полезные материалы
Для желающих погрузиться в Python можно почитать:
Подборка для будущих джедаев REST:
- С чем имеют дело backend-разработчики в Redmadrobot.
- The Twelve-Factor App.
- Harmful things vs Less harmful software alternatives.
- Почему PostgreSQL #1 и вообще «торт».
- Взгляд на Postgres, история, текущее положение дел и перспективы.
- Разбор внутреннего устройства PostgreSQL.
- Индексы в PostgreSQL (серия статей).
Предыдущие выпуски подкаста «Сушите вёсла»
QA для начинающих: как протестировать ракету или самолёт.
- Архитектор ПО: зачем он нужен и в чём его проклятие.
- CTO от стартапа до корпорации и обратно.
- Источник правды: как аналитик учит менеджера и разработчика работать вместе.
Слушайте нас там, где удобно: Soundcloud, Apple, Google Podcasts.
Забегайте обсудить выпуск в Telegram-чат.
#backend #разработка #разработчики #программирование #мобильноеприложение #приложение #интервью #подкасты #сушитевёсла #redmarobot
Как насчет Swift?
Комментарий недоступен
Я три года уже использую свифт на бэке в продакшене, до этого использовал node.js, а еще раньше php 🤷♂️ Прошел пусть с Vapor фреймворком со второй версии до текущей четвертой. Написал кучу библиотек и активно их развиваю https://github.com/MihaelIsaev
На удивление вокруг серверного свифта собралось очень доброе и отзывчивое комьюнити, токсичность отсутствует. Особенно это актуально для Vapor'овского сервера в Discord https://discordapp.com/invite/vapor
Для энтерпрайза может пока и не годится из-за малой популярности, но для стартапов лучше выбора и быть не может. Все-таки свифт красив и быстр. По производительности это практически как писать бэк на Си. А по красоте свифт вобрал в себя все лучшее из разных языков.
Экономичность использования ОЗУ вас приятно удивит, например, Vapor приложение при запуске кушает всего 12Мб. А значит можно его хоть на 256Мб машине поднять запросто, но если БД будет Postgres, то лучше минимум 512Мб.
Свифт сейчас используют уже повсюду, и в IoT, и на распберри. Readdle давно пишет мост для Android. Свифт уже достаточно хорошо портирован на винду. Только IDE пока нормально его не поддерживают, так что тут ограничение на Xcode.
Основой для бэка все популярные фреймворки сейчас использую NIO которую пишет и развивает Apple, а это очень круто. https://github.com/apple/swift-nio
Если есть интерес, то присоединяйтесь 🙂 Мне можно в дискорде писать в личку @iMike#3049 всегда помогу чем смогу, поделюсь опытом 🙂
Звучит сомнительно, тут свифт где-то на уровне питона и руби по скорости и на порядки отстает от си - https://www.techempower.com/benchmarks
Сравнить libreator c swift-nio = это я не знаю, надо суметь.
Компилится он в нативный машинный код силами LLVM, и можно напрямую использовать Си код, так что сделать можно все что душе угодно.
То, что фреймворки не выдают производительность сопоставимую с libreactor думаю тут трейдофф за красоту свифта и всякие удобства вроде JSONEncoder/Decoder.
Бенчмарки по JSON это взгляд однобокий, лучше сравнивать по разным сценариям и смотреть конечно не только на скорость ответа, но и на прожерливость.
В любом случае я предпочту использовать Swift нежели node.js или питон, потому что скорость и приятность разработки для меня на 1 месте.
Питон, кстати, скриптовый язык и считается очень медленным. По заверениям эпл, которые легко гуглятся, свифт в 8.4x раз быстрее питона 🤷♂️
Сам я пару лет назад поднимал простой сценарий для теста собственноручно: поднимал пустой сервер на пустом дроплете DO отдельно под node.js, отдельно под python, отдельно под vapor 3. Каждый сервер обслуживал только один просто эндпоинт который возвращает plain text: Hello world. С аналогичного дроплета я поочереди для каждого сервера запускал утилиту wrk которая ломилась на тот простой эндпоинт. Результаты были: ~70k rps у Vapor, ~70k rps у node.js, ~30k rps у python.
Вот старая статейка с бенчем https://medium.com/@codevapor/server-side-swift-vs-the-other-guys-2-speed-ca65b2f79505 тут еще Vapor2.
От себя могу добавить, что Vapor2 был без NIO и был по каким-то причинам быстрее, чем Vapor3+NIO1. Сейчас Vapor4 на NIO2 и все говорят, что производительность выросла, много всего пофиксили и оптимизировали, но я сам еще не тестировал.
Swift еще в начале своего пути на бэке и тут сейчас очень интересно, потому что еще есть, что создавать 🙂 и для начала пути он очень хорош, а дальше думаю будет только еще лучше 🙂
Статья устарела. Латтнер поднимает в гугле бекенд для TensorFlow заместо пайтона (уже в бете). Так что Swift на беке теперь вполне норм. А учитывая еще возрастающие усилия и роадмап на swift.org = вполне можно новые проекты начинать на нем.
только если пет проекты
(так и делаю сам)
Скажи это Амазону с их Smoke для Prime Video.
Как то тухло