Clear Code

Рефакторинг для начинающих

Posted in Clear Code, Development, Refactoring, Tips And Tricks on September 8th, 2008 by Yaroslav Vorozhko – 7 Comments

Рефакторинг – это реорганизация существующего кода без изменения функциональности.

Я считаю, что каждый программист должен хорошо владеть таким инструментом как рефакторинг. Хорошее знание рефакторинга поможет вам писать код не только для машин, но и для людей. Такой код легкий в понимании и сопровождении, такой код написан для людей а не для машин, рефакторинг – это одна из ключевых ежедневных обязанностей программиста.

Вот 7 хороших советов для проведения рефакторинга:

  1. Всегда выполняйте рефакторинг короткими шагами с перерывом на перекомпиляцию и запуском тестов. Чем меньше ваши шаги, тем лучше вы локализуете потенциальные ошибки и тем быстрее вы их устраните. То, что ошибки будут можно не сомневаться. ;-)
  2. Проводите рефакторинг снизу вверх, особенно, если у вас длинная и запутанная цепочка наследования классов. Старайтесь всегда сначала производить изменения в потомственных классах, прежде чем приступать к базовым классам.
  3. Вы должны знать основные методы рефакторинга, для этого советую вам купить книгу Мартина Фаулера – “Рефакторинг”.
  4. У вас всегда должна быть цель с которой вы производите рефакторинг, не делайте его там где он не нужен или только, если это не первоочередная задача. Чем лучше вы понимаете зачем вы это делаете, тем качественнее будет результат.
  5. Не увлекайтесь рефакторингом, рефакторинг не добавляет функционала в программу, поэтому и каких либо видимых результатов вы также не получите. Делайте перерывы для того, чтоб сделать, что то, что можно увидеть и оценить. Тогда ваш начальник будет вами доволен. :)
  6. Любой вид рефакторинга можно сделать за 5, 20 минут, максимум за один час. Но в основном рефакторинг является комплексной задачей, которая может выполняться в течении недель или месяцев над действующим проектом. Идея в том, что двигаться нужно постепенно и небольшими шагами, и возможно уделяя этому не больше одного часа в день. Это хороший метод рефакторинга, потому как не занимает много времени и убедить начальство в необходимости будет намного проще, ведь 1 час это так мало, не так ли?
  7. В долгосрочной перспективе у вас будет красивый и легко сопровождаемый код, код который написан для людей, а не для машин, код которым вы можете гордиться и показывать в пример, код который работает так как вы этого хотите, и все это за невысокую цену рефакторинга!

Как выработать хорошую практику кодирования?

Posted in Clear Code on August 6th, 2008 by Yaroslav Vorozhko – 1 Comment

Как содействовать выработке хорошей практики кодирования?

Для улучшения практики кодирования можно внедрить в проект технический стандарт. Внедрение такого стандарта со стороны менеджера можеть быть не лучшей идеей. Лучше, если этим человеком будет архитектор, пользующейся уважением. Если этот архитектор считается идейным лидером проекта, то скорее всего команда будет придерживаться стандартов, установленных им. Но, если архитектор – это человек, который уже давно не принимает участие в кодировании, то он не может быть хорошей кандидатурой для внедрения стандарта.

Способы достижения хорошего кодирования

  • Назначить двух человек на каждую часть проекта. У вас как минимум будет гарантия, что хотя бы два человека думают, что код работает.
  • Рецензируйте каждую строку кода. В рецензировании кода участвует программист и как минимум еще два человека. Рецензирование кода улучшает его качество, так как программист знает, что как минимум 2 человека будут читать его код, а также это является страховкой на тот случай если человек покинет проект.
  • Введите процедуру подписания кода. Подписанный код показывает, что программист соотвествует уровню квалификации и только подписанный код считается завершенным.
  • Распространяйте для ознакомления хорошие примеры кода. Это предоставит ясный пример, того качества, которого вы хотите добиться. Никакое описание не передаст более точно, то что можно показать в примере кода.
  • Подчеркивайте, что код – это общее имущество. Иногда программисты считают, что код который они написали – “их” личная собственность. Хотя это результат их работы, но он является частью свего проекта и должен быть доступен любому участнику проекта.
  • Награждайте за хороший код. 1. Награда должна представлять интерес для программиста. 2. Код поощряемый таким образом должен быть исключительно хорошим.
  • Один простой стандарт. Если вы управляете программным проектом и в прошлом были программистом, то простым и эффективным способом добиться хорошего результат будет фраза: “Я должен быть в состоянии прочесть и понять любой код написанный в проекте”.

Стив Макконнелл. Совершенный код.


MySQL Row Format Tuning

Posted in MySQL, Performance on March 18th, 2008 by Yaroslav Vorozhko – 1 Comment

При создании или модифицировании таблиц используя MyISAM, вы можете запросить MySQL хранить строки в фиксированном или динамическом формате. Если таблица не содержит BLOB и TEXT полей, то фиксированный формат выбирается по умолчанию, который автоматически конвертирует VARCHAR в CHAR. Иначе, если выбрать динамический формат, то MySQL конвертирует все колонки из типа CHAR в VARCHAR.

Для MySQL, фиксированный формат легче в доступе, кешировании и обновлении информации. Также этот формат менее подвержен порче данных. Если дисковое пространство не является критическим, то фиксированный формат будет хорошим выбором.

Динамический формат использует меньше дискового пространства, но более подвержен риску фрагментации и/или порче данных.

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

read more »