Рубрика «рефакторинг»

Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.

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

image

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

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

5 июня 2017 года на РИТ я рассказал доклад про то, как мы рефакторим свое огромное клиентское приложение на 2 500 000 строк кода.
Недавно я получил запись выступления. Думаю, что это видео может быть кому-то полезно, поэтому я попросил у Олега Бунина разрешение на то, чтобы выложить его в открытый доступ. Он согласился. Надеюсь, вам будет интересно. В любом случае буду рад любым комментариям.
P.S. Заранее прошу прощение за качество видео. К сожалению, ничего с этим поделать не могу.

Автор: zolotyh

Источник

Микрооптимизации в коде

Как правило, при обсуждении диагностических возможностей PVS-Studio за кадром остаются рекомендации, выдаваемые анализатором по поводу микрооптимизаций Си и Cи++ кода. Конечно, микрооптимизации не так важны, как диагностики выявляющие ошибки, но про них тоже интересно поговорить.
Читать полностью »

Рефакторинг кода в обеденный перерыв: знакомство с сodemod-скриптами - 1

Думаю, что рефакторинг проекта – тема, близкая каждому разработчику. Зачастую мы сталкиваемся с проблемами, когда нам перестает хватать средств IDE и регулярных выражений, и тогда на помощь приходят средства вроде тех, что описаны в этом посте. Codemod скрипты – это очень мощный инструмент. После его освоения станет ясно, что ваш рефакторинг уже никогда уже не будет прежним. Поэтому я перевел этот пост для нашего хабраблога. Желаю приятного прочтения.

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

За последние годы JavaScript изменился до неузнаваемости. Развитие этого языка привело к тому, что была изменена даже простейшая задача по объявлению переменных. В ES6 появились let и const, стрелочные функции и множество других новшеств, каждое из которых приносит пользу разработчикам.

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

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

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

Ваша задача: выбраться из этого бардака.

После того, как отпустила первая инстинктивная реакция (сбежать подальше), вы начинаете работать над проектом, отлично понимая, что руководители компании следят за вашими успехами. Провал не вариант. Но пока что, судя по раскладу, именно провал кажется наиболее вероятным исходом. Так что делать?

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

YiiConf 2017 16 июня в Москве — сформирована программа - 1
YiiConf — конференция по PHP-фреймворку Yii, уже близко. Если ещё не оформили билет — самое время. И не забудьте указать свой никнейм при регистрации — это очень поможет найти знакомых, с которыми вы общались виртуально.

Сегодня выложили программу докладов и мастер-классов, собранную из поданных заявок как на основе голосования участников конференции и сообщества Yii, так и на основе опыта организаторов.

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

С 2011 по 2016 включительно мы делали крутую конференцию DevCon в загородном формате на 2 дня. И каждый раз, в комментариях в анкетах нам просили больше рассказов про проекты реальных заказчиков, больше практикичеких работ!

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

Как пропатчить KDE под FreeBSD или, что ждать от мастер-классов на DevCon School 1 июня - 1

Итак, посмотрим, что же нам готовят 12 мастер-классов доступных 1 июня на DevCon School: Технологии будущего, которая пройдёт в Digital October.
Читать полностью »

Реверс-инжиниринг «Казаков», часть последняя: второе дыхание - 1

После нескольких месяцев работы над исходным кодом игры «Казаки: Снова война» я наконец-то могу умыть руки и представить результат своих трудов. В этой статье мне хотелось бы поделиться с вами опытом рефакторинга этого незаурядного проекта, в частности кодовыми курьёзами. Всем любителям некро-программирования посвящается…
Читать полностью »

image
*Поломанный кран в офисе Magento и быстрое решение воплощенное в жизнь одним из инженеров — типичный Backward Compatible фикс.
Читать полностью »