kranonit s01e01 Серёжа Пономарёв-Современный программист 2.1
TRANSCRIPT
О авторахАндрей Пономарёв● 10 лет программирую за деньги● Sun Certified Java Programmer● Team Lead
linkedin.com/in/[email protected]
Сергей Пономарёв● 6 лет программирую за деньги● Проекты на Delphi, PHP, Java
О чем пойдет речь
● Какие программисты нужны● Сколько получают программисты● Как работают программисты● Инженерные практики● Процесс разработки● С кем работают программисты
Языки программирования● 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)
Как работают программисты
● Баг-трекер● Система контроля версий● Тесты● Шаблоны проектирования● Рефакторинг● Автоматическая сборка● Непрерывная интеграция● Парное программирование● Процесс разработки
● Поощрение изменений● Документирование кода● Делают лучше архитектуру● Можно тестировать глубокий код● Ускоряет разработку
И зачем оно нам надо?
Профессиональным программистом ты становишься когда начинаешь писать тесты
Шаблоны проектирования
● Стандартные решения типичных проблем● Не привязаны к какому-либо конкретному языку
программирования● Примеры: Factory, Adapter, Strategy● Самая главная книга: GoF
РефакторингRefactoring
Изменяем код программы при этом внешне она работает по старому.Его цель:Облегчить понимание её работы.
Не рефакторинг:● Исправление дефектов● Оптимизация● Переписывание "с нуля"
Автоматическая сборкаAutomatic build
Типичные действия во время сборки:● Генерация кода● Компиляция● Прогон модульных тестов● Копирование ресурсов (картинок, файлов
конфигураций)● Упаковка● Сборка инсталлятора
Непрерывная интеграцияContinuous integration (CI)
● Выполняется автоматически● Типичные шаги:
○ Получить код из репозитория○ Прогнать модульные тесты○ Выполнить сборку○ Установить приложение○ Прогнать приемочные тесты○ Прогнать статические анализаторы○ Если найдена проблема, поднять тревогу
Парное программирование
● Роли: "штурман" и "водитель"● Больше глаз - меньше дефектов● Лучше архитектура● Понятнее код● Обмен знаниями● Производительность такая же, но багов меньше
Водопадная модель (Waterfall)
Переход к другой фазе происходит только после полного завершения предыдущейИз Википедии