Кто использует graphql? Как вы живёте с тем, что там только camelCase? У меня получается база в snake_case, код в kebab-case и одно в другое неплохо конвертится автоматически. Но если добавить graphql, то как минимум схема на edn будет в camelCase, что совсем не прикольно. Кто знает как быть?
господа, а можно вот философский вопрос
а то я даже вот кложу подзабросил потому что я хз как вести на ней масштабируемую разработку (tm)
(это когда больше 5 файлов)
вопрос звучит так: почему мы юзаем keyword'ы с неймспейсами, которые нечувствительны к опечаткам, вместо того, чтобы объявить их в нужном неймспейсе как вары?
ну понятно, то есть раз кложа - мы гоняем туда-сюда словари, и делаем по ним мапы и ещё мапы. и потом сиди думай, устарели эти конкретные киворды, или ты уже всё отрефакторил и в коде реально это ещё как живёт
и сидишь пыришься в этот код без тестов, потому что тесты ещё не хватало писать на 6 файлов (да, вот добавляю к тем пяти шестой, ага)
то есть пропозал по идее какой? было
(ns hi.there)
(def mem-db
{:something {:megaservice/adapter ..}})
(ns megaservice)
;; (defn .. разные функции, которые поедают и работаю с :megaservice/adapter)
стало
(ns hi.there)
(def mem-db
{:something {megaservice-adapter ..}})
(ns megaservice)
(def adapter ::adapter)
имеем: сделал опечатку - А КОНПИЛЯТОР ВСЁ ВИДИТ(!)
как оно, такое? (дунул-придумал)
@kuzmin_m это императивненько
def move_link_to_packet_for_replaced_race(race)
return if data.replaced_order_uid.blank?
replaced_race = Race.find_by(uid: data.replaced_order_uid)
return if replaced_race.blank?
return if replaced_race.packet.blank?
replaced_race.packet_attached_race.update! race: race
end
менее императивно (а presence - рельсово):
def move_link_to_packet_for_replaced_race(race)
data.replaced_order_uid.presence # presence вставил только для того, чтобы сохранить дословно семантику оригинала
.try! {|e| Race.find_by(uid: e)}
.try!(:packet_attached_race)
.try! {|e| e.update! race: race }
end