malyj_gorgan: (Default)
[personal profile] malyj_gorgan
Ну, не зовсім зло, але .... З мого досвіду кількох дуже різних компаній з дуже різними середовищами і продуктами, одним з основних джерел проблем є логи. Вірніше, logging код.
Пояснюю: запускаючи продукти в якихось специфічних середовищах, всяких Airflowʼах, Cradle'ax, контейнерах і навіть джупітер ноутбуках, добросовісні програмісти намагаються впхати якийсь код для того, щоби воно писало логи. Ну, очевидно, щоби знати, що стається. Так от, ці всі логгери завжди (завжди!) виявляються найідіотськішими бібліотеками з найідіотськішими вимогами і болючими точками, такими, що логгер -- це те, що ламається в першу чергу. Найчастіше, він яко-тако працює лише в продакшн середовищі (і то, навіть там ламається), а в хоч трохи іншому середовищі не встановлюється, не працює, ламається... Тобто, якщо продакшн середовище -- той самий Airflow, ти ніде, крім нього, свій код не віддестуєш, бо логгер дає помилку... а в самому Airflowʼі тестувати - не тойво.

Шкода, ніколи не зустрічав людини, яка писала ті логгери. СПробував би пояснити, що якщо логгер написаний не в fail-to-wire парадигмі, то за це треба пиздити ломом.

Date: 2025-05-08 06:15 am (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Не вижу, как логгинг связан с airflow и с fail-to-wire.

И насчёт "щоби воно писало логи" - так это я такой, вечно боролся за логи, а то любят люди экономить "место на дисках", а потом концов не найти.

Date: 2025-05-08 06:32 am (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
О! Да, действительно. Когда логгер рушит программу, то как-то звереешь.

Так что да, насчёт чтобы там ничто не имело права рушиться, это верное замечание.

Date: 2025-05-08 06:56 am (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Ага, где-то в библиотеке. Теоретически, я к джавным библиотекам отношусь так: если есть String doSomething(String a, String b), то её надо вызывать примерно так:
  val res: Result[String] = Result.forValue(doSomething("a", "b"))
,

где forValue регистрирует эксепшен, это раз, и два, получив null, заворачивает его в ошибку. Потому что джава, она ж безбашенная.

Profile

malyj_gorgan: (Default)
malyj_gorgan

January 2026

S M T W T F S
     1 23
45678910
11121314151617
18192021222324
25262728293031

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 01:00 pm
Powered by Dreamwidth Studios