Pull to refresh
30
0
Новиков Богдан @hcbogdan

User

Send message

Yii3 Overview 2. Вспомогательные инструменты разработки

Reading time7 min
Views4.1K

Самое ужасное, что может предоставить рабочий код – внезапную проблему. Будь то отложенная бага или неудачное обновление. Для того чтобы избежать такую ситуацию, мы в команде договорились покрывать тестами как можно больше написанного кода, проверять все допустимые варианты, делать статический анализ и проверять обратную совместимость будущих версий библиотек.

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

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments0

Как команде учиться на своих ошибках?

Reading time12 min
Views6K

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

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

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments1

Техдолг. Все говорят: «невозможно», а я говорю, что буду

Reading time18 min
Views13K
Очень часто драматически и патетически утверждают, что техдолг лучше не плодить — потом не устранишь. Да, без него, конечно, лучше. Но последствия устранить все-таки можно, и глава Программного комитета Артем Каличкин на конференции DevOpsConf 2020 поделился своим опытом в этой области.

Можно спросить, а причем здесь техдолг, если конференция DevOps? Холиварить об этом можно, например, в рамках DevOps-фуршета, но настолько ли это широкое понятие? Мы узнали, что Артем относит к техдолгу все изменения и доработки, инфраструктурные модификации и изменения процессов, изменения структур команд, направленные на устранение гэпов — которые были допущены (осознанно или нет) в рамках запуска продуктов и фич, и которые со временем сильно мешать жить.

А так как такие вещи невозможно исправить без твердой и уверенной спайки производственного и операционного цехов, то и получается, что эта история напрямую — про DevOps.


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

Почему Notion

Reading time7 min
Views93K

Приветствую, Хаброзритель. В данной статье я хочу познакомить тебя с органайзером Notion, поделиться своим опытом использования. Также я дам несколько советов, идей, к которым я пришел со временем, учась планировать и использовать свое время, силы и мыслетоплево. Некоторые мысли, конечно, не будут напрямую связаны с данной программой и не все советы я как-то выделил отдельно, не упусти их.

Надеюсь что буду полезен и прошу под кат.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments70

FizzBuzz по-сениорски

Reading time7 min
Views115K

- Добрый день, я на интервью на позицию старшего разработчика.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.

Читать далее
Total votes 383: ↑376 and ↓7+369
Comments306

Олды в ИТ

Reading time18 min
Views89K

Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

 Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

Читать далее
Total votes 188: ↑181 and ↓7+174
Comments435

Трассировка и логирование в микросервисах: как мы втаскивали единый стандарт на 30 независимых команд

Reading time6 min
Views14K
Сервисы падали, падают и будут падать

Когда вы быстро растете, микросервисы начинают появляться буквально по щелчку пальцев и в самых неожиданных местах. В таких условиях каждая команда обычно на ходу решает, где, как и какие логи будет складывать. Когда сначала 10, потом 20, а там и более команд логируют по-своему, начинается хаос.



Например, наша команда сопровождения маркетинга в Skyeng знала: пользователь с таким-то айдишником нажал в личном кабинете кнопку «Сменить преподавателя» — постучался в наш сервис, дальше ушло три сообщения, в очереди было 2 вызова сервисов и эти сервисы ответили 200. Но на самом деле, что было у команд сопровождения учителей или биллинга, к которым мы стучались, не знал никто…

Тогда мы придумали инструмент, чтобы маркировать трафик

Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments15

Многопользовательский чат с использованием WebRTC

Reading time7 min
Views66K
image

WebRTC – это API, предоставляемое браузером и позволяющее организовать P2P соединение и передачу данных напрямую между браузерами. В Интернете довольно много руководств по написанию собственного видео-чата при помощи WebRTC. Например, вот статья на Хабре. Однако, все они ограничиваются соединением двух клиентов. В этой статье я постараюсь рассказать о том, как при помощи WebRTC организовать подключение и обмен сообщениями между тремя и более пользователями.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments9

DDD, Hexagonal, Onion, Clean, CQRS… как я собрал всё это вместе

Reading time14 min
Views98K


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

После окончания университета я начал работать учителем средней школы, но несколько лет назад уволился и пошёл в разработчики программного обеспечения на полный рабочий день.

