https://github.com/vitkarpov/simple-todo
Simple educational TODO-app with backbonejs
https://github.com/vitkarpov/simple-todo
Last synced: about 2 months ago
JSON representation
Simple educational TODO-app with backbonejs
- Host: GitHub
- URL: https://github.com/vitkarpov/simple-todo
- Owner: vitkarpov
- Created: 2013-09-07T19:56:42.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-09-18T19:08:57.000Z (over 11 years ago)
- Last Synced: 2025-01-17T23:19:40.979Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 453 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Классический TODO
Пример простого учебного одностраничного приложения, которое представляет собой классический TODO на каждый день.
**Reference**: [Backbone Fundamentals by Addy Osmani](http://addyosmani.github.io/backbone-fundamentals/)
### Библиотеки
* `backbone`
* `underscore`
* `handlebars`
* `jquery`
* `backbone.localStorage`### Сборка
В браузер попадает один минифицированный файл, который содержит все, что нужно, для работы приложения. Этот файл собирается и обфусцируется автоматически с помощью `grunt`.
Шаблоны хранятся отдельно в папке `app/views` как файлы `hbs`. С помощью `grunt-contrib-handlebars` шаблоны компилируются в джаваскриптовые фукнции, которые добавляются в `app`, как неймспейсу приложения, таким образом мы можем вызывать их в нужном месте приложения для компиляции разметки.
Чтобы собрать проект нужно выполнить `grunt build`
* `grunt`
* `grunt-contrib-concat`
* `grunt-contrib-uglify`
* `grunt-contrib-handlebars`### Git flow
Процесс довольно прост.
Так вышло, что разработку я веду в ветке мастер — там все файлы подключаются как есть, без сборки. В роли релизной ветки выступает `gh-pages` — проект в таком виде автоматически становится доступным для внешнего мира.
Соответственно, в `gh-pages` нет папки `app`, а в мастере нет `build`. Разумеется, нигде нет папки `node_modules` — она добавлена в игнор, потому что эти файлы нужны только для сборки проекта под нодой.
Изменения я стараюсь синхронизировать точечно с помощью `git cherry-pick master`, предварительно переключившись в релизную ветку.
Такой простой процесс оказался удобным для маленького проекта.