Pull to refresh
4
0
Кирилл Дёмин @greatkir

Веб-разработчик

Send message

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficulty Medium
Reading time 33 min
Views 95K

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2 +212
Comments 77

Почему малые языки — это будущее программирования

Reading time 10 min
Views 46K

Разработчик веб-приложений и распределённых систем под псевдонимом chreke* убеждён: «малые языки», то есть специализированные языки, созданные для решения конкретных задач, являются будущим программирования. Это убеждение укрепилось в нём после прочтения статьи Габриэллы Гонсалес «Конец истории программирования» и просмотра лекции Алана Кея «Программирование и масштабирование».

Под катом автор объясняет, что подразумевает под «малыми языками», и почему они так важны.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 62: ↑59 and ↓3 +56
Comments 75

Как мы планировали повысить версию PHP за месяц, а потратили на это год

Level of difficulty Easy
Reading time 14 min
Views 23K

Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро – легаси-монолит.

Он написан на PHP 7.2 разработчиками разного уровня и в разное время. Мы подумали, что так больше нельзя, и решили навести порядок. В ходе разбирательств выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Делать нечего — мы приняли решение обновиться до 8-й версии.

В этой статье я расскажу, чего стоило нам проапгрейдить монолит, сколько тестов мы сломали и как в этом проекте поучаствовали почти все PHP-разработчики Яндекс Еды. Это интересный и уникальный опыт, которым я хотел бы с вами поделиться. В конце дам несколько советов тем, кто тоже захочет ввязаться в подобную авантюру.

Читать далее
Total votes 92: ↑92 and ↓0 +92
Comments 55

Маст-хэв PHP-инструменты

Reading time 7 min
Views 7.2K

В последние годы PHP динамично развивался с появлением новых версий языка, содержащих ряд новых фич, депрекаций и более строгий синтаксис. Кроме того, библиотеки и фреймворки, такие как Symfony, постоянно претерпевают изменения: каждые полгода появляются новые минорные релизы, а каждые два года - мажорные, наиболее существенные. Для нас в Westwing очень важно регулярно обновлять имеющуюся кодовую базу, чтобы она оставалась работоспособной, безопасной и актуальной. К счастью, в сообществе PHP появилось множество инструментов, способствующих улучшению кодовой базы.

Читать далее
Total votes 17: ↑15 and ↓2 +13
Comments 10

Долгоиграющие приложения на PHP

Level of difficulty Medium
Reading time 15 min
Views 19K

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

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

Читать далее
Total votes 62: ↑60 and ↓2 +58
Comments 17

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Level of difficulty Medium
Reading time 14 min
Views 22K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Total votes 54: ↑54 and ↓0 +54
Comments 13

Прессуем WordPress

Level of difficulty Medium
Reading time 20 min
Views 5.7K

Аккумулируем базовые знания, методы атак и нюансы самой популярной open-source CMS в рамках одного доклада.

9 декабря 2022 года я выступил на митапе «Клуба неанонимных багхантеров» от BI.ZONE. Там я рассказал об экосистеме WordPress: затронул структуру этой CMS, перечислил ее сильные и слабые места, а также упомянул тонкости базовой функциональности, о которых порой забывают владельцы сайтов. К сожалению, большая часть информации просто не влезла в тайминг. Поэтому публикую дополненную версию доклада здесь.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 0

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

Level of difficulty Easy
Reading time 11 min
Views 9.1K

Привет! Меня зовут Дмитрий Панькин, я основатель компании, которая создает сложные ИТ-продукты для клиентов: сайты маркетплейсов, B2B-порталы, личные кабинеты, приложения, кастомные CRM- и ERP-системы.

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

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

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

Читать далее
Total votes 22: ↑16 and ↓6 +10
Comments 22

Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память

Level of difficulty Medium
Reading time 9 min
Views 6.5K

