kranonit s01e01 Серёжа Пономарёв-Современный программист 2.1

24
Современный программист Что ждет студента на рынке труда 2.1 #kranonit S01E01 2012

Upload: sergey-ponomarev

Post on 05-Jul-2015

192 views

Category:

Documents


0 download

TRANSCRIPT

Современный программист

Что ждет студента на рынке труда2.1

#kranonit S01E012012

О авторахАндрей Пономарёв● 10 лет программирую за деньги● Sun Certified Java Programmer● Team Lead

linkedin.com/in/[email protected]

Сергей Пономарёв● 6 лет программирую за деньги● Проекты на Delphi, PHP, Java

[email protected]

О чем пойдет речь

● Какие программисты нужны● Сколько получают программисты● Как работают программисты● Инженерные практики● Процесс разработки● С кем работают программисты

Какие программисты нужны

Языки программирования● Delphi● C● C++● Objective-C● Java● C#/.NET● PHP● Python● Ruby● JavaScript● SQL

Популярность языков

Сколько получают программисты

Киев, декабрь 2011, по данным developers.org.uaВыборка по Delphi не репрезентативна из-за малого кол-ва анкет

Звания

● Intern ● Junior Developer● Midle (Regular) Developer, Software Engineer● Senior Developer● Architect

С кем работают программисты

● Разработчики (Developers)● Тестировщики (QA)● Ведущий программист (Team Lead)● Менеджер проекта (Project Manager, PM)● Владелец продукта (Product Owner, PO)● Бизнес аналитик (Business analyst)

Как работают программисты

● Баг-трекер● Система контроля версий● Тесты● Шаблоны проектирования● Рефакторинг● Автоматическая сборка● Непрерывная интеграция● Парное программирование● Процесс разработки

Баг-трекерIssue tracker

Система контроля версий

Система контроля версий

Модульные Тесты Unit tests

● Поощрение изменений● Документирование кода● Делают лучше архитектуру● Можно тестировать глубокий код● Ускоряет разработку

И зачем оно нам надо?

Профессиональным программистом ты становишься когда начинаешь писать тесты

Шаблоны проектирования

● Стандартные решения типичных проблем● Не привязаны к какому-либо конкретному языку

программирования● Примеры: Factory, Adapter, Strategy● Самая главная книга: GoF

РефакторингRefactoring

Изменяем код программы при этом внешне она работает по старому.Его цель:Облегчить понимание её работы.

Не рефакторинг:● Исправление дефектов● Оптимизация● Переписывание "с нуля"

Автоматическая сборкаAutomatic build

Типичные действия во время сборки:● Генерация кода● Компиляция● Прогон модульных тестов● Копирование ресурсов (картинок, файлов

конфигураций)● Упаковка● Сборка инсталлятора

Непрерывная интеграцияContinuous integration (CI)

● Выполняется автоматически● Типичные шаги:

○ Получить код из репозитория○ Прогнать модульные тесты○ Выполнить сборку○ Установить приложение○ Прогнать приемочные тесты○ Прогнать статические анализаторы○ Если найдена проблема, поднять тревогу

Парное программирование

● Роли: "штурман" и "водитель"● Больше глаз - меньше дефектов● Лучше архитектура● Понятнее код● Обмен знаниями● Производительность такая же, но багов меньше

Водопадная модель (Waterfall)

Переход к другой фазе происходит только после полного завершения предыдущейИз Википедии

Гибка модель (Agile, SCRUM)

Из книги Х. Книберг "Scrum и XP: заметки с передовой"