Презентация предназначена для ознакомления студентов с основными понятиями объектно-ориентированного программирования. Рассматриваются понятия класс, объект класса, инкапсуляция.
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Архитектура для мобильных игр - с чего начать и популярные решения / Евгений ...DevGAMM Conference
В Интернете очень мало информации об архитектуре игр, много узкоспециализированной информации, подходов и закономерностей, но не хватает общего взгляда сверху. Этот доклад предназначен как для начинающих программистов, не знающих с чего начать, так и для опытных программистов, желающих сравнить свои решения с другими.
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Архитектура для мобильных игр - с чего начать и популярные решения / Евгений ...DevGAMM Conference
В Интернете очень мало информации об архитектуре игр, много узкоспециализированной информации, подходов и закономерностей, но не хватает общего взгляда сверху. Этот доклад предназначен как для начинающих программистов, не знающих с чего начать, так и для опытных программистов, желающих сравнить свои решения с другими.
Программирование как способ выражения мыслей. Levon Avakyan
Я расскажу на простейших примерах как функционирует современный компьютер, какие языки программирования бывают, для чего они используются, какие парадигмы лежат в их основе. По сути, язык программирования это инструмент, с помощью которого можно рассказать машине, чего же мы от неё хотим, тем самым воплотив свои мысли.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
закон иерархических компенсаций седова и C++ core guidelinescorehard_by
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
Программирование как способ выражения мыслей. Levon Avakyan
Я расскажу на простейших примерах как функционирует современный компьютер, какие языки программирования бывают, для чего они используются, какие парадигмы лежат в их основе. По сути, язык программирования это инструмент, с помощью которого можно рассказать машине, чего же мы от неё хотим, тем самым воплотив свои мысли.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
закон иерархических компенсаций седова и C++ core guidelinescorehard_by
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
Стандартизация шагает по планете широким шагом. Почему создание сложных систем невозможно без подведения общего знаменателя и принятия стандартов? Можно ли объяснить этот факт с научной точки зрения? В докладе мы рассмотрим как общие вопросы стандартизации и развития информационных систем (в чём нам поможет великий советский ученый-практик Евгений Александрович Седов), так и погрузимся в стандартизацию практик кодирования нашего любимого языка - C++ Core Guidelines
5. В процедурном программировании задача
разбивается на более мелкие подзадачи и
оформляется в виде функций.
Любая функция может быть вызвана по
имени из любой точки программы,
включая другие функции или её же саму
(т.н. рекурсивный вызов).
Любая функция может быть вызвана
сколько угодно раз.
6. Имея библиотеку функций, можно
составить конечный продукт –
программу, всего лишь вызывая
нужные функций.
При этом программисту важен
интерфейс функций (имя и сигнатура) и
он абстрагируется от их реализации.
7. // … реализация всех функций
void main() {
SetWindOptions(); // настройки окна
Greeting(); // приветствие
Menu(); // показ главного меню
GameLevel(); // уровень игры
SaveState(); // запись игрового прогресса в файл
Shutdown(); // завершение работы программы
}
8. При таком подходе получаем
существенные преимущества:
Проект разделяется на логические части –
упрощается чтение и отладка кода
Возможность сопровождение проекта через
длительное время
Возможность разделять проект на несколько
файлов
Сокращается размер кода
Функции могут принимать параметры
Над проектом одновременно могут работать
несколько человек
9. НО!!!
Процедурное программирование –
подход, при котором функции и
переменные, относящиеся к какому-то
конкретному объекту свободно
располагаются в коде и никак между
собой не связаны
10. В вашем исходнике может оказаться
несколько функции, отвечающих за
генерацию или вывод карты на экран.
И никто, кроме их создателя, понятия
не имеет (без пристальной вычитки
кода), с какими именно объектами
работает та или иная функция.
12. Предметная область разбивается на
сущности (объекты реального мира).
Описание окружающего мира
осуществляется в терминах ОБЪЕКТОВ
над которыми производятся действия
(объект – центр концепции ООП).
16. Характеристики объекта - называются
свойствами или полями объекта.
Что этот объект собой представляет?
Что мы о нём знаем?
Каковы его характеристики?
17. Действия, которые можно выполнить с
данным объектом - называются
методами объекта.
Что этот объект умеет делать?
Какие действия можно совершать над
объектом?
18. Тип объекта: Маркер
Поля:
- Модель: Friday
- Цвет колпачка: синий
- Длина корпуса: 138 мм
Методы:
- Чесаться
- Ковыряться
- Метко бросать
- Писать по доске
19. Снаружи объект принято рассматривать
как чёрный ящик (прибор с кнопками).
Известно, что будет, если нажимать на кнопки
(есть инструкция).
Неизвестно, как всё устроено внутри и почему оно
работает (да и не нужно знать, почему).
20. ООП основано на объектной
декомпозиции, т.е. выделения
сущностей предметной области и
оформление их в виде экземпляров
классов
21. Класс – это общее описание состояния
и поведения некоторой сущности, а
также правил по взаимодействию с ней.
Класс – это пользовательский тип
данных
22. Объект (экземпляр класса) – это
отдельный представитель класса,
имеющий своё конкретное состояние,
и поведение, полностью
определяемое классом
23. Поле – это переменная, связанная с
классом или объектом. Состояние
объекта хранится в его полях. Тип
данных поля задаётся при описании
класса.
24. Метод – это функция или процедура,
принадлежащая классу или объекту.