Feb. 15th, 2023

amarao: (Default)
Когда делается прототип, всегда срезаются углы. Где-то нет управления зависимостями, где-то конфигурация принимается "как есть" без парсинга (yaml.safe_load), где-то есть неявный механизм, который работает, потому что совпадает рабочий путь у двух независимых кусков кода и т.д.

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

Продакшен-код же, требует внимательности и тщательности. Бывает так, что люди стесняются срезания углов, и пытаются сделать вид, что пишут серьёзно. Например, вместо того, чтобы взять argv[1] и argv[2], зачем-то притаскивают argparse для скрипта, у которого половина параметров захардкожена. Или городят классы с наследованием, хотя IRL это пять функций.

В контексте ансибла это часто выливается в нелепые переменные для управления тем, что нельзя менять (например, имя юнита в systemd), которые записываются в defaults и выглядят как {{systemd_action name}}: name={{systemd_unit_name}} state={{systemd_unit_state}} daemon_reload={{systemd_daemon_reload}}.

Ещё хуже, если человек, делая прототип, и срезая углы, пытается выделить переиспользуемый код. Переиспользуемый код может выделяться в тот момент, когда есть несколько мест (в прототипе), которые делают одно и то же.

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

Прототип с явно срезанными углами очень легко переводить в продакшен. Идёшь по срезанным углам и делаешь их по совести (что может вызывать перетряхивание всего прототипа). А вот если прототип стеснительный, то человек, который тащит код в продакшен, не видит где и что срезано. Что-то он поправил, а что-то не заметил, и "оно так и осталось в продакшене". Вот это "так и осталось", это, конечно, частично вина человека, который не заметил, но, так же, и вина человека, который спрятал.

Делаешь халтуру? Делай так, чтобы было видно, что халтура. Иначе это не халтура, а подлость.

Profile

amarao: (Default)
amarao

August 2025

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 11:21 pm
Powered by Dreamwidth Studios