Мамкин бизнес-аналитик (как раскидать данные по конфигам и какие ключи запуска программы сделать)

Aug 12, 2024 09:58

На Stepik информация агрегирована так: курс состоит из модулей, модули из уроков, уроки из шагов, каждый шаг - это текст или тест (вопрос или задача на программирование ( Read more... )

it

Leave a comment

dennis_chikin August 12 2024, 07:08:51 UTC

М-м... На сколько я ничего не понимаю, явные ключи делаются для того, чтобы можно было что-то указать явно там, где возможна двусмысленность ИЛИ просто для лучшей читаемости. А вот требовать обязательно задавать ключ просто чтобы было - это плохо и негодно.

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

(Плохая новость состоит в том, что некоторые использую все упомянутое как раз для того, чтобы было как можно монстрообразнее и запутаннее. "А это чтобы Вы не расслаблялись и вообще эксплуатационщик Должнен Страдать!")

Reply

tat_ti August 12 2024, 07:29:56 UTC
Ну вот тут явно двусмысленность: файл или урока или структуры курса.

Reply

dennis_chikin August 12 2024, 07:48:42 UTC

Я бы явно указал в каждом файле, для чего он, ну и принял бы, что файл урока имеет приоритет (то есть, как раз оверрайд всего остального). Так что указываем подряд сколько надо файлов, и все. Ну и ключи оставляем именно чтобы не запутаться, но не требуем.

Можно оставить предупреждения, если указано несколько файлов одного типа. "Будут использованы значения из xxx" - собственно, сам так и делаю.

Reply

tat_ti August 12 2024, 09:04:48 UTC
Не поняла насчет нескольких файлов.
Указываем или файл урока, или файл TOC. Оба сразу указывать бессмысленно.
Если файл урока и конфиг, или ТОС и конфиг, то как различить, какой из них конфиг, а какой нет. То есть можно открыть и поразбирать структуру, но точно надо делать именно так?

Reply

lubezniy August 12 2024, 09:13:13 UTC

Или так, или доп. параметром командной строки указывать, конфиг это или не конфиг.

Reply

tat_ti August 12 2024, 11:09:51 UTC
Ок. --cfg конфиг.файл, так и запишем.

Reply

dennis_chikin August 12 2024, 09:45:49 UTC

Если несколько не нужно, то все еще проще.

А что именно внутри файла - указать прямо в его начале (если бы комментарии непонятно для с какой целью не терлись, то тупо в комментарии, а так - просто отдельный id).

our_wonderful_utilite [ [--key] value ] [ [--key] file ]

Reply

tat_ti August 12 2024, 11:08:49 UTC
Комментарии в markdown - это как?
То есть явно сказать, что --toc файл.yaml или --file lesson.md, при чем ключи взаимоисключающие?

Reply

dennis_chikin August 12 2024, 11:46:50 UTC

Комментарии в yaml/json и текстовых конфигах, если такие есть. Это я в общем виде рассматриваю. Там, где что-то эзотерическое - понятно, что думать надо.

По формату командной строки - файл/файлы всегда то, что не имеет перед собой ключа, требующего значение или после ключа, явно говорящего, что это файл какого-то типа. Если без ключа, то тип файла берем "по смыслу".

Блин, я бы показал, но оно слегка "не для свободного доступа". Хотя внутри и нет ничего этакого, но узнаваемо. Ну так-то банальная реализация вообще-то. Последовательно заполняем внутренню табличку опций, и в процессе либо по итогу остается что-то лишнее, с которым уже всё ясно, что оно такое.

Reply

tat_ti August 12 2024, 12:36:59 UTC
У меня такое называется argparse, но мне кивают на вкусовщину и говорят, что есть многие достойные альтернативы.

Reply

dennis_chikin August 12 2024, 12:44:13 UTC

Ну да, ну да. Всё свое все непременно должны торжественно слить в унитаз и 10 лет лесоповала за неследование Указаниям Гуру (который появился непонятно откуд, непонятно как и которому все должны по жизни).

Есть? Работает? Используем. А Гуры идут туда, откуда взялись.

Reply

tat_ti August 12 2024, 12:38:07 UTC
О комментариях. Файл или markdown/gift, или yaml. Если с yaml все понятно, то с макрдауном чуть сложнее.

Reply

dennis_chikin August 12 2024, 12:49:20 UTC

Очевидно, что если в первой же строке нет нашего key: value, то это что-то эзотерическое.

(Впрочем, я тут недавно и из шифрованных сертификатов даты/владельца доставал. Ибо утомило "У миня ни работаит с сертификатом, протухшим год назад на уволившегося 2 года назад сотрудника!").

Reply

tat_ti August 12 2024, 17:11:36 UTC
Комментарии в YAML начинаются с #.
Markdown файл должен начинаться с заголовка урока уровня H1, то есть с #.
Печаль.

Reply

dennis_chikin August 12 2024, 17:43:05 UTC

Скажем так: во всех моих человекочитаемых файлах (независимо от того, чем оно будет читаться еще) с некоторого момента присутствует не позднее чем третьей строкой "# version: yyyy-mm-dd". По причинам, которые вслух не произнесть (а если произнесть, то можно на долго сесть), но в общем присутствует.

Исключение - в некоторых не "#", а "--" или "

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

Reply

mishkatormoz August 14 2024, 17:57:36 UTC

В markdown есть несколько извращённый способ писать комментарии в конец: https://stackoverflow.com/a/32190021, а в последнюю строку заглянуть вроде не сильно сложнее, чем в первую

Reply


Leave a comment

Up