Блог Makeomatic: разработка сайтов и мобильных приложений

2014

Совместное использование модулей между NodeJS и AngularJS

| Категории: Node.js, AngularJS
Анна Аминева

Иллюстрация блокнота
Gist: https://gist.github.com/sevcsik/9207267

Они говорят, что одно из преимуществ в NodeJs в том, что вы работаете с один языком как в бэкэнде, так и во фронтэнде, поэтому проще использовать один и тот же код между ними. В теории звучит классно, но на практике синхронная обработка зависимостей в Node.js работает совершенно не так, как в любом клиентском фреймворке (они асинхронны).

Angular.JS: внедрение фильтра в контроллер

| Категории: AngularJS
Анна Аминева

Иллюстрация блокнота

Предположим вы переработали функцию, находящуюся в $scope в фильтр:

1
2
3
4
5
6
7
8
9
10
/// Counts char number excluding spaces. Three dots count as one.
// TODO: refactor text transformation in a separate filter
editor.filter("numChar", function() {
return function(theText) {
return theText
.replace(/\n/g, "")
.replace(/\.\.\./g,"\u2026")
.length;
};
});

Введение в алгоритмы индексации поисковых машин

Нужно понимать и соблюдать

| Категории: SEO
Анна Аминева

О чем подумать перед оптимизацией ресурса

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

Поисковые машины проходят огромнейший путь, чтобы найти информацию по нужному запросу. Они исследует не весь Интернет, а в пределах собственной базы данных, которая постоянно обновляет информацию. В Интернет сети находится несчитанное множество информации, где кол-во веб страниц превышает кол-во данных о них.
Поисковые алгоритмы имеют индивидуальную структуру данных. К примеру: один и тот же запрос в Google и Яндекс выдаст абсолютно разные результаты. Стоит отметить, что некоторые из поисковых машин используют алгоритмы успешных конкурентов. mail.ru тоже не исключение. Доволен базой данных от Google, добавляя свои изменения и корректировки.

Таким образом, поисковые машины основываются на построение индивидуальной структуры базы, которая выдает результаты максимально соответствующие заданному запросу.

“Безопасный” $apply в AngularJS

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Если вы частенько натыкаетесь на $apply already in progress, пока работаете с ангуляром (я замечаю, что чаще всего с этим сталкиваюсь, когда внедряю сторонние плагины, которые вызывают большое количество DOM событий), то вы можете использовать сервис safeApply для проверки текущей фазы обработки в ангуляре, непосредственно перед выполнением вашей функции. Я обычно патчу $scope объект основного контроллера, а Angular распространяет мои изменения в остальные части приложения за меня:

Шаблон проектирования Одиночка (Singleton) в Objective-C (с ARC)

| Категории: Objective-C
Анна Аминева

Иллюстрация блокнота

В прошлом году я выучил насколько важными могут быть синглтоны в песочнице IOS. Чаще всего такие объекты могут без проблем создаваться и использоваться в глобальной области видимости (во всяком случае, большую часть времени). И после того как я понял, что для работы с моделями данных я могу использовать именно синглтоны, я решил изучить как Apple применяет низкоуровневые блоки кода для создания единственного экземпляра класса.

Улучшение логирования в AngularJS с помощью декораторов

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Давайте выясним как использовать Декораторы (Decorators) для улучшения логирования в AngularJS и придания суперсил $log сервису. AngularJS имеет отличную скрытую возможность - $provider.decorator(). Она позволяет разработчикам перехватывать выполнение вызовов к сервисам и убирать, контролировать или изменять возможности этих сервисов. Возможность декорирования была спрятана не специально… скорее она затерялась среди других отличных возможностей AngularJS. В этой статье я представлю Decorator и покажу как постепенно добавлять функциональность к $log сервису… при этом практически не меняя созданные вами сервисы и контроллеры.