Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 12, 2014 15:15:54

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Angular Light

Юнит-тесты или функциональные?

Я в aLight делаю (юнит-тесты/полу-функциональные), создаю DocFragment, биндю, проверяю результат: https://bitbucket.org/lega911/alight/src/8bc21212ac926ed53f656e07d9ae0e322b5d3c1c/test/test_core.coffee?at=default#cl-146

Я думаю это вопрос не к angular, а вообще к тестированию веб-приложений. В инете сервисов и инструментов для этого полно. Если вы приведете пример, то можно что-нибудь придумать, хотя я не спец. по тестированию клиентской части.

Я в Angular Light поэтому и не сделал таки вещи как routing, service, testing и пр. т.к. уже много готовых решений для этого.

Отредактировано o7412369815963 (Фев. 12, 2014 15:16:25)

Офлайн

#2 Фев. 15, 2014 14:26:58

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Angular Light

o7412369815963
Мне сегодня пришла в голову одна мысль, трансформировавшаяся в вопрос:
какие средства есть aLight для SEO-оптимизации и юзабилити?

Речь идет, например, об изменении URL, вставке ссылок rel=“next” и rel=“prev”, bread crumbs, canonical URLs…



Офлайн

#3 Фев. 15, 2014 22:03:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Angular Light

Думаю что никаких.
Для изменения URL я юзал jQuery router (есть не менее 10 реализаций), где-то использую history.pushState + $(window).on('popstate', )

Lexander
вставке ссылок rel=“next” и rel=“prev”, bread crumbs, canonical URLs…
Тут не понял как может помочь фреймворк.

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

Офлайн

#4 Фев. 16, 2014 00:42:12

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Angular Light

o7412369815963
Тут не понял как может помочь фреймворк.
Судя по
o7412369815963
Для изменения URL я юзал jQuery router…
скорее всего, никак.

Речь о том, чтобы при подгрузке новых/изменившихся данных отражать эти изменения в навигации.
Пример: внутри страницы есть отзывы, которые тоже многостраничны - используем rel=“next” и rel=“prev”.

Или смена языка или валюты в блоках страницы на лету.
В этом случае нужно генерировать ссылки canonical и alternate.

Операции эти достаточно шаблонны сами по себе, поэтому им может найтись место aLight.
А можно и ручками все делать, конечно.



Отредактировано Lexander (Фев. 16, 2014 00:42:55)

Офлайн

#5 Фев. 16, 2014 19:46:16

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Angular Light

Lexander
Речь о том, чтобы при подгрузке новых/изменившихся данных отражать эти изменения в навигации.
Пример: внутри страницы есть отзывы, которые тоже многостраничны - используем rel=“next” и rel=“prev”.
Насколько я понял, это нужно для поисковых ботов, но они не ходят по ajax, и то что мы rel пропишем, они не увидят. Только если мы сами, каким-нибудь PhantomJS, будем грабить свой сайт для ботов.

Lexander
Операции эти достаточно шаблонны сами по себе, поэтому им может найтись место aLight.
Как могло бы выглядеть “апи”?
seo.canonical.href = 'http://www.example.com/{{lang}}/product.php?item=norvejskaya-ryba';
seo.canonical.lang = 'ru';

Отредактировано o7412369815963 (Фев. 16, 2014 19:47:02)

Офлайн

#6 Фев. 16, 2014 21:49:04

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Angular Light

o7412369815963
Насколько я понял, это нужно для поисковых ботов, но они не ходят по ajax, и то что мы rel пропишем, они не увидят.
Эти вещи отслеживаются скриптами Гугл аналитики.
О парсинге роботами динамических сайтов пока ходят только слухи, мол работает в тестовом режиме.
Отслеживает ли подобное Яндекс я не знаю, этой информации у меня еще нет.

Кроме того, данные о факте изменении страницы можно самому посылать поисковику в реальном времени. Получили новый отзыв, запостили его клиентам и отослали сразу данные об изменении в Гугл или Яндекс через их API.
Такие часто обновляющиеся сайты поисковики любят, ранжируют их выше и чаще сканируют.
Это довольно дорогая штука, требует кропотливой работы, но отдельные виды сайтов, например, новостные обходится без нее не могут.

