Предлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать полностью »
Рубрика «рефакторинг» - 14
Темное программирование
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-08 в 17:51, admin, рубрики: tdd, правильное программирование, Программирование, профессионализм, разработка, рефакторинг, Совершенный код, тесты, чистый кодЯ почувствовал, что устои мироздания потрясены, когда сотни читательов начали яростно спорить по поводу заметки Роберта Мартина о стартапе-ловушке.
Хотите знать, как я обычно участвую в таких спорах?
— Так какие же тесты пишешь ты сам?
— Мнэ-э…
— Когда же ты пишешь тесты?
— Мнэ-э…
— Ты вообще тесты пишешь?
— Мнэ-э…
Окей, конечно, я пишу тесты, я просто не участвую в таких спорах. Времена, когда нас всех заставили принять таблетку TDD, провели черту между теми программистами, которые полюбили тесты всем сердцем, и теми, кто на самом деле не очень-то любит писать тесты. И ввязываться в спор между двумя этими лагерями — отличный повод потерять пару часов впустую, вместо того чтобы делать свою работу.
Но как раз сейчас у меня, кажется, есть эта парочка часов.
Читать полностью »
Стартап-ловушка
2013-03-07 в 17:02, admin, рубрики: tdd, правильное программирование, Программирование, профессионализм, разработка, рефакторинг, Совершенный код, стартап, тесты, чистый код- Вы присоединились к новому стартапу.
- Вы мегаталантливое создание.
- Вы можете работать 60, 70, 80 часов в неделю для достижения результата.
- Вы офигенный разработчик и дизайнер.
- Вы не попадетесь в ловушки, в которые попадались другие.
- Вы убедитесь, что в этот раз все будет по-другому.
- Вы настолько хороши, что правила вам ни к чему.
- Вы в жопе.