Презентация принципов компьютерного программирования
Обновлено: 21.11.2024
Представляем
принципы компьютерных наук AP®
Требуются креативные мыслители
Миф против реальности
МИФ . Информатика связана с обработкой текстов, отправкой электронной почты и использованием Интернета.
РЕАЛЬНОСТЬ. Хотя компьютерные науки делают это возможным, речь идет не об использовании конкретных приложений, а об использовании компьютера для решения проблем с помощью новых приложений.
МИФ . Информатика состоит из сидения перед компьютером в одиночестве и написания кода часами напролет.
РЕАЛЬНОСТЬ. Информатика — это творчество и сотрудничество! Компьютеры — это сложные инструменты для решения реальных проблем, и для разработки этих решений необходима командная работа.
МИФ . Когда я думаю о компьютерных науках, единственная профессия, которая приходит на ум, — это программирование.
РЕАЛЬНОСТЬ. Изучение информатики может привести к сотням профессий, включая трехмерную анимацию, проектирование, развлечения, разработку приложений, медицину, визуальный дизайн, робототехнику, политический анализ и многое другое.
Миф против реальности
МИФ . Информатика предназначена только для мальчиков.
РЕАЛЬНОСТЬ. Информатика доступна всем. Мальчик или девочка, если вы креативны, любите работать в команде и интересуетесь тем, как технологии могут решать проблемы, информатика для вас.
МИФ . Я плохо разбираюсь в математике, поэтому не буду хорош в информатике.
РЕАЛЬНОСТЬ. Как и все науки, информатика включает в себя математику, но не все состоит из единиц и нулей. Языковые навыки и критическое мышление не менее, если не более важны для успеха.
Что знаменитости и коллеги говорят о информатике?
-
- В главных ролях Билл Гейтс, Марк Цукерберг, Макинде Адеагбо, Карли Клосс, Кевин Систром, Паола Мейха Минайя, Дрю Хьюстон и президент Барак Обама.
Что такое AP® Computer Science Principles (AP CSP)?
Знаете ли вы, что из более чем 9 миллионов вакансий STEM, доступных в следующем десятилетии, половине потребуется опыт работы с компьютером?
AP CSP, запущенный осенью 2016 года, готовит вас следующим образом:
- Представляем вам основные идеи информатики.
- Мы предлагаем вам изучить, как компьютеры и технологии влияют на окружающий мир.
- Обеспечение фундамента знаний, которые можно применять в различных дисциплинах, независимо от вашей специализации или карьеры, от областей STEM до музыки и искусства. Скорее всего, компьютеры играют важную роль, какой бы областью вы ни интересовались.
Что мои коллеги говорят о
AP CSP?
Что охватывает курс?
Создайте вычислительный артефакт для творческого самовыражения.
Объясните, как двоичные последовательности используются для представления цифровых данных.
Данные и информация
Извлечение информации из данных в
обнаружить и объяснить связи,
шаблоны или тенденции.
Большая идея 1. Креативность
Компьютинг – это творческая дисциплина, в которой создание вычислительных артефактов может принимать самые разные формы, например создание ремиксов цифровой музыки, создание анимации, разработка веб-сайтов и написание программ.
Большая идея 2. Абстракция
В компьютерных науках абстракция является основным методом решения проблем. Вы узнаете, что абстракция является естественной частью того, что они делают каждый день. Некоторые области, в которых будут преподаваться и применяться абстракции, связаны с созданием программ, моделей и симуляций, а также с изучением того, как компьютеры используют абстракции в терминах систем счисления, таких как двоичные, для представления цифровых данных. р>
Большая идея 3: данные и информация
Данные и информация способствуют созданию знаний. Управление огромным количеством необработанных данных и их интерпретация являются частью основы нашего информационного общества и технологий. В этом курсе вы будете работать с данными, чтобы обнаруживать связи, закономерности или тенденции.
Что охватывает курс?
Выразите алгоритм на языке.
Совместная разработка программы.
Объясните характеристики Интернета
и системы, построенные на его основе.
Проанализируйте полезные и
вредные последствия вычислений.
Большая идея 4. Алгоритмы
Алгоритмы используются для разработки и выражения решений вычислительных задач. Они используются для описания процесса. Подумайте о правилах, связанных с вашей любимой игрой, и о процессе или технике, которые вы могли бы использовать, чтобы выиграть игру. Этот процесс представляет собой алгоритм. В этом курсе вы будете работать с алгоритмами разными способами: будете разрабатывать оригинальные алгоритмы, реализовывать алгоритмы на языке программирования и анализировать алгоритмы.
Большая идея 5. Программирование
Программирование позволяет решать проблемы, самовыражаться и создавать знания. Это приводит к созданию программного обеспечения и облегчает создание вычислительных артефактов, включая музыку, изображения и визуализации.В этом курсе вы познакомитесь с фундаментальными концепциями программирования, которые можно применять в различных проектах и на разных языках. Вы узнаете, как совместно работать над созданием программ для творческого самовыражения или решения проблемы.
Большая идея 6: Интернет
Интернет и основанные на нем системы оказывают огромное влияние на общество. Многие из вас используют Интернет, чтобы выполнять домашние задания, проводить исследования и оставаться на связи с друзьями. В этом курсе вы узнаете, как работает Интернет, изучите характеристики Интернета и систем, построенных на нем, и проанализируете важные проблемы, такие как кибербезопасность и способы обеспечения конфиденциальности вашей информации.
Большая идея 7: глобальное влияние
Вычисления изменили то, как люди думают, работают, живут и развлекаются. В этом курсе вы познакомитесь со многими способами, с помощью которых компьютеры способствуют инновациям. Многие из вас могут легко определить преимущества компьютерных инноваций. Ваш мобильный телефон дает вам больше свободы, потому что ваши родители могут связаться с вами. Что вы, возможно, не учли, так это потенциальное вредное воздействие вычислений. Анализ как потенциальных преимуществ, так и вредных последствий вычислений в ряде контекстов поможет вам взвесить эти последствия при создании собственных инноваций в области вычислительной техники.
Ваш код должен быть понятным и простым в обслуживании. Вот несколько других принципов программирования, которые помогут вам привести свои действия в порядок.
Писать код легко. Написать хороший код сложно.
Плохой код бывает разных форм. Беспорядочный код, массивные цепочки if-else, программы, которые ломаются после одной корректировки, переменные, которые не имеют смысла — программа может сработать один раз, но после проверки она никогда не сможет выстоять.
Если вы хотите стать программистом, никогда не соглашайтесь на ярлыки. Старайтесь писать код, который легко поддерживать — легко поддерживать вам и любому другому разработчику в вашей команде.
Как написать эффективный код? Будучи дисциплинированным и целеустремленным. Вот 10 принципов программирования, которые сделают вас лучшим программистом.
1. Будь проще, глупец (KISS)
Звучит несколько резко, но это один из самых важных принципов кодирования, которому нужно следовать. Что означает ПОЦЕЛУЙ?
Это означает, что вы должны писать как можно более простой код. Одно из правил базового программирования — никогда не пытаться быть слишком умным или хвастаться толстым блоком сложного кода. Если вы можете написать сценарий в одну строку, напишите его в одну строку.
Вот простая функция:
Довольно просто. Его легко читать, и вы точно знаете, что происходит.
Одним из принципов программирования в этом духе является использование понятных имен переменных. Воспользуйтесь преимуществами библиотек кодирования и используйте существующие инструменты. Сделайте так, чтобы было легко вернуться через шесть месяцев и вернуться к работе. Простота убережет вас от многих ненужных страданий в будущем.
2. Напишите СУХОЙ код
Принцип компьютерного программирования "Не повторяйся" (DRY) означает, что код не должен повторяться. Это распространенная ошибка кодирования. При написании кода избегайте дублирования данных или логики. Если вы когда-либо копировали и вставляли код в свою программу, это не СУХОЙ код.
Взгляните на этот скрипт:
Вместо дублирования строк попробуйте найти алгоритм, использующий цикл.
DRY код прост в обслуживании. Легче отладить один цикл, который обрабатывает 50 повторений, чем 50 блоков кода, каждый из которых обрабатывает одно повторение.
3. Открыто/Закрыто
Этот принцип программирования означает, что вы должны стремиться сделать свой код открытым для расширения, но закрытым для модификации. Это важный принцип при выпуске библиотеки или платформы, которую будут использовать другие.
Например, предположим, что вы поддерживаете структуру графического интерфейса. Вы можете выпустить версию для кодеров, чтобы напрямую модифицировать и интегрировать ваш выпущенный код. Но что произойдет, если через четыре месяца выпустить крупное обновление?
Их код сломается. Это, вероятно, сделает ваши когорты очень несчастными. Они больше не захотят пользоваться вашей библиотекой, какой бы полезной она ни была в период своего расцвета.
Вместо этого выпускайте код, который предотвращает прямое изменение и поощряет расширение. Базовые принципы программирования, подобные этому, отделяют базовое поведение от измененного поведения. Код стал более стабильным и простым в обслуживании.
4. Композиция важнее наследования
Если вы пишете код с использованием объектно-ориентированного программирования, вы обнаружите, что этот принцип программирования очень полезен. Принцип композиции над наследованием гласит: объекты со сложным поведением должны содержать экземпляры объектов с индивидуальным поведением. Они не должны наследовать класс и добавлять новое поведение.
Композиционное программирование проще в написании, проще в обслуживании и позволяет определять поведение, определяющее гибкость. Каждое отдельное поведение представляет собой отдельный класс.Вы можете создавать сложные модели поведения, комбинируя отдельные модели поведения.
5. Единая ответственность
Принцип единой ответственности гласит, что каждый класс или модуль в программе должен предоставлять только одну конкретную функциональность. Как сказал Роберт К. Мартин, "у класса должна быть только одна причина для изменения".
Занятия и модули часто начинаются таким образом. Будьте осторожны, чтобы не добавить слишком много обязанностей, поскольку классы становятся более сложными. Проведите рефакторинг и разбейте их на более мелкие классы и модули.
Последствия перегрузки классов двояки. Во-первых, это усложняет отладку, когда вы пытаетесь изолировать определенный модуль для устранения неполадок. Во-вторых, становится сложнее создать дополнительный функционал для конкретного модуля. Хорошие принципы программирования предотвращают эти проблемы до того, как они станут проблемами, с которыми нужно справиться.
6. Разделение интересов
Концепция разделения интересов является абстрактной версией принципа единой ответственности. Эта идея гласит, что программа должна быть разработана с использованием разных контейнеров, и эти контейнеры не должны иметь доступа друг к другу.
Хорошо известный пример — модель-представление-контроллер (MVC). MVC разделяет программу на три отдельные области: данные (модель), логика (контроллер) и то, что отображается на странице (представление). Варианты MVC распространены в самых популярных современных веб-фреймворках.
Например, коду, обрабатывающему базу данных, не нужно знать, как отображать данные в браузере. Код рендеринга принимает ввод от пользователя, но логический код обрабатывает обработку. Каждый фрагмент кода полностью независим.
В результате получается код, который легко отлаживать. Если вам когда-нибудь понадобится переписать код рендеринга, вы можете сделать это, не беспокоясь о том, как сохраняются данные или обрабатывается логика.
7. Вам это не понадобится (ЯГНИ)
Этот принцип означает, что вы никогда не должны кодировать функциональность на случай, если вам что-то понадобится в будущем. Один из самых важных принципов компьютерного программирования, который нужно усвоить, заключается в том, что вы не должны пытаться решить проблему, которой не существует.
Пытаясь написать СУХОЙ код, программисты могут нарушать этот принцип. Часто неопытные программисты пытаются написать как можно более абстрактный и универсальный код. Однако излишняя абстракция приводит к раздуванию кода, который невозможно поддерживать.
Применяйте принципы СУХОГО программирования только тогда, когда это необходимо; если вы заметили куски кода, написанные снова и снова, реализуйте уровень абстракции. Не заглядывайте слишком далеко вперед за счет текущей партии кода.
8. Документируйте свой код
За всеми этими разговорами о принципах программирования легко забыть о человеке с другой стороны, который со временем может сам проникнуть в ваш код.
Любой старший разработчик подчеркнет важность документирования кода с надлежащими комментариями. Все языки предлагают их; Вы должны взять за привычку их писать. Оставляйте комментарии, чтобы объяснять объекты, улучшать определения переменных и делать функции более понятными.
Вот функция JavaScript с комментариями, которые помогут вам в коде:
Оставлять комментарии — это немного больше работы во время написания кода. Это требует времени и отвлекает ваше внимание от реальной работы. Вы все равно хорошо понимаете свой код, верно? Какая разница? Стоит помнить, что нет ничего одноразового, даже в мире технологий. В конце концов, что такое принцип компьютерного программирования, если человек на другой стороне в конечном итоге заблудится?
Мы рекомендуем делать все возможное и оставлять комментарии везде, где вы опасаетесь, что что-то станет неясным или неясным, особенно при совместной работе с другими. Не расстраивайте своих коллег-разработчиков, заставляя их расшифровывать ваш синтаксис.
Попробуйте написать программу, оставить ее в покое на шесть месяцев и вернуться, чтобы изменить ее. Вы будете рады, что задокументировали свою программу вместо того, чтобы останавливаться на каждой функции, чтобы запомнить, как она работает.
9. Рефакторинг
Это трудно принять, но ваш код не будет идеальным с первого раза. Рефакторинг кода означает проверку вашего кода и поиск способов его оптимизации, повышения его эффективности при неизменном результате.
Кодовые базы постоянно развиваются. Один из принципов программирования — помнить, что пересматривать, переписывать или даже переделывать целые куски кода — это совершенно нормально. Это не значит, что вы не добились успеха при первом написании программы; со временем вы неизбежно познакомитесь с проектом поближе. Используйте эти знания, чтобы приспосабливаться по мере продвижения вперед.
10. Чистый код любой ценой
Оставьте свое эго за дверью и забудьте о умном коде. Говоря это, мы имеем в виду такой код, который больше похож на загадку, чем на решение. Вы не программируете, чтобы произвести впечатление на незнакомцев. Вы пришли в эту профессию, чтобы решать проблемы.
Не пытайтесь уместить массу логики в одну строку. Оставляйте четкие инструкции в своих комментариях и документации. Если ваш код легко читается, его обычно также легко поддерживать.
Хорошие программисты и читаемый код идут рука об руку. При необходимости оставляйте комментарии, придерживайтесь руководств по стилю и по возможности ставьте себя на место другого человека.
Изучение принципов компьютерного программирования: что делает хорошего программиста?
Чтобы научиться быть хорошим программистом, требуется немало времени и усилий. Эти 10 правил базового программирования помогут вам стать профессиональным программистом.
Хороший программист понимает, как сделать свои приложения простыми в использовании, хорошо работает в команде и завершает проекты в соответствии со спецификациями и в срок. Следуя этим проверенным временем принципам программирования, вы настроите себя на успех в своей будущей карьере программиста.
CSEB114: Принцип программирования. Введение в курс. О курсе. Этот вводный курс по компьютерному программированию использует язык C. Учащийся получит знания об основных компьютерных концепциях, алгоритмах, методах решения задач и структурном программировании.
CSEB114: принцип программирования
Транскрипт презентации
О курсе • В этом вводном курсе компьютерного программирования используется язык C.• Студент приобретет знания об основных компьютерных концепциях, алгоритмах, методах решения задач и структурном программировании. • Они также познакомятся с командами, синтаксисом и функциями языка программирования C в текстовой среде. • Они научатся определять, решать, кодировать, вводить, тестировать и документировать задачи программирования с использованием языка C.
Цели курса По окончании этого курса учащиеся должны уметь: • Готовить программы с использованием структурированного дизайна сверху вниз. • Навыки решения проблем. • Понимать базовый синтаксис и концепции языка программирования C. • Проектировать, создавать, тестировать и отлаживать программы на C. • Разрабатывал программы, которые правильны как синтаксически, так и логически.
Учебники • Основной учебник: • Ханли Коффман – Решение задач и проектирование программ на C – Эддисон Уэсли, 5-е издание • Другие ссылки: • H.H. Tan, T.B. Д’Оразио — Программирование на C для инженерных и компьютерных наук, McGraw-Hill • Юксель Укан.: Решение проблем с использованием C — методы структурного программирования, Ирвин, 1999.
Содержание курса • Глава 1: Введение в компьютер и программирование (неделя 1, 07.07.08) • Компоненты компьютерного оборудования • Компоненты компьютерного программного обеспечения — операционные системы, компилятор, интерпретатор, редактор, приложение • Языки программирования — машинный язык, ассемблер, язык программирования высокого уровня, язык C • Среда программирования C • Этапы создания, компиляции и выполнения программы C • Пример программы C
Содержание курса • Глава 2: Решение проблем (неделя 2, 14.07.08) • Метод разработки программного обеспечения • Спецификация потребностей • Анализ проблем • Представление проекта и алгоритма – блок-схема, псевдокод • Реализация • Тестирование и проверка • Программная документация
Содержание курса • Глава 3: Основы языка программирования C и ввод/вывод (неделя 3, 21.07.08) • Простой пример программы • Набор символов C и токены — зарезервированные слова, идентификаторы, константы, строковые литералы, знаки препинания, операторы • Структура программы C — комментарии, директивы препроцессора, типы данных и объявления типов, именованные константы, операторы, составные операторы • Стандартные функции ввода-вывода в C
Содержание курса • Глава 4: Основные операторы C (неделя 4, 28.07.08) • Арифметические операторы • Операторы присваивания • Равенства и операторы отношения • Логические операторы • Условные операторы • Глава 5: Структурированное программирование (недели 5, 4) /8/08) • Структура выбора – if, if…else, вложенный if, switch • Структура повторения – while, do…while, цикл for
Содержание курса • Глава 6: Функции и простая рекурсия (8-я неделя, 25.08.08) • Стандартные функции • Пользовательские функции — прототип функции, определение функции, вызов и возврат функции • Локальные и глобальные переменные • Классы хранения • Простая рекурсия
Содержание курса • Глава 7: Указатели (неделя 10, 09.08.08) • Концепция указателей • Объявление указателя и управление им • Оператор указателя (& и *) • Передача параметров с помощью указателя • Глава 8: Массивы (Неделя 11 , 15.09.08) • Концепция массивов – почему, как, преимущества • Объявление и инициализация массивов • Работа с массивами – простая сортировка и поиск • Передача массивов в функции • Многомерные массивы
Содержание курса • Глава 9: Пользовательские типы данных (неделя 12, 22/9/08) • Объявление структур, объявление структурных переменных • Вложенные структуры • Ссылки на элементы структур • Инициализация структурных переменных • Операции со структурными переменными • Структуры как функции параметры • Использование typedef для облегчения программы • Перечисление
Содержание курса • Глава 10: Символы и строки (неделя 13, 29/9/08) • Набор символов ASCII • Основы обработки строк • Представление данных, набор символов • Библиотека обработки символов • Библиотека обработки строк • Преобразование строк функции
Содержание курса • Глава 11: Файлы данных и обработка файлов (неделя 14, 10.06.08) • Основы работы с файлами и файловыми операторами • Запись в файл и чтение из файла • Конец файла • Перемотка назад • Файловый режим
Политика класса • Посещаемость • Посещение лекции обязательно. Посещение менее 80% лекций приведет к тому, что студенты будут отстранены от сдачи итогового экзамена. • Если вы отсутствуете на лекции по причине • болезни – требуется MC • Чрезвычайная ситуация – требуется письмо от опекуна • Вам необходимо предоставить свое MC или письмо от опекуна в течение 48 часов с момента вашего отсутствия
Политика класса • Оценка • Ни по какой причине не проводится викторина по макияжу. • Поп-викторины будут проводиться в любое время, которое сочтет подходящим лектор. • Компенсация за промежуточный семестр будет предоставлена только по УВЕЛИЧЕННОЙ причине. • Несвоевременная сдача заданий не будет принята, за исключением случаев, когда имеются УВЕЛИЧЕННЫЕ причины, которые должны быть объяснены лектору в течение 24 часов. Однако из выставленных оценок все равно будет вычтено 20 %.
Политика класса • Одевайтесь в надлежащую одежду, соответствующую дресс-коду Universiti Tenaga National.• Обман и плагиат недопустимы и влекут за собой соответствующее наказание.
Примечания к лекциям • Копия слайдов лекции будет доступна вам в веб-папке. • Пожалуйста, загрузите последние версии, потому что они часто обновляются. • Рекомендуется держать распечатанную копию слайдов под рукой на случай выхода из строя мультимедийного оборудования во время занятия. • Содержание лекций основано на учебнике, рекомендуемом тексте и дополнительном материале. • Пожалуйста, прочтите учебник и любые дополнительные материалы по этому предмету, которые вы можете найти
Лабораторная работа • (ОДИН) лабораторный сеанс в неделю • В лабораторной работе вы изучите концепции, относящиеся к решению задач, о том, как программировать на C и о хорошем стиле программирования • Будут задания для проверки того, что вы узнали в лаборатории. • Практический подход к тому, чему учат на лекциях, также будет рассмотрен в лабораторных работах. • Не пропускайте ничего, если не хотите оказаться в невыгодном положении.
Во-первых, вам нужно понять всю историю, вы будете искать всех персонажей, их роль в разных главах или части истории, каких персонажей вам нужно довести до конца или у кого есть роль только для нескольких главы, вам также необходимо понимать, как связаны разные части истории, чтобы понять, что именно происходит в истории.
Программирование похоже на рассказ коллеге-программисту, где переменные являются персонажами вашей истории, некоторые из них играют свою роль до конца, а некоторые оказываются в середине, разные функции рассказывают разные части вашей истории и соединяют все классы. или функции в определенном порядке могут только завершить историю. Чтобы записать историю дальше, вы хотите, чтобы все было в определенном порядке, чтобы вы могли легко понять историю и продолжить ее, добавляя свои строки с того места, где она была оставлена.
Независимо от того, насколько вы хороший кодер, в программировании, ваша работа заключается не только в написании кода, который работает и дает желаемый результат, но и в написании кода, который поддается сопровождению, расширяем и прост для понимания, чтобы позже тот, кто продолжает или поддерживает ваш проект, мог понять его и ему/ей не нужно переживать ужасную историю, которая вызывает у него/нее кошмар.
Всегда программируйте так, как будто парень, который в конечном итоге будет поддерживать ваш код, будет жестоким психопатом, который знает, где вы живете.
-Мартин Голдинг
Изучив некоторые принципы программирования и используя их в своем коде, вы станете лучшим разработчиком. Это улучшает качество кода, а позже добавление другого функционала или внесение в него изменений становится проще для всех. Давайте обсудим некоторые основные принципы программирования и преимущества его использования.
7 общих принципов программирования
<р>1. KISS: Никто из программистов не любит отлаживать, поддерживать или вносить изменения в сложный код. "Keep It Simple, Stupid (KISS)" утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются, поэтому, когда вы пишете код, ваше решение не должно быть сложным, что требует много времени. времени и усилий, чтобы понять. Если ваш код прост, у других разработчиков не возникнет проблем с пониманием логики кода, и они смогут легко продолжить работу с вашим кодом. Поэтому всегда старайтесь упростить свой код, используя различные подходы, такие как разбиение сложной задачи на более мелкие части или удаление ненужного кода, который вы написали.<р>2. СУХОЙ: Дублирование данных, логики или функций в коде не только удлиняет ваш код, но и отнимает много времени, когда речь идет об обслуживании, отладке или изменении кода. Если вам нужно внести небольшое изменение в свой код, вам нужно сделать это в нескольких местах. Основная цель Не повторяйтесь (DRY) – уменьшить повторение кода. В нем говорится, что часть кода должна быть реализована только в одном месте исходного кода. Противоположностью СУХОГО принципа является ВЛАЖНЫЙ («пишите все дважды» или «тратите время всех впустую»), который нарушает СУХОЙ принцип, если вы пишете одну и ту же логику в нескольких местах. Вы можете создать общую функцию или абстрагировать свой код, чтобы избежать повторения кода. <р>3. YAGNI: Ваше программное обеспечение или программа может стать больше и сложнее, если вы пишете код, который может понадобиться вам в будущем, но не в данный момент. Принцип «Вам это не понадобится (YAGNI)» гласит, что «не внедряйте что-либо, пока в этом нет необходимости», потому что в большинстве случаев вы не собираетесь использовать этот фрагмент кода в будущее. Большинство программистов при внедрении программного обеспечения думают о будущих возможностях и добавляют код или логику для некоторых других функций, которые им не нужны в настоящее время.Они добавляют весь ненужный класс и функциональность, которые они никогда не смогут использовать в будущем. Делать это совершенно неправильно, и в конечном итоге вы напишете раздутый код, а ваш проект станет сложным и сложным в обслуживании. Мы рекомендуем всем программистам избегать этой ошибки, чтобы сэкономить много времени и сил. <р>4. SOLID: принцип SOLID означает пять принципов: единая ответственность, открытость-закрытость, замена Лискова, разделение интерфейса и инверсия зависимостей. Эти принципы даны Робертом С. Мартином, и вы можете подробно ознакомиться с этими принципами SOLID. <р>5. Разделение задач (SoC): Принцип разделения задач разбивает сложное приложение на разные разделы или домены. Каждый раздел или область решает отдельную проблему или выполняет определенную работу. Каждый раздел независим друг от друга, поэтому с каждым разделом можно работать независимо, а также упрощается поддержка, обновление и повторное использование кода.Цель разработки программного обеспечения — уменьшить сложность, а не создать ее.
— Памела Зейв
Например, бизнес-логика (содержимое веб-страницы) в приложении — это другая проблема и пользовательский интерфейс - это другая проблема в программе веб-приложения. Одним из хороших примеров SoC является шаблон MVC, в котором данные («модель»), логика («контроллер») и то, что видит конечный пользователь («представление»), разделены на три разных раздела, и каждая часть обрабатывается независимо. . Сохранение данных в базе данных не имеет ничего общего с отображением данных в Интернете. <р>6. Избегайте преждевременной оптимизации. Оптимизация действительно помогает ускорить работу программы или алгоритма, но в соответствии с этим принципом вам не нужно оптимизировать алгоритм на ранней стадии разработки. Если вы сделаете преждевременную оптимизацию, вы не сможете узнать, где будут узкие места программы, и вам станет сложнее поддерживать ее. Если вы оптимизируете свой код в начале и в случае, если требования могут измениться, ваши усилия будут потрачены впустую, а ваш код отправится в мусор. Поэтому лучше оптимизировать алгоритм в нужное время, чтобы получить от него правильную выгоду.
Преждевременная оптимизация — корень всех зол в программировании.
– Дональд Кнут
- Каждый блок должен иметь лишь ограниченные знания о других блоках: только блоки, "тесно" связанные с текущим блоком.
- Каждый юнит должен разговаривать только со своими друзьями; не разговаривай с незнакомцами.
- Разговаривайте только со своими ближайшими друзьями.
Закон Деметры помогает поддерживать независимые классы и делает ваш код менее связанным, что очень важно при разработке программного обеспечения, чтобы сделать ваше приложение гибким, стабильным, удобным в сопровождении и понятным.
Читайте также: