metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-03-31 12:27 pm

О чтении и понимании

Нужно обмениваться данными с другой программой. Сделал для ее разработчиков документ с описанием формата на базе CSV, в котором есть такие строки:

"дата - формат dd.mm.yyyy, с выводом незначащих нулей."

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

Присылают файл с такими строками:
"10780;11077112;31.03.2009;1.04.2009;1014"

Вопрос, что я объяснил не так?

[identity profile] dizel-by.livejournal.com 2009-03-31 09:35 am (UTC)(link)
Мысли разработчиков: "да чё он там выпендривается? распарсит он любой вывод, а нам бы сдать побыстрее, чтобы хоть чуть-чуть похоже было"

[identity profile] metaclass.livejournal.com 2009-03-31 09:53 am (UTC)(link)
Это понятно, что я то разберу то, что они прислали, но я как бы специально во избежание лишних проблем(т.е. чрезмерно интеллектуального кода) с анализом файла протокол им прислал.
Там и так логика импорта занимать будет 1/10 от кода "защиты от дурака".

[identity profile] guamoka.livejournal.com 2009-03-31 09:44 am (UTC)(link)
Может быть, не привел пример, что должно быть 01.04.2009 (а не 1.04.2009/1.4.09 и т.д.), если ты об этом?

[identity profile] guamoka.livejournal.com 2009-03-31 09:55 am (UTC)(link)
Ну и да. Пример строк с граничными условиями

строка с пустым последним полем: "10780;11077112;31.03.2009;01.04.2009;1014;"
строка с двумя пустыми полями посередине: "10780;;;01.04.2009;1014;123"

и т.д.

[identity profile] metaclass.livejournal.com 2009-03-31 09:55 am (UTC)(link)
Да, надо было указать. Хотя, что удивительно - там где есть время, они его выводят с незначащими нулями.

[identity profile] familom.livejournal.com 2009-03-31 09:44 am (UTC)(link)
Я думаю, стОило еще пример строки добавить.

[identity profile] potan.livejournal.com 2009-03-31 09:54 am (UTC)(link)
Начинаю понимать, зачем XML придумали...

[identity profile] aamonster.livejournal.com 2009-03-31 10:02 am (UTC)(link)
Это начальная стадия овладения xml.
Следующая - когда начинаете удивляться, зачем xml придумали.

[identity profile] henu3detb.livejournal.com 2009-03-31 10:12 am (UTC)(link)
А что может быть лучше XML для обмена данными со _сторонними_ приложениями, написанными в другой организации другими людьми? Как раз тут веб-сервисы уместны.

[identity profile] metaclass.livejournal.com 2009-03-31 10:34 am (UTC)(link)
Какой xml, какие веб-сервисы, там прога под DOS, на паскале и btrieve. :)

[identity profile] aamonster.livejournal.com 2009-03-31 10:54 am (UTC)(link)
Если не нужна "читабельность" данных - вариации TLV (хотя бы Google Protocol Buffers).

Если нужна - JSON (привет веб-сервисам), YAML.

Да, кстати - названные мной форматы по большому счету изоморфны XML.

[identity profile] aamonster.livejournal.com 2009-03-31 10:58 am (UTC)(link)
Ну а для конкретных случаев, когда не требуется вся гибкость xml-подобной хрени - более простые форматы.
К примеру, NMEA-0183 (GPS) - отнюдь не на основе XML, и не вижу смысла в замене его на xml-формат.

[identity profile] henu3detb.livejournal.com 2009-03-31 11:30 am (UTC)(link)
Это все понятно. Я просто считаю, что заморачиваться с этими форматами имеет смысл в рамках одной организации, для ремоутинга. А для взаимодействия с хрензнаетчем и хрензнаетгде и хрензнаеткемнаписанном лучше более распространенные форматы, поддерживаемые почти всеми платформами. Но это на самом деле все неважно уже, в свете того написал metaclass.

[identity profile] potan.livejournal.com 2009-03-31 01:30 pm (UTC)(link)
S-выражения.

[identity profile] potan.livejournal.com 2009-03-31 11:00 am (UTC)(link)
Удивляюсь я уже давно.

[identity profile] vp.livejournal.com 2009-03-31 10:03 am (UTC)(link)
ачтоэтотакое?

метакласс не написал, что "экпорт будет из НИИ", там таких слов не слышали.

[identity profile] guamoka.livejournal.com 2009-03-31 10:13 am (UTC)(link)

там таких слов не слышали


обычно все гораздо хуже. у них там СВОЙ xml:)

[identity profile] sergiej.livejournal.com 2009-03-31 11:20 am (UTC)(link)
А потом будет ответ как я однажды получил: "а что у вас в XML важен порядок полей?!?!?!"

[identity profile] vp.livejournal.com 2009-03-31 12:14 pm (UTC)(link)
а что, важен? :)

[identity profile] sergiej.livejournal.com 2009-03-31 12:31 pm (UTC)(link)
:) ну если прописано через ","
<!ELEMENT чел (возраст, рост, пол)>
если пол будет перед ростом, то файл невалидный.

[identity profile] metaclass.livejournal.com 2009-03-31 12:50 pm (UTC)(link)
Херассе забабоны.
А какой смысл могут нести такие ограничения, если при обработке все равно элементы по имени искать придется?

(no subject)

[identity profile] vp.livejournal.com - 2009-03-31 12:53 (UTC) - Expand

(no subject)

[identity profile] volodymir-k.livejournal.com - 2009-03-31 13:39 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-03-31 14:15 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-03-31 14:21 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-03-31 14:41 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-03-31 15:05 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-03-31 15:12 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-03-31 15:22 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-03-31 15:26 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-03-31 18:08 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 09:29 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-04-01 10:39 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-04-01 10:48 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 10:56 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-04-01 11:02 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 11:03 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-04-01 11:16 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 11:22 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 10:53 (UTC) - Expand

(no subject)

[identity profile] volodymir-k.livejournal.com - 2009-04-02 21:10 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-03-31 14:55 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-03-31 15:08 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 08:38 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 08:44 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 09:18 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 09:51 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2009-04-01 10:15 (UTC) - Expand

[identity profile] aamonster.livejournal.com 2009-03-31 09:59 am (UTC)(link)
Ну, про примеры - уже сказали.
А основное - забыли, что работаете с нормальными живыми людьми, и если они делают что-то не так - надо не удивляться этому, а указать им на ошибки.
Тут, кстати, стоит по возможности сделать именно это, а не решить проблему со своей стороны - просто для того, чтобы соответствовало документации (а то потом могут быть проблемы с поддержкой... а правка документации - отдельный разговор).

[identity profile] metaclass.livejournal.com 2009-03-31 10:03 am (UTC)(link)
Это зависит от того, с кем работать. С другой стороны люди, которые воспримут указание на ошибки, как издевательство над ними.

[identity profile] aamonster.livejournal.com 2009-03-31 10:59 am (UTC)(link)
Угу. Учить психологию, изучать собеседников, учиться с ними работать. Чай, не сферические кони в вакууме =)

[identity profile] sergiej.livejournal.com 2009-03-31 11:21 am (UTC)(link)
Я такое без дальнейших комментариев отфутболиваю с припиской: "просьба сделать согласно документации"