Как стать автором
Обновить
4
0
Кирилл Дёмин @greatkir

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

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров97K

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

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

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

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

Время на прочтение10 мин
Количество просмотров46K

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

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

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

Читать далее
Всего голосов 62: ↑59 и ↓3+56
Комментарии75

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

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров23K

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

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

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

Читать далее
Всего голосов 92: ↑92 и ↓0+92
Комментарии55

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

Время на прочтение7 мин
Количество просмотров7.2K

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

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии10

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

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

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

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

Читать далее
Всего голосов 62: ↑60 и ↓2+58
Комментарии17

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров22K

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

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

Читать далее
Всего голосов 54: ↑54 и ↓0+54
Комментарии13

Прессуем WordPress

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров5.8K

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

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

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров9.1K

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

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

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

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

Читать далее
Всего голосов 22: ↑16 и ↓6+10
Комментарии22

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

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров6.5K

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

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

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии23

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров12K

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

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии8

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

Время на прочтение13 мин
Количество просмотров4.6K

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

Поехали!
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

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

Время на прочтение20 мин
Количество просмотров72K

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

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

Читать далее
Всего голосов 210: ↑208 и ↓2+206
Комментарии103

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

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

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

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

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

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

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


Источник

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

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

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

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

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

Время на прочтение10 мин
Количество просмотров4.4K

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии5

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

Время на прочтение8 мин
Количество просмотров9.4K

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

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

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

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

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии15

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

Время на прочтение9 мин
Количество просмотров86K

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

Читать далее
Всего голосов 90: ↑84 и ↓6+78
Комментарии70

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

Время на прочтение5 мин
Количество просмотров54K


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

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

На этом месте стало интересно…
Читать дальше →
Всего голосов 81: ↑79 и ↓2+77
Комментарии159

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

Время на прочтение8 мин
Количество просмотров32K

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

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

Читать далее
Всего голосов 35: ↑32 и ↓3+29
Комментарии5

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

Время на прочтение12 мин
Количество просмотров4.7K


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


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


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

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


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


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

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии2
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Кишинев, Молдова, Молдова
Зарегистрирован
Активность