Доброго всем дня!

Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux в условиях, когда вычислительных ресурсов существенно не хватает. По условию, один из процессов написан на C++, второй на PHP, потому дополнительно мы рассмотрим доступность соответствующих API из PHP а также варианты действий в случае, когда для нужного API PHP-обёртка отсутствует.

Читать далее
Total votes 24: ↑24 and ↓0 +24
Comments 23

Ты не работаешь в офисе: подборка статей для удалёнщиков

Level of difficulty Easy
Reading time 5 min
Views 12K

Я ушла на удалёнку 7,5 лет назад, задолго до ковида — примерно в те времена, когда аналитические конторы насчитывали около 30 000 удалёнщиков на всю страну, а сам формат был непонятным едва ли не всем. Тем не менее, март 2020 года не стал для меня уверенным поворотом: я, как и все, сменила коворкинг с кучей интересных и разных ребят из IT-компаний на квартиру. А это совершенно другие ощущения от работы, организации места, общения с родными, здоровья и даже хобби. Жизнь так сложилась, что сейчас многие сотрудники продолжают переходить на удалённую работу, находят удалённые проекты, устраиваются в офисы, где принят home office. И они обязательно сталкиваются с растерянностью, непониманием, опасениями и даже страхами. Между тем на Хабре и на других сайтах немало хороших статей, которые и помогают, и подсказывают — буквально протягивают руку поддержки и дают понять: ничего уникального, ты не один и ты справишься. Отобрала для вас лучшие.

Читать далее
Total votes 27: ↑27 and ↓0 +27
Comments 8

Оптимизация OneToMany коллекций Doctrine

Reading time 13 min
Views 4.5K

В этой статье будет показан пример того, как уменьшить количество запросов к базе данных до одного при работе с коллекциями сущностей иерархической структуры в контексте PHP и Doctrine ORM. Полный пример решения вы можете посмотреть в специальном репозитории. Статья основана на решении проблемы из обсуждения на StackOverflow.

Поехали!
Total votes 12: ↑12 and ↓0 +12
Comments 9

Парагвай. Как живут в одной из беднейших стран Южной Америки?

Reading time 20 min
Views 72K

Парагвай предоставляет самые простые в Южной Америке условия для получения ПМЖ. Поэтому сегодня о нем пишут гораздо больше, чем ожидаешь от небольшой и откровенно небогатой страны где-то на другом конце света.

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

Читать далее
Total votes 210: ↑208 and ↓2 +206
Comments 103

Домашняя вентиляция для гиков: что нужно знать про воздуховоды

Reading time 4 min
Views 38K
О том, каким воздухом мы дышим дома задумывались многие читатели Хабра. Работая часть или всё время дома и проживая в крупных городах, нельзя время от времени не задумываться о качестве воздуха, которым мы дышим, и как он влияет на нашу продуктивность и вообще качество жизни.

Проблема №1. Уровень углекислого газа CO2 напрямую влияет на продуктивность.

Проблема №2. В Москве, как и других мегаполисах, грязный воздух: это негативно влияет на здоровье. Достаточно один раз попробовать помыть городские окна в квартире с внешней стороны, чтобы задуматься о том, сколько же грязи оседает не только на наших домах, но и в наших лёгких. Поэтому воздух в квартире нужно очищать.

При этом каждому, кто живёт в квартирах с пластиковыми окнами знакома дилемма пластиковых окон: при закрытых окнах душно — уровень CO2 повышается до непродуктивного за два часа; при открытых — шумно, холодно, сквозняк (а иногда и насекомые). Эта статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.
Читать дальше →
Total votes 33: ↑26 and ↓7 +19
Comments 114

Что будет, если от разработчиков не отстать: умирающая команда

Reading time 11 min
Views 60K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Total votes 213: ↑209 and ↓4 +205
Comments 74

Как техдолг может утопить команду, и что делать, чтобы этого не допустить

Reading time 10 min
Views 4.4K

Существует миф, что один сильный программист может быть в 10 раз продуктивнее другого — ten-X developer. Я считаю, что таких программистов не бывает, но есть ten-X команды, которые перформят в 10 раз лучше самой слабой команды. Чтобы стать ten-X team, нужно поменять отношение к техдолгу.

Всем привет! Меня зовут Олег Федоткин, я руковожу разработкой PAAS в компании «СберМаркет». Эта история про менеджмент и инженерные практики.  Ten-X появляется как раз там, где соприкасаются эти два понятия. Начну с детективной истории: кто-то утопил команду  в айтишке. Спойлер: убийца — техдолг. Расскажу как его оценивать и измерять, причём здесь зебры, бихевиоризм и психология. А главное — расскажу про выезд из кризиса. Что делать, если вы уже погрязли в техдолге, как им управлять. Поехали!

Читать далее
Total votes 12: ↑11 and ↓1 +10
Comments 5

Чем заменить New Relic: 11 альтернатив и наш выбор

Reading time 8 min
Views 9.4K

Это лишь часть таблицы инструментов, которые мы рассматривали. Подробнее по ссылке.

Мы используем New Relic в каждом из наших 250 PHP-сервисов. С его помощью отслеживаем взаимосвязи между сервисами, их зависимости, смотрим нагруженные транзакции, анализируем полный трейс запроса пользователя. Наши основные функциональные требования: связи, оценка по времени отклика и параметру APDEX (собирательное значение удовлетворенности пользователя).

Отказаться от New Relic хотели давно. Главная причина — он стал дорогой. Весной добавилась вторая причина — мы из России. Запереживали, что нас могут отключить. А мы в команде инфраструктуры стараемся все сервисы держать на своей стороне.

В августе закончился договор с New Relic, так что заранее стали искать ему замену. И вот, как оно было.

Читать далее
Total votes 26: ↑26 and ↓0 +26
Comments 15

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time 9 min
Views 86K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее
Total votes 90: ↑84 and ↓6 +78
Comments 70

Как сисадмин Денис составлял шпаргалку на всякий случай

Reading time 5 min
Views 54K


Когда мы познакомились с будущей женой, у неё были очень странные подруги. Одна подрабатывала на одной интересной «работе», другая разводила щенков на продажу. А ещё одна, выпускница милицейской академии, меняла парней как перчатки. Но однажды привела не актёра или музыканта, как обычно, а весёлого мужичка лет на пятнадцать старше нас. Наверное, у девочки проснулся комплекс, связанный с отсутствием отца, такое иногда бывает.

Мужичок представился Денисом. Оказалось, он работает сисадмином в школе и лютый фанат убунты. Но только дома. Потому что в школе вынужден ставить детям «поганую винду», от чего его сильно мучает совесть.

На этом месте стало интересно…
Читать дальше →
Total votes 81: ↑79 and ↓2 +77
Comments 159

Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества

Reading time 8 min
Views 32K

В чаты по PHP часто приходят с вопросами про развитие: какие книги стоит прочитать в первую очередь, на какие каналы подписаться, какие курсы хороши. Если повезет, в ответ чат поделится парой рекомендаций. Мы решили агрегировать их в список и собрали 150+ мнений по актуальным ресурсам для PHP-разработчика. 

Без длинных интро. Самые упоминаемые ресурсы идут первыми в разделах, а те, которые советовали новичкам, отмечены флажком 🚩. 

Читать далее
Total votes 35: ↑32 and ↓3 +29
Comments 5

JavaScript: заметка о сканере предварительной загрузки и пропуске невидимого контента

Reading time 12 min
Views 4.7K


Привет, друзья!


В этой заметке я хочу рассказать о двух вещах:


  1. Сканере предварительной загрузки (теоретическая часть).
  2. Пропуске невидимого контента (практическая часть).

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


Теоретическая часть представляет собой адаптированный и дополненный перевод этой статьи. Практическая часть — это небольшой эксперимент по применению новых свойств CSS, о которых рассказывается в этой статье (перевод).


Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 2

Information

Rating
Does not participate
Location
Кишинев, Молдова, Молдова
Registered
Activity