С тех пор я всегда чувствовал, что мне нужно восстановить «потерянное» время и узнать как можно больше, как можно быстрее. Поэтому я стал немного увлекаться экспериментами, много читать и писать, уделяя особое внимание дизайну и архитектуре программного обеспечения. Вот почему я пишу эти статьи, чтобы помочь себе в обучении.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments14

Здравствуй, дорогой я двадцать лет назад

Reading time18 min
Views48K


Жаль, что вряд ли смогу отправить это письмо. А тебе, наверное, было бы интересно узнать, что жизнь и работа у тебя сложились неплохо. А если бы ты это прочитал вовремя, то могли бы сложиться еще лучше. Что касается работы — ты стал вполне приличным специалистом, сегодня тебя уважают, с тобой советуются и некоторые даже благодарны за науку. Очень хочется дать тебе тогдашнему несколько советов. Кое о чем из письма ты и так уже догадываешься, но сегодня я могу точно сказать — оно помогает.

Читать дальше →
Total votes 123: ↑117 and ↓6+111
Comments113

Как устроены базы данных

Reading time24 min
Views141K
Нельзя сказать, что в этой статье вас ждут отборные потроха баз данных, но скорее рассказ про базы данных от самого начала, плюс небольшое углубление в некоторые подробности, которые Илье Космодемьянскому (@hydrobiont) кажутся важными. И есть все основания полагать, что так оно и есть.

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

Тем не менее, теоретические знания иногда полезно освежить. Этим мы, в том числе, и займемся.



О спикере: Илья Космодемьянский CEO и консультант в компании Data Egret, специалист по базам данных PostgreSQL, Oracle, DB2. А кроме того, отвечает за продвижение Postgres-технологий, выступает на конференциях и рассказывает людям, как с ними работать.

Ниже материал по докладу Ильи на РИТ++ 2017, который не был связан с какой-то конкретной базой данных, но охватывал многие основные аспекты.
Total votes 56: ↑54 and ↓2+52
Comments10

Тёмная сторона работы в Яндекс.Маркете

Reading time7 min
Views222K

Я уволился из Яндекс.Маркета, отработав там почти 15 месяцев. Сегодня я хочу поделиться своим взглядом на работу в Яндекс.Маркете и рассказать о причинах ухода.


Disclaimer: эта статья бесполезна для тех, кто работает или работал в Маркете; она предназначена в первую очередь для тех, кто лишь планирует туда пойти. А ещё Яндекс.Маркет – это не Яндекс, но очень близко. Поэтому всё, о чём я буду говорить, в первую очередь относится к Маркету, но значительная часть из этого точно так же может быть применена к большому Яндексу.


Я ни в коем случае не претендую на объективность, это моё личное мнение.


Я никого не отговариваю от трудоустройства в Яндекс. Наоборот, это отличный вызов для любого разработчика и, если вы в состоянии попасть в Компанию, то вам однозначно стоит попробовать.


Моей главной проблемой стали завышенные ожидания. Я наивно полагал, что Яндекс как-то значимо отличается от других работодателей. Увы, большой разницы я не увидел.


Читать дальше →
Total votes 528: ↑497 and ↓31+466
Comments806

Унифицируй это: как Lamoda делает единообразными свои Go сервисы

Reading time14 min
Views18K

Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и обратную сторону: из-за неё возникает множество способов решить одну и ту же задачу.


Казалось бы, насколько сильно может отличаться один микросервис, который ходит в базу данных, от другого микросервиса, который ходит в соседнюю базу данных? Например, одна команда использует Go 1.9, glide, стандартный database/sql и одну структуру проекта, а в это же время другая команда использует Go 1.13, modules, sqlx и, конечно же, другую структуру проекта.


Когда один микросервис в компании отличается от другого, а он, в свою очередь, отличается от третьего — это замедляет разработку. А медленная разработка — это убытки повод для оптимизации.


Меня зовут Алексей Партилов, я техлид команды web-разработки в компании Lamoda. В этой статье я расскажу, как мы справляемся с разношерстностью около 40 наших микросервисов на Go. Статья будет полезна разработчикам, которые только вливаются в Go и не знают, с чего начать более сложный проект, чем “helloworld”.


image

Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments65

Как стать долларовым миллионером за 30 лет, лежа на диване

Reading time12 min
Views239K


На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Поехали!
Total votes 308: ↑291 and ↓17+274
Comments557

Собеседование здорового человека

