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

в 23:00, , рубрики: coffescript, css, Google Chrome, google chrome extension, html, javascript, Веб-разработка, метки: , , , ,

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

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

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

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

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

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

Разработка

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

Поскольку уже много лет я занимаюсь веб разработкой, мое решение будет написано на 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 — советую попробовать поработать с ним через данное расширение.

Пользуйтесь и присоединяйтесь :)

Автор: le0pard

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js