Предлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать полностью »
Метка «рефакторинг» - 2
Темное программирование
2013-09-02 в 22:53, admin, рубрики: Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, метки: Программирование, проектирование, рефакторингИз говнокода в Highload. Используем ТАРАНtool. 5 рецептов повышения производительности
2013-05-09 в 22:49, admin, рубрики: highload, nosql, performance optimization, php, tarantool, высокая производительность, рефакторинг, социальные игры, метки: highload, nosql, performance optimization, PHP, tarantool, рефакторинг, социальные игрыКо мне обратился один руководитель стартапа социальной игры с просьбой увеличить производительность своего проекта. На этом этапе был сделан и запущен прототип проекта. И надо отдать должное разработчикам, что проект работал и даже приносил какую-то прибыль. Но, запускать рекламную компанию не имело смысло, так как проект не выдерживал ни каких нагрузок. Валился MySQL (35% ошибок).
Код проекта… В общем у меня осталось впечатление, что писал его недоученный студент… И это, немотря на то, что уже был сделан частичный рефакторинг другим программистом. Единственное, что радовало, то это то, что не использовался какой-либо фреймворк. Конечно, это вечно флеймовый вопрос: Иисус или Магомед? Быть или не Быть? Unix или Windows? Использовать или не Использовать? ИМХО, Моё мнение: фреймворки заточены под узкий круг типовых задач. Социальный проект — задача, как правило, не типовая… Но, в целом, мне проект показался интересным и я решил взяться за улучшение. На этом вступление можно закончить…
Наверно, про повышение производительности и тему highload не писал только ленивый WEB разработчик, знающий хоть что-то в этой области. Принципиально, что-то нового, в данной статье вы не найдёте. Основные идеи разработки highload проектов, были мною изложены в цикле статей HighLoad. Три кита.. Если вам интересно, как я увеличил производительность PHP проекта, используя NoSQL хранилище tarantool, то Добро пожаловать под кат.
Хотя, принципиально можно использовать другое, подходящее под данный круг задач, key/value хранилище, и реализация серверной логики может быть на любом другом скриптовом языке.
Читать полностью »
Множественные ветвления и шаблон «Правила»
2013-05-07 в 22:41, admin, рубрики: Программирование, Проектирование и рефакторинг, рефакторинг, шаблоны проектирования, метки: Программирование, рефакторинг, шаблоны проектированияЗдравствуйте, уважаемые хабрачитатели. В этой статье я хотел бы поделиться знаниями об одном небольшом и простом, но полезном шаблоне, про который обычно не пишут в книжках (возможно, потому, что он является частным случаем шаблона «Команда»). Это шаблон «Правила» (Rules Pattern). Вероятно, для многих он будет очень знакомым, но кому-то будет интересно с ним познакомиться.
Глобальный рефакторинг
2013-04-30 в 9:51, admin, рубрики: javascript, Альфа-Банк, Блог компании «Альфа-Банк», Веб-разработка, рефакторинг, статистика, метки: javascript, Альфа-Банк, рефакторинг, статистикаНаш отдел владеет десятком внешних и внутренних сайтов, возраст некоторых почти 10 лет. Будем описывать задачи, которые возникают в процессе поддержки и развития таких ресурсов, пути решения, и рассказывать про новые фишки. Например, как не поделиться ссылкой на новогоднюю гирлянду в начале мая ;)
Конечно, одна из основных задач — это помогать пользователям заполнять наши волшебные кредитные анкеты c Железным человеком, но бывают и вполне земные задачи.
Читать полностью »
Рефакторинг с бубном, или как мы халка усмиряли
2013-04-24 в 7:54, admin, рубрики: .net, usercontrol, Блог компании «Дневник.ру», Веб-разработка, проектирование, Проектирование и рефакторинг, рефакторинг, метки: .net, usercontrol, Веб-разработка, проектирование, рефакторинг
Думаю, все согласятся, что большинство стартапов изначально сделаны на коленке. Только потом, в случае удачного выстреливания, при грамотном руководстве и понимании стратегических целей владельцы ресурса могут принять решение о рефакторинге существующего продукта. Хорошо, если это произошло раньше превращения Брюса Баннера в Халка. Но что делать, если такой момент был благополучно пропущен, и ресурс представляет собой огромного зеленого плохо-контролируемого гиганта? Как поступить в такой ситуации? Читать полностью »
Техника: Перемещение функций между объектами (рефакторинг М. Фаулера)
2013-04-12 в 14:26, admin, рубрики: Проектирование и рефакторинг, рефакторинг, Совершенный код, фаулер, шпаргалка, метки: рефакторинг, фаулер, шпаргалка Начало Код с душком
Техника: Составление методов
В продолжении, техника рефакторинга по книге Рефакторинг. Улучшение существующего кода Мартин Фаулер.
Читать полностью »
Техника: Составление методов (рефакторинг М. Фаулера)
2013-03-29 в 13:25, admin, рубрики: Проектирование и рефакторинг, рефакторинг, Совершенный код, фаулер, шпаргалка, метки: рефакторинг, фаулер, шпаргалка Начало Код с душком (рефакторинг М. Фаулера) .
В продолжении, техника рефакторинга по книге Рефакторинг. Улучшение существующего кода Мартин Фаулер.
Синтаксис будет на C#, но главное понимать идею, а её можно использовать в любом другом языке программирования.
Читать полностью »
Весёлые (сосисочные) рефакторинги
2013-03-14 в 14:29, admin, рубрики: java, Программирование, рефакторинг, Совершенный код, метки: рефакторинг
Привет, %habrausername%. Я хочу сыграть с тобой в игру.
Ты устроился на новую работу. И в первый же день, сразу после подписания NDA, тебе показывают то, что осталось от предыдущего разработчика. Тебе хочется кричать, хочется бежать из этого проклятого места, но трудовой договор сковывает тебя по рукам и ногам. Поэтому ты лишь еле слышно материшься.
От предыдущего разработчика осталась кучка кода и домашние тапочки. Ты осторожно кладёшь тапочки в мусорную корзину и начинаешь рефакторинг.
Этот код ужасен. Во-первых, нет никого, кто мог бы сказать, зачем этот код писался. Во-вторых, нет никакой документации. Нет даже комментариев, не говоря уже о юнит-тестах. В-третьих, код не структурирован, а имена классов и методов ни о чём не говорят. И, наконец, работать это должно начать не сегодня, и даже не вчера, а внезапно.
Ну как, %habrausername%, пробежал холодок по спине?Читать полностью »
Про абстрагирование, слабосвязную архитектуру и проектирование в целом
2013-03-02 в 7:29, admin, рубрики: dfd, Программирование, проектирование, Проектирование и рефакторинг, разработка, рефакторинг, Совершенный код, метки: dfd, Программирование, проектирование, разработка, рефакторингК хорошим постам habrahabr.ru/post/135340/ и habrahabr.ru/post/171261/
- Почему большинство программистов не любят «читать чужой код»?
- Почему рефакторинг и внесение изменений становятся серьезной проблемой?
- Почему так часто случается, что легче переписать с нуля?
- Почему одни программисты называют других хорошими или плохими словами?
Конечно, многие из вас обнаружат, что предлагаемые ниже ответы на эти вопросы весьма знакомы, но возьмите эту статью на заметку, так как кидать линк зачастую все же существенно комфортнее, чем распинаться в объяснениях и доказательствах очевидного.
Читать полностью »
История одной оптимизации
2013-02-27 в 18:44, admin, рубрики: python, Песочница, Проектирование и рефакторинг, рефакторинг, метки: python, рефакторингРечь пойдет о unity-launcher-editor — редакторе элементов и контекстного меню (quicklists) панели Unity для Ubuntu. Редактор написан с использованием связки python+gtk, с обязанностями справляется сносно. Раздражает время запуска: до появления главного окна проходит непозволительно много времени.
Можно пенять на Python, Unity или разработчиков, а можно попробовать разобраться в чем же дело, проект ведь с открытым кодом. Во время «исследования» делал пометки, которые и легли в основу этой заметки. Любопытных прошу под кат.