сряда, 10 април 2013 г.

Какво е високо качествен програмен код?



Качество на кода

Качеството на кода може да бъде разглеждано от две страни – външно качество и вътрешно качество:

Външното качество  - критерии:

  • Държи ли се коректно?
  • Дава ли верни резултати?
  • Работи ли достатъчно бързо?
  •  Потребителският интерфейс лесен ли е за използване?
  • Кодът достатъчно сигурен ли е?

Вътрешно качество - критерии:

  • Лесно ли се чете и разбира?
  • Добре структуриран ли е?
  • Може ли лесно да се променя?

Базови характеристики на високо качествения програмен код



Високо качествение код има следните основни характеристики:
  •  Лесен за четене и разбиране ;
  •  Лесно се променя;
  •  Държи се правилно във всички случаи (тестван е за всички ситуации);
  •  Има добра архитектура и дизайн;
  •  Добре документиран (самодокументиран);
  •  Има „strong cohesion“ ( всяка отделна част от него е отговорна за конкретно една задача) и „loose coupling“ между модулите, класовете, методит и т.н( частите са независими една от друга);
  •  Има добро форматиране
  •  Има правилни и ясни имена на класове, методи и променливи

Конвенции за кода

Конвенциите са официални насоки за стила на сорс кода
  •  Конвенции за форматирането
 Подравняване
 Празни разстояния
  •  Конвенции за имената
 PascalCase
 camelCase
 представки
 наставки

Големите  организации спазват стриктни конвенции, които могат да са различни в различните екипи.

Управление на сложността

Управлението на сложността има централна роля в създаването на софтуер – трябва да се сведе до минимум обема на сложността, с която се налага да се работи във всеки един момент.
Класовете, методите, променливите, имената, условията, управлението на грешките, форматирането, коментарите трябва да са подчинени на подходящите практики за конструиране на софтуер и да са създадени така че да намаляват сложността на кода.
Ключът към това да бъдеш добър програмист е  успееш безопасно да игнорираш максимална част от програмата, докато работиш по дадена секция в нея.

Ключови характеристики на високо качествения програмен код

  •  Вярно поведение:
  1.  да изпълнява изискванията
  2.  стабилност, без зависвания и „crashes”
  3.  няма бъгове
  4.  държи се коректно при опити за некоректно използване от страна на потребителя
  •  Лесно се чете
  •  Има разбираема документация и се самодокументира
  •  Лесно се променя при необходимост
  •  Съдържа ясни имена на променливи
      Включва правилни имена на променливи, константи, параметри, методи, класове, структори, полета, свойства, интерфейси, енумарации и пространства
  •     Високо качествени класове, интерфейси и йерархии на класовете.
  1.       Добра абстракция и енкапсулация
  2.       Простота, преизползваемост и минимална сложност
  3.       Насоченост към изпълнение на една конкретна цел  и максимална независимост между отделните елементи
  •  Високо качествени методи
  1. Намаляват сложността, подобряват четимостта
  2. Подходящи имена на методите и параметрите
  3. Насоченост към изпълнение на една конкретна цел и максимална независимост между отделните елементи
  •  Променливите, данните и константите
  1.       Минимален живот
  2.       Прости изрази
  3.       Правилно използвани константи
  4.       Добре организирани данни
  •  Правилно използване на контролни структури
  1.       Прости изрази
  2.       Прости условни изрази и проти условия
  3.       Добре организирани цикли без дълбоко „гнездене“
  •  Правилно форматиране на кода
  1.       Следва логическата структура на програмта
  2.       Правилно форматиране на класовете, методите, блоковете, празните протранства,  дългите редова, подравняванията
  •  Високо качество на документацията и коментарите
  1.       Има ефективни коментари
  2.       Кодът е самодокументиращ се
  •  Следва корпоративните конвенции
  •  Детайлно тестван
  1.       Има код, позволяващ тестване
  2.       Добре създадени тестове
  3.       Тестовете покриват всички възможни сценарии

Няма коментари:

Публикуване на коментар