PIRO — ракета для вашего PivotalTracker акаунта

    image
    Привет всем. Сегодня я поведаю о своей разработке для Google Chrome и Pivotal Tracker — PIRO. Начнем по порядку.

    PivotalTracker — сервис для управления софтверными проектами по «гибким» методологиям. Более подробно можно узнать из этой статьи на Хабре. Сам по себе трекер отличный, но при работе с ним у меня возникали определенные проблемы:

    • При работе с несколькими проектами неудобно переключатся между ними
    • Тяжело узнать в каких проектах созданы задачи на Вас или же какой статус задач, которые Вы создали на других людей
    • Если вдруг вы работаете с несколькими PivotalTracker акаунтами, то переключение происходит или перелогином или же каждый акаунт в отдельном браузере (кто как крутится)


    Немного поразмыслил, я закатал рукава и начал писать свое решение для PivotalTracker. В ходе работы я показывал его людям, они подключались и помогали мне в его реализации. Поэтому в конце проекта его решили сделать Open Source :)



    Сайт расширения: http://piro.railsware.com/
    Исходный код: https://github.com/railsware/piro
    Скриншоты:

    image
    image
    image
    image

    Поскольку для меня ближе тема по программированию, я расскажу техническую сторону разработки этого проекта.

    Разработка


    Хранение данных


    Поскольку уже много лет я занимаюсь веб разработкой, мое решение будет написано на HTML/CSS/JS, и поскольку решение должно быть простым — ограничится только этим. Для хранения данных мне нужно было хранилище. Существует localStorage, sessionStorage, WebSQL и IndexDB. WebSQL — deprecated, IndexDB — в разработке, sessionStorage — хранит данные пока не закрыли браузер. Остался localStorage. Он и используется в этом расширении.

    JavaScript


    Весь код пишется на JavaScript. Язык отличный, но иногда некоторые конструкции на нем писать не удобно. Недолго думая я решил писать весь JS на CoffeeScript. Если вы еще не знакомы с этим языком — рекомендую ознакомится.

    JavaScript templating


    На сегодняшний день писать сложные JavaScript приложения, в которых в коде генерится HTML код в корне неверно. Для этого было разработано огромное количество JavaScript templating. Самые популярные это Mustache.js, Handlebars.js, Hogan.js и прочие. Для своего расширения с использую Hogan.js, поскольку Twitter (да и я убедился) обещает отличную скорость рендеринга шаблонов.

    JavaScript библиотеки


    Понятное дело без них никуда. Использовались:


    А Ruby тут зачем?


    В репозитории можно найти Ruby. Возникает вопрос — зачем? Чтобы не компилить каждый раз coffescript в javascript руками был использован ruby c guard gem, который позволяет следить за файлами на файловой системе и при их изменении — выполнять определенное действие. Тут он используется при разработке за слежением изменения coffee файлов в директории assets/javascripts для компиляции, а также обфускации файлов rake задачей в директорию javascripts.

    Вот и все


    Вот и все по данному расширению. Для многих оно может оказаться бесполезным, поскольку многие команды используют другие системы управления проектами. Но возможно Вас заинтересует код расширения (и даже перетянет Вас на использования PivotalTracker). Для тех же, кто уже использует PivotalTracker — советую попробовать поработать с ним через данное расширение.

    Пользуйтесь и присоединяйтесь :)
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 13

      0
      Скринов бы :)
        0
        Есть на сайте.
          0
          Я имею в виду что статья со скринами выглядит лучше.
            0
            Скрины добавил.
        0
        Я вот думаю не написать ли нормальную оболочку к джире.
        Она очень гибкая, но интерфейс ее мне очень не нравится.
          0
          А по поводу pivotal tracker — РМ инструмент, в котором estimate не в часах это отмена нормального планирования.
          Плюс нет комментов к таскам — только к strory.
            +1
            По поводу эстимации не в часах — во все гибких методологиях естимация в поинтах. Это говорит про сложность задачи, а время выполнения у каждого свое.
              0
              В качестве оценки сложности — согласен.
              Но как можно планировать итерацию, если в том же пайвот трекере 3 палочки может означать 5 дней, а может месяц — непонятно.
                +1
                PivotalTracker рассчитывает поинты команды за неделю автоматически. Например после двух недель робот на проектом он будет сообщать, что за неделя у команда успевает выполнить 10 поинтов. Это позволяет на следующие итерации раскидывать задачи так, что бы их сумарная сложность не превышала 10 поинтов в неделю.: например две задачи по 5 поинтов или 10 задач по одному поинту команда выполнит в неделю.
                  0
                  10 поинтов? Вы издеваетесь? )
                  Если 2 человека в команде, то это уже получается что минимальная оценка стоимости проекта может быть в 1 человекодень :)
                  Ну если у кого-то так работает — ок.
                  Для меня поинты это предварительная оценка будущей стоимости. А в любом случае перед итерацией лучше дать прогнозы в часах.
          0
          а попадался ли вам приятный аналог Jeditable и к тому же WYSIWYG?
            0
            Можно скрестить WYSIWYG c Jeditable, добавил на его инициализацию при редактировании дополнительно инициализировать WYSIWYG. Для примера у Jeditable есть функция «data», через которую можно переопределять значение для редактирования. В ней можно инициализировать WYSIWYG.

            (Mixed) data: Form data passed as parameter. Can be either a string or function returning a string. Can be useful when you need to alter the text before editing.
            $(".editable").editable("http://www.example.com/save.php";, {
            data: function(value, settings) {
            /* Initialize WYSIWYG here */
            return value;
            }
            });
            0
            И правла: «А Ruby тут зачем?» Почему не использовать нативную среду для CoffeeScript — nodeJS? Сам компилятор CoffeeScript поддерживает режим watch с перекомпиляцией исходников (в доках к CoffeeScript описано хау ту)

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое