The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Доступна отказоустойчивая СУБД CockroachDB 1.1"
Отправлено Ordu, 15-Окт-17 14:02 
> триста (ну ладно, полтораста за вычетом комментариев) строк кода

Парсящие регекспы согласно RFC, корректно обрабатывающие комментарии в csv, генерирующие гораздо более осмысленные и информативные ошибки, в случае некорректности CSV. Сопровождённые комментариями, то есть отладка кода или привнесение в него новых возможностей возможны без переписывания всего кода заново.

> использующих полмиллиона из других модулей

Регекспы используют libpcre или, иногда, какую-нибудь альтернативу. Сколько там строк в libpcre если посчитать с зависимостями? Ты _их_ проверифицировал?

> самому вручную реализовывать конечный автомат по одному символу, а потом еще спотыкаться о битые файлы отдельно - очень не хотелось бы

Регекспы, спотыкаясь о битые файлы, ведут себя гораздо более непредсказуемо. Отлаживать регекспы, с тем чтобы они корректно вели себя на некорректно сформированных данных -- это просто самоубийство. А ведь ещё хочется, чтобы парсер указывал на ошибку и пояснял, в чём она состоит -- если он не делает этого, то выходит очень весело, когда я выдрал откуда-то данные, засунул в парсер, а парсер сфейлился сказав лишь "Incorrectly formed data". Как я могу отладить после этого свой код, генерящий csv? Просматривать полмиллиона строк csv глазами в поисках ошибки? Разбивать этот кусок данных на отдельные строки, и смотреть на какой из них сфейлится парсер? А если в этой строке несколько сотен отдельных записей?
Я на своём опыте знаю, чем заканчиваются подобные истории с парсерами на регекспах -- мне приходится отлаживать сразу и регексп, и csv, и исходные данные из которых csv генерируется, и генератор csv. Отлаживать только для того, чтобы понять в каком месте возникает ошибка.

> самому вручную реализовывать конечный автомат по одному символу

Зачем самому? Есть готовый код на github'е. Если тебе неинтересно реализовывать конечные автоматы, то есть люди, которым это интересно. Я, например, всегда с удовольствием. Я всегда выискиваю причины, по которым тот или иной регексп следовало бы заменить на самостоятельную реализацию, потому что если причины есть, то можно наслаждаться написанием конечного автомата, с осознанием того, что я не бесцельной мастурбацией занимаюсь, а делаю полезное дело.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру