Стиль программирования Андрей Свердлов
Введение Или как мы учились писать код вместе
Определение Стиль программирования – это внутренне согласованная совокупность базовых конструкций программ и способов их композиции, обладающая общими фундаментальными особенностями, как логическими, так и алгоритмическими. Стиль включает также совокупность базовых концепций, связанных с этими программами. Н. Непейвода
Зачем нужен СП унификация и упрощение кода: –ускорение разработки (до 30% экономии времени) за счет одинакового понимая кода всеми разработчиками; –облегчение поиска ошибок; –упрощение рефакторинга; –облегчение сопровождения кода; обеспечение минимального уровня качества кода (структурированность, читаемость, документированность).
Какой СП – хороший стиль – это стандарт! прозрачный; защищенный; легкий; разборчивый; однозначный.
Именование переменных: Венгерская нотация (C++): int iCounter; LPTSTR lpszBuffer; class CMyCPPClass; struct TMyCPPStruct; Венгерская нотация (C#): private int iCounter; public long lSomethingVeryLong public List aoMyList; class CMyCSClass;
Именование переменных: Нотация роботов (C#): private int _counter; public MyListener Listener; public string MyPort8080ListenerName {get;}; public class LogicalRole; public class MyUserControl; «Профит-стиль» (C#): int m_Counter; public string ServerName {get;}; public UIElement MainConceptBox; public class XMyClass; public class ConceptView :UIElement;
Комментарии В достаточном количестве Информативные Для четкого круга читателей (не для вообще всех)
Комментарии: нотация роботов (C#) private double _dist = 0;// расстояние до препятствия в метрах /// /// Функция изменят логическую роль робота с преследователя на убегающего и наоборот /// /// вызывается ли функция после запроса к сервису public void ChangeRole (bool serviceRequest) /// /// Класс логической роли робота. /// Содержит все атрибуты робота. /// public class LogicalRole
Комментарии: «профит-стиль» (C#) private bool m_ShiftPressed; public void SetGradient (LinearGradientBrush a_BackgroundBrush) /// /// Проверка попадания точки внутрь контроля. /// /// Координаты в системе экрана /// попадание точки внутрь контроля public bool HitTest (Point a_Hit) public partial class XWikipediaWindow
Код есть правила выделения участков кода в объекты, функции, процедуры; участки кода четко разделены между собой; переменные и константы объявляются так, чтобы их область видимости совпадала с временем жизни; регламентированы стандартные и общеупотребимые конструкции; описываемый стилем код является защищенным.
Код: нотация роботов (C#) public class DifficultExPioneer3DX { #region Private fields private LogicalRole _role; // логическая роль робота … #endregion private void GoCatcher () { // поиск убегающего робота SearchLRF (out _dist, out _azimuth); while (true) { // если дистанция достаточно мала if (_dist
Код: «профит-стиль» (C#) public class XConcept : IEquatable { XPosition m_Position; public XPosition Position { get { return m_Position; } set { m_Position = value; } } XContent m_Content = null; public XContent Content { get { return m_Content; } } public void Save() { m_Position.Save(m_Row); m_Content.Save(m_Row); DBTableAdapters.ConceptsTableAdapter adapter = new Mapedia.Core.DBTableAdapters.ConceptsTableAdapter(); adapter.Update(m_Row); }
Как внедрить свой СП поощрение (прямое предписание) использования некоторых базовых концепций программирования; запрещение (ограничение) использования некоторых других базовых концепций; иногда оно может быть неявным – через исключение нежелательных концепций из используемого языка или диалекта; требования и рекомендации по оформлению и документированию программ; совокупность инструментальных и организационных средств, поддерживающих вышеперечисленные требования и рекомендации.
Заключение Стиль – это целостная непротиворечивая система, основанная на используемой парадигме и учитывающая много тонкостей. Хороший стиль разработать трудно. Однако он является необходимым условием успеха в разработке программ.
Спасибо! Ваши вопросы? Андрей Свердлов