Вздумалось мне провести один эксперимент, связанный с разработкой одного маленького проекта на 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".