Size: a a a

Saint P Ruby Community

2020 May 14

AD

Anton Davydov in Saint P Ruby Community
есть проекты, в которых даже просто поправить “yes” тяжело
источник

IM

Igor Morozov in Saint P Ruby Community
Alex
зачем так жить?
предметная область такая, что поделать
источник

IM

Igor Morozov in Saint P Ruby Community
конфиги не типизированные. ты ж не работаешь с multipart/form-data наивно, есть преобразования какие-то
источник

IM

Igor Morozov in Saint P Ruby Community
стандартизации практически нет, а она важна в таких делах
источник

A

Alex in Saint P Ruby Community
Igor Morozov
предметная область такая, что поделать
конфиги — предметная область? вот уж не знаю, по идее это инфраструктура
источник

IM

Igor Morozov in Saint P Ruby Community
конфиги сами по себе это предметная область, как и инфраструктура
источник

IM

Igor Morozov in Saint P Ruby Community
просто не разработчиков
источник

A

Alex in Saint P Ruby Community
Anton Davydov
есть проекты, в которых даже просто поправить “yes” тяжело
если я, как программист, прихожу на проект в котором мне не получается постепенно подчищать бардак, то вероятно, добавление нового гема, который этот бардак должен привести в порядок приведет к ситуации про 12 подходов и 1, которые должен заменить их все:)
источник

AD

Anton Davydov in Saint P Ruby Community
Alex
если я, как программист, прихожу на проект в котором мне не получается постепенно подчищать бардак, то вероятно, добавление нового гема, который этот бардак должен привести в порядок приведет к ситуации про 12 подходов и 1, которые должен заменить их все:)
Это делается для того! Что бы люди посмотрели что такое есть и в следующий раз, когда начнут писать подобные конфиги вспомнили, что вот там и там показывали что-то такое и взяли изначально стандартизацию
источник

IM

Igor Morozov in Saint P Ruby Community
вот захочешь из руби вызвать какую-то shell программу, и передать туда путь.

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

потому что все эти шеллы и то, какие у них спецсимволы — это прям отдельная, очень сложная сфера. лучше эту логику делегировать и отгородить себя более естественной абстракцией
источник

A

Alex in Saint P Ruby Community
Igor Morozov
вот захочешь из руби вызвать какую-то shell программу, и передать туда путь.

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

потому что все эти шеллы и то, какие у них спецсимволы — это прям отдельная, очень сложная сфера. лучше эту логику делегировать и отгородить себя более естественной абстракцией
Постой, давай во-первых не будем смешивать вещи простые и вещи сложные:) А во-вторых в руби есть стандартная библиотека, которая позволяет работать с пайпами и шеллом как-то безопасно.
источник

AN

Andrey Novikov in Saint P Ruby Community
Alex
чем dotenv не угодил?
1. dotenv разрастается и превращается в env hell,
2. .env.sample устаревает и содержит какой-то мусор
3. проверки вида ENV['blah-blah'] расползаются по всему коду и их потом сложно собирать
4. Хочется валидаций и умолчаний (разных для разных стейджей)
5. Некоторые штуки хочется брать из ямлов, некоторые из зашифрованных креденшелов, некоторые держать закоммиченными открытым текстом
В общем, тут есть простор для тысячи реализаций и блог-постов. Вот наше: https://evilmartians.com/chronicles/anyway-config-keep-your-ruby-configuration-sane
источник

IM

Igor Morozov in Saint P Ruby Community
Alex
Постой, давай во-первых не будем смешивать вещи простые и вещи сложные:) А во-вторых в руби есть стандартная библиотека, которая позволяет работать с пайпами и шеллом как-то безопасно.
а какие вещи простые?

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

A

Alex in Saint P Ruby Community
Anton Davydov
Это делается для того! Что бы люди посмотрели что такое есть и в следующий раз, когда начнут писать подобные конфиги вспомнили, что вот там и там показывали что-то такое и взяли изначально стандартизацию
Что значит "люди посмотрели"? Мне, например, не нужно абстрактное "люди посмотрели". Есть проект, в проекте есть правило про то, как работать с конфигом. Все остальное должно быть забанено.
источник

AN

Andrey Novikov in Saint P Ruby Community
Anton Davydov
у меня проект был, в котором “yes” лежало кстати
Я очень обожаю YAML, например, за то, что в нём можно написать enabled: yes и это распарсится как булево. Все остальные известные мне люди yaml ненавидят (в том числе и за это)
источник

A

Alex in Saint P Ruby Community
Igor Morozov
а какие вещи простые?

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

IM

Igor Morozov in Saint P Ruby Community
но вот инструмент для работы с енвом не решают эти вопросы
источник

IM

Igor Morozov in Saint P Ruby Community
в этом-то и критика. они не могут понять, что за данные там лежат
источник

IM

Igor Morozov in Saint P Ruby Community
а мы работаем с енвом как раз ради данных, что там лежат. как-то парадоксально
источник

A

Alex in Saint P Ruby Community
пока из вопросов было превращение строк в булеаны, ну такое себе
источник