Pull to refresh
3
0
Send message

Коллеги, вы меня огорчаете

Reading time12 min
Views173K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Total votes 145: ↑101 and ↓44+93
Comments1152

Поиск идеального набора инструментов: анализ популярных шаблонов Python-проектов

Reading time7 min
Views18K
Материал, перевод которого мы сегодня публикуем, посвящён рассказу об инструментальных средствах, используемых при создании Python-приложений. Он рассчитан на тех программистов, которые уже вышли из разряда начинающих, но пока не добрались до категории опытных Python-разработчиков.



Тем, кому не терпится приступить к практике, автор предлагает использовать в существующих Python-проектах Flake8, pytest и Sphinx. Он, кроме того, рекомендует взглянуть на pre-commit, Black и Pylint. Тем, кто планирует начать новый проект, он советует обратить внимание на Poetry и Dependabot.
Читать дальше →
Total votes 24: ↑23 and ↓1+36
Comments2

Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить

Reading time10 min
Views43K


Я второй десяток лет участвую в разработке приложений для бизнеса на .NET и каждый раз вижу одни и те же проблемы — быдлокод и беспорядок. Месиво из сервисов, UoW, DTO-шек, классов-хелперов. В иных местах и прямой доступ в базу данных руками, логика в статических классах, километровые портянки конфигурации IoC.


Когда я был молодым и резвым мидлом — я тоже так писал. Потом бил кулаком в стену с криками: "Хватит! В следующий раз сделаю по-другому". Следующий раз действительно начинался "по-другому" — с холодной головой и строгим подходом к архитектуре — а на выходе все равно получалась та же субстанция, лучше на пару миллиметров.


Однако, эволюция — беспощадная штука: моя последняя система показалась мне более-менее близкой к идеалу. Сложность не сильно росла, скорость разработки не падала довольно долго, в систему худо-бедно въезжают новые сотрудники. Эти результаты я взял за основу, улучшил и теперь анонсирую вам свою новую разработку: Reinforced.Tecture.

Читать дальше →
Total votes 76: ↑51 and ↓25+35
Comments108

Почему CDN не нужны: развенчиваем старый миф

Reading time3 min
Views13K
Технология CDN была создана для ускорения раздачи тяжелого контента и обеспечения стабильности онлайн-трансляций. Но для большинства медленных бизнес-сайтов — это не более чем лишний «костыль», который во многих случаях не решает, а усугубляет проблему. От него следует отказаться в пользу разовой технической настройки интернет-ресурса.


Читать дальше →
Total votes 42: ↑14 and ↓28-10
Comments55

Как я научился проходить архитектурные секции

Reading time4 min
Views31K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →
Total votes 37: ↑35 and ↓2+41
Comments18

Проблематика распределенных транзакций в контексте микросервисной архитектуры

Reading time4 min
Views6.7K
Всем привет. Уже в сентябре OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный вебинар, в рамках которого я подробно расскажу о программе курса и формате обучения в OTUS. Записаться на вебинар можно тут.




Введение


Как известно, переход от монолита к микросервисной архитектуре вызывает ряд сложностей, связанных как с технической частью проекта, так и с человеческим фактором. Одной из самых сложных технических проблем вызывает обеспечение согласованности в распределенной системе.
Читать дальше →
Total votes 11: ↑6 and ↓5+2
Comments7

Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок

Reading time6 min
Views33K


В нашем блоге мы много пишем о построении карьеры в ИТ в разных странах, поиске работы, отличиях в процессе собеседований крупных компаний. В сегодняшней статье мы пойдем дальше и раскроем тему так называемых интервью по system design – это один из этапов собеседований известных технологических компаний, на котором отсеиваются многие кандидаты.

Итак, что такое system design и как пройти интервью такого типа?
Читать дальше →
Total votes 19: ↑16 and ↓3+23
Comments2

«Я-Бизнес-Команда». Про личные границы на работе

Reading time4 min
Views9.6K
Много говорю о том, что такое границы, зачем они нужны и нужно ли в индустрии ИТ поднимать эту тему. Решила рассказать подробней об этом и уделить внимание тому, что обсуждаем на курсе PSYvIT для управленцев — “Я-бизнес-команда”.

Что такое границы?


Границы – безоговорочное право быть собой, проживать свои чувства, хотеть чего-то или нет. И транслировать это другим, дабы защищать свои интересы, рассказывать о своих желаниях и потребностях.

Границы есть у каждого — они есть у вас. И есть у другого. А это значит, что другой тоже чувствует то, что чувствует. И тоже имеет право транслировать это.
Читать дальше →
Total votes 11: ↑9 and ↓2+12
Comments0

Локальное хранилище или куки? Безопасное хранение JWT на клиенте

