Giter Site home page Giter Site logo

agile-course-theory's Introduction

Спецкурс "Agile Development"

Build Status

  • Нижегородский Государственный Университет им. Н.И. Лобачевского
  • Институт ИТММ, каф. МОСТ
  • License: Creative Commons Attribution-Share Alike 3.0 (CC BY-SA 3.0)
  • Copyright: COPYRIGHT.md

Ресурсы

Литература

  • Мика Мартин, Роберт Мартин "Принципы, паттерны и методики гибкой разработки на языке C#" (pdf)
  • Мартин Фаулер, Кент Бек и др. "Рефакторинг: улучшение существующего кода" (pdf)

agile-course-theory's People

Contributors

alexeyzotov85m21 avatar aod314 avatar daniil-osokin avatar imgbot[bot] avatar imgbotapp avatar kirill-korniakov avatar ljaljushkin avatar ruszrok avatar sokolovms avatar vvillwin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

agile-course-theory's Issues

Почистить имеющиеся лабы

  • Тесты на ViewModel с логгером поместить в отдельный класс
  • Rename FakeLogger в MockLogger
  • private JTextArea log;
  • Добавить пример на Observer в ViewModel

Написать отдельную лекцию про тестирование вообще

  • Какие бывают тесты: модульные, функциональные, приемочные, инфраструктурные, smoke, stress - с примерами
  • Написание тестов
  • Автоматизация тестов: непрерывная интеграция, автоматический анализ кода (статический и динамический)
  • Добавить информацию из книги про Google
  • Это кстати может быть лекция про TDD на Embedded C

Не стоит полностью повторять devtools, но должен быть зрелый обзор

Создать сопровождающие видеоматериалы

  • Вести запись лекций на видео (завести канал на YouTube)

Возможное содержание видеотуториалов

  • Нулевой лекцией можно показать результат, когда все настроено и работает
  • Первая лекция должны быть про то, как сконфигурить Eclipse и все окружение
    • Скачать нужную версию самого Eclipse
    • Поставить нужные плагины: сейчас это инструменты Google
    • Настроить текстовый редактор: включить номера строк, шрифт
    • Создать простенький JUnit тест
  • Поставить систему контроля версий и залиться
    • Какие файлы нужно заливать, а какие нет
  • Последней лекцией можно рассказать про реальную жизнь
    • Почитать пример Contacts от Google
    • Показать код на C#
    • Все-таки выбирая между C#, Java, Python или Ruby ты сразу ограничиваешь себя
    • GWT is meant for applications rather than websites. Generally with the
      intent of developing a desktop replacement webapp.
  • https://tutsplus.com/2012/04/frequent-screencasting-pitfalls/
  • https://tutsplus.com/2012/10/7-common-screencasting-techniques-that-drive-me-nuts/
  • https://tutsplus.com/course/professional-screencasting-for-the-rest-of-us/

Доработать лекцию по SOLID

  • Явно выписать негативные последствия нарушения каждого из принципов
  • Рассказывать в ином порядке

Improve scripts and testing

  • Переписать скрипт генерации презентаций на Python
  • Автоматически проверять наличие ключевых слайдов
    • содержание
    • ключевые моменты
    • контрольные вопросы
    • спасибо за внимание
  • Добавить макрос TOC (Table-of-content)

Усилить тестирование презентаций на Travis

Обязательно

  • Проверять отсутствие табов
  • Наличие пустых строк в конце файлов
  • Файлы должны называться по имени папки, расширение должно быть md
  • Все картинки, на которые ссылается md, должны существовать
  • Проверочный скрипт должно быть можно запускать локально
  • Можно проверять, что не заливаются огромные файлы (выбрать лимит, в данный момент 512кб)
  • Проверять что для всех кусков кода указан язык, на котором он написан (чтобы автоматом срабатывала подсветка синтаксиса)
  • Проверять, что все картинки из папки используются в презентации (можно просто предупреждение печатать со списком всех неиспользуемых картинок)

