Рубрика «легаси»

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

Читать полностью »

Как перестать беспокоиться и начать жить с легаси в проекте - 1

Привет! Меня зовут Саша Мищенко, я тимлид платформенной команды в Профи.ру. Сегодня хочу поговорить о легаси — о том, как мы к нему относимся и как уживаемся в одной компании.

Читать полностью »

Легаси убьёт ваш код. Или нет? - 1

Привет! Меня зовут Саша Мищенко, я тимлид платформенной команды в Профи.ру. Сегодня хочу поговорить о легаси — о том, как мы к нему относимся и как уживаемся в одной компании.

Читать полностью »

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

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

В одном месте починили — в двух других отвалилось

При оформлении заказа некорректно применялся промокод «ВЕСНА2025». Завели баг, разработчик нашел проблему, пофиксил, выкатил фикс — промокод заработал, все довольны.

Через час прилетает сообщение из бухгалтерии: в новых заказах несоответствие между ценой на товар и оплаченной суммой. Параллельно в CRM — неверно рассчиталась скидка.

Читать полностью »

Мы любим прогресс и сложные случаи в современных ИТ. Но иногда к нам обращаются с такими историями, что инженерам приходится вспоминать былые времена. Помните SUN? Компания SUN Microsystems запомнилась в лучшие свои годы качественным инженерным «железом» enterprise-уровня. К чему лукавить: ностальгируем и чуточку скучаем. Отчего нас бросило в такую меланхолию? Недавно работали с одним случаем. Решили написать небольшую заметку — не все же ностальгировать в одиночестве.

Читать полностью »

Всем привет, меня зовут Ибрагим, я iOS разработчик одной из команд мобильного банкинга и это моя первая статья для Хабра, поэтому прошу строго не судить.

Сегодня хочу рассказать Вам, как мы пилили  дробили монолит на SPM пакеты и создавали дизайн систему. 

Раздробить многолетний монолит? Пфф, делов на 20 минут.

Раздробить многолетний монолит? Пфф, делов на 20 минут.

Как все начиналось

Читать полностью »

Ошибки инженеров в больших кодовых базах - 1

Работа с крупными устоявшимися кодовыми базами — один из самых сложных навыков, осваиваемых разработчиком ПО. Его невозможно практиковать заранее (нет, опенсорс не даст вам этого опыта). Личные проекты не научат этому, потому что они по определению маленькие и реализуются с нуля. Нужно уточнить, что когда я говорю «крупные устоявшиеся кодовые базы», то имею в виду следующее:

Чему разработчики ПО могут научиться у стоматологов - 1


Для начала немного обо мне: я и практикующий дантист, и разработчик ПО. Со вторника по четверг я пишу код, а с пятницы по воскресенье принимаю пациентов. До того, как стать дантистом, я работал в таких компаниях, как Allstate Insurance, Lockheed Martin и ICS. Освоив обе эти профессии, я заметил, что разработчики ПО могут многому научиться у дантистов и наоборот. Я решил записать эти уроки в надежде, что они кому-то могут помочь. Это просто общие рекомендации — не стоит рассчитывать, что они идеально подходят для любой ситуации.Читать полностью »

С годами подходы к обработке конкурентности в ядре Linux сильно изменились. К 2023 году в арсенале разработчиков ядра появились, в частности, автозавершения, хорошо оптимизированные мьютексы, а также россыпь неблокирующих алгоритмов. Но были времена, когда управление конкурентностью сводилось к использованию обычных семафоров. Дискуссия о внесении небольшого изменения в API семафоров лишний раз свидетельствует, как сильно они изменились за долгую историю ядра.

Читать полностью »

Толстые слои легаси: как запускаются современные процессоры Intel - 1

Центральные процессоры (CPU) не могут ничего сделать, пока им не скажут, что делать. Возникает очевидная проблема — как вообще заставить CPU что-то делать? Во многих CPU эта задача решается при помощи вектора сброса — жёстко прописанного в CPU адреса, из которого нужно начинать считывать команды при подаче питания. Адрес, на который указывает вектор сброса, обычно представляет собой какую-нибудь ROM или флэш-память, которую CPU может считать, даже если никакое другое оборудование ещё не сконфигурировано. Это позволяет производителю системы создавать код, который будет исполнен сразу же после включения питания, сконфигурирует всё остальное оборудование и постепенно переведёт систему в состояние, при котором она сможет выполнять пользовательский код.

Конкретная реализация вектора сброса в системах x86 со временем менялась, но, по сути, это всегда были 16 байтов ниже верхушки адресного пространства, то есть 0xffff0 на 20-битном 8086, 0xfffff0 на 24-битном 80286 и 0xfffffff0 на 32-битном 80386. По стандарту в системах x86 ОЗУ начинается с адреса 0, поэтому верхушку адресного пространства можно использовать для размещения вектора сброса с минимальной вероятностью конфликта с ОЗУ.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js