Javascript.RU

Моя библиотека cPcre для работы с регулярными выражениями.

Решил написать нечто большое, полезное и потолковее...
Терпеливо снабжал комментариями и jsdoc.
Но должен сказать до совершенства так и не дотянул - нет полноценной реализации поиска назад, может потом сделаю.
Несмотря на это кода получилось более чем на 100 кбайт.
И вот что получилось...
...Может пригодится кому...- смотрите, кому не лень.
Буду благодарен дельным отзывам, еще я хочу эту штуку разместить
куда-нибудь во всеобщее свободное программистское достояние
(наподобие pear для php, есть ли сайт для javascript? ответьте если знаете).
Понимаю что возможно для этого формат оформления надо будет поменять.

Прикрепленный файлРазмер
pcre2.js_.txt101.83 кб
+3

Автор: kobezzza, дата: 16 мая, 2011 - 13:32
#permalink

После сжатия гуглом 9 килобайт вес (с гзипом 3)), а можно узнать практическое применение? Прост, у мя никогда не было проблем с чистыми регулярками и пока в голову не приходит зачем нужна эта либа, НО я могу ошибаться, так что без обид)


Автор: mister_maxim, дата: 23 мая, 2011 - 20:11
#permalink

Честно говоря вы правы, именно _практической пользы не так уж и много, сам пока её не использую в силу такого размера. Более того сам попрактиковавшись с регулярными выражениями на яваскрипте, внутренне понял, что меня, как и вас и так всё устраивает. Зато вначале, когда изучал после пхп и узнавал о недостатках реализации на яваскрипт - руки чесались их исправить, так и появилась данная библиотека.

Главное в чём я вижу здесь практичность(если было бы нативно):
1.возможность делать многостроковое регулярное выражение с комментариями. (оно же может быть сильно сложным, а значит и нечитабельным, это аналог модификатору /x на пхп).
2.производить поиск назад.(там написаны плюсы и минусы).
3.встроен цикл обработки по exec - своего рода итератор.
Кстати, если нужны только эти три возможности, то код можно урезать больше чем на половину.

Тут больше теоретической пользы (как фундаментальная наука),
1.гвоздь библиотеки - вычисление позиций карманов, нативный код в javascript его не выдаёт, а пхп зато может.
2.Еще есть принципиальный метод setReadOnly он устанавливает почему то нативно не устанавливаемые динамически свойства объекта RegExp, точнее создает новый RegExp сохраняя все старые свойства что в прежнем и меняя ли явно указанные.
3.Кроме того намечены определенные идеологии(например группировка аргументов) как плод моего творческого мышления.
4.Библиотека возможно послужит фундаментом для дальнейшего своего развития - а именно для полноценной реализации поиска назад.

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


Автор: B@rmaley.e><e, дата: 29 июня, 2011 - 19:07
#permalink

Комментарии - это, конечно, хорошо, но

«The main contributor to code-level documentation isn't comments, but good programming style. Style includes good program structure, use of straightforward and easily understandable approaches, good variable names, good routine names, use of named constants instead of literals, clear layout, and minimization of control-flow and data-structure complexity» (c) Steve !McConnell

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


Автор: mister_maxim, дата: 5 августа, 2011 - 16:10
#permalink

Благодарю за отзыв.

Мне на прошлой работе тоже делали замечания по поводу переменных,
Вот я только не пойму, как правильно называть переменные?
Я лично называю на свой вкус и лад, стараюсь давать названия по английски,
а если не знаю - то на русском (транслит). Приходится сокращать имена, а
как сокращать чтобы было понятно не только мне - я не знаю. Например в ассемблере тоже малопонятные сокращения регистров, например ах - кто бы догадался что первая буква a означает аккумулятор, а в сх означает
counter- счетчик, поэтому и решил что сокращения в программировании - приемлемы.

Насчёт пробелов между операторами - я сам не понимаю - зачем они нужны,
мне и так прекрасно читается. Наверное потому что так принято многими - и стоит так делать.

А для вас код страшен только из за этих двух особенностей: мало пробелов и малопонятные сокращения?.. или скажете еще почему?


Автор: devote, дата: 6 августа, 2011 - 01:16
#permalink

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


Автор: B@rmaley.e><e, дата: 6 августа, 2011 - 14:36
#permalink

Ещё меня смущает то, что весь код в приложенном файле сдвинут на 5 табов.
Из-за отсутствия пробелов и пустых линий между блоками кода создается впечатление монолитного куска кода, у которого непонятно, где начало, а где конец, и какая часть за что отвечает (хотя комменты спасают, но визуально они не помогают).

Касательно именования переменных - называйте английскими словами. Т.е., например в
var sk=ar[i];//массив скобки
var pos=sk[0];//позиция скобки.
sk заменить на brackets, а pos, скажем, на bracketPositions. Называть переменные по русски транслитом не надо. Лучше посмотрите в словаре, как пишется нужное слово, или используйте синоним к нему.
Можете также посмотреть на код крупных опенсорсных продуктов (библиотек, например) и их схемы именования.


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 03:18
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 11:56
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
5 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Другие записи этого автора
mister_maxim
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum