This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-10
Channels
- # aws (3)
- # beginners (186)
- # boot (25)
- # cider (2)
- # cljsrn (57)
- # clojure (161)
- # clojure-boston (1)
- # clojure-dusseldorf (11)
- # clojure-italy (5)
- # clojure-russia (20)
- # clojure-serbia (1)
- # clojure-spec (10)
- # clojure-uk (16)
- # clojurescript (207)
- # community-development (86)
- # core-async (2)
- # cursive (40)
- # datascript (1)
- # datomic (2)
- # editors (5)
- # emacs (8)
- # funcool (1)
- # gsoc (2)
- # hoplon (2)
- # jobs (5)
- # leiningen (3)
- # liberator (18)
- # luminus (18)
- # off-topic (106)
- # om (2)
- # onyx (5)
- # pedestal (7)
- # powderkeg (7)
- # re-frame (7)
- # remote-jobs (1)
- # ring-swagger (4)
- # rum (5)
- # slack-help (1)
- # untangled (11)
- # yada (48)
модулям не бывать https://jcp.org/en/jsr/results?id=5959
хочется сказать: “кто все эти люди?”
V2COM
SouJava
MicroDoc
но вообще прецедент интересный
Всем привет. Пробую pedestal. при попытке подгрузить js файл с SPA приложением выдает вот такое сообщение: Refused to load the script 'http://localhost:8080/js/compiled/verita.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:". 'strict-dynamic' is present, so host-based whitelisting is disabled.
вот CSP читать сейчас ну не охота. кто-нибудь сталкивался с таким?
в качестве временного лечения рекомендуют сделать ::http/secure-headers {:content-security-policy-settings {:object-src "none"}
Теоритический вопрос. Есть приложение, может бегать по верх разных приложение(postgres, sqlite, sql server, дальше больше). Бизнес логика одинакова. Сейчас делаю это через протокол и через defrecord
А как это делают нормальные люди?
@chort409 дай пож-та больше описания задачи. Есть база ок, видимо есть приложение которое с этой базой работает. Что делается через протокол/defrecord?
@rmuslimov приложение бегает на разных инстансах поверх разных баз данных, осушествляет разную бизнес логику. Читает записи, вставляет записи, считает статистику и тд.
Проблема что логика несколько отличается в зависимости от разной базы даных. И каждый раз переконфигурировать в зависимости поверх какой базы данных будешь бегать - не хочется.
Через протокол определен набор фунций для работы с бд.
Через defrecord
определена имплементация протокола для каждой БД
@chort409 можно мультиметодами с диспатчем по типу базы данных причем мультиметод может иметь дефолтную реализацию, которая переопределяется только для некоторых типов
@serioga Об этом тоже думал, но это примерно то же самое что и протокол. хотел узнать может есть какие-нибудь другие варианты, которые я не рассмотрел
ну это не то же самое протокол говорит о необходимости наличия всего набора методов из протокола мультиметоды действуют точечно, только на ту реализацию, что имеет особенности при внесении изменений в протокол надо его наследников править и у мультиметодов диспатч можно по нескольким параметрам сделать (тип базы + что-то ещё) — можно комбинировать в нескольких измерениях 🙂
например, конкретный метод может настраваться не по типу базы, а по типу или наименованию поля, вытащенного из базы
@serioga согласен что есть некоторые преимущетсва. Но в протокол засунуты только самые необходимые функции без наличия которых апликейшен дожен ругаться, на случай если что-то забыл прописать. Конечно это все должно покрываться тестами, но в условиях недостатка времени, не всегда такое получается... На счет гибкости - согласен... Протоколы дают много ограничений на то что может быть определено как параметры.