- PVSM.RU - https://www.pvsm.ru -
[1]
Привет всем. Сегодня я поведаю о своей разработке для Google Chrome и Pivotal Tracker — PIRO. Начнем по порядку.
PivotalTracker — сервис для управления софтверными проектами по «гибким» методологиям. Более подробно можно узнать из этой статьи на Хабре [2]. Сам по себе трекер отличный, но при работе с ним у меня возникали определенные проблемы:
Немного поразмыслил, я закатал рукава и начал писать свое решение для PivotalTracker. В ходе работы я показывал его людям, они подключались и помогали мне в его реализации. Поэтому в конце проекта его решили сделать Open Source :)
Сайт расширения: http://piro.railsware.com/ [1]
Исходный код: https://github.com/railsware/piro [3]
Поскольку для меня ближе тема по программированию, я расскажу техническую сторону разработки этого проекта.
Поскольку уже много лет я занимаюсь веб разработкой, мое решение будет написано на HTML/CSS/JS, и поскольку решение должно быть простым — ограничится только этим. Для хранения данных мне нужно было хранилище. Существует localStorage, sessionStorage, WebSQL и IndexDB. WebSQL — deprecated, IndexDB — в разработке, sessionStorage — хранит данные пока не закрыли браузер. Остался localStorage. Он и используется в этом расширении.
Весь код пишется на JavaScript. Язык отличный, но иногда некоторые конструкции на нем писать не удобно. Недолго думая я решил писать весь JS на CoffeeScript [4]. Если вы еще не знакомы с этим языком — рекомендую ознакомится.
На сегодняшний день писать сложные JavaScript приложения, в которых в коде генерится HTML код в корне неверно. Для этого было разработано огромное количество JavaScript templating. Самые популярные это Mustache.js [5], Handlebars.js [6], Hogan.js [7] и прочие. Для своего расширения с использую Hogan.js, поскольку Twitter (да и я убедился) обещает отличную скорость рендеринга шаблонов.
Понятное дело без них никуда. Использовались:
В репозитории можно найти Ruby. Возникает вопрос — зачем? Чтобы не компилить каждый раз coffescript в javascript руками был использован ruby c guard gem [10], который позволяет следить за файлами на файловой системе и при их изменении — выполнять определенное действие. Тут он используется при разработке за слежением изменения coffee файлов в директории assets/javascripts [11] для компиляции, а также обфускации файлов rake задачей в директорию javascripts [12].
Вот и все по данному расширению. Для многих оно может оказаться бесполезным, поскольку многие команды используют другие системы управления проектами. Но возможно Вас заинтересует код расширения (и даже перетянет Вас на использования PivotalTracker). Для тех же, кто уже использует PivotalTracker — советую попробовать поработать с ним через данное расширение.
Пользуйтесь и присоединяйтесь :)
Автор: le0pard
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/3592
Ссылки в тексте:
[1] Image: http://piro.railsware.com/
[2] этой статьи на Хабре: http://habrahabr.ru/post/93137/
[3] https://github.com/railsware/piro: https://github.com/railsware/piro
[4] CoffeeScript: http://coffeescript.org/
[5] Mustache.js: http://mustache.github.com/
[6] Handlebars.js: http://handlebarsjs.com/
[7] Hogan.js: http://twitter.github.com/hogan.js/
[8] Chosen: http://harvesthq.github.com/chosen/
[9] Jeditable: http://www.appelsiini.net/projects/jeditable
[10] guard gem: https://github.com/guard/guard
[11] assets/javascripts: https://github.com/railsware/piro/tree/master/assets/javascripts
[12] javascripts: https://github.com/railsware/piro/tree/master/javascripts
Нажмите здесь для печати.