Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске:

Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске:

После первого поста про свой вариант изучения JavaScript, совмещая приятное с полезным, решил внести важные дополнения и, заодно, сделать рывок в обучении.
Читать полностью »
В последнее время я стал много писать на JS, сейчас работаю над сложным приложением и довольно крупной библиотекой (~5K SLoC). Конечно же, я столкнулся с проблемой модульности.
Для приложения идеально подошел AMD — указываешь в зависимостях библиотеки, добавляешь связующий код, логику… и приложение готово. Но при разработке библиотеки я столкнулся с проблемой управления внутренними зависимостями при помощи AMD или CommonJS — получается слишком много обвязок (boilerplate), особенно когда части библиотеки взаимозависимы. Поэтому я выделил еще один подход к определению модулей в JS — YAMD.
Внимание! Это не замена AMD или CommonJS, для сборки приложения я по прежнему использую AMD, просто одна из библиотек, которую я подключаю, собрана с помощью YAMD. Таким образом, YAMD является подходом к декомпозиции сложной библиотеки без внешних зависимостей на части и отдельные файлы, и инструментом для сборки этих файлов воедино.
В статье я опишу подход. От вас хочется узнать в комментариях, что вы используете для тех же задач.Читать полностью »
В наших прошлых постах мы писали про PhoneJS, HTML5-фреймворк для мобильных приложений, и ChartJS, JavaScript библиотеку визуализации данных. Если вы читали эти посты, то наверняка помните TipCalculator, простейшее демо-приложение, на примере которого мы рассказывали, с чего начать работу с PhoneJS.
На этот раз мы решили показать процесс создания чего-то более сложного, претендующего на применение в реальной жизни и использующего возможности фреймворка намного глубже. Момент как нельзя подходящий, ведь мы только что выпустили очередное плановое обновление наших продуктов.

Многие сотрудники нашей компании регулярно посещают тренажерные залы, причем одни ведут лог результатов в бумажных блокнотах, а другие эти результаты вообще не записывают, полагаясь на свою память. Поэтому мы постарались решить сразу две задачи — написать демо-приложение, раскрывающее возможности PhoneJS и ChartJS, и помочь нашим сотрудникам, создав для них удобный инструмент ведения лога тренировок.
Сохранить баланс между демкой и реальным приложением было непросто, но у нас получилось.
Читать полностью »
Коллеги, использующие Backbone.js! Вы задумывались, как работает наследование в этой библиотеке?
Знаете, как себя ведет Backbone.Model.extend({})?
И наверняка знаете и помните, что у extend два опциональных параметра: proto props и static props.
Если хотя бы на один выше заданный вопрос вы ответили отрицательно — прошу под кат.
Постараюсь порадовать пошаговым исследованием, схемками, табличками и примерами.
Читать полностью »
CoffeeScript принёс в JS неплохую абстракцию классов, основанную на прототипах.
Реализовав известную модель наследования и дополнив её наследованием методов касса,
он позволяет легко строить иерархии классов, даже не зная о цепочках прототипов.
Но и эта модель может быть улучшена.
Читать полностью »
В данной статье я решил описать как была реализована функциональность выборки и отображения фотографий на определенном участке карты в нашем фото-сервисе.

Так как сейчас фотографий на нашем сервисе очень много и посылать запросы к БД при каждом изменении окна просмотра слишком ресурсозатратно, логично было разбить карту на участки, в которых хранилась бы информация об уже извлеченных данных. Эти участки по вполне понятным причинам имеют прямоугольную форму (хотя вариант с гексагональной сеткой тоже рассматривался).
Итак, в данной статье будут затронуты следующие проблемы:
Часто приходится работать с примитивными списками, поэтому, чтобы не писать одни и те же методы, собрал их в одном сервисе. Немного расскажу о нем, как о примере вынесения функциональности из контроллеров.
Демка, песочница (с демкой играются многие, так что данные могут скакать)
Как видно из примера, у нас проблема: куча списков со схожей функциональностью (добавление, удаление, сортировка элементов — что еще может быть у списков :-).Читать полностью »
Так уж вышло, что по работе, мне приходится редактировать файлы, к которым я имею доступ только через файловый менеджер CMS Bitrix, что влечёт за собой открытие множества вкладок в браузере и огромное количество ненужных телодвижений необходимых лишь для того, чтобы отредактировать несколько файлов.
Ниже я расскажу как решил эту проблему с помощью Node.js и свободного времени.
Читать полностью »
Добрый день хабр.
Вчера вышла версия 1.1.0 test.it — фреймворка для тестирования js кода.
Он, наконец, обзавёлся функционалом, отсутствие которого делало его неполноценным:
А так же прочими мелочами.

Кто не любит много слов — Сайт на котором можно увидеть код в действии, GitHub, WikiЧитать полностью »