Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2009, 21:27
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Эксперимент
Вздумалось мне провести один эксперимент, связанный с разработкой одного маленького проекта на JavaScript.

Суть эксперимента в том, что разработка будет вестись открыто, причем настолько открыто, что абсолютно любой желающий может ввести правки и комментарии в исходные коды в режиме "realtime".

Это будет обеспечиваться сервисом EtherPad, который, кроме всех прочих прелестей, поддерживает подсветку синтаксиса языка JavaScript.

Сама разработка будет происходить по адресу http://etherpad.com/seek. Там, в режиме realtime, будут вводится правки и разрабатываться код.

Любой желающий может выбрать себе имя, редактировать содержание и даже сохранить свою правку. Справа есть внутренний чат, в котором можно общаться с тем, кто в данный момент просматривает/редактирует страницу.

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

Если вы хотите внести правку или замечание - напишите комментарий прямо в коде, с обязательным указанием ника, в формате:
/**
 * paranichev: какой-то комментарий.
 */

Если какое-то место уже прокомментировано, сделайте пустую строку и начните свой комментарий, если вы хотите внести к нему поправку/замечание.

Общие замечания лучше оставлять в комментарии в самом начале скрипта, чтоб было заметнее. Если поправили код и сохранили правку - отпишитесь и там, кстати, желательно правкам тоже давать осмысленные названия. И сохраняйте, пожалуйста, хронологический порядок правок и комментариев.

Итак, о самом проекте. Я решил написать простейший движок CSS-селекторов, которые будут даже не CSS1 совместимы: поддерживаются только селекторы по имени тега, идентификатору и имени класса, причем только в одном направлении (без конструкций "+", "<").

Скрипт должен работать кросс-браузерно, причем использовать возможности querySelector и XPath, если они доступны в браузере пользователя. Размер конечного скрипта должен быть меньше 5 Кб.

Теперь о тестировании. Чтобы разработка не ушла в дебри, весь скрипт будет покрыт тестами, которых, правда, пока что — нету. Но уже есть небольшая библиотека в приложении к этому сообщению.

Если есть желание предложить какой-то тестовый случай, то файл с тестами будет находится тут — http://etherpad.com/seek-tests. Можно вносить правки и комментарии, как и в случае самого скрипта.

В файл lib/seek.js (из приложения) нужно будет скопировать содержание скрипта seek, в файл tests/seekTests.jsсодержание тестов, по ходу изменеий этих файлов.

Если у вас есть возможность запустить тесты, то отпишите в комментариях к скрипту seek (если таких комментариев там еще нет), что "в таком-то браузере провалились такие-то тесты". Это поможет сохранить кросс-браузерность и тестировать переписанный код.

Как идея? Если что-то из этого выйдет, все участники будут упомянуты в "special thanks" или в копирайтах, в зависимости от общего количества участия. Лицензия будет свободная.

Добавлено:
Подсветку включать в блоке справа "options", самая последняя галочка "highlight JavaScript syntax".
Вложения:
Тип файла: zip tests.zip (3.0 Кб, 2 просмотров)

Последний раз редактировалось Андрей Параничев, 17.03.2009 в 00:23. Причина: Убрал баг в IE в тестах
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2009, 21:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я, конечно, покажусь занудой, но я ни один скрипт не пишу, не ответив на этот вопрос: а зачем? Не эксперимент зачем, а скрипт этот зачем?
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2009, 21:36
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Kolyaj,
Вопрос "зачем?" может привести в ловушку полной инертности и безыдейности. Но в данном случае ответ "потому что интересно".
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2009, 21:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Это типа то, что я делаю в свободное от всего остального время.
Ответить с цитированием
  #5 (permalink)  
Старый 16.03.2009, 21:57
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Kolyaj,
А зачем тебе все это делать?

Добавлено:
Блин, EtherPad упал.

Последний раз редактировалось Андрей Параничев, 16.03.2009 в 22:03.
Ответить с цитированием
  #6 (permalink)  
Старый 16.03.2009, 22:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Андрей Параничев
А зачем тебе все это делать?
Большинство имеют практическую цель, хотя и в основном для себя. Некоторые отчасти для самообразования. Но совсем без практических целей нет.
Вот возьмем, например, твою идею. У нее нет аудитории. Те, кто заботится о размерах и производительности скрипта, используют свое или не используют селекторы вообще. Остальные же возьмут jQuery.
Вобщем, как говорит один из сотрудников самизнаетекого, за идею 5, за реализацию 3. ИМХО, разумеется.
Ответить с цитированием
  #7 (permalink)  
Старый 16.03.2009, 23:31
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Kolyaj,
Ну по крайней мере я сам буду пользоваться, а вообще, практической цели изначально не было. Мне просто не пришло ничего другого в голову, когда я подумал о разработке в таком формате. Все более сложное — слишком сложно, более простое — слишком просто.
Ответить с цитированием
  #8 (permalink)  
Старый 17.03.2009, 07:40
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
Все более сложное — слишком сложно, более простое — слишком просто
улыбнуло
Ответить с цитированием
  #9 (permalink)  
Старый 17.03.2009, 08:11
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Андрей Параничев,
буду следить
Ответить с цитированием
  #10 (permalink)  
Старый 17.03.2009, 16:59
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

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

Например, для меня явилось откровением, что querySelector избавляет от пересечений в результатах. Если у нас несколько селекторов, перечисленных через запятую, возвращают один и тот же элемент, то в результатах он появится только первый раз.

Поскольку эмуляция этого поведения будет довольно требовательной к ресурсам, похоже, придется убить это умение в querySelector.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Причесал" скриптик, а он в Опере не пошел Mitrandir Events/DOM/Window 18 05.10.2008 11:43