Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.
Рубрика «рефакторинг» - 9
Области сокрытия кода и рефакторинг
2017-10-23 в 3:35, admin, рубрики: Magento, php, архитектура приложений, модульность, Программирование, Проектирование и рефакторинг, рефакторингОчевидная неочевидность в сборке с помощью Webpack
2017-10-02 в 21:36, admin, рубрики: bundle, javascript, node.js, nodejs, optimization, refactoring, webpack, рефакторинг
Работая в крупной компании довелось перехватить внутренний проект, который нужно было сдать вчера. Народ кочевал и топтался по нему, развивая культуру Святого Копипаста. А package.json рос не по дням, а по часам. Спустя только год удалось приступить к рефакторингу. В этой статье речь пойдет об одной конкретной оптимизации, о которой на просторах рунета я ничего не слышал.
Как отрефакторить 2 500 000 строк кода и не сойти с ума
2017-08-01 в 9:06, admin, рубрики: codemods, css, javascript, Блог компании Wrike, Программирование, Разработка веб-сайтов, рефакторинг5 июня 2017 года на РИТ я рассказал доклад про то, как мы рефакторим свое огромное клиентское приложение на 2 500 000 строк кода.
Недавно я получил запись выступления. Думаю, что это видео может быть кому-то полезно, поэтому я попросил у Олега Бунина разрешение на то, чтобы выложить его в открытый доступ. Он согласился. Надеюсь, вам будет интересно. В любом случае буду рад любым комментариям.
P.S. Заранее прошу прощение за качество видео. К сожалению, ничего с этим поделать не могу.
Автор: zolotyh
Поговорим о микрооптимизациях на примере кода Tizen
2017-07-17 в 7:02, admin, рубрики: C, c/c++, c++, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, код, микрооптимизация, оптимизация кода, оптимизация программ, разработка операционных систем, Разработка под Tizen, рефакторинг, Си, си/си++, статический анализ кода
Как правило, при обсуждении диагностических возможностей PVS-Studio за кадром остаются рекомендации, выдаваемые анализатором по поводу микрооптимизаций Си и Cи++ кода. Конечно, микрооптимизации не так важны, как диагностики выявляющие ошибки, но про них тоже интересно поговорить.
Читать полностью »
Рефакторинг кода в обеденный перерыв: знакомство с сodemod-скриптами
2017-07-05 в 11:38, admin, рубрики: javascript, React, Блог компании Badoo, Проектирование и рефакторинг, Регулярные выражения, рефакторинг
Думаю, что рефакторинг проекта – тема, близкая каждому разработчику. Зачастую мы сталкиваемся с проблемами, когда нам перестает хватать средств IDE и регулярных выражений, и тогда на помощь приходят средства вроде тех, что описаны в этом посте. Codemod скрипты – это очень мощный инструмент. После его освоения станет ясно, что ваш рефакторинг уже никогда уже не будет прежним. Поэтому я перевел этот пост для нашего хабраблога. Желаю приятного прочтения.
Сопровождение кодовой базы может обернуться головной болью для любого разработчика, особенно когда дело касается JavaScript. В условиях постоянно меняющихся стандартов, синтаксиса и критических изменений сторонних пакетов поддерживать такой код очень непросто.
За последние годы JavaScript изменился до неузнаваемости. Развитие этого языка привело к тому, что была изменена даже простейшая задача по объявлению переменных. В ES6 появились let
и const
, стрелочные функции и множество других новшеств, каждое из которых приносит пользу разработчикам.
При создании и поддержке в рабочем состоянии кода, призванного выдерживать проверку временем, растёт нагрузка на разработчиков. Из этого поста вы узнаете, как можно автоматизировать задачи по широкомасштабному рефакторингу кода с использованием Codemod-скриптов и инструмента jscodeshift
, что позволит вам, например, легко обновлять свой код для использования новых возможностей языка.
Как улучшить legacy-код
2017-06-21 в 10:12, admin, рубрики: legacy code, Проектирование и рефакторинг, рефакторинг, Тестирование IT-систем, метки: legacy codeЭто случается хотя бы раз в жизни каждого программиста, менеджера проекта или тимлида. Вы получаете целую кучу парного навоза. Если повезёт, то всего несколько миллионов строк. Первоначальные авторы давно улетели в тёплые страны, а документация, если она имеется, безнадёжно устарела.
Ваша задача: выбраться из этого бардака.
После того, как отпустила первая инстинктивная реакция (сбежать подальше), вы начинаете работать над проектом, отлично понимая, что руководители компании следят за вашими успехами. Провал не вариант. Но пока что, судя по раскладу, именно провал кажется наиболее вероятным исходом. Так что делать?
Мне (не) повезло оказаться в такой ситуации несколько раз. И мы с небольшой группой друзей выяснили, что при должных навыках это очень выгодное дело — брать на себя такие кучи дымящегося убожества и превращать их в здоровые поддерживаемые проекты. Вот некоторые хитрости, которые мы используем:
Читать полностью »
YiiConf 2017 16 июня в Москве — сформирована программа
2017-05-25 в 12:59, admin, рубрики: blackfire, cms, DDD, docker, opensource, php, xdebug, xhprof, yii, yiiconf, биллинг, Блог компании DevConf, конференция, миграции, Разработка веб-сайтов, рефакторинг
YiiConf — конференция по PHP-фреймворку Yii, уже близко. Если ещё не оформили билет — самое время. И не забудьте указать свой никнейм при регистрации — это очень поможет найти знакомых, с которыми вы общались виртуально.
Сегодня выложили программу докладов и мастер-классов, собранную из поданных заявок как на основе голосования участников конференции и сообщества Yii, так и на основе опыта организаторов.
Как пропатчить KDE под FreeBSD или, что ждать от мастер-классов на DevCon School 1 июня
2017-05-24 в 10:19, admin, рубрики: azure service fabric, DevCon School, docker, java, kubernetes, Malmo, Microsoft Azure, minecraft, postgres, ssdl, Visual Studio, visual studio team services, VSTS, Блог компании Microsoft, Программирование, рефакторингС 2011 по 2016 включительно мы делали крутую конференцию DevCon в загородном формате на 2 дня. И каждый раз, в комментариях в анкетах нам просили больше рассказов про проекты реальных заказчиков, больше практикичеких работ!
И мы придумали и реализовали DevCon School: бесплатное для участников мероприяите с гдубоким погружением. Несмотря на свою сравнительно короткую исторю это название стало брендом и неким знаком качества. Нас просят провоидть их ещё и ещё. Особое моесто занимают большие DevCon School, которые мы проводим два раза в год. В отличие от обычных, в них есть нескольоко тем, а самое главное, есть возможность выбрать, каким именно образом с эими темами знакомиться: интенсивы или мастер-классы.
Итак, посмотрим, что же нам готовят 12 мастер-классов доступных 1 июня на DevCon School: Технологии будущего, которая пройдёт в Digital October.
Читать полностью »
Реверс-инжиниринг «Казаков», часть последняя: второе дыхание
2017-05-12 в 8:21, admin, рубрики: C, c++, cossacks, казаки, Программирование, разработка игр, рефакторинг, старые игры, метки: cossacks
После нескольких месяцев работы над исходным кодом игры «Казаки: Снова война» я наконец-то могу умыть руки и представить результат своих трудов. В этой статье мне хотелось бы поделиться с вами опытом рефакторинга этого незаурядного проекта, в частности кодовыми курьёзами. Всем любителям некро-программирования посвящается…
Читать полностью »
Политика обратной совместимости при разработке фреймворка на примере Magento 2. Часть 1
2017-03-21 в 9:25, admin, рубрики: backward compatibility, Magento, magento 2, php, semantic versioning, Анализ и проектирование систем, версионирование, обратная совместимость, Проектирование и рефакторинг, Разработка под e-commerce, рефакторинг
*Поломанный кран в офисе Magento и быстрое решение воплощенное в жизнь одним из инженеров — типичный Backward Compatible фикс.
Читать полностью »