Успешная карьера в современной разработки...
-
Upload
sergey-morgunov -
Category
Software
-
view
280 -
download
0
Transcript of Успешная карьера в современной разработки...
![Page 1: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/1.jpg)
Сергей Моргунов
Успешная карьера в современной разработке ПО. Что должен знать каждый?
![Page 2: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/2.jpg)
Содержание> Базовые принципы командной работы
> Правила по работе с исходным кодом
> Непрерывная поставка разрабатываемого продукта
> Правильная организация построения архитектуры
> Behavior Driven Development
![Page 3: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/3.jpg)
Базовые принципы командной работы
![Page 4: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/4.jpg)
4Успешная карьера в современной разработке ПО. Что должен знать каждый?
Что такое команда?
Команда— это небольшая группа людей со взаимодополняющими навыками, чувствующих взаимную ответственность и объединенных общей целью.
![Page 5: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/5.jpg)
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
![Page 6: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/6.jpg)
6Успешная карьера в современной разработке ПО. Что должен знать каждый?
XP, Scrum, Kanban
Адаптивность
XP(13) Scrum
(9) Kanban(3) ?
More adaptive
![Page 7: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/7.jpg)
7Успешная карьера в современной разработке ПО. Что должен знать каждый?
Planning game (XP)
Planning poker
![Page 8: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/8.jpg)
8Успешная карьера в современной разработке ПО. Что должен знать каждый?
Doing Agile vs Being Agile
Doing Agile
Being Agile
![Page 9: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/9.jpg)
Правила по работе с исходным кодом
![Page 10: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/10.jpg)
10Успешная карьера в современной разработке ПО. Что должен знать каждый?
Version Control System
GIT & Subversion
2009 2010 2011 2012 2013 2014
70%
60%
50%
40%
30%
20%
10%
0%
Git
Svn
![Page 11: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/11.jpg)
11Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow в теории
![Page 12: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/12.jpg)
12Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow на практике
![Page 13: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/13.jpg)
13Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow + REBASEIn processЦель> Линейность истории
изменений
Средства> Merge ff-only> Логическая
завершенность каждого коммита
![Page 14: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/14.jpg)
14Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow + REBASEAFTER MERGE
![Page 15: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/15.jpg)
15Успешная карьера в современной разработке ПО. Что должен знать каждый?
Практики XP
> Формируется командой> Перечень правил не должен
быть исчерпывающим или слишком объёмным
> Адаптируется вместе с командой
CODING STANDARD
> Проводится командой> Используется специализированное
ПО (Stash, Upsource и др.)> Целью является улучшение качества
программного продукта и совершенствование навыков разработчиков
CODE REVIEW
![Page 16: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/16.jpg)
Непрерывная поставка разрабатывае-мого продукта
![Page 17: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/17.jpg)
17Успешная карьера в современной разработке ПО. Что должен знать каждый?
Continuous delivery
Continuous delivery
![Page 18: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/18.jpg)
Правильная организация построения архитектуры
![Page 19: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/19.jpg)
19Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
ANEMIC DOMAIN MODEL + RPC
![Page 20: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/20.jpg)
20Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Многоуровневая архитектура
Интерфейс пользователя
Операционный
Предметной области
Инфраструктурный
![Page 21: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/21.jpg)
21Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Что читать?
![Page 22: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/22.jpg)
22Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Составляющие эффективного моделирования
Связь между моделью и реализацией
Единый язык
Информоемкая модель
Дистилляция модели
Эксперименты и мозговые штурмы
![Page 23: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/23.jpg)
23Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
МодульностьНизкая внешняя зависимость при высокой внутренней связности
![Page 24: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/24.jpg)
Behavior Driven Development
![Page 25: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/25.jpg)
25Успешная карьера в современной разработке ПО. Что должен знать каждый?
Test-Driven Development
Test-driven development
Возникающие вопросыС чего начать?Что тестировать?Что не тестировать?Как много тестировать за раз?Как называть тесты?Как понять, почему тесты падают?
![Page 26: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/26.jpg)
26Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Немного истории
2004JBehave2006INTRODUCING BDDhttp://dannorth.net/introducing-bdd/
2007RBehave, Rspec2009Cucumber (Gherkin)
![Page 27: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/27.jpg)
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
![Page 28: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/28.jpg)
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
![Page 29: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/29.jpg)
29Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Что почитать?
![Page 30: Успешная карьера в современной разработки программного обеспечения](https://reader035.fdocument.pub/reader035/viewer/2022062316/5872ce631a28ab74188b4883/html5/thumbnails/30.jpg)
Спасибоза внимание!