Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Основные понятия, связанные с
разработкой ПО:
просто о сложном
Докладчик: Лаабе Д.Н.

Санкт-Петербург, 2013 год
Немного о себе…
1. Опыт в ИТ – 17 лет
2. Преподавание ИТ в СПбГПУ («Политех») – 7 лет

3. Более 10-ти авторских курсов в о...
Что нужно знать рекрутеру о разработке ПО
1. Базовые понятия: компьютер, программа, язык

программирования и т. д.
2. Связ...
Что НЕ нужно знать рекрутеру о разработке ПО
1.

Синтаксис языка С++

2.

Как работают паттерны

3.

Всю правду о виртуаль...
Базовые понятия: компьютер и программа
Компьютер (ЭВМ) – устройство
или система, предназначенная
для автоматической обрабо...
Базовые понятия: операционные системы
Операционная система (ОС) комплекс управляющих
программ, интерфейс между
ЭВМ и прикл...
Базовые понятия: архитектура ПО
1. Одноуровневая: desktop приложение
2. Двухуровневая: клиент-серверное приложение
3. Трех...
Базовые понятия: клиент-серверное взаимодействие
Сервер - компьютер (или
специальное компьютерное
оборудование), выполняющ...
Базовые понятия: клиент-серверное ПО
1. Серверное ПО – ПО обеспечивающее обработку запросов от клиентов в
рамках некоторог...
Базовые понятия: Протоколы
Сетевой протокол — набор правил и действий,
позволяющий осуществлять обмен данными
между включё...
Базовые понятия: API
API (интерфейс программирования
приложений) определяет функциональность,
которую предоставляет програ...
Базовые понятия: Программирование

Программирование— процесс записи
алгоритма/программы.

Язык программирования – набор
пр...
Базовые понятия: Компиляторы и интерпретаторы
Компилятор транслирует программу в машинный код

Интерпретатор непосредствен...
Базовые понятия: Компиляторы и интерпретаторы
Компилируемые языки программирования:
• Достоинства: скорость работы
• Недос...
Базовые понятия: Языки программирования
Языки программирования общего назначения:
• С++
• Java
• C# и др.
Сценарные(скрипт...
Базовые понятия: Повторное использование кода
Программист много печатает на клавиатуре, но он не секретарша!

<>
Базовые понятия: Повторное использование кода
Подходы к повторному использованию кода:
• Библиотеки программ: статические ...
Базовые понятия: Процедурное программирование
Принцип повторного использования:
• Повторно используемый код оформляется ка...
Базовые понятия: ООП
ООП – парадигма программирования, в
которой основными концепциями являются
классы и объекты… 
Или мо...
Базовые понятия: ООП
1. Каждый класс описывает какой-то объект
2. Класс содержит данные и методы работы с ними
Простой при...
Базовые понятия: компонентное программирование
Принцип действия:
1. Каждый компонент компилируется отдельно от других
2. Н...
Базовые понятия: Фреймворки
Фрейворк - каркас программной системы с
определенной структурой и поведением по
умолчанию
Прин...
Базовые понятия: разработка WEB приложений
WEB приложение – частный случай 3-х
уровневой архитектуры приложения

WEB брауз...
Базовые понятия: разработка WEB приложений
Подходы к разработке:
1. Разработка с «нуля»:
• Серверная: языки PHP, ASP, Java...
Базовые понятия: СУБД
СУБД – программное обеспечение для
управления базой данных
Язык запросов – один из важнейших
элемент...
Что нужно знать о проекте рекрутеру?
1.
2.
3.
4.
5.
6.
7.
8.
9.

Архитектура проекта (уровневость)
Клиентские языки програ...
Пример вакансии
Senior C++ Developer
Обязанности:
разработка и поддержка решений для безопасности сетей
Требования:
опыт в...
Базовые понятия: основные этапы разработки ПО
Этап

Кто делает?

Бизнес-моделирование

Бизнес-аналитик

Анализ требований
...
Спасибо за внимание!
Контакты:

•
•
•
•

Сайт: http://www.it-dominanta.ru
Телефон: +7 (812) 334-99-90
E-mail: contact@it-d...
Upcoming SlideShare
Loading in …5
×

Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.

11,923 views

Published on

Основные понятия связанные с разработкой ПО: просто о сложном.
Лаабе Дмитрий
Генеральный директор и основатель IT-Доминанта, Технический директор, программист портала Айти-Событие.рф", Санкт-Петербург.

  • Be the first to comment

Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.

  1. 1. Основные понятия, связанные с разработкой ПО: просто о сложном Докладчик: Лаабе Д.Н. Санкт-Петербург, 2013 год
  2. 2. Немного о себе… 1. Опыт в ИТ – 17 лет 2. Преподавание ИТ в СПбГПУ («Политех») – 7 лет 3. Более 10-ти авторских курсов в области WEB разработки 4. Руководство рекрутинговой компанией в сфере ИТ – 9 лет 5. Подготовка ИТ рекрутеров – 7 лет
  3. 3. Что нужно знать рекрутеру о разработке ПО 1. Базовые понятия: компьютер, программа, язык программирования и т. д. 2. Связи между ними: программа-библиотека, клиент-сервер и т. д. 3. Привязку конкретных технологий к базовым понятиям 4. Этапы разработки ПО и должности с ними связанные: программист, системный аналитик, тестировщик и т. д. Помните: Вы рекрутер, а не программист!
  4. 4. Что НЕ нужно знать рекрутеру о разработке ПО 1. Синтаксис языка С++ 2. Как работают паттерны 3. Всю правду о виртуальных деструкторах 4. Прочие «важные подробности»
  5. 5. Базовые понятия: компьютер и программа Компьютер (ЭВМ) – устройство или система, предназначенная для автоматической обработки информации. Программа последовательность инструкций, предназначенных для исполнения ЭВМ. Пойди туда, не знаю куда…
  6. 6. Базовые понятия: операционные системы Операционная система (ОС) комплекс управляющих программ, интерфейс между ЭВМ и прикладными программами MS Windows, Unix системы (Linux, Mac Os, Solaris, FreeBSD, Ubuntu, HP-UX, AIX), Android и т.д. Прикладные программы: офисные пакеты, браузеры и т. п. Операционная система и системные программы ЭВМ
  7. 7. Базовые понятия: архитектура ПО 1. Одноуровневая: desktop приложение 2. Двухуровневая: клиент-серверное приложение 3. Трехуровневая: клиент-серверное приложение + база данных 4. Многоуровневая: сложные системы с цепочками вызовов
  8. 8. Базовые понятия: клиент-серверное взаимодействие Сервер - компьютер (или специальное компьютерное оборудование), выполняющий определенные сервисные функции запрос ответ Клиент – компьютер отправляющий запросы серверу
  9. 9. Базовые понятия: клиент-серверное ПО 1. Серверное ПО – ПО обеспечивающее обработку запросов от клиентов в рамках некоторого сервиса 2. Клиентское ПО – ПО взаимодействующее с пользователем, отправляющее запросы на сервер и принимающее ответы от него Примеры серверного ПО (Back End): 1. WEB серверы (выдача HTML страниц): MS IIS, Apache, nginx и т. д. 2. FTP серверы (выдача файлов): FTP службы ОС, FileZilla server и т.д. 3. SMTP(почтовые) серверы: MS Exchange, SendMail, 4. И т.д. Примеры клиентского ПО (Front End): 1. WEB клиенты: Internet Explorer, Google Chrome, Mozilla FireFox и т.д. 2. FTP клиенты: Cute FTP 3. Почтовые клиенты: MS Outlook, The Bat
  10. 10. Базовые понятия: Протоколы Сетевой протокол — набор правил и действий, позволяющий осуществлять обмен данными между включёнными в сеть устройствами. 7-ми уровневая модель ISO OSI TCP/IP –транспортно-сетевой, HTTP, FTP, SMTP - прикладной
  11. 11. Базовые понятия: API API (интерфейс программирования приложений) определяет функциональность, которую предоставляет программа/модуль/ библиотека/ сервис Детали: 1. API предоставляет набор «рычагов управления» программой/модулем… 2. Понятия API и протокола близки по смыслу: и то и другое является абстракцией функциональности 3. Протокол определяет формат передачи данных, а API – порядок взаимодействия Windows API(WinAPI),Linux Kernel API, OpenGL, DirectX
  12. 12. Базовые понятия: Программирование Программирование— процесс записи алгоритма/программы. Язык программирования – набор правил определяющих способ записи программы
  13. 13. Базовые понятия: Компиляторы и интерпретаторы Компилятор транслирует программу в машинный код Интерпретатор непосредственно выполняет написанную программу
  14. 14. Базовые понятия: Компиляторы и интерпретаторы Компилируемые языки программирования: • Достоинства: скорость работы • Недостатки: необходимость собирать проект под каждую платформу Интерпретируемые языки программирования: • Достоинства: кроссплатформеность, гибкость • Недостатки: меньшая производительность Смешанные (JIT-компиляция) языки программирования: • Сочетают преимущества компилируемых и интерпретируемых C, С++, Delphi, Fortran, Algol, Eiffel, COBOL, Pascal, Visual Basic и др. Python, PHP, Javascript, Ruby, Perl и др. Java, C# и др.
  15. 15. Базовые понятия: Языки программирования Языки программирования общего назначения: • С++ • Java • C# и др. Сценарные(скриптовые) языки программирования: • Perl • PHP • Python • Ruby • JavaScript д.р Цитата из Твиттер: «Когда программисты придут к власти, целые министерства заменят на небольшой shell-скрипт.»
  16. 16. Базовые понятия: Повторное использование кода Программист много печатает на клавиатуре, но он не секретарша! <>
  17. 17. Базовые понятия: Повторное использование кода Подходы к повторному использованию кода: • Библиотеки программ: статические (lib, a), динамические(dll,so) • Процедурное программирование: C и др. • Объектно-ориентированное программирование: C++, Java, Ruby и др. • ООП + библиотеки классов: STL, Qt, JFC • Компонентно-ориентированное программирование: COM, CORBA, SOAP, EJB • Фреймворки (Frameworks)
  18. 18. Базовые понятия: Процедурное программирование Принцип повторного использования: • Повторно используемый код оформляется как процедура или функция • Процедура вызывается столько раз, сколько необходимо
  19. 19. Базовые понятия: ООП ООП – парадигма программирования, в которой основными концепциями являются классы и объекты…  Или можно сказать, что ООП - это моделирование объектов посредством иерархически связанных классов Простой пример: И это просто?!
  20. 20. Базовые понятия: ООП 1. Каждый класс описывает какой-то объект 2. Класс содержит данные и методы работы с ними Простой пример:
  21. 21. Базовые понятия: компонентное программирование Принцип действия: 1. Каждый компонент компилируется отдельно от других 2. На стадии выполнения компоненты подключаются динамически 3. Компоненты взаимодействуют друг с другом по стандартизованному механизму 4. Примеры реализаций: COM, CORBA, SOAP, EJB
  22. 22. Базовые понятия: Фреймворки Фрейворк - каркас программной системы с определенной структурой и поведением по умолчанию Принцип действия: 1. Реализует типовое приложение 2. Позволяет расширять себя под конкретную задачу 3. Используется для более быстрого создания однотипных систем MFC, Qt, wxWidgets, Django, Rails
  23. 23. Базовые понятия: разработка WEB приложений WEB приложение – частный случай 3-х уровневой архитектуры приложения WEB браузер (тонкий клиент) JavaScript Developer, Front End Developer WEB сервер PHP Developer, Java Developer, Ruby Developer Сервер БД DB Developer (SQL)
  24. 24. Базовые понятия: разработка WEB приложений Подходы к разработке: 1. Разработка с «нуля»: • Серверная: языки PHP, ASP, Java; • клиентская: HTML, JS, CSS 2. Разработка с использование фреймворков: • Rails и язык Ruby • Django и язык Python • Zend Framework и язык PHP 3. Разработка с использованием CMS: 1С-Битрикс, UMI.CMS, Joomla, WordPress
  25. 25. Базовые понятия: СУБД СУБД – программное обеспечение для управления базой данных Язык запросов – один из важнейших элементов СУБД SQL – де-факто стандартный язык запросов к реляционным БД MS SQL Server, Oracle DB, MySQL, SQLLite, MS Access и др.
  26. 26. Что нужно знать о проекте рекрутеру? 1. 2. 3. 4. 5. 6. 7. 8. 9. Архитектура проекта (уровневость) Клиентские языки программирования проекта Серверные языки программирования проекта Используемые клиентские и серверные библиотеки Используемые протоколы и API Используемые фреймворки и(или) CMS Используемые БД Используемые IDE (среды разработки) Какую часть проекта будет писать программист на конкретной позиции Ну и, конечно, какие задачи решает проект… 
  27. 27. Пример вакансии Senior C++ Developer Обязанности: разработка и поддержка решений для безопасности сетей Требования: опыт в проектировании и разработке ПО не менее 5-ти лет; Опыт разработки на уровне winAPI(Win 32), знание современных операционных систем (Windows); опыт работы с базами данных (MySQL, H2 и др.); опыт написания unit-тестов; опыт работы с системами контроля версий ; английский язык (технический, навыки переписки и общения); Желательно: опыт программирования на Python, Java; Желательно знание Qt знания TCP/IP networking, Information security;
  28. 28. Базовые понятия: основные этапы разработки ПО Этап Кто делает? Бизнес-моделирование Бизнес-аналитик Анализ требований Системные аналитик Бизнес-аналитик Планирование Руководитель проекта Разработка архитектуры Архитектор Ведущие разработчики Кодирование Разработчики Тестирование и отладка Тестировщики и разработчики Документирование Технические писатели Внедрение и сопровождение Специалисты по внедрению и сопровождению
  29. 29. Спасибо за внимание! Контакты: • • • • Сайт: http://www.it-dominanta.ru Телефон: +7 (812) 334-99-90 E-mail: contact@it-dominanta.ru Адрес: 191186, Санкт-Петербург, Большая морская ул., д.3 (БЦ "Лидваль"), офис 407. Лаабе Дмитрий Генеральный директор и основатель IT-Доминанта email: Dmitry@it-dominanta.ru

×