Стиль программирования Андрей Свердлов. Введение Или как мы учились писать код вместе.

Презентация:



Advertisements
Похожие презентации
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Advertisements

Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
АССОЦИАТИВНЫЕ КОЛЛЕКЦИИ Лекция 6 1. Отличие от последовательных 2 В последовательной коллекции каждый элемент ассоциируется с номером, начиная с 0. В.
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
Лекция 4. Введение в С++ Наследование, множественное наследование. Конструкторы, деструкторы. Виртуальные функции.
1 Методы Java Методы класса – это подпрограммы, присоединенные к конкретным определениям классов. Они описываются внутри определения класса на том же уровне,
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Чистый код
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Информационные технологии Стандартные библиотечные функции манипулирование данными преобразование и шифрование определение пользователями функций.
Сравнение реализаций пользовательских типов переменных в языках высокого уровня. typedef struct tagStack{ double data; struct tagStack* prev; }*stack;
Лекция 1 Классификация С++. Парадигмы программирования Императивная Функциональная Декларативная (логическая) Инструкция 1 Инструкция 2 Инструкция 3 Инструкция.
Делегаты Как созданные объекты могут посылать сообщения тем объектам, которые их породили? При программировании под Windows на С и C++ основное средство.
Лекция 9. Введение в ООП. Часть 2 Красс Александр СПбГУ ИТМО, 2008.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Проектирование и дизайн ПО Дмитриев Андрей Владиславович
EXtreme Programming XP Тема 3. XP Пусть есть некоторая информационная система для банков. В качестве основной валюты для расчетов используется доллар,
ООП Классы Данные отдельно, методы отдельно struct Node { Node* next; void* data; }; struct List { Node* first; int size; }; void* allocate() { … } void.
Транксрипт:

Стиль программирования Андрей Свердлов

Введение Или как мы учились писать код вместе

Определение Стиль программирования – это внутренне согласованная совокупность базовых конструкций программ и способов их композиции, обладающая общими фундаментальными особенностями, как логическими, так и алгоритмическими. Стиль включает также совокупность базовых концепций, связанных с этими программами. Н. Непейвода

Зачем нужен СП унификация и упрощение кода: –ускорение разработки (до 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); }

Как внедрить свой СП поощрение (прямое предписание) использования некоторых базовых концепций программирования; запрещение (ограничение) использования некоторых других базовых концепций; иногда оно может быть неявным – через исключение нежелательных концепций из используемого языка или диалекта; требования и рекомендации по оформлению и документированию программ; совокупность инструментальных и организационных средств, поддерживающих вышеперечисленные требования и рекомендации.

Заключение Стиль – это целостная непротиворечивая система, основанная на используемой парадигме и учитывающая много тонкостей. Хороший стиль разработать трудно. Однако он является необходимым условием успеха в разработке программ.

Спасибо! Ваши вопросы? Андрей Свердлов