Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

282,65
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Фронт-энд Островка изнутри

Время на прочтение10 мин
Охват и читатели27K
Привет, меня зовут Игорь (iamo0), я старший фронт-энд разработчик в Островке. Я занимаюсь нашим основным продуктом: сайтом Ostrovok.ru. С помощью нашего сайта ежедневно бронируют отели тысячи человек, поэтому для нас очень важно, чтобы качество нашего продукта было на высоте. А для этого нужно не отвлекаться на разного рода мелочи и уметь эффективно решать поставленные задачи.

Расскажу как мы организовали процесс фронт-энд разработки так, чтобы можно было решать поставленные задачи, не задумываясь о средствах их решения, сосредоточившись на самой задаче.

Не претендую на то, что мой рассказ сорвет покровы или станет настоящим откровением. Хочу поделиться с вами опытом работы с большими приложениями, накопленным разработчиками Островка.
Читать дальше →

DatePalette — фреймверк, создающий UI для работы пользователя с датой в браузере

Время на прочтение2 мин
Охват и читатели5.7K
Дата — крайне неудобная штука для работы с ней в плане создания UI.

Мало того, что она составная (год, месяц, день), и ее компоненты не кратны между собой. Так она еще и довольно велика, но при этом требует претенциозной точности — ввод года рождения в выпадающем списке, если вам больше 8 лет — задача на тренировку силы воли.

Мой (второй) вариант решения проблемы(апдейт)


Для самых нетерпеливых — да, есть функционирующее демо — jsfiddle.net/Meettya/aDAsa/embedded/result

Что это такое и как работает

JSter – все, что нужно для Javascript

Время на прочтение1 мин
Охват и читатели14K
Насколько сложно собрать все Javascript библиотеки в одном месте? Задача, конечно, непростая, у веб-разработчика из солнечной Финляндии Juho Vepsäläinen ушло на это около семи месяцев. Его проект JSWiki содержит более 30 категорий, в которых перечислены самые разнообразные проекты для frontend разработки. Сколько библиотек и утилит там упомянуто посчитать очень трудно. Прежде всего, потому что каталог слабо структурирован и не содержит практически ничего кроме ссылок.

Тем не менее, JSWiki послужила нам отличной базой для нового проекта JSter. Вместе с Juho Vepsäläinen мы разработали самый полный открытый Javascript каталог. В нем уже почти 700 библиотек (в основном open-source) и любой пользователь может дополнить список.
Читать дальше →

Странные глобальные переменные в VK.com, зачем?

Время на прочтение2 мин
Охват и читатели76K
Привет, Хабр!

Долго не мог решить, как это оформить – как вопрос в QA или как пост, в итоге, 4-ый пункт правил оформления вопроса меня насторожил — «содержит в себе действительно вопрос, но не повод для дискуссии.», и я решил это сделать постом.

До сегодняшнего вечера, я считал, что немного разбираюсь в JavaScript, и даже знаю какие-то фишки клиентской оптимизации:
— к примеру, минимизировать и обфусцировать скрипты, склеить их в один файл и позволить закэшировать его браузеру;
— так же я свято верю в то, что нельзя засорять window большим количеством глобальных объектов, это так же может сказаться на производительности и «качестве» (собственно об этом и пойдёт речь)

Не помню, что именно меня натолкнуло на мысль открыть консоль в chrome development tools, находясь на vk.com (куда я к слову очень редко захожу), но назад дороги уже нет…

Сначала я удивился отсутствию jquery. Символ доллара, конечно занят, но совсем не под jQuery, а вот под такую штуку:

function () { var curArgs = Array.prototype.slice.call(arguments); return func.apply(obj, args.concat(curArgs)); }


Попытка достучаться через jQuery тоже ни к чему не привела. Ну ладно, подумал я, они, наверное, как yahoo, написали свой мега крутой framework с блэк-джеком и без jquery. Но я решил убедиться, что в объекте window нет какого-нибудь странного свойства, в которое затисался jQuery (ну может он скрывался бы в window.jqry).

Я написал в консоль window, нажал enter, развернул «дерево», чтобы увидеть список свойств объекта и…
Читать дальше →

Четыре паттерна вызова функций в JavaScript

Время на прочтение6 мин
Охват и читатели46K
Язык JavaScript был представлен как язык функционального программирования. Причина заключается в том, что функции в JS не просто разделяют логику на операционные блоки, функции являются объектами первого класса, способными создавать другие объекты. Подобная зависимость от функций одновременно является как сильной стороной, так и настоящим проклятием этого языка. Сильная сторона заключается в том, что язык, обладая подобными особенностями, становится легковесным и быстрым (каким JavaScript изначально и видели его создатели). Однако если вы не знаете что делаете — однозначно ждите беды.

Я предлагаю посмотреть на паттерны вызова функций, а точнее на то, как значительно изменяется результат в зависимости от выбранного паттерна. Также мы рассмотрим как ведет себя this, в зависимости от способа вызова функции.

Итак, существует четыре пути вызова функций:

  • Вызов метода — Method Invocation
  • Вызов функции — Function Invocation
  • Вызов конструктора — Constructor Invocation
  • Вызов apply и call — Apply And Call Invocation

Читать дальше →

Rivertrail: параллелизм в JavaScript

Время на прочтение6 мин
Охват и читатели18K


Использование возможностей параллелизма в настоящее время стало уже обычной практикой в программировании. Однако все языки можно разделить на два типа: те, в которых параллельность применяется вовсю и активно (например, С), и те, которые не вкусили еще в полной мере радостей многопоточности. К последним, в частности, относится JavaScript. Чтобы восполнить этот досадный пробел и пополнить копилку прогрессивного опыта, предлагаем вашему вниманию перевод сообщения из блога Ника Матсакиса, программиста Mozilla Foundation, в котором он делится первыми личными впечатлениями от использования Rivertrail — инструмента параллелизации в JavaScript, созданным Intel.
Читать дальше →

Thinking Reactively. Meteor JS

Время на прочтение5 мин
Охват и читатели33K
Если вы еще не слышали про meteor, значит вы вообще не следите за миром JavaScript, не интересуетесь вебом и непонятно каким образом сюда попали.
Пусть так.


Читать дальше →

Изучаем jQuery. 2-е изд

Время на прочтение3 мин
Охват и читатели17K
image
Автор: Э. Каслдайн, К. Шарки
Перевод книги: Вадим Черник
Автор рецензии: Алеся Серада (журналист, редактор www.dev.by).
Дата выхода: 23/07/2012


Вот еще одна книга нашего издательства, мимо которой сложно пройти. Если раньше у JavaScript была не очень хорошая репутация, то сейчас наступила новая эра во Всемирной сети для этого языка. Первые ниндзи «Изучаем jQuery» вышли в начале прошлого года и зарекомендовали себя очень положительно (отзывы на ozone.ru). Поэтому мы с радостью летом выпустили обновленное издание «Изучаем jQuery. 2-е изд.». Книгу можно приобрести как в печатном, так и в электронном виде.

Читать дальше →

Meteor 0.5.0: аутентификация, OAuth, SRP

Время на прочтение1 мин
Охват и читатели5.3K
JavaScript-фреймворк для создания одностраничных веб-приложений реального времени Meteor с самого своего появления рождает противоречивые чувства. Мощный пиар, 11 миллионов инвестиций, впечатляющий скринкаст, восторженные отзывы — всё это на фоне очень раннего прототипа с прямым доступом к БД и непривычной архитектурой, вызывающей много вопросов.

Превью-версия 0.5.0 наконец-то содержит полноценные механизмы аутентификации и авторизации — Accounts API и Authentification API, мощный виджет аутентификации со всем функционалом для парольного доступа и мастерами настройки для каждого поддерживаемого OAuth-провайдера (на сегодняшний день это Google, Facebook, Twitter, GitHub и Weibo). В Meteor включена поддержка протокола SRP (Secure Remote Password Protocol), который реализует доказательство с нулевым разглашением, позволяя пользователю аутентифицировать себя, не передавая пароля.


Читать дальше →

Fronteers 2012 — лучшая конференция по клиентской разработке, часть 1

Время на прочтение5 мин
Охват и читатели7.8K


В этом году мне посчастливилось впервые посетить ежегодную (5-ю по счету), конференцию Fronteers #fronteers12, в Амстердаме.

Самая громкая клиент-сайд конференция в Европе, длилась 2 дня, 4-5 октября в стенах необычного кинотеатра Pathé Tuschinski.

Все доклады были на английском языке, в постоянном сопровождении Кристиана Хейлманна. Под катом ссылки на слайды и основные тезисы презентаций первого дня конференции.
Читать дальше →

Видеозапись доклада «Вся соль одностраничных приложений» с 404fest

Время на прочтение2 мин
Охват и читатели18K
Федя Шумов и Арсений Заречнев, фронт-енд разработчики из команды Островка, рассказали о
«Всей соли одностраничных приложений» на 404fest в Самаре.

Содержание доклада:


Читать дальше →

Первый стабильный SDK для Dart

Время на прочтение2 мин
Охват и читатели13K
Разработчики языка программирования Dart отмечают праздник: первый день рождения Dart, а также выход первого стабильного SDK. Новый SDK идёт с быстрой виртуальной машиной Dart VM, которая в некоторых тестах Octane даже превосходит по производительности движок V8 для рендеринга Javascript.

Вместе с SDK под Windows/Mac/Linux выпущен более эффективный транслятор из Dart в Javascript, редактор кода Dart Editor и сборка Chromium с поддержкой Dart (браузер Dartium c Dart VM). Компания Google надеется, что в будущем нативная поддержка Dart появится во всех браузерах.
Читать дальше →

Визуальный редактор ББ кодов для phpBB3

Время на прочтение1 мин
Охват и читатели9.1K
Не так давно я уже писал о визуальном(WYSIWYG) редакторе ББ кодов — WysiBB. С момента написания той статьи было проделано много работы по доработке редактора. WysiBB был переписан с нуля. Изменился внешний вид редактора и самое главное было проделано множество улучшений для более простой и тонкой настройки WysiBB. В частности добавление своих ББ кодов стало намного проще.

Но на этом останавливаться я не был намерен и настало время создания удобного и полноценного мода для форума phpBB3. Почему именно phpBB3? Ну во первых, официальный форум работает именно на этом движке и уже поэтому его легче всего было тестировать, он очень популярен и не имел хорошего WYSIWYG редактора.
Читать дальше →

Ближайшие события

Посылаем сообщения в Notification Center из браузера

Время на прочтение1 мин
Охват и читатели12K
С выходом Mac OSX 10.8 пользователям был представлен «Центр Уведомлений» — Notification Center. Как только вам приходит новая почта или сообщение в Facebook, то вы видите в правом верхнем углу всплывающее окошко с уведомлением об этом. Notification Center идентичен панели уведомлений в iOS.

Используя Notifications API, можно посылать уведомления в Notification Center Mac OSX Mountain Lion из браузера Safari.
Читать дальше →

Создаем подобие шаблонизатора на TypeScript

Время на прочтение5 мин
Охват и читатели11K
Совсем недавно Microsoft представила новый язык программирования TypeScript. Наверняка многим понравилось наличие типизации и плагины для Microsoft Visual Studio и других редакторов. Чтобы оценить насколько полезен язык в разработке, я решил поиграться с ним, написав небольшой код, который поможет в разработке приложений.

Каждый с этим сталкивался


Любой, кто разрабатывал приложения с использованием технологий HTML+js, знает, что очень часто приходится решать задачу шаблонизации данных на представлении. Существуют множество решений: как с использованием фреймворков (раз, два, три, четыре и так далее), так и простые методики, вроде таких:
Читать дальше →

Пишем игру для Samsung SmartTV на JS

Время на прочтение4 мин
Охват и читатели31K
Всем привет. Я по долгу службы занимаюсь разработкой для Samsung SmartTV. В силу того, что на хабре мало статей на эту тему, я решил это исправить. Кому интересна пошаговая инструкция как сделать свой пинг-понг на «умный телик» с распознованием жестов — милости прошу под кат.
Читать дальше →

Об использовании WebKit .NET

Время на прочтение7 мин
Охват и читатели34K

Введение


Связка HTML+CSS+JavaScript на сегодняшний день зарекомендовала себя как универсальный способ построения пользовательских интерфейсов. Причем не только в веб приложениях, но также в десктоп и мобильных приложениях. Примерами тому являются metro-приложения в Windows 8, фреймворк PhoneGap для создания мобильных приложений.

Реализация интерфейса с помощью HTML, CSS и JavaScript прежде всего подразумевает, что интерфейс будет отображаться в некотором браузере. Если мы рассматриваем десктоп или мобильное приложение, то, очевидно, браузер должен быть встраиваемым.

В данной статье мы рассмотрим использование WebKit .NET в десктоп приложении на C# под Windows.

Читать дальше →

[Html 5] SharedWorker: примеры использования

Время на прочтение2 мин
Охват и читатели14K
В Html 5 уже развели целый зоопарк «фич», и, думаю, уже осталось мало людей, которые знают весь «Html 5» полностью. Думаю, меньше процента из вас слышали про некие «SharedWorker»-ы.

Читать дальше →

Загрузка файлов через FileReader

Время на прочтение5 мин
Охват и читатели10K
Зачем я сделал ещё один велосипед?


Работая на одним из текущих проектов опять столкнулся с необходимостью реализации удобной и быстрой загрузки файлов. Привычным жестом расчехлил plupload, но потом задумался.

Про FileAPI я слышал очень давно, на тот момент была проблема с поддержкой в браузерах, в результате чего в любом случае пришлось бы предусматривать альтернативный загрузчик и игра в целом не стоила свеч. Но поскольку в настоящий момент речь шла о загрузчике для бэк-енда сайта, то можно было сузить количество поддерживаемых браузеров и я решил изучить вопрос поглубже.

На Хабре нашлись...

Оптимизируем производительность JavaScript для V8

Время на прочтение6 мин
Охват и читатели28K

Предисловие


Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
Читать дальше →