Как вы яхту назовете, так она и поплывет
Sep. 24th, 2021 01:34 pmРазбираю тут потроха не имеющей аналогов терраформовской кодобазы.
ТОННЫ ДИЧАЙШЕГО ХАРДКОДА.
При этом в лучшем случае абаснуй примерно такой: "Ну это у кого-то когда-то работало, а дальше все копипастили, не задумываясь". В худшем случае нет и этого.
Ну его нахер, ребята, так работать. Но именно так и работаем, потому что человека, который что-то понимает в программировании не на уровне кричания лозунгов DRY, KISS и так далее, а на уровне понимания их, найти сложно. А товарища, который под этими лозунгами будет бездумно копипастить (в кодовой базе около трехсот "почти одинаковых" файлов, из которых выделяется несколько кластеров одного размера, но есть и десятка три "снежинок"), найти очень просто.
Ну и еще. Любой вспомогательный скрипт, с моей точки зрения, должен выдавать машиночитаемый формат. Либо CSV/TSV/DSV, который awk-ается, либо JSON/YAML/TOML/XML (последнее, конечно, не нужно, но можно), который парсится тем же питоном (или jq для адептов баша) и кем только ни. При этом в идеале надо бы выдавать объект языка Х, который только в самом конце превращать в текст, чтобы желающий на том же языке привязаться не извращался конструкциями вида json.loads(json.dumps()). Желающий красивого вывода может написать обертку этого дела с форматированием - классическое отделение данных от представления.
Но нет. Только человекочитаемый вывод в формате, который **нешься парсить, не говоря за грепать.
Радует только одно. Сегодня тяпница, и эликсир узбагоения уже ждет.
ТОННЫ ДИЧАЙШЕГО ХАРДКОДА.
При этом в лучшем случае абаснуй примерно такой: "Ну это у кого-то когда-то работало, а дальше все копипастили, не задумываясь". В худшем случае нет и этого.
Ну его нахер, ребята, так работать. Но именно так и работаем, потому что человека, который что-то понимает в программировании не на уровне кричания лозунгов DRY, KISS и так далее, а на уровне понимания их, найти сложно. А товарища, который под этими лозунгами будет бездумно копипастить (в кодовой базе около трехсот "почти одинаковых" файлов, из которых выделяется несколько кластеров одного размера, но есть и десятка три "снежинок"), найти очень просто.
Ну и еще. Любой вспомогательный скрипт, с моей точки зрения, должен выдавать машиночитаемый формат. Либо CSV/TSV/DSV, который awk-ается, либо JSON/YAML/TOML/XML (последнее, конечно, не нужно, но можно), который парсится тем же питоном (или jq для адептов баша) и кем только ни. При этом в идеале надо бы выдавать объект языка Х, который только в самом конце превращать в текст, чтобы желающий на том же языке привязаться не извращался конструкциями вида json.loads(json.dumps()). Желающий красивого вывода может написать обертку этого дела с форматированием - классическое отделение данных от представления.
Но нет. Только человекочитаемый вывод в формате, который **нешься парсить, не говоря за грепать.
Радует только одно. Сегодня тяпница, и эликсир узбагоения уже ждет.
(no subject)
Date: 2021-09-24 01:47 pm (UTC)У меня такое ощущение, что искусство программирования потеряло вообще свою привлекательность. Профессионалы ломятся в "дата саентисты", там больше платят (и за любую херню). А профессиональный код и писать некому. И уж тем более некому показывать.
(no subject)
Date: 2021-09-24 02:47 pm (UTC)(no subject)
Date: 2021-09-24 02:50 pm (UTC)Хм, как интересно. У меня было такое ощущение. Что ж тогда все ломятся-то.
(no subject)
Date: 2021-09-24 03:48 pm (UTC)(no subject)
Date: 2021-09-24 05:55 pm (UTC)Когда у тебя ни беса нет времени, то с кучей форматов вывода не поцеремониться. Но питоновский json.dumps() помогает любой вразумительный объект человеко- и машиночитаемо выкинуть на стандартный вывод в одну строку. В каких-нибудь бедных выразительностью сях все равно есть printf(), через который достаточно просто отфигачить плоскую структуру в DSV-формате, если у тебя есть гарантированно не встречающийся в данных делимитер.
Но люди не хотят собирать структуру и структурировать ввод. Люди делают вывод на уровне отладочных печатей, и это моментально превращается в хрен попарсишь без бубна.
Я не знаю, где ты видел человеков, которые любят читать XML, у меня от него глаза слезятся. В 95% случаев формат вывода не настолько упоротый, чтобы не улечься в JSON, TOML или YAML - все эти три формата парсятся как бы не проще, чем XML (а встроенный парсер JSON встречается чаще XML-я), а читаются в разы удобнее.
(no subject)
Date: 2021-09-24 06:48 pm (UTC)(no subject)
Date: 2021-09-24 06:51 pm (UTC)https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/import-clixml?view=powershell-7.1
Что дали, то и пользую. csv при импорте - говно.
(no subject)
Date: 2021-09-24 08:29 pm (UTC)Да я наблюдал это когда-то. Попросили меня. Ну что, PCA, aka МГК, нафигачил; обработал геологические данные, нашел собственные вектора. Показываю Нинель Александровне. Она очень рада - "о, бьется!" На следующий день понял, что матрицу надо транспонировать. Пришел, показываю ей. "О, красивое!"
Им, учоным, все годится.
(no subject)
Date: 2021-09-25 06:44 am (UTC)CSV не говно. CSV (точнее, DSV) - идеальный формат для плоских схематизированных данных, которых много. Ну там, /etc/passwd, метрики за последнюю пятилетку и так далее. Недостаток JSON и XML - они тащат за собой схему, которая может быть не нужна.
(no subject)
Date: 2021-09-25 08:00 am (UTC)csv говно как только у тебя импорт-экспорт.
(no subject)
Date: 2021-09-25 08:47 am (UTC)Батенька, ну как же так можно?
$object | ConvertTo-Json > file.json
$object = Get-Content -Raw file.json | ConvertFrom-Json
Да, я знаю, что тут есть нюансы, но эти нюансы - это говеная реализация в пошике, а не сам концепт.
> csv говно как только у тебя импорт-экспорт.
При всех идиосинкразиях конкретно формата CSV, а не более обобщенных вариантов, я могу только предположить... говеную реализацию в пошике. Потому что в питоне у меня никогда не возникало проблем почитать или пописать в CSV; у меня вполне есть пошевские скрипты, которые (как раз метрики, кстати) фигачат в CSV, но там, по-моему, я именно из-за идиосинкразий поша рожал CSV-строчку руками.
Почитал доку, в которой напрямую говорится, что Export-CliXml -Path file.txt - это почти то же самое, что и ConvertTo-Xml > file.txt. Лично мне здесь не нравится то, что это выглядит более близким к питоновским pickle/marshal, которые средства передать объект из питона в питон. А все-таки когда мы говорим об экспорте данных, то ценность формата именно в том, что ты пописал из одного языка, а почитал на другом.
Но тут как, пока ты целиком и полностью живешь внутри экосистемы .NET, то нативные тулзы от МС при всех их идиосинкразиях тебе норм, потому что все, в конечном счете, имеет .NET в качестве наибольшего общего делителя и под капотом дергает одни и те же вызовы. А вот если ты выходишь из этого мирка наружу, то сразу начинаешь ценить открытые и стандартизованные форматы вроде JSON и даже богомерзкого protobuf, потому что это позволяет тебе обмен между сервисами, не сильно парясь вопросом, на чем каждый сервис написан и где он работает.
(no subject)
Date: 2021-09-25 08:54 am (UTC)-
Вот вот. Я пробовал и сказал нуегонахуй.
---
>>А вот если ты выходишь из этого мирка наружу, то сразу начинаешь ценить открытые и стандартизованные форматы вроде JSON
-
джейсон я ценю, но как обычно - есть нюансы.