Size: a a a

2020 November 20

A

Andrey in Haskell
за всех не буду говорить. сам стараюсь проектировать без них.
мух от котлет отделяешь — нет нужды в циклах!
источник

A

Andrey in Haskell
модель — отдельно, апишка — отдельно, хэндлеры — отдельно, база — отдельно, рендеринг HTML страничек (если нужен) — отдельно
источник

Y

Yuuri in Haskell
Tie the knot!
В смысле — посмотреть на циклическую часть, если она такая сильно связанная, возможно, вынести её в отдельный модуль.
источник

YR

Yuki Rito in Haskell
ну я так же делаю: модель, апи, хендлеры и все равно происходит бывает. Заметил, что прям натурально надо вместо модуля, реализующего фичер, делать папку и в нее ложить Types, Api, ... Так вроде почти избегаются циклы, но муторно это все.
источник

YR

Yuki Rito in Haskell
ведь это все равно не гарантия, что не будет цикла между A/Types.hs <-> B/Types.hs. А отделение в еще какой-то CommonTypes.hs, тоже еще тот кайф )
источник

AV

Alexander Vershilov in Haskell
Yuki Rito
люди, как вы боритесь с циклич. зависимостями? Нет-нет, да вылезет где-нибудь. Там же была какая-то прагма, но не знаю это нормально ли вообще...
.hs_boot (нет)
источник

AV

Alexander Vershilov in Haskell
В общем можно писать без циклов вынося в ещё один уровень Internal или т.п., но если без них ну совсем никак то .hs_boot спасёт (использовал 1 раз в жизни правда)
источник

YR

Yuki Rito in Haskell
мда... ОК, буду рвать модули, на части, зубами :)
источник

p

polunin.ai in Haskell
Yuki Rito
люди, как вы боритесь с циклич. зависимостями? Нет-нет, да вылезет где-нибудь. Там же была какая-то прагма, но не знаю это нормально ли вообще...
С болью, с ужасом, перемещаем зависимости так чтобы они не были циклическими
источник

p

polunin.ai in Haskell
Или можно нахуячить все в один файл и не париться
источник

IK

Ilya Kos in Haskell
Yuki Rito
люди, как вы боритесь с циклич. зависимостями? Нет-нет, да вылезет где-нибудь. Там же была какая-то прагма, но не знаю это нормально ли вообще...
источник

YR

Yuki Rito in Haskell
да, про эту я и пытался вспомнить {-# SOURCE #-}....  Хотя в один файл это ж идея! %)
источник

AV

Alexander Vershilov in Haskell
polunin.ai
Или можно нахуячить все в один файл и не париться
давайте более приличную лексику и надеятья что в файле нет TH, а то может и не взлететь
источник

YR

Yuki Rito in Haskell
кстати да, с ТХ может и не взлететь :)
источник

YR

Yuki Rito in Haskell
Забавно, сделал два типца:

-- module A
data A = A {...}
makeFields ''A

-- module B
data B = B {...}
makeFields ''B
и в них поля с одинаковыми именами. И вот в модуле C: a.b.c.collisionName начинает ругаться что де не понятно, collisonName из A.A или B.B. А ведь адски не охота добавлять туда еще и префиксы модулей... Нельзя это обойти цивильно, да?
источник

к

кана in Haskell
можно конечно
источник

к

кана in Haskell
выкинуть makeFields, взять генерик линзы
источник

YR

Yuki Rito in Haskell
радикально :)
источник

к

кана in Haskell
data A = A { d :: Int } deriving Generic
data B = B { d :: Int } deriving Generic

#a . #b . #c . #d
источник

к

кана in Haskell
ругается он я так понимаю на то что есть два одинаковых класса, и в них одинаковые методы

генерик-линзы же исходят из одного класса
источник