«Особенности agile-разработки интернет-проектов»
TRANSCRIPT
![Page 1: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/1.jpg)
Особенности agile разработки интернет проектовна PHP/Yii, Python/Django и Java/Spring
![Page 3: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/3.jpg)
Текст
AgileЧто в нем?
![Page 4: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/4.jpg)
Почему agile?Нет времени на waterfall, продукт устареет прежде чем выйдет. Мы хотим чаще
Общение - наше все
Неявные риски рулят: «Мы узнаем о проблеме, когда столкнемся с ней»
Разрабатывать ПО дорого и мы заплатим любому, кто сделает этот процесс дешевле!
Клиент не знает что он хочет. По крайней мере пока не знает
![Page 5: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/5.jpg)
Не совсем очевидные следствия
Очень часто встречается MVC, MVVC или MVP или как вы там это называете
ORM, Object mapping или что-то в этом роде (но есть примеры и без него, только писать много придется)
Каждая agile команда уникальна => нет унифицированного agile процесса разработки, нельзя внедрить «по книжке»
Клиент должен быть внутри процесса, а не снаружи
Fixed price - очень рискованно. Проще начать на T&M, и подумать о FP после 3-5 итераций
Все участники примерно равны потому что а) делают одно дело; б) самоорганизуются, а не подчиняются.
![Page 6: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/6.jpg)
Не совсем очевидные последствия часть II
Code less, gain more or die hard
Энергия команды ограничена, а эклог все растет…
Мы вас обратно спрашивать не будем
CI/CD? Всегда!
Тесты, как бы неприятно это не было. Потому что скорость
Очень Scaffolding надо
![Page 7: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/7.jpg)
Что внутри?
Backend
Frontend
Mobile
DevOps
Q&A
PM
Дизайн
Аналитик
![Page 8: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/8.jpg)
Что важно?Скорость разработки
Скорость разработки
Цена
Достижение полезных результатов (качество)
Скорость доставки продукта
Жизнь - это боль бег
![Page 9: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/9.jpg)
Важное замечаниеМы не обсуждаем чисто технические аспекты фреймворков
Пусть они останутся на их совести
Мы говорим о том как фреймворк влияет на agile разработку и влияет ли
И мы говорим о прикладном использовании, т.е. используем фреймворк, а не пишем новый
![Page 10: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/10.jpg)
Текст
PHP/YiiНизкий порог вхождения (ха-ха)
![Page 11: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/11.jpg)
ПлюсыЛюдей, которые в той или иной степени знают PHP достаточно много на рынке труда
Стоимость среднего PHP разработчика все-таки ниже…
Выделение компонентов помогает успешно повторно использовать код
Автоматическое построение URLов (controller/action)
Да и вообще хостинг самый дешевый!
Кодогенерация (Gii)
Можно грамотно переносить быстро сделанные сайты на нормальные рельсы
![Page 12: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/12.jpg)
Условные минусы
Много спагетти кода
Не всегда «взрослое» community, но нужно отметить что взрослеет
Если клиент говорит «PHP», то это значит, что экономить он будет на всем и не всегда оправдано
Интеграция с jQieru (оно же и плюс, кстати)
![Page 13: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/13.jpg)
Текст
Python/DjangoСовременно, молодежно и достаточно серьезно (на самом деле RoR тоже где-то здесь).
![Page 14: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/14.jpg)
Основные принципы
DRY (do not repeat yourself)
Слабая связанность компонентов фреймворка
Широко используется ORM
Автопостроение админки
Батарейки. Потому что вставил и заработало
Generic Class Based Views если правильно понять и использовать сэкономят вам кучу времени
![Page 15: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/15.jpg)
ПлюсыPython :)
Много чего «из коробки» (авторизация, админка, мультисайтовость, сайтмапы и много еще чего)
Качественные компоненты (reusable Django apps) - более 3000 готовых компонентов
Есть даже встроенное решение для GIS (GeoDjango)
C NoSQL решениями все еще пока не очень хорошо
![Page 16: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/16.jpg)
Условные минусы
Проблема выбора и поиска нужного компонента
На shared хостинге не надо. Начинается с VDS
Ограниченное количество кадров на рынке
![Page 17: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/17.jpg)
Текст
Java/SpringЗрелая платформа для зрелых проектов (на самом деле для зрелых команд)
![Page 18: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/18.jpg)
Плюсы
Зрелость
Enterprise с «человеческим лицом»
Можно использовать специалистов из Enterprise (актуально во время кризиса)
Активноразвивающиеся средства кодогенерации и бутстрапинга (Spring Boot) - уменьшает время старта проекта
Еще более развитые средства кодогенерации (JHipster - Yeoman, Maven, Spring и Angular «в одном флаконе»)
Много оттестированных production и enterprise ready компонентов. Для банков актуально, например
![Page 19: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/19.jpg)
Условные минусы
Сложнее всего из тройки найти кадры
Самый высокий порог входа
Стоимость инфраструктуры
Java постоянно «хоронят»
Почему-то все думают что Java сама по себе есть много памяти. Не думайте о памяти, разработчики все-равно дороже!
А памяти в требованиях все-равно стоит от 1 Гб
![Page 20: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/20.jpg)
Текст
Итоги и обсужденияИтого:
![Page 21: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/21.jpg)
Выводы для flame warsФреймворк влияет, но это аспект больше социальный, а не технологический
Экосистема может быть большой, но если большое плохо пахнет, то это все-равно не поможет
Экономьте деньги в разработке и выбирайте компромис между вашим желанием сделать хорошо сейчас, хорошо потом и/или за приемлемые деньги
Чем больше кода можно повторно использовать - тем лучше, ну или DRY
Выбирайте команду, которая с меньшими затратами реализовать ваши задачи на том фреймворке, который ей хорошо знаком. Тут нет религии. Только деньги
![Page 22: «Особенности Agile-разработки интернет-проектов»](https://reader038.vdocuments.site/reader038/viewer/2022102816/55b64745bb61ebb0718b4693/html5/thumbnails/22.jpg)
Всем добра!
Петр Курышев
skype: peter.kurishev
Спасибо что пришли!
Всем добра, Docker’а, KISS, DRY и всего наилучшего!