
- •Вопрос 2 3
- •Вопрос 2 Структурное программирование. Проектирование сверху вниз. Модульное программирование. Структурное кодирование
- •Вопрос 4 Функции. Компактность. Правило одной операции. Опасность смешения уровней абстракции
- •Вопрос 5 Функции. Правило понижения. Паттерн «Абстрактная фабрика» и использование оператора switch
- •Вопрос 6 Аргументы функций. Приемлемое количество и качество аргументов. Побочные эффекты в функциях. Примеры
- •Вопрос 9 Форматирование исходного кода. Цель форматирования. Вертикальное разделение концепций, вертикальное сжатие. Вертикальное расстояние
- •Вопрос 10 Форматирование исходного кода. Цель форматирования. Горизонтальное форматирование. Горизонтальное разделение и сжатие. Отступы
- •Вопрос 11 Объекты и структуры данных. Отличия процедурного и объектно-ориентированного кода. Случаи применения
- •Вопрос 12 Закон Деметры. Опасность построения гибридов объектов и структур данных. Объекты передачи данных и активные записи
- •Вопрос 16 Класс. Размеры класса. Принцип единой ответственности (srp)
- •Вопрос 17 Понятие связности класса. Влияние связности на размер классов
- •Вопрос 18 Структурирование класса с учетом его изменений. Принципы проектирования классов в ооп
- •Вопрос 19 Понятие эффективности программы. Выбор между эффективностью и удобочитаемостью. Оптимизирующие компиляторы
- •Вопрос 24 Понятие отладки. Отличие между отладкой и тестированием. Средства отладки. Защитное программирование
- •Вопрос 28 Понятие правильности программ. Доказательство правильности программ
Вопрос 6 Аргументы функций. Приемлемое количество и качество аргументов. Побочные эффекты в функциях. Примеры
Аргументов функции должно быть как можно меньше. Идеальная функция без аргументов. Не допускается испытание так называемых выходных аргументов. Большое количество аргументов затрудняет тестирование функций, так как необходимо проверять большое количество случаев.
Не следует использовать так называемые аргументы флаги. Их наличие явно указывает наличие у функций более одного действия. Использование более одного параметра иногда бывает аргументировано в том случае, если эти параметры являются параметрами одного уровня абстракции.
Если функция должна получать более 2 или 3 аргументов, то в данном случае рационально использовать объект, в каждый будут упакованы некоторые из аргументов. Следует избавляться от побочных эффектов.
Пример. Функция проверяет пароль пользователя входящего в систему.
Побочный эффект создает временную привязку. А именно, функция может вызываться только в определенные моменты времени (когда инициализация сеанса может быть выполнена безопасно). Несвоевременный вызов может привести к непреднамеренной потере сеансовых данных.
Вопрос 9 Форматирование исходного кода. Цель форматирования. Вертикальное разделение концепций, вертикальное сжатие. Вертикальное расстояние
Форматирование кода направлено на передачу информации, а передача информации является первоочередной задачей профессионального разработчика. Оно улучшает удобочитаемость и как следствие сопровождаемость и расширяемость.
Вертикальное разделение концепций
Практически весь код читается слева направо и сверху вниз. Каждая строка представляет выражение или условие, а каждая группа строк представляет законченную мысль. Эти мысли следует отделять друг от друга пустыми строками. Это чрезвычайно простое правило оказывает глубокое воздействие на визуальную структуру кода. Каждая пустая строка становится зрительной подсказкой, указывающей на начало новой самостоятельной концепции.
Вертикальное сжатие
Если вертикальные пропуски разделяют концепции, то вертикальное сжатие подчеркивает тесные связи. Таким образом, строки кода, между которыми существует тесная связь, должны быть «сжаты» по вертикали.
Вертикальные расстояния
Концепции, тесно связанные друг с другом, должны находиться поблизости друг от друга по вертикали. Если концепции связаны тесно, то их вертикальное разделение должно показывать, насколько они важны для понимания друг друга.
Вопрос 10 Форматирование исходного кода. Цель форматирования. Горизонтальное форматирование. Горизонтальное разделение и сжатие. Отступы
Форматирование кода направлено на передачу информации, а передача информации является первоочередной задачей профессионального разработчика. Оно улучшает удобочитаемость и как следствие сопровождаемость и расширяемость.
Горизонтальное форматирование, разделение и сжатие
Горизонтальное форматирование служит для группировки взаимосвязанных компонентов и разделение разнородных. Длина строки 80-120 символов. Как правило, при горизонтальном форматировании имеют место следующие правила:
Например, Знаки «=» окружаются пробелами. Это обеспечивает их визуальное выделение. В арифметических выражениях операции с более высоким приоритетом могут пробелами не выделяться.
Не следует отделять имена функций от открывающих скобок, потому что имя функции тесно связано с ее аргументами. Пробелы изолируют их вместо того, чтобы объединять.