Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
то такое "Непрерывная Интеграция", зачем она нужна и с чем ее едят? Правда ли, что она нужна только для тестировщиков? На все эти вопросы мы постараемся найти ответы в ходе выступления Щербакова Ильи на нашей следующей юзер-группе.
Совсем скоро выйдет Java 9, которая готовит нам много новых и интересных вещей, таких как jshell, Process API, методы-фабрики для коллекций, мультирелизные JAR-файлы и др. Но самым главным изменением будет, конечно же, введение модулей. Модуль - это новая единица инкапсуляции, которая позволит указывать явно зависимости между программными компонентами и строго контролировать, какие public-классы доступны для других компонент, а какие нет. В этой презентации мы рассмотрим в подробностях механизм модулей Java 9, в частности, как объявляются модули и как модуляризована сама JDK, а также, какие проблемы могут встретиться при миграции приложения на Java 9.
Когда проект делает один разработчик — все просто. Когда над ним работает небольшая команда, можно синхронизироваться и договориться. А вот когда проектов (сайтов и приложений) становится много, и над ними трудится множество команд с перекрестной функциональностью и смежными зонами ответственности, все становится сложным и запутанным.
Я расскажу о своем виденье архитектуры фронтенда, какой она должна быть, чтобы обеспечить её масштабируемость. На основе своего опыта и проблем, с которыми сталкиваются большие проекты.
Видео: https://www.youtube.com/watch?list=PLknJ4Vr6efQFtZmsXmGG64Rz_PHrcXCBL&v=z9y6PNC2FL0
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
то такое "Непрерывная Интеграция", зачем она нужна и с чем ее едят? Правда ли, что она нужна только для тестировщиков? На все эти вопросы мы постараемся найти ответы в ходе выступления Щербакова Ильи на нашей следующей юзер-группе.
Совсем скоро выйдет Java 9, которая готовит нам много новых и интересных вещей, таких как jshell, Process API, методы-фабрики для коллекций, мультирелизные JAR-файлы и др. Но самым главным изменением будет, конечно же, введение модулей. Модуль - это новая единица инкапсуляции, которая позволит указывать явно зависимости между программными компонентами и строго контролировать, какие public-классы доступны для других компонент, а какие нет. В этой презентации мы рассмотрим в подробностях механизм модулей Java 9, в частности, как объявляются модули и как модуляризована сама JDK, а также, какие проблемы могут встретиться при миграции приложения на Java 9.
Когда проект делает один разработчик — все просто. Когда над ним работает небольшая команда, можно синхронизироваться и договориться. А вот когда проектов (сайтов и приложений) становится много, и над ними трудится множество команд с перекрестной функциональностью и смежными зонами ответственности, все становится сложным и запутанным.
Я расскажу о своем виденье архитектуры фронтенда, какой она должна быть, чтобы обеспечить её масштабируемость. На основе своего опыта и проблем, с которыми сталкиваются большие проекты.
Видео: https://www.youtube.com/watch?list=PLknJ4Vr6efQFtZmsXmGG64Rz_PHrcXCBL&v=z9y6PNC2FL0
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Ontico
* Следующее поколение моделей проектирования и эксплуатации серверных приложений в публичных облаках и на классических серверах.
* Сравнение методов эксплуатации: "традиционных" Chef/Salt/Ansible, immutage images/virtual appliances/Docker, и автономных рабочих окружений Jetware/Snappy/Nix/Habitat.
* Самоконфигурация, самоадминистрирование и самовосстановление серверов.
** Управление большими системами Mesos, Kubernetes, Docker Swarm.
** Управление внутри микросервисов.
* Независимость рабочего окружения приложений от операционной системы и ядра, just enough OS.
* Приложение - это не только исходный код, но и операционное окружение. Разработка, тестирование и версионирование всего полностью.
* Сервер как программа - компонентный подход.
Как devops исчерпывает себя и что будет дальшеKirill Vechera
Эволюция управления информационными системами
Какие сейчас есть средства и какие появляются
Как этому способствует Jetware
Почему Devops становится ненужным
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte framework developer and owner is Stanislaw Wozniak, Expedia Limited, UK. Sponte project homepage: http://rubyforge.org/projects/sponte/; http://github.com/swozniak/sponte/tree/master
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
Доклад посвящен вопросам создания и использования собственной системы управления процессами сборки и тестирования ПО. Описываются ключевые моменты построения таких систем, в частности: вопросы интерфейсов, быстродействия, качества и интеграции в общую инфраструктуру. Затрагиваются концепции встраивания качества в код, сбора и использования метрик ПО, неотделимости сборки от тестирования, автоматизированного ведения базы знаний об ошибках и другие.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
Презентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)SPB SQA Group
Доклад посвящен вопросам создания и использования собственной системы управления процессами сборки и тестирования ПО. Описываются ключевые моменты построения таких систем, в частности: вопросы интерфейсов, быстродействия, качества и интеграции в общую инфраструктуру. Затрагиваются концепции встраивания качества в код, сбора и использования метрик ПО, неотделимости сборки от тестирования, автоматизированного ведения базы знаний об ошибках и другие.
Материалы вебинара – Гиперскалярная архитектура VMware EVO: RAIL совместно с ...Fujitsu Russia
Материалы вебинара – Гиперскалярная архитектура VMware EVO: RAIL совместно с Fujitsu.
Евгений Тарелкин, менеджер по маркетингу продукции, серверы PRIMERGY и PRIMEQUEST, Fujitsu.
Николай Куликов, консультант по решениям, VMware.
Similar to Agile software configuration management (20)
CS589 paper presentation - What is in unison? A formal specification and refe...Sergii Shmarkatiuk
Overview of the paper "What's in Unison? A Formal Specication and Reference Implementation of a File Synchronizer" by Benjamin C. Pierce Jerome Vouillon presented at Oregon State University for "Domain Specific Languages" class on May 20th 2014. Presentation time: 20 min
Overview of the paper "Visual Software Evolution Reconstruction" by Marco D'Ambros and Michele Lanza presented at Oregon State University for "Information Visualization" class on May 12th 2014. Presentation time: 15 min
The document proposes a formalized approach to software version numbering to address current problems. It analyzes why automatic document section numbering cannot be directly applied to software history. The proposed solution extends the section numbering approach formally, allowing version numbers to include arbitrary sets in addition to natural numbers. This addresses issues like inconsistent practices and ambiguous versioning that undermine automation and software quality.
Continuous integration (CI) is a software engineering practice where developers frequently integrate their work, leading to multiple integrations per day. This approach reduces integration problems and allows teams to develop cohesive software more rapidly. The presentation discusses what CI is, why teams need it, prerequisites like version control and automated testing, typical workflows, tools, and benefits like reduced risks and improved code quality. It also examines problems teams face in implementing CI effectively and potential areas of future research like making CI tools more adaptive and addressing scalability issues.
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...Sergii Shmarkatiuk
Overview of the paper "Cloud Twin: Native Execution of Android Applications on the Windows Phone" by Holder et al. presented at Oregon State University for "Software Evolution for Mobility" class on Nov 18th 2013. Presentation time: 5 min
CS 584 - Aligning development tools with the way programmers think about code...Sergii Shmarkatiuk
This presentation reviews a proposed visual tool for generating source code transformations based on the edit-by-example principle. The tool aims to address limitations of existing approaches like regular expressions, IDE search/replace, and AST-based tools by allowing programmers to intuitively create custom transformations through direct manipulation of code representations. An initial prototype was implemented and evaluated via a user study, which provided insights for future iterations. The tool combines textual and graphical elements to naturally fit programmers' mental models of code structure.
Overview of the paper "Cloud Types for Eventual Consistency" by Burckhardt et al. presented at Oregon State University for "Software Evolution for Mobility" class on Oct 10th 2013. Presentation time: 20 min
This document provides an overview and training plan for merge management. It describes problems that can emerge during merge operations in version control systems and how to mitigate risks and avoid problems related to merging. The training plan includes introductions to concepts like merging, branches, conflicts and how to manage merging. It provides details on common tools and operations involved in merging like diff, patch, branch and how three-way merging works. It also gives examples and demonstrations of merging in practice.
This document provides an overview of continuous integration training goals and plans. The goals are to demonstrate that modern projects cannot succeed without continuous integration and to establish a connection between continuous integration practices and CMMI product integration processes. The training plan covers topics such as what continuous integration is, why it is needed, prerequisites, workflows, tools, and relationships to CMMI processes. It also discusses continuous integration tools and classifications.
The document discusses build and deployment management. It covers why builds and deployments need to be managed, different build types, build phases, and popular build tools like Ant, Maven, Make, and MSBuild. Managing builds is important for large, complex applications to ensure the build process is complete, repeatable, informative, schedulable, and portable. The key difference between a build and deployment is that a build creates installation artifacts while deployment installs the application.
This document provides an introduction to version control. It discusses what version control is, the history and evolution of version control systems, different types of version control systems classified by their repository model and concurrency model, and practical considerations for starting to use version control. Key topics covered include centralized and distributed version control, lock-modify-unlock and merge models, and domain vocabulary for common version control tasks and workflows.
1.2 introduction to scm - what does version number tell usSergii Shmarkatiuk
This document discusses configuration management and version numbers. It explains that a build takes source code and converts it into artifacts that can run on end-user workstations. Builds are needed to add functionality, improve performance, or implement other requirements. Managing builds is important as applications grow more complex with multiple variants incorporating different property values like version, build type, OS, localization, platform, and maturity. Variants represent the output of a build with a specific set of property values. The version number can incorporate all variant properties to uniquely identify each variant.
1.1 introduction to scm - xp and cm are chicken-and-eggSergii Shmarkatiuk
This document discusses the relationship between eXtreme Programming (XP) practices and Software Configuration Management (SCM) tools. It argues that XP practices and SCM tools have a chicken-and-egg type relationship, where neither can truly exist without the other due to their interdependent nature. SCM tools provide version control, build management, and other functions that are essential for evolution of the software product, while XP practices like pair programming, refactoring, and continuous integration describe common development methods. Together, XP practices and SCM tools form the core software engineering practices for effective development.
This document outlines a series of software configuration management trainings covering topics such as introduction to SCM, version control, build and deployment management, continuous integration, agile SCM, and merge management. The trainings will utilize formats like seminars, webinars, workshops, and conferences. Attendees include software engineers, testers, and project managers. The content is organized into 6 modules with examples and demos. Attendance and active participation are required to receive a score. The trainings will be presented in English by lecturer Sergii Shmarkatiuk.
The document discusses agile software configuration management and the connection between agile methodologies and configuration management practices. It presents streamlined diagrams showing how version control, branching, and releases are handled in agile software development. Branching strategies become more complex as the scope expands and parallel development of multiple versions is needed, requiring different branch types including long-running release branches.
3. Цель 3 Связь между: Agile-методологиями и практиками конфигурационного менеджмента Инструментами, использующихся практиками конфигурационного менеджмента
4. Какие такие практики? Контроль версий Билд менеджмент Автоматизированные сборки Непрерывная интеграция Релиз менеджмент Управление зависимостями 4
6. Simplest scenario 6 Trunk Development mainline Repository directory commits project assets project state Source code changes
7. Простейший сценарий 7 После нескольких последовательных коммитов разработчик желает сделать сборку приложения Зачем? Будем считать что сборка будет результатом реализации функциональных требований (баг/фича) Сборка доступна конечному пользователю: Собирается отдельное десктопное приложение Развертывается веб-приложение Сбор метрик и статистики (интеграционная сборка)
8. Простейший сценарий 8 Затем возникает необходимость сделать релиз Зачем? Релиз – это специальный тип сборки Но имеет специфичные особенности: Полная реализация набора требований Качество Доступность к использованию
9. Простейший сценарий 9 Простейший сценарий - это… …случай, когда описанные шаги не требуют слишком много усилий
14. Ветвление для релиза 14 Заметили? Возникает непоследовательность в нумерации версий! Имеет смысл разделить разработку в trunk’eи стабилизацию релиза
16. Ветвление для релиза 16 Но это еще не всё… Вам может понадобиться стабилизировать релиз в любое время и При этом не прерывать параллельной разработки или стабилизации релиза
21. Типы веток Несовместимость означает то, что… …слияние изменений не может быть выполнено в родительскую ветку Пример: Глубокий рефакторинг (изменение иерархии директорий/файлов) Серьезное архитектурное/структурное изменение Переписывание приложения или его отдельных частей с нуля 21
23. Типы веток.Ветки поддержки и релиза 23 /0.2.x /0.3.x /trunk /1.0.x /0.1.x /1.x.x Ветка релиза Ветка поддержки
24. Типы веток.Ветки поддержки и релиза 24 Допускает слияние с родительской веткой Существует до тех пор, пока не выпущен стабильный релиз Ветки-потомки не разрешены Не допускает слияния с родительской веткой Существует всегда Разрешены ветки-потомки Не разрешены ветки-потомки для поддержки Не рекомендуются слияния с ветками- потомками Ветка поддержки Ветка релиза
26. Experimental vs release branch 26 Экспериментальная ветка Не допускает веток-потомков Использует строгое именование. Пример: 1.0.x Использует собственную область значений для нумерации сборок Рекомендуемый подход к слияниям: после каждой сборки/релиза Допускает любое число веток-потомков Правил к именованию не выдвигается. Пример: new_eng_test Разделяет область значений для нумерации сборок с родственными ветками Нет рекомендованного подхода к слияниям Ветка релиза
35. Scrum и SCM 35 /trunk demo PA/A AR/BR 1.0.1 1.x.0 1.x.1 1.x.2 1.0.0 1.x.3 user stories /1.0.x sprint backlog
36. Agile SCM 36 Нет запланированной даты релиза (agile релиз менеджмент) Вызревание релиза (agile тестирование) Переключение команд на приоритетные направления разработки (agile ресурс менеджмент)
37. 37 А главное то, что… … мы теперь знаем как правильно!
39. Полезные ссылки http://www.infoq.com/articles/agile-version-control - agile контроль версий http://svnbook.red-bean.com/ - официальная документация/справочное руководство по subversion http://www.ericsink.com/ - один из лучших блогов, посвященный контролю версий http://www.versioncontrolblog.com/ - еще один блог о контроле версий http://better-scm.berlios.de/comparison/comparison.html - сравнительная таблица систем контроля версий http://www.cmcrossroads.com/ - основной ресурс посвященный конфигурационному менеджменту http://www.infoq.com/news/2009/03/Continuous-Deployment - про непрерывные развертывания 39