SlideShare a Scribd company logo
1 of 86
Есть ли жизнь без ООП?
Evolution
of
programming
Evolution
of
programming
Turing machine
Long time ago in a galaxy far far away…
Binary code
Operation code Op1 Op2
10101100 01100010 00101011
11001001 01011100 00101011
00001001 00101110 11001101
01010111 01111100 11100110
10111010 01011101
10101011 11011110 01100101
00110110 11100111 11100011
Binary code
Use chars, Luke!
Assembler
section .text
global _start ;must be declared for linker (ld)
_start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!', 0xa ;our dear string
len equ $ - msg ;length of our dear string
Place for your ads here 
I
don’t
care
about
all
these
hardware
stuff!
High-level languages
program hello
print *, "Hello World!"
end program hello
Code reuse
Procedure programming
procedure print_hello()
Begin
writeln(‘Hello, World!’);
End;
Code and data
as one single
thing
Object-oriented programming
Class
Properties : data
Methods : code
Representation
of
smth
real
Class example
public class HelloClass {
String hello = "Hello, World!";
public void printHello() {
System.out.println(hello);
}
}
Object is a
class instance
Dangerous abstraction
Abstraction
Weird abstraction
About me
{
“First name”: “Taras”,
“Last name”: “Slipets”,
“Occupation”: [
“4+ years in enterprise software engineering”,
“3+ years in teaching”
],
“LinkedIn Profile”: “http://www.linkedin.com/pub/taras-slipets/48/466/516”,
“Interests”: [
“Music”,
“Skiing”
]
}
Методы абстракции
• Параметризация
• Спецификация
Абстракция через параметризацию
f(𝑥) = sin(𝑥)
f
𝜋
6
= sin
𝜋
6
=
1
2
Абстракция через спецификацию
Виды абстракции
• Процедурная
• Абстракция данных
• Абстракция итерации
Модель
2 атомарных понятия:
• Объект
• Отношение
Что важнее?
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением (реальным
или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
What???
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением (реальным
или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением (реальным
или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Понятие объекта
Объект является конкретным распознаваемым
предметом, сущностью или явлением
(реальным или абстрактным), которое имеет четко
определенное функциональное назначение в
данной проблемной области.
Объекты обладают целостностью, которую не
следует нарушать. Объект может только менять
состояние, поведение, управляться или
становиться в определенное отношение к другим
объектам.
Exactly!
Характеристики объекта
• Состояние
• Поведение
• Идентичность
(индивидуальность)
Состояние
Перечень всех возможных свойств объекта, а также их
текущие значения (обычно динамические).
Поведение
Характеризует то, как объект воздействует или
подвергается воздействию других объектов с точки
зрения изменения состояния этих объектов и передачи
сообщений.
Поведение
Поведение объекта полностью определяется его действиями
Идентичность
Операция
Влияние одного объекта на другой
Метод
Операции, выполняемые над данным объектом или
выполняемые данным объектом, называются методами
(методической частью объекта) и входят составной
частью в определение объекта.
Основные виды операций
• Модификатор (set-метод)
• Селектор (get-метод)
• Итератор
• Конструктор
• Деструктор
Понятие класса
Объект, свойства которого не имеют конкретных значений,
фактически является классом, т.е. класс – это множество
объектов, связанных общностью структуры и поведения.
Unified Modeling Language (UML)
Описание класса
Лекция
тема
интересность
продолжительность
прослушать()
забить_и_пойти_на_пиво()
Описание класса
Лекция
тема
интересность
продолжительность
прослушать()
забить_и_пойти_на_пиво()
Имя класса
Описание класса
Лекция
тема
интересность
продолжительность
прослушать()
забить_и_пойти_на_пиво()
Имя класса
Поля
Описание класса
Лекция
тема
интересность
продолжительность
прослушать()
забить_и_пойти_на_пиво()
Имя класса
Поля
Методы
Описание класса
Лекция
тема
интересность
продолжительность
прослушать()
забить_и_пойти_на_пиво()
Имя класса
Поля
Методы
Описание объекта
Математический анализ: Лекция
тема = Понятие многомерного
интеграла. Поверхностный
интеграл
интересность = АГОНЬ
продолжительность= 90 хвилин
Имя объекта
Поля
Основные принципы ООП
58
Инкапсуляция
Инкапсуляция
Инкапсуляция
Наследование
Наследование
Полиморфизм
Полиморфизм
GoIT
Мы помогаем каждому достичь
образовательных и карьерных целей в
IT.
Наша цель - создать бренд Украины как
сильной IT страны!
Учебную программу пишут лидеры ИТ
сферы
Александр Майданюк — Head of QA Branch
Head of Quality Assurance Solution at Ciklum
Александр Баглай — Head of Java Branch
Работал в GlobalLogic, общий опыт в IT — 8 лет
Павел Медведев — Head of GoStart
Freelance Consultant, имеет степень Abode ACE
Сергей Пузанков — Head of Frontend Branch
Team Lead в Яндекс, общий опыт в IT — 13 лет
Преподаватель-практик
Ментор 1 Ментор 2 Ментор 3
Система онлайн образования
Практика на реальных кейсах
Геймификация и интерактив
Career Service
 Помогает попасть в IT-компании с «Черного
входа»
Серьезный отбор
3 ключевых составляющих, необходимых для старта карьеры в
ІТ:
 Знание английского на уровне Intermediate
Технические навыки на уровне продвинутого
пользователя/администратора
Мощнейшая внутренняя мотивация
Ваше трудоустройство — Цель №1
• Составим идеальное CV
• Даем рекомендации, учим продавать себя
• Тестовое собеседование
• Сareer Service
Мы формируем сообщество ІТ-лидеров
Закрытые ивенты для участников GoITclub с
лидерами IT-сообщества
Разработка программы
Виктор Журбенко
QA Consultant @ Infopulse
• Опыт работы в автоматизации
• на Java 7+ лет
• ISTQB Certified Tester, Advanced Level,
Technical Test Analyst
• Опыт преподавания AQA (Java) больше 2х
лет
Детали курса
Длительность
2 месяца
Детали курса
Длительность
2 месяца
Интенсивность
2 раза/нед.
Детали курса
Длительность
2 месяца
Стоимость
6 000 грн
Интенсивность
2 раза/нед.
Детали курса
Длительность
2 месяца
Стоимость
6 000 грн
Интенсивность
2 раза/нед.
Старт курса
28 мая
Tech Skills
Topic 1 Introduction
Topic 2 Variables and expressions
Topic 3 Expressions, control statements
Topic 4 While, for, arrays
Topic 5 Char array and class Arrays
Topic 6 String, operations with String
Topic 7 Class String
Topic 8 File, Exceptions
Topic 9 OOP
Topic 10 Modifiers in Java
Topic 11 Algorithms and OOP
Topic 12 Debugging. Simple anti-
patterns
Topic 13 Concepts of unit testing. jUnit
Topic 14 Test automation using jUnit
Topic 15 Presentations
Java
Basic
Course
4 мес.
В течении 6 месяцев запускаются:
UI/UXAndroid iOS PM
GoStart QA
Manual
QA
Automation
2 мес. 3,5 мес. 4 мес.
Есть!
ISTQB
2 мес.
Front-
end
6 мес.
Stay tuned!
goit.com.ua
vk.com/goITclub
facebook.com/goITclub

More Related Content

Viewers also liked

AgileCamp'11.Code review & Pair programming
AgileCamp'11.Code review & Pair programmingAgileCamp'11.Code review & Pair programming
AgileCamp'11.Code review & Pair programmingDmitry Panshin
 
Digital research: Ukrainian banks and social media 2014
Digital research: Ukrainian banks and social media 2014Digital research: Ukrainian banks and social media 2014
Digital research: Ukrainian banks and social media 2014GRAPE
 
Yanukopedia, автор Сергей Руденко
Yanukopedia, автор Сергей РуденкоYanukopedia, автор Сергей Руденко
Yanukopedia, автор Сергей РуденкоСергій Руденко
 
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objectsolegol
 
Qtp Descriptive Programming (Russian)
Qtp Descriptive Programming (Russian)Qtp Descriptive Programming (Russian)
Qtp Descriptive Programming (Russian)Yaron Assa
 
Презентация Nikon 4й квартал 2012 г. (uaseller.org)
Презентация Nikon 4й квартал 2012 г. (uaseller.org)Презентация Nikon 4й квартал 2012 г. (uaseller.org)
Презентация Nikon 4й квартал 2012 г. (uaseller.org)uaseller.org
 
Михаил Матросов, “С++ без new и delete”
Михаил Матросов, “С++ без new и delete”Михаил Матросов, “С++ без new и delete”
Михаил Матросов, “С++ без new и delete”Platonov Sergey
 
1 тур Кубка Урала
1 тур Кубка Урала1 тур Кубка Урала
1 тур Кубка УралаDanil Petrushin
 
Городская газета "Мой район". Media kit
Городская газета "Мой район". Media kitГородская газета "Мой район". Media kit
Городская газета "Мой район". Media kitAndrey Misyuk
 
Европлан - презентация для инвесторов
Европлан - презентация для инвесторовЕвроплан - презентация для инвесторов
Европлан - презентация для инвесторовЕвроплан
 
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»DevDay
 
Функциональное программирование: мифы и реальность
Функциональное программирование: мифы и реальностьФункциональное программирование: мифы и реальность
Функциональное программирование: мифы и реальностьCUSTIS
 
Финансовая стратегия
Финансовая стратегияФинансовая стратегия
Финансовая стратегияAlexander Tildikov
 
Каталог - Осень 2011
Каталог - Осень 2011Каталог - Осень 2011
Каталог - Осень 2011FurazhStable
 
Редкая марка: чтобы вас понимали
Редкая марка: чтобы вас понималиРедкая марка: чтобы вас понимали
Редкая марка: чтобы вас понималиРедкая марка
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IAlexander Kolotov
 

Viewers also liked (20)

AgileCamp'11.Code review & Pair programming
AgileCamp'11.Code review & Pair programmingAgileCamp'11.Code review & Pair programming
AgileCamp'11.Code review & Pair programming
 
Skolkovo energy rus
Skolkovo energy rusSkolkovo energy rus
Skolkovo energy rus
 
Digital research: Ukrainian banks and social media 2014
Digital research: Ukrainian banks and social media 2014Digital research: Ukrainian banks and social media 2014
Digital research: Ukrainian banks and social media 2014
 
Yanukopedia, автор Сергей Руденко
Yanukopedia, автор Сергей РуденкоYanukopedia, автор Сергей Руденко
Yanukopedia, автор Сергей Руденко
 
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
 
Qtp Descriptive Programming (Russian)
Qtp Descriptive Programming (Russian)Qtp Descriptive Programming (Russian)
Qtp Descriptive Programming (Russian)
 
Презентация Nikon 4й квартал 2012 г. (uaseller.org)
Презентация Nikon 4й квартал 2012 г. (uaseller.org)Презентация Nikon 4й квартал 2012 г. (uaseller.org)
Презентация Nikon 4й квартал 2012 г. (uaseller.org)
 
Михаил Матросов, “С++ без new и delete”
Михаил Матросов, “С++ без new и delete”Михаил Матросов, “С++ без new и delete”
Михаил Матросов, “С++ без new и delete”
 
1 тур Кубка Урала
1 тур Кубка Урала1 тур Кубка Урала
1 тур Кубка Урала
 
Городская газета "Мой район". Media kit
Городская газета "Мой район". Media kitГородская газета "Мой район". Media kit
Городская газета "Мой район". Media kit
 
Европлан - презентация для инвесторов
Европлан - презентация для инвесторовЕвроплан - презентация для инвесторов
Европлан - презентация для инвесторов
 
Cactus Soft1.Iphone Programming Begin
Cactus Soft1.Iphone Programming BeginCactus Soft1.Iphone Programming Begin
Cactus Soft1.Iphone Programming Begin
 
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»
 
Scala Rock-Painting
Scala Rock-PaintingScala Rock-Painting
Scala Rock-Painting
 
11g Part
11g Part11g Part
11g Part
 
Функциональное программирование: мифы и реальность
Функциональное программирование: мифы и реальностьФункциональное программирование: мифы и реальность
Функциональное программирование: мифы и реальность
 
Финансовая стратегия
Финансовая стратегияФинансовая стратегия
Финансовая стратегия
 
Каталог - Осень 2011
Каталог - Осень 2011Каталог - Осень 2011
Каталог - Осень 2011
 
Редкая марка: чтобы вас понимали
Редкая марка: чтобы вас понималиРедкая марка: чтобы вас понимали
Редкая марка: чтобы вас понимали
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть I
 

Similar to Есть ли жизнь без ООП? Суть ООП для новичков

UX - искусство достижения целей
UX - искусство достижения целейUX - искусство достижения целей
UX - искусство достижения целейDenis Bryukhov
 
постановка цели в ситуации неопределенности1
постановка цели в ситуации неопределенности1постановка цели в ситуации неопределенности1
постановка цели в ситуации неопределенности1Alexander Shokhov
 
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...Luxoft Education Center
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
ООП. Класс. Инкапсуляция
ООП. Класс. ИнкапсуляцияООП. Класс. Инкапсуляция
ООП. Класс. ИнкапсуляцияOlesia Nikitiuk
 
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...DevGAMM Conference
 

Similar to Есть ли жизнь без ООП? Суть ООП для новичков (7)

Java Framework for Multi-agent Systems
Java Framework for Multi-agent SystemsJava Framework for Multi-agent Systems
Java Framework for Multi-agent Systems
 
UX - искусство достижения целей
UX - искусство достижения целейUX - искусство достижения целей
UX - искусство достижения целей
 
постановка цели в ситуации неопределенности1
постановка цели в ситуации неопределенности1постановка цели в ситуации неопределенности1
постановка цели в ситуации неопределенности1
 
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...
Дмитрий Башакин: Личность в бизнесе - как совместить индивидуальность и интер...
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
ООП. Класс. Инкапсуляция
ООП. Класс. ИнкапсуляцияООП. Класс. Инкапсуляция
ООП. Класс. Инкапсуляция
 
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
 

More from GoIT

Вирусный рекрутинг в GoIT
Вирусный рекрутинг в GoITВирусный рекрутинг в GoIT
Вирусный рекрутинг в GoITGoIT
 
Mobile Saturday. Тема 6. Особенности тестирования приложений на iOS (Алексан...
Mobile Saturday. Тема 6.  Особенности тестирования приложений на iOS (Алексан...Mobile Saturday. Тема 6.  Особенности тестирования приложений на iOS (Алексан...
Mobile Saturday. Тема 6. Особенности тестирования приложений на iOS (Алексан...GoIT
 
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)GoIT
 
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...
Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотем...Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотем...
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...GoIT
 
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...GoIT
 
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...GoIT
 
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)GoIT
 
Програма розвитку IT-галузі WinnerOS 8 сентября 2015
Програма розвитку IT-галузі WinnerOS 8 сентября 2015Програма розвитку IT-галузі WinnerOS 8 сентября 2015
Програма розвитку IT-галузі WinnerOS 8 сентября 2015GoIT
 
Почему Tech Skills недостаточно, чтобы найти работу в IT
Почему Tech Skills недостаточно, чтобы найти работу в ITПочему Tech Skills недостаточно, чтобы найти работу в IT
Почему Tech Skills недостаточно, чтобы найти работу в ITGoIT
 
Вебинар по Frontend: Профессия Frontend разработчика
Вебинар по Frontend: Профессия Frontend  разработчикаВебинар по Frontend: Профессия Frontend  разработчика
Вебинар по Frontend: Профессия Frontend разработчикаGoIT
 
CEO GoIT at PechaKuchaNight - ІT Education.
CEO GoIT at PechaKuchaNight - ІT Education.CEO GoIT at PechaKuchaNight - ІT Education.
CEO GoIT at PechaKuchaNight - ІT Education.GoIT
 
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITБесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITGoIT
 
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?GoIT
 
Java: Clean Coding как стиль жизни [25.04.15]
Java: Clean Coding как стиль жизни [25.04.15]Java: Clean Coding как стиль жизни [25.04.15]
Java: Clean Coding как стиль жизни [25.04.15]GoIT
 
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]QA Automation Battle: Java vs Python vs Ruby [09.04.2015]
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]GoIT
 
Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]GoIT
 
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...GoIT
 
GoIT Club:"Вторая" документация в тестировании ПО от Алексея Фёдорова
GoIT Club:"Вторая" документация в тестировании ПО от Алексея ФёдороваGoIT Club:"Вторая" документация в тестировании ПО от Алексея Фёдорова
GoIT Club:"Вторая" документация в тестировании ПО от Алексея ФёдороваGoIT
 
Мифы автоматизации от Олега Татарчука (19.02.2015)
Мифы автоматизации от Олега Татарчука (19.02.2015)Мифы автоматизации от Олега Татарчука (19.02.2015)
Мифы автоматизации от Олега Татарчука (19.02.2015)GoIT
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьGoIT
 

More from GoIT (20)

Вирусный рекрутинг в GoIT
Вирусный рекрутинг в GoITВирусный рекрутинг в GoIT
Вирусный рекрутинг в GoIT
 
Mobile Saturday. Тема 6. Особенности тестирования приложений на iOS (Алексан...
Mobile Saturday. Тема 6.  Особенности тестирования приложений на iOS (Алексан...Mobile Saturday. Тема 6.  Особенности тестирования приложений на iOS (Алексан...
Mobile Saturday. Тема 6. Особенности тестирования приложений на iOS (Алексан...
 
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)
Mobile Saturday. Тема 5. Особенности операционной системы iOS (Ольга Макаревич)
 
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...
Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотем...Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотем...
Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотем...
 
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...
Mobile Saturday. Тема 3. Особенности тестирования приложения на Android: Huma...
 
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
 
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)
Mobile Saturday. Тема1 - Особенности ОС Android (Иван Мурзак)
 
Програма розвитку IT-галузі WinnerOS 8 сентября 2015
Програма розвитку IT-галузі WinnerOS 8 сентября 2015Програма розвитку IT-галузі WinnerOS 8 сентября 2015
Програма розвитку IT-галузі WinnerOS 8 сентября 2015
 
Почему Tech Skills недостаточно, чтобы найти работу в IT
Почему Tech Skills недостаточно, чтобы найти работу в ITПочему Tech Skills недостаточно, чтобы найти работу в IT
Почему Tech Skills недостаточно, чтобы найти работу в IT
 
Вебинар по Frontend: Профессия Frontend разработчика
Вебинар по Frontend: Профессия Frontend  разработчикаВебинар по Frontend: Профессия Frontend  разработчика
Вебинар по Frontend: Профессия Frontend разработчика
 
CEO GoIT at PechaKuchaNight - ІT Education.
CEO GoIT at PechaKuchaNight - ІT Education.CEO GoIT at PechaKuchaNight - ІT Education.
CEO GoIT at PechaKuchaNight - ІT Education.
 
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoITБесплатный вебинар по QA Александра Кузняка от проекта GoIT
Бесплатный вебинар по QA Александра Кузняка от проекта GoIT
 
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?
GoITeens: Дети, которые изменят мир. Как воспитать будущих IT гениев?
 
Java: Clean Coding как стиль жизни [25.04.15]
Java: Clean Coding как стиль жизни [25.04.15]Java: Clean Coding как стиль жизни [25.04.15]
Java: Clean Coding как стиль жизни [25.04.15]
 
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]QA Automation Battle: Java vs Python vs Ruby [09.04.2015]
QA Automation Battle: Java vs Python vs Ruby [09.04.2015]
 
Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]Frontend в режиме реального времени [05.03.15]
Frontend в режиме реального времени [05.03.15]
 
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
 
GoIT Club:"Вторая" документация в тестировании ПО от Алексея Фёдорова
GoIT Club:"Вторая" документация в тестировании ПО от Алексея ФёдороваGoIT Club:"Вторая" документация в тестировании ПО от Алексея Фёдорова
GoIT Club:"Вторая" документация в тестировании ПО от Алексея Фёдорова
 
Мифы автоматизации от Олега Татарчука (19.02.2015)
Мифы автоматизации от Олега Татарчука (19.02.2015)Мифы автоматизации от Олега Татарчука (19.02.2015)
Мифы автоматизации от Олега Татарчука (19.02.2015)
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 

Есть ли жизнь без ООП? Суть ООП для новичков

Editor's Notes

  1. Абстракция памяти как двухмерной модели
  2. Абстракция переменных; абстракция регистров и сегментов памяти; прерывания
  3. Абстракция части кода как самостоятельного элемента
  4. Абстракция – это упрощенное описание системы, при котором одни свойства и детали выделяются, а другие опускаются. Хорошей является такая абстракция, при которой подчеркиваются существенные для рассмотрения и использования детали и опускаются те, которые на данный момент несущественны или отвлекают внимание. Разумеется, различие между существенными и несущественными характеристиками зависит от решаемой проблемы, т.е. от контекста использования абстракции.
  5. «Абстракция через параметризацию позволяет, используя параметры, представить фактически неограниченный набор различных вычислений одной программой, которая есть абстракция всех этих наборов.» В абстракции через параметризацию мы абстрагируемся от конкретных используемых данных. Эта абстракция определяется в терминах формальных параметров. Фактически данные связываются с этими параметрами в момент использования такой абстракции. Значения конкретных используемых данных являются несущественными, важно лишь их количество и типы. Таким образом, всякий раз вызывая подпрограмму с параметрами, мы фактически пользуемся абстракцией через параметризацию.
  6. В абстракции через спецификацию мы фокусируем внимание на особенностях, от которых зависит пользователь, и абстрагируемся от подробностей реализации этих особенностей. Существенным является «поведение» - «то, что делается», а несущественным– то, «как» это делается. Например, в процедуре sort существенным является факт сортировки массива, а не сам алгоритм сортировки. Это достигается путем задания для каждой процедуры спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Спецификация описывает соглашение между разработчиками и пользователями. Разработчик берется написать модуль, а пользователь соглашается не полагаться на знания о том, как именно этот модуль реализован, т.е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы.
  7. Наиболее известный в программировании тип абстракции - процедурная абстракция. Всякий, кто применял для выполнения функции подпрограмму, которая может быть использована в других программах, реализовывал тем самым процедурную абстракцию. Процедуры объединяют в себе методы абстракции через параметризацию и спецификацию, позволяя абстрагировать отдельную операцию или событие. 2 свойства: Локальность Модифицируемость Абстракция данных. Какие новые типы данных необходимы, зависит от области применения программы? Синонимом понятия «абстракция данных» является понятие «класс». Абстракция данных- наиболее важный метод в проектировании программ. … Выбор правильных структур данных играет решающую роль для создания эффективной программы. Итератор ответственен за получение элемента, а модуль, содержащий цикл, определяет то действие, которое будет над ним выполняться. Итератор может выполняться в различных модулях, которые выполняют разные действия над элементами, и он может быть реализован различными способами, не оказывая влияния на эти модули. Таким образом, итератор фактически является абстракцией доступа к элементам набора (коллекции).
  8. Преобладающая в настоящее время точка зрения заключается в том, что объекты обладают внутренней структурой и связаны с другими объектами посредством различных отношений. Это хорошо согласуется с нашими непосредственными наблюдениями. Расчленяя эти объекты на их составные части, мы видим, что казавшиеся единичными объекты имеют сложную структуру, распадающуюся на ряд отношений, существующих между этими более простыми компонентами. Продолжая расчленение, мы, в конце концов, приходим к простейшим объектам, которые уже в данной теории не обладают внутренней структурой и существуют в виде атомарных объектов, связанных отношениями с другими объектами. Данная модель(концепция) мира получила в программировании название объектно-ориентированного программирования.
  9. К числу свойств объекта относятся присущие ему или приобретаемые характеристики, черты, качества или способности, делающие данный объект самим собой. Совокупность свойств объекта называется его структурой. Все свойства объекта характеризуются парой тип-значение. Тип свойства может быть либо встроенным(элементарным) типом, т.е. непосредственно поддерживаться исполняющей средой, либо быть классом. Таким образом, как правило, объект имеет постоянные характеристики, но может менять свое состояние. (!) Объекты не существуют изолированно, а подвергаются воздействию или сами воздействуют на другие объекты.
  10. Вы еще ниче не успели рассказать, а за вас все решиили
  11. Это такие свойства объекта, которые имеют уникальное значение, т.е. значение, которое отличает объект от всех других подобных объектов. Например, все люди отличаются друг от друга рисунком линий на ладони, отпечатками пальцев или сетчаткой глаза.
  12. Слово «операция» предполагает наличие пассивных объектов, т.е. объектов, которые могут изменять свое состояние только под воздействием других объектов, или, другими словами, объектов, над которыми производятся действия. Активный объект в общем случае наоборот– автономен, т.е. он может реализовать свое поведение без воздействия со стороны других объектов, другими словами, он меняется под воздействием внутренних причин. Одну и ту же ситуацию можно описать как в терминах пассивных объектов, так и в терминах активных объектов. Когда один объект вызывает(активизирует) операцию другого объекта, то об этом еще говорят, что один объект передает сообщение другому объекту.
  13. забить_и_пойти_на_пиво() – к классу на самом деле не относиться
  14. верхнее отделение, содержащее имя объекта и имя класса, разделенные двоеточием; если имя объекта отсутствует, то представлен анонимный объект; имя класса можно опускать в том случае, когда оно очевидно(например, если объект класса Customer имеет имя myCustomer); в нотации UML объект легко отличить от класса– имя объекта всегда подчеркнуто; нижнее отделение, содержащее имена свойств и их текущие значения.
  15. Неформально, инкапсуляция (encapsulation) - это механизм, который объединяет данные и методы, манипулирующие этими данными, и защищает и то и другое от внешнего вмешательства или неправильного использования. Когда методы и данные объединяются таким способом, создается объект. Чтобы пользоваться холодильником, утюгом или, скажем, кондиционером– совсем необязательно знать их внутреннее устройство и принципы работы. Прежде всего, нас интересует– что делает объект, а не то– как он это делает.
  16. Инкапсуляция реализует принцип сокрытия информации следующим образом: • отсутствует прямой доступ к свойствам объекта, они доступны только через методы • объект контролирует доступ к своим данным • «опубликованный» функциональный интерфейс объекта позволяет другим объектам использовать его поведение
  17. Интерфейсная часть описания класса по способу доступа к ней может быть разделена на четыре составные части: • Общедоступная или общая (public) – операции, доступные всем остальным классам • Защищенная (protected) – доступ к таким операциям разрешен только самому классу и его подклассам • Обособленная или закрытая (private) – операции, недоступные ни одному другому классу • Пакетная (package) – операции доступны только классам данного пакета.
  18. Наследование– такое отношение между классами, когда один класс повторяет структуру и поведение другого (простое наследование) или других(множественное наследование) классов. Класс, структура и поведение которого наследуются, называется суперклассом. Производный от суперкласса класс называется его подклассом. Это означает, что наследование устанавливает между классами иерархическое отношение. Как правило, подкласс не только наследует структуру и поведение своего суперкласса, но и достраивает или переопределяет их.
  19. Слово полиморфизм- греческого происхождения и означает "имеющий много форм". Полиморфизм- это свойство, которое позволяет одно и тоже имя(действие) использовать для решения нескольких технически разных задач. Например, «забить мяч» в футболе можно ногой, головой и некоторыми другими частями тела.
  20. Применительно к объектно-ориентированному программированию, целью полиморфизма, является использование одного имени для задания общих для класса действий. На практике это означает способность объектов выбирать внутреннюю процедуру(метод) исходя из типа данных, принятых в сообщении. Таким образом, полиморфизм позволяет обойтись без операторов выбора, поскольку объекты сами знают свой тип.
  21. Вы еще ниче не успели рассказать, а за вас все решиили
  22. Тут рассказываем о нашей миссии
  23. Женя москаленко!!!
  24. Тут говорим о GoITclub