Перевести слайды в Markdown формат

  • Lecture 00 - Course Info.ppt (KK)
  • Lecture 01 - Introduction To Agile Development.ppt (KK)
  • Lecture 02 - Clean Code.pptx (AM)
  • Lecture 03 - Refactoring.pptx (AM)
  • Lecture 04 - Scrum.ppt (KK)
  • Lecture 05 - TDD.ppt (DA)
  • Lecture 06 - XP.ppt (KK)
  • Lecture 07 - SOLID.pptx (AM)
  • Lecture 08 - MVP_and_MVVM.pptx (DA)
  • Lecture 09 - DDD.ppt (AM)
  • Lecture 10 - DataAccess.pptx (DA)
  • Lecture 11 - Lean.pptx (DA)

Вот как можно сделать это относительно быстро:

Настроить больше автоматических проверок кода на Travis

TODO

  • Проверить что нет неправильных зависимостей между модулями
  • Можно ли как-то запускать проверки, которые делает IDEA?
    • Ее предложения по упрощению кода.

DONE

  • Включить проверку стиля (CPD), но нужно выбрать стиль
  • Автоматический поиск дублирующегося кода (commit script to the repo)
  • PMD умеет огромную кучу всего
    • Ненужные import-команды

Улучшить инструкции для лабораторных

  • Возможно задания на лабу стоит оформить в виде историй, чтобы и поиграть, и
    понятнее было
  • Собирать маленькую методичку из md-файлов
  • Создать контрольные списки для проверки каждой лабы
    • Никаких дурацких сокращений
    • Чистые тесты, хорошие имена для них
  • Вероятно "Задачи" стоит переименовать в требования
    • Выбрать полезные требования из новостей
  • С логированием все путаются. Нужно это все продумать и четко описать.
    • При переключении типа логирования теряется собственно лог
    • В файл сохраняют, но нельзя выбрать имя лога

Доработать шаблон презентаций

  • Заголовки разных уровней должны отличаться друг от друга
  • Add line numbers to code, then syntax highlighting
  • Change style for quotes
  • Избавиться от папки graphics

Создать сайт для курса в виде GitHub Pages

Обязательно

  • Создать страничку с сcылками на сгенерированные html (или pdf)

Опционально

  • Взять первоначальный вариант из старого репозитория (ветка gh-pages)
  • Remove contents of the _site folder
  • Разобраться с русскими шрифтами (найти красивые)
  • Insert G+, facebook like and other buttons

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

Обязательно

  • Использовать нумерацию M00 и T00, чтобы сгруппировать процессные и технические темы
  • Отдельная лекция про Unit-testing (предложение Антона)

Опционально

  • Проанализировать содержание книг:
    • Принципы, паттерны и методики
    • Agile Samurai (набрать картинок)
    • Продуктивный программист, Программист-прагматик
  • Потенциальные лекции
    • Инструментальная поддержка (думаю заменить общей лекцией про QA)

Чистка презентаций

Обязательно

  • Переделать изображения в SVG (где-то PNG) по максимуму
  • Удалить лишние изображения (добавить такую проверку на Travis, см. #5)

Опционально

  • Возможно часть изображений можно перевести в текстовый исходник и генерить чем-нибудь вроде Graphvis
  • Проверить что все нормально с копирайтами (почистить картинки)
  • Проверить что исходные файлы нормально выглядят при печати на бумаге (мб лучше печатать то, что показывает GitHub, тогда надо решить вопрос с таблицами)

Создать конспект курса

  • Запросить конспекты у кого есть
  • Перевести имеющееся в Markdown
  • Поднять билд документа
  • Оформить все в виде полноценной методички, узнать про возможность публикации

Придумать Лабораторную #4

Информация по GWT на всякий случай:

Улучшить тестирование презентаций на travis

  • В блоках кода должно быть одинаковое выравнивание (4 пробела)
  • Каким-то образом валидировать Markdown (http://habrahabr.ru/post/235611/)
  • По идее можно вырезать все куски кода и проверять их на соответствие некоторым общим соглашениям (запускать какие-то тулы)

Допилить Лекцию 01-Into in agile

Во время просмотра были выявлены следующие ошибки:
Битые ссылки на картинки в пунктах:

  • "Как изменилось качество ПО после Agile";
  • "Стоимость внесения изменения";
  • "4 переменные".

Странно отображаются пункты:

  • "Методология разработки";
  • "Манифест Agile";
  • "Сравнение основ".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.