Pull to refresh
44
0
qbique @qbique

User

Send message

Пишем реализацию MVC для Backbone

Reading time10 min
Views11K
image

Одним пасмурным утром я подумал, что было бы неплохо хорошенько прорефакторить один из моих старых проектов. Это некоммерческое легковесное приложение для кастомизации HUD в одном 3Д шутере. Писал я его 2 года назад, был горяч и неопытен. В результате куча отменного спагетти-кода, который, несмотря на все свои недостатки, делал своё дело. Став мудрее и опытнее, я решил полностью переписать приложение, дать ему новую архитектуру, упростить поддержку и обновление. Как это сделать? Ответ казался простым — использовать MVC, разделить на уровни и связать всё в единое целое. Так я столкнулся с проблемой выбора простого и эффективного фреймворка, который станет прочным фундаментом. После быстрого исследования я выбрал backbone.js. Очень понравился своей простотой и гибкостью. Можно просто открыть исходники и понять, как всё устроено и работает. Единственный нюанс, который не радовал — MV-паттерн. Размазывать логику по многочисленным views очень не хотелось, так родилась идея написать свой велосипед, который предоставит недостающие части головоломки. Плюс, создание чего-то нового — это всегда увлекательно и интересно. Недолго думая, я приступил к реализации контроллеров для backbone.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments33

Файловый хостинг

Reading time3 min
Views2.1K

Это мой первый пост здесь и сразу хочу предупредить — это пеар :) Сейчас я буду нагло расхваливать свой собственный ресурс — File Qube. Как понятно из заголовка, речь пойдёт о хостинге файлов.
Читать дальше →
Total votes 112: ↑105 and ↓7+98
Comments188

Хостинг файлов от File Qube.

Reading time1 min
Views581
File Qube — это очередной файловый хостинг. Конечно, подобных сервисов существует просто туча, но таких красивых и удобных — единицы. User friendly — это наша философия :) Дизайн сайта, иконки, интерфейс — всё делалось так, чтобы пользоваться сервисом было приятно.

Техника молодёжи

Самая интересная часть — это файл менеджер. Листинг файлов передаётся в виде JSON-строки, которая потом обрабатывается и на основе полученого объекта рендерится непосредственно листинг. Благодоря этому такие операции как удаление элементов, редактирование свойств, сортировка и смена вида делается в реальном времени без дополнительных запросов к серверу.

В оптимизации скорости работы мы пошли дальше. Изначально, при удалении объекта обновлялся весь листинг целиком. Потом было решено использовать небольшие update-объекты, которые содержали данные о том, какие элементы обновляются и каким образом.
Например, запрос на удаление пачки файлов вернёт такую строку:
{«folders»:[],«files»:[«3993»,«29434»,«4874»,«26822»,«15173»,«1»,«12883»,«25320»],«action»:«remove»}
Останется только пройтись по массиву и удалить объекты из DOM-дерева и текущего массива файлов.
Rating0
Comments0

Information

Rating
Does not participate
Date of birth
Registered
Activity