Ваше мнение важно для нас.
Поделитесь своими предоложениями и пожеланиями.

Материалы по тегу "javascript"

Посты

mingun
6
Доброго времени суток. Сегодня я представляю вашему вниманию последнюю статью из цикла переводов "JavaScript Promises. There and back again." Данная статья содержит исчерпывающее описание API промисов и может служить справочным материалом, как для начинающих фронт-энд разработчиков, так и для тех, кто вполне знаком с концепцией, но еще не привык к нативному интерфейсу промисов. В любом случаи, если вас интересуют JavaScript-промисы, то обратите внимание на эту небольшую статью.
mingun
0
И снова здравствуйте. Сегодня, я представляю вашему вниманию предпоследнюю часть перевода статьи о промисах. В ней речь пойдет не только о них, а и о некоторых других новшествах ES6, в частности о генераторах. И о том, как эти два нововведения работают вместе. Это скорее обзор, чем исчерпывающее руководство, как было в случаи с промисами, но тем не менее, думаю многим это будет интересно.

В следующей статье будет представлено описание API промисов. Ее будет удобно использовать как справочную информацию.

Ну а пока, давайте посмотрим, чем нас могут порадовать генераторы.
mingun
0
Доброго времени суток. Представляю вашему вниманию еще один фрагмент перевода статьи "JavaScript Promises. There and back again." В нем речь пойдет о параллельном и последовательном выполнении Ajax-запросов, и том, как промисы позволяют упростить решение этой задачи. А так же, о том, как правильное распараллеливание запросов улучшает скорость работы клиентской части веб-приложения.
Интересно? Добро пожаловать под кат.
mingun
0
Предыдущая статья посвящалась практике применения промисов, но, при этом, в ней не была рассмотрена очень важная тема - обработка ошибок. Действительно, любое приложение должно корректно обрабатывать исключительные ситуации, и, при необходимости, уведомлять о них пользователя. Об этом и пойдет речь в данной статье. Мы рассмотрим такие ситуации, как отказ промисов, возникновение исключений в процессе выполнения промиса и в коллбеках onFulfilled и onRejected.
mingun
0
С момента публикации второй части перевода прошло довольно много времени. Так что Вам уже, наверняка, не терпится узнать, чем конкретно могут помочь промисы в повседневном JavaScript'е. Как раз об этом и пойдет речь в данном фрагменте перевода. Здесь начнется рассмотрение наиболее распространенной задачи из тех, которых помогают решить промисы. Это задача обработки набора связанных данных, получаемых с помощью нескольких запросов на сервер. В данном случаи, речь пойдет о выводе на экран текста, состоящего из разделов. При чем, необходимо выполнить один запрос, для получения списка URI всех разделов, и по одному запросу, для вычитки каждого параграфа. Хотя, как верно замечено, в исходном тексте постановка задачи несколько искусственна, она все же дает понять о том, как именно промисы позволяют решать подобные этой реальные задачи. Ну что ж, к делу.
mingun
0
Данная статья - продолжение статьи Перевод статьи "JavaScript Promises. There and back again." Часть 1. Вступление. В ней речь пойдет о терминологии принятой для описания состояний JavaScript-промисов, о том, в каких браузерах они поддерживаются, и как обеспечить их поддержку в других браузерах. Так же, в кратце, будут рассмотрены js-библиотеки, обеспечивающие сходную функциональность и степень их совместимости с нативным промисами JavaScript.
В этом фрагменте, рассмотрен простейший пример промиса, который, однако, дает понять, как описываются JavaScript-промисы и каким образом они могут ложиться в дизайн.
Перевод второй части - под катом.
mingun
0
Доброго времени суток. Недавно, в одном из проектов, над которыми я работаю, на клиенсткой части веб-приложения, возникла задача для решения которой, лучше всего подходили JavaScript промисы. Поскольку приложение, на данный момент, рассчитано на работу только в Chrome, то, то, что промисы пока не поддерживаются в половине браузеров не было большой проблемой. Для кросс-браузерности, конечно, лучше было бы использовать jQuery Deferred. Но, поскольку, требования позволяли, решено было попробовать (сравнительно) новые нативные JavaScript промисы. Ну да речь не об этом.

О JavaScript промисах я знал лишь в общих чертах, соответственно пришлось подыскать кое-какую литературу. Среди прочего я почитал вот эту статью "JavaScript Promises. There and back again." на html5rocks и нашел ее весьма познавательной и исчерпывающей. Конечно же, статья была на английском, как и большинство найденной мною информации. Я решил ею поделиться, однако, пришлось учитывать тот факт, что вопреки распространенному мнению, не все программисты в СНГ свободно владеют английским. Да и на родном языке всегда читать приятнее...

Вот так и получилось, что я стал переводить. Публиковать текст я буду по частям, поскольку статья довольно длинная, и перевод требует массу времени. Однако, я планирую выложить всю статью в течении недели (ну, максимум двух).

Представляю Вашему вниманию перевод первой части вышеозначенной статьи. Добро пожаловать под кат.
mingun
0
В предыдущей статье упоминалось свойство __proto__, как я и обещал опишу его в данной статье.

Итак, любой объект в JavaScript имеет свойство __proto__. Это скрытое системное свойство. В некоторых реализациях интерпретатора оно было недоступно и вообще использование его напрямую не рекомендуется. (В прошлой статье это свойство использовалось исключительно с доказательной целью. Требовалось обойти ограничение, в связи с которым не удавалось поменять предка класса в конструкторе последнего.)
mingun
1
JavaScript. Язык клиентской части веб-сайтов. Для большинства разработчиков сайтов, основными задачами решаемыми на JavaScript являются: валидация форм, оправка AJAX-запросов и обработка ответов, визуализация элементов интерфейса с помощью библиотечных функций или специальных плагинов. Зачастую, стандартные веб-сайты не требуют большего от клиентской части, основная работа происходит на сервере. Таким образом подключенный на странице JavaScript в среднем насчитывает до десятка файлов (не считая библиотек и плагинов), каждый из которых включает пять-шесть функций. При таком объеме кода задумываться о какой-либо сложной структуре не имеет смысла.



Однако, некоторые сайты, в особенности веб-приложения, требуют большей автономности клиентской части. Встречаются веб-ресурсы, в которых все элементы управления генерируются JavaScript'ом. Иногда объем клиентской бизнес-логики даже превышает объем серверной. В таких случаях, есть смысл использовать объектно-ориентированный подход. В данной статье, мы не будем рассматривать преимущества и недостатки ООП, цель статьи – показать, как применить практики ООП в JavaScript'е. Итак, начнем:
mingun
1
Доброго времени суток. В последние несколько лет я довольно много работал с JavaScript и открыл для себя много нового и интересного в этом замечательном языке. В связи с этим, я решил написать небольшой цикл статей, в котором будут освещены некоторые детали языка JavaScript, а так же сопутствующие технологии. Надеюсь, что эти статьи будут полезны как начинающим, так и опытным JavaScript-разработчикам.
macoed
0
Сегодня я решил написать о jsTestDriver. jsTestDriver это фреймворк для написания модульных тестов на JavaScript.

Начнем с простого – с мотивации. Многие программисты скажут: ”Зачем мне вообще писать эти тесты?” Причем стоит признать, что зачастую они так не потому, что не знают зачем, а потому что им лень тратить время на подобные действия.

Действительно, писать тесты, которые покрывают все возможные случаи для каждого метода – это длительная и кропотливая работа. Но, как писал Мартин Фаулер, лучше пусть у меня будут тесты, которые не покрывают весь функционал, чем вообще не будет тестов. Давайте же выясним, почему он так говорил? Зачем нам писать тесты? Ответ прост: для того чтоб находить ошибки (логично да?). А если конкретнее, для того чтоб узнавать, что что-то поломалось, как только это произошло. Во-первых, тесты необходимы при рефакторинге: на данный момент в большинстве современных IDE есть специальные инструменты для рефакторинга, они сводят количество ошибок к минимуму, но тесты все же дают дополнительные гарантии. Во-вторых, регрессия: если структура приложения сложная, и связанность между компонентами высокая, могут возникать ситуации, когда, исправляя один баг, мы создаем другой. В таких ситуациях тесты помогают вовремя выявить связанность и не допустить появления нового бага. Главное не забывать запускать тесты после каждого изменения. Для этого запуск тестов должен быть простым и быстрым, а результаты понятными. Как результат мы тратим меньше времени на багфиксы, что и является нашей целью.

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

Вопросы и ответы

ИТ-цитата
"С позволяет Вам с легкостью выстрелить себе в лодыжку. В С++ это сложнее, но если Вам удастся, то оторвет всю ногу."
Бьёрн Страуструп