Успешная карьера в современной разработки...

Post on 09-Jan-2017

284 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Сергей Моргунов

Успешная карьера в современной разработке ПО. Что должен знать каждый?

Содержание> Базовые принципы командной работы

> Правила по работе с исходным кодом

> Непрерывная поставка разрабатываемого продукта

> Правильная организация построения архитектуры

> Behavior Driven Development

Базовые принципы командной работы

4Успешная карьера в современной разработке ПО. Что должен знать каждый?

Что такое команда?

Команда— это небольшая группа людей со взаимодополняющими навыками, чувствующих взаимную ответственность и объединенных общей целью.

5Успешная карьера в современной разработке ПО. Что должен знать каждый?

Manifesto for Agile Software Development

Agile-манифест разработки программного обеспеченияМы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что: > Люди и взаимодействие важнее процессов

и инструментов> Работающий продукт важнее исчерпывающей

документации> Сотрудничество с заказчиком важнее

согласования условий контракта> Готовность к изменениям важнее следования

первоначальному плану То есть, не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.

Kent BeckMike Beedle

Arie van BennekumAlistair Cockburn

Ward CunninghamMartin Fowler

James GrenningJim HighsmithAndrew HuntRon Jeffries

Jon KernBrian Marick

Robert C. MartinSteve Mellor

Ken SchwaberJeff SutherlandDave Thomas

www.agilemanifesto.org

6Успешная карьера в современной разработке ПО. Что должен знать каждый?

XP, Scrum, Kanban

Адаптивность

XP(13) Scrum

(9) Kanban(3) ?

More adaptive

7Успешная карьера в современной разработке ПО. Что должен знать каждый?

Planning game (XP)

Planning poker

8Успешная карьера в современной разработке ПО. Что должен знать каждый?

Doing Agile vs Being Agile

Doing Agile

Being Agile

Правила по работе с исходным кодом

10Успешная карьера в современной разработке ПО. Что должен знать каждый?

Version Control System

GIT & Subversion

2009 2010 2011 2012 2013 2014

70%

60%

50%

40%

30%

20%

10%

0%

Git

Svn

11Успешная карьера в современной разработке ПО. Что должен знать каждый?

GIT Flow

GIT Flow в теории

12Успешная карьера в современной разработке ПО. Что должен знать каждый?

GIT Flow

GIT Flow на практике

13Успешная карьера в современной разработке ПО. Что должен знать каждый?

GIT Flow

GIT Flow + REBASEIn processЦель> Линейность истории

изменений

Средства> Merge ff-only> Логическая

завершенность каждого коммита

14Успешная карьера в современной разработке ПО. Что должен знать каждый?

GIT Flow

GIT Flow + REBASEAFTER MERGE

15Успешная карьера в современной разработке ПО. Что должен знать каждый?

Практики XP

> Формируется командой> Перечень правил не должен

быть исчерпывающим или слишком объёмным

> Адаптируется вместе с командой

CODING STANDARD

> Проводится командой> Используется специализированное

ПО (Stash, Upsource и др.)> Целью является улучшение качества

программного продукта и совершенствование навыков разработчиков

CODE REVIEW

Непрерывная поставка разрабатывае-мого продукта

17Успешная карьера в современной разработке ПО. Что должен знать каждый?

Continuous delivery

Continuous delivery

Правильная организация построения архитектуры

19Успешная карьера в современной разработке ПО. Что должен знать каждый?

Domain-Driven Design

ANEMIC DOMAIN MODEL + RPC

20Успешная карьера в современной разработке ПО. Что должен знать каждый?

Domain-Driven Design

Многоуровневая архитектура

Интерфейс пользователя

Операционный

Предметной области

Инфраструктурный

21Успешная карьера в современной разработке ПО. Что должен знать каждый?

Domain-Driven Design

Что читать?

22Успешная карьера в современной разработке ПО. Что должен знать каждый?

Domain-Driven Design

Составляющие эффективного моделирования

Связь между моделью и реализацией

Единый язык

Информоемкая модель

Дистилляция модели

Эксперименты и мозговые штурмы

23Успешная карьера в современной разработке ПО. Что должен знать каждый?

Domain-Driven Design

МодульностьНизкая внешняя зависимость при высокой внутренней связности

Behavior Driven Development

25Успешная карьера в современной разработке ПО. Что должен знать каждый?

Test-Driven Development

Test-driven development

Возникающие вопросыС чего начать?Что тестировать?Что не тестировать?Как много тестировать за раз?Как называть тесты?Как понять, почему тесты падают?

26Успешная карьера в современной разработке ПО. Что должен знать каждый?

Behavior Driven Development

Немного истории

2004JBehave2006INTRODUCING BDDhttp://dannorth.net/introducing-bdd/

2007RBehave, Rspec2009Cucumber (Gherkin)

27Успешная карьера в современной разработке ПО. Что должен знать каждый?

Behavior Driven Development

Behavior Driven Development«BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.»

Dan North

3 Principles> Enough is enough: do as much planning, analysis, and design

as you need, but no more> Deliver stakeholder value: everything you do should deliver

value or increase your ability to do so> It's a behavior: everyone involved should have the same way

of talking about the system and what it does

28Успешная карьера в современной разработке ПО. Что должен знать каждый?

Behavior Driven Development

Cucumber example

Feature: Addition

In order to avoid silly mistakes As a math idiot I want to be told sum of two numbers

Scenario: Add two numbers

Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then the result should be 120 on the screen

29Успешная карьера в современной разработке ПО. Что должен знать каждый?

Behavior Driven Development

Что почитать?

Спасибоза внимание!

top related