Reading time4 min
Views98K
Эта статья написана как ответ на статью «Собеседование в Додо Пиццу» со стороны разработчика с опытом синьора. Я не претендую на истинность суждений, мне хотелось бы выразить довольно популярное среди моих знакомых мнение о процессе найма в частности и жизни разработчика в целом.
Читать дальше →
Total votes 355: ↑341 and ↓14+327
Comments473

Пробуем preload (PHP 7.4) и RoadRunner

Reading time14 min
Views31K


Привет, Хабр! 

Мы часто пишем и говорим о производительности PHP: как мы ей занимаемся в целом, как мы сэкономили 1 млн долларов при переходе на PHP 7.0, а также переводим разные материалы на эту тему. Это вызвано тем, что аудитория наших продуктов растёт, а масштабирование PHP-бэкенда при помощи железа сопряжено со значительными затратами — у нас 600 серверов с PHP-FPM. Поэтому инвестирование времени в оптимизацию для нас выгодно.

Прежде мы говорили в основном об обычных и уже устоявшихся способах работы с производительностью. Но сообщество PHP не дремлет! В PHP 8 появится JIT, в PHP 7.4 — preload, а за пределами core-разработки PHP развиваются фреймворки, подразумевающие работу PHP как демона. Пора поэкспериментировать с чем-то новым и посмотреть, что это может нам дать.

Так как до релиза PHP 8 ещё далеко, а асинхронные фреймворки плохо подходят для наших задач (почему — расскажу ниже), сегодня остановимся на preload, который появится в PHP 7.4, и фреймворке для демонизации PHP — RoadRunner.

Это текстовая версия моего доклада с Badoo PHP Meetup #3. Видео всех выступлений мы собрали в этом посте.
Читать дальше →
Total votes 114: ↑111 and ↓3+108
Comments52

Мы писали код вместе за одним компьютером пять месяцев. Вот что я узнал

Reading time4 min
Views30K


Тот, кто придумал термин mob programming, явно не спец в маркетинге. Кто захочет вступить в банду? Слово mob вызывает образы разбитого стекла и разграбленных магазинов — население Спрингфилда выстроилось в ряд с вилами и факелами.

Действительно, банда или толпа — это нечто противоположное тому, какой хочется видеть успешную сессию программирования. Толпа дезорганизована, склонна к опрометчивым решениям, злится и не желает идти на компромисс. Но групповое программирование не имеет к этому отношения.
Читать дальше →
Total votes 39: ↑30 and ↓9+21
Comments29

Неидейный бизнес

Reading time10 min
Views10K
«Наш главный актив — люди». Эта хрень написана, наверное, на сайте каждой компании. Только почему-то этот актив используется только… Стоп, дальше не важно. Только используется.

Стоит за станком, сидит за компьютером, лежит под машиной. Желательно – молча. А что будет, если рот раскроет? Ну, в лучшем случае – ничего. Если выскажет какую-нибудь идею об улучшениях, что произойдет? Ну, сами знаете эту старую поговорку. Поэтому и молчит.


При этом, почти на каждом предприятии есть некий механизм сбора этих самых идей и предложений. Примерно как это было в «Корпоративной шизофрении» и «Корпоративном синдроме». Ящик какой-нибудь, электронный или физический, снабженный формализованной процедурой приема, обработки и, конечно, утилизации предложений сотрудников.
Читать дальше →
Total votes 42: ↑27 and ↓15+12
Comments35

PhpStorm 2019.1: Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение и многое другое

Reading time6 min
Views19K


Привет, Хабр!

Рады представить первый мажорный релиз PhpStorm в этом году!
Обзор релиза можно посмотреть на странице “What’s new”. А под катом дополненный перевод этой страницы с демонстрацией самых интересных новых возможностей.
Читать дальше →
Total votes 71: ↑69 and ↓2+67
Comments23

Вещи, которые должен делать каждый: Code Review

Reading time4 min
Views55K
Code review

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

Вы должны уделять внимание CR. Это непременное условие для разработки любого программного обеспечения на серьезном уровне. CR должен применяться не только для кода который уходит в production, но вообще для всего. Это не такая большая разница во времени как вы думаете, но разница в качестве получается огромна.

Что же вы получите от использования CR?
Читать дальше →
Total votes 66: ↑49 and ↓17+32
Comments32

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity