Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Современный программист: Что ждет студента на р...

Современный программист: Что ждет студента на рынке труда 2.1

Avatar for Sergey Ponomarev

Sergey Ponomarev

August 11, 2013

Other Decks in Technology

Transcript

  1. О авторах Андрей Пономарёв •10 лет программирую за деньги •Sun

    Certified Java Programmer •Team Lead linkedin.com/in/andreyponomarev [email protected] Сергей Пономарёв •6 лет программирую за деньги •Проекты на Delphi, PHP, Java stokito.moikrug.ru stokito.blogspot.com [email protected]
  2. О чем пойдет речь •Какие программисты нужны •Сколько получают программисты

    •Как работают программисты •Инженерные практики •Процесс разработки •С кем работают программисты
  3. Сколько получают программисты Киев, декабрь 2011, по данным developers.org.ua Выборка

    по Delphi не репрезентативна из-за малого кол-ва анкет
  4. С кем работают программисты •Разработчики (Developers) •Тестировщики (QA) •Ведущий программист

    (Team Lead) •Менеджер проекта (Project Manager, PM) •Владелец продукта (Product Owner, PO) •Бизнес аналитик (Business analyst)
  5. Как работают программисты •Баг-трекер •Система контроля версий •Тесты •Шаблоны проектирования

    •Рефакторинг •Автоматическая сборка •Непрерывная интеграция •Парное программирование •Процесс разработки
  6. •Поощрение изменений •Документирование кода •Делают лучше архитектуру •Можно тестировать глубокий

    код •Ускоряет разработку И зачем оно нам надо? Профессиональным программистом ты становишься когда начинаешь писать тесты
  7. Шаблоны проектирования •Стандартные решения типичных проблем •Не привязаны к какому-либо

    конкретному языку программирования •Примеры: Factory, Adapter, Strategy •Самая главная книга: GoF
  8. Рефакторинг Refactoring Изменяем код программы при этом внешне она работает

    по старому. Его цель: Облегчить понимание её работы. Не рефакторинг: •Исправление дефектов •Оптимизация •Переписывание "с нуля"
  9. Автоматическая сборка Automatic build Типичные действия во время сборки: •Генерация

    кода •Компиляция •Прогон модульных тестов •Копирование ресурсов (картинок, файлов конфигураций) •Упаковка •Сборка инсталлятора
  10. Непрерывная интеграция Continuous integration (CI) •Выполняется автоматически •Типичные шаги: ◦Получить

    код из репозитория ◦Прогнать модульные тесты ◦Выполнить сборку ◦Установить приложение ◦Прогнать приемочные тесты ◦Прогнать статические анализаторы ◦Если найдена проблема, поднять тревогу
  11. Парное программирование •Роли: "штурман" и "водитель" •Больше глаз - меньше

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