Reading time6 min
Views73K
JWT (JSON Web Token) — это замечательный стандарт, основанный на формате JSON, позволяющий создавать токены доступа, обычно используемые для аутентификации в клиент-серверных приложениях. При использовании этих токенов возникает вопрос о том, как безопасно хранить их во фронтенд-части приложения. Этот вопрос нужно решить сразу же после того, как токен сгенерирован на сервере и передан клиентской части приложения.



Материал, перевод которого мы сегодня публикуем, посвящён разбору плюсов и минусов использования локального хранилища браузера (localStorage) и куки-файлов для хранения JWT.
Читать дальше →
Total votes 30: ↑24 and ↓6+32
Comments20

Kubernetes tips & tricks: удобные заготовки для kubectl

Reading time5 min
Views15K
Внутри компании мы активно делимся между собой полученными знаниями: не только в виде формальных wiki-инструкций, но и сообщениями в Slack (а чтобы ничего не терялось, предусмотрена умная система поиска, но это уже отдельная история…). У нас накопилось уже большое количество разнообразных заготовок для консольных операций в Kubernetes с kubectl. Про них и пойдет речь в этой статье.



Какие-то команды могут оказаться повседневной обыденностью для некоторых читателей, но если найдутся и те, кто откроет для себя новое, улучшив тем самым свою эффективность, — цель статьи будет достигнута.
Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments5

Психология удалёнки: как не слететь с катушек

Reading time17 min
Views60K
Удалёнка бьёт по мозгам. И это я вам говорю не как те, кто погрузился в неведомо прекрасное состояние в марте, а как человек, который уже пять лет не видел офисную жизнь, не пил сонным кофе из кофемашины и не встревал в беспечный разговор коллег от скуки рабочего дня. Мне уже приходилось слышать, что кому-то «ковидная» удалёнка надоела, кто-то хочет её навсегда, кто-то мечтает поделить рабочую неделю на офис и хоум-офис. Но 5-6 месяцев — короткий период, чтобы понять свой настоящий выбор (да не случится с нами такое ещё раз!). Удалённая работа меняет личность человека, причём вне зависимости от того, живёт он один, с родными или даже друзьями. Мы становимся другими. И это обязательно нужно обсудить.


Упитанный, унылый, наедине с компом — примерно так и проходит удалёнка
Total votes 44: ↑42 and ↓2+58
Comments96

Разбиваем монолит на микросервисы

Reading time8 min
Views14K

В настоящее время, задача разбивки монолита на микросервисы приобрела поистине огромную популярность в бизнес среде. Как будто все корпорации России вдруг осознали все перспективы “новой” архитектуры, получили при этом пинок от начальства и бросились брать под козырек.


Ретивость корпоративных чиновников, как всегда, безумна и беспощадна. И вот опять, огромные деньги, выделенные на пилоты, бездарно тратятся на то, что в лучшем случае никогда не взлетит, а в худшем случае будет внедрено, невзирая на все ошибки. И, дамы и господа, удручает больше всего то, что это явление отнюдь не единичное. Оно характерно для всей ИТ-отрасли России.



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

Читать дальше →
Total votes 20: ↑12 and ↓8+8
Comments17

Автоматизация тестирования в микросервисной архитектуре

Reading time8 min
Views11K

Привет, Хабр. Меня зовут Сергей Вертепов, я senior backend инженер. Это небольшая обзорная статья о том, как мы тестировали монолитное приложение Авито, и что изменилось с переходом на микросервисную архитектуру.


Читать дальше →
Total votes 13: ↑12 and ↓1+12
Comments7

Прощайте, микросервисы: от ста проблемных детей до одной суперзвезды

Reading time10 min
Views48K
Если вы не живете в пещере, вы, возможно, знаете, что микросервисы – это архитектура сегодняшнего дня. С развитием этого тренда, в продукте Segment на раннем этапе приняли его, как лучшую практику, которая служила хорошо в одних случаях, и, как вы скоро увидите, не так хорошо в других.

Вкратце, микросервисы – это сервис-ориентированная архитектура программного обеспечения, в которой приложения на стороне сервера строятся путем объединения множества однозадачных, минимальных сетевых сервисов. К преимуществам относятся улучшенная модульность, упрощение тестирования, лучшая функциональная композиция, изоляция окружения и автономность команд разработки. Противоположность – монолитная архитектура, где большой объем функциональности расположен в одном сервисе, в котором тестирование, развертывание и масштабирование происходит как единое целое.

В начале 2017 года мы достигли переломной точки с основной частью нашего продукта Segment. Это выглядело так, как будто мы падали с дерева микросервисов, ударяясь о каждую ветку по пути вниз. Вместо того, чтобы разрабатывать быстрее, небольшая команда погрязла в возрастающей сложности. Существенные преимущества этой архитектуры стали тяжестью. По мере того, как падала наша скорость, возрастало число дефектов.

В итоге команда оказалась не в состоянии добиться успеха с тремя штатными инженерами, тратящими основную часть своего времени просто поддерживая систему. Что-то должно было измениться. Этот пост – история о том, как мы сделали шаг назад и приняли подход, который хорошо соответствовал нашим требованиям и потребностям команды.
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments173

Уроки от начинающего основателя и генерального директора GawkBox

Reading time9 min
Views1.3K

После 3-х лет, 4.4-х миллионов долларов инвестиций, 500 000 пользователей и более 1 миллиона долларов дохода, мы просто закрылись. Уроки от начинающего основателя и генерального директора.


Прошло несколько недель с тех пор, как я объявил, что мы закрываем наш продукт GawkBox и распускаем всю нашу команду.

Когда кто-нибудь создает компанию и направляет в нее столько усилий, закрытие компании — это не тот результат, на который вы рассчитываете. Это был результат, который мы считали, никогда не случится с нами. Мы начинали с амбициозной целью: помочь создателям контента получать деньги, делая то, что они любят. Мы заработали более 1 млн. долларов в первые 18 месяцев работы. В 2017 году наш продукт вышел на сцену, и мы увидели приток сотен тысяч новых пользователей. Мы заплатили более 1 млн долларов почти 20 тысячам создателей контента. Мы собрали в общей сложности 4,4 млн долларов за два раунда финансирования от невероятных инвесторов — GawkBox была лошадкой, на которую хочется сделать ставку, и многие люди так и делали. Тем не менее, после 3-х лет попыток, мы так и не смогли найти бизнес-модель, которая бы заставила наш бизнес работать.
Читать дальше →
Total votes 4: ↑0 and ↓4-4
Comments6

Prometheus мониторинг микросервисных приложений. Виталий Левченко

Reading time15 min
Views20K

Расшифровка доклада 2016 года Виталия Левченко "Prometheus мониторинг микросервисных приложений"


Prometheus, в отличие от классических систем, даёт возможность легко поднять и поддерживать мониторинг быстро меняющихся и сложно организованных систем. Я расскажу об опыте внедрения, подводных камнях и неожиданном поведении, покажу способы быстрой конфигурации всей системы, включая уведомления и дашборды.


Total votes 11: ↑9 and ↓2+12
Comments5

Мониторинг микросервисных приложений: взгляд SRE

Reading time8 min
Views12K


Современная инфраструктура — множество небольших приложений, запущенных в контексте одного менеджера приложений, который упра'вляет их количеством, обновлением и запросами на ресурсы. Она является таковой не потому, что админы решили, будто так удобно ею управлять. Такая инфраструктура отражает текущее мышление в области разработки программного обеспечения. Для того чтобы понять, почему мы сейчас говорим о микросервисной архитектуре как об идеологии, необходимо вернуться на 30 лет назад.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments6

Ускоряем деплой на продакшен канарейками и самописным мониторингом

Reading time6 min
Views8.9K
Привет, меня зовут Лёша, я работаю в SEMrush в команде SRE, которая занимается обеспечением бесперебойной работы нашего сервиса. Эта история о том, как мы разогнали деплой в 6 раз и сократили затраты на мониторинг в 3 раза. И все это через приручение канареек и самописные инструменты.

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

image

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

В сообществе машинного обучения есть проблема токсичности

Reading time3 min
Views13K
Токсичность везде.

Во-первых, нарушен процесс независимой экспертизы (peer review). Четверть работ с конференции NeurIPS выкладывается на arXiv. В DeepMind есть исследователи, которые публично преследуют рецензентов, критикующих их представление ICLR. Кроме того, статьи известных институтов с arXiv принимаются на ведущих конференциях, даже если рецензенты решают отклонить работу. И наоборот, некоторые статьи с большинством положительных отзывов отклоняются (не хочу называть никаких имён, просто взгляните на страницу openreview ICRL этого года).
Читать дальше →
Total votes 49: ↑32 and ↓17+22
Comments34

Остановитесь!!! Вам не нужны микросервисы

Reading time7 min
Views83K

Идет 2020 год. Если вам нужно пояснение, что такое микросервисы — лучше потратьте свое драгоценное время на что-то другое. Но если вы впечатлены историями успеха о микросервисах и хотите нырнуть в "панацею" с головой — продолжайте читать. Прошу прощения, будет немного длинновато (не очень, прим. переводчика).

Читать дальше →
Total votes 77: ↑72 and ↓5+87
Comments249

Information

Rating
Does not participate
Registered
Activity