o7412369815963
Как могло бы выглядеть “апи”?
И массив alternate для других языков, валют, геолокаций, фильтров или сортировок пользователя.
Последние 2 - если используется серверная сортировка и фильтрация, конечно. И массив для фильтров и сортировок, в этом случае наверное не нужен, т.к. кол-во вариантов таких страниц может быть достаточно большим.

Говоря языком требований:
важно, чтобы aLigth понимал сам (на основе настроек и/или флагов в получаемом массиве данных) как автоматически модифицировать шаблон/страницу в зависимости от признака данных без ручного внесения в сам шаблон/страницу.
Т.е. делал бы ровно то же, что делается на серверной стороне при обычном (серверном) способе генерации страницы.

Кстати, еще одна мысль, связанная с тем же seo.
Сейчас стандартизированы шаблоны микроразметки.
Они вовсю используются поисковиками.
Почему бы для aLight не сделать синтаксический сахар, надстройку и набор предустановленных шаблонов (типа gist), которая позволяла бы быстро и удобно разработчику использовать гарантированно валидные снипеты, наполняя их своими данными.
Думаю, такая внимательность к потребностям разработчиков может послужить хорошим отзывам об aLight и его распространению, популярности. Приходит на ум аналогия с Джанго-батарейками.
Что вы об этом думаете?

PS
В любом случае такие вещи не нужно включать в ядро.
Это именно вкусности, надстройки.
Можно ли построить на этом бизнес (с помощью модели: плюшки за доп. плату) - пока сказать не могу, надо подумать. Нужен более глубокий анализ.
Деньги то в нише есть, вопрос в реально работающей защищенной бизнес-модели.



Офлайн

#7 Фев. 17, 2014 23:22:51

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Angular Light

Lexander
Сейчас стандартизированы шаблоны микроразметки.
Они тоже гугл аналитикой отслеживаются? Я привык такие вещи на стороне сервера делать. Опять же что если гугл аналитика не подключена или поисковик - Яндекс?

Спасибо за советы, добавил в список идей. Разные “gist”-ы в планах есть.

На днях ещё идея появилась, т.к. в aLight можно сделать “lazyload” директив, то можно сделать библиотеку таких “компонент” без подключения ресурсов, например нужен select2 или datepicker, пишем просто <dyn-select2 data=“list” />, нужные файлы сам подъедут. Хотя полезность под сомнением.
Пример с datetime-picker там ещё в директиве можно включить shadowDom: true, только при этом, у меня, стили что-то ломаются.

Офлайн

#8 Фев. 18, 2014 00:34:32

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Angular Light

Конечно, сейчас нужно ориентироваться в первую очередь на серверную реализацию.
Вообще, о микроразметке я писал применительно к gist.
Что Гугле, что в Яндексе можно программисту отправлять свои события в аналитику и это дает seo-бонус сайту.
Вопрос только том, захочет ли отдельно взятый программист это делать и насколько ему это будет удобно реализовывать.

o7412369815963
Опять же что если гугл аналитика не подключена или поисковик - Яндекс?
Если в Яндексе включен Вэбвизор, то отслеживаются любые (почти любые, там вроде было раньше несколько ограничений типа flash) действия пользователя (в том числе приведшие к изменениям страницы) на странице.

o7412369815963
<dyn-select2 data=“list” />
В html5 для этого есть готовые средства, может быть лучше задействовать их?
<input name="blabla" list="sourcename" />
Для заполнения подгрузить нужно
<datalist id="sourcename">
  <option>25</option>
  <option>50</option>
  <option>100</option>
</datalist>
или
<datalist id="sourcename">
  <option value="25">Четвертак</option>
  <option value="50">Полтинник</option>
  <option value="100">Сотка</option>
</datalist>
Списки привел в чистом виде, для поддержки старых браузеров, понятно, они чуть поменяются.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version