This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-11-04
Channels
- # announcements (30)
- # aws (7)
- # babashka (7)
- # beginners (64)
- # calva (39)
- # cherry (17)
- # cider (1)
- # clj-on-windows (6)
- # clojure (30)
- # clojure-austin (12)
- # clojure-europe (25)
- # clojure-nl (2)
- # clojure-norway (23)
- # clojure-spec (23)
- # clojure-uk (6)
- # clojurescript (20)
- # cursive (18)
- # datahike (3)
- # datalevin (12)
- # datomic (9)
- # etaoin (5)
- # graalvm (45)
- # instaparse (2)
- # interceptors (11)
- # kaocha (1)
- # lsp (102)
- # meander (6)
- # nbb (16)
- # off-topic (30)
- # pathom (83)
- # pedestal (6)
- # portal (5)
- # re-frame (12)
- # reitit (5)
- # rewrite-clj (10)
- # scittle (35)
- # shadow-cljs (49)
- # spacemacs (10)
- # vim (14)
i find it annoying to write interceptor(s)
and i see my colleagues, who are non-native english, to struggle with spelling it sometimes, so i was wondering, what would be a good abbreviation for it.
1. int
? it already means integer
2. intc
? as in int(er)c(eptor)
? how would i pronounce it? intk? ints? int-see? doesn't evoke the original word for me...
3. intr
? could work... short enough, but as an ex-microcontroller programmer, it just reminds me interrupt
, as in the pins on ICs
4. inter
? it's a whole, generic prefix word; could mean anything "in-between"-like, so not specific enough
5. intor
? as in int(ercept)or
? intors
in plural. maybe...?
6. i9r
? like i18n
, internationalization
style? not really guessable, but short and quite unique... plural would be i9rs
.
7. don't abbreviate it and just put up with its length and the resulting wide, aligned maps :)
for middleware(s)
, i used mw
& mws
and that worked reasonably well...
what do u think?
i would use it as
1. keyword map keys of course, but also
2. as namespace segments in ns aliases, like [company.ring.interceptor :as comp.i9r]
3. as part of var names of interceptor-maps, eg. company.ring/i9r:with-user
or company.ring/with-user-i9r
I use ix
, which I believe I stole from code I saw in or using https://github.com/exoscale/interceptor, and have been happy with that abbreviation
We used ix
as well when I did Papillon, as it seemed to fix with transducers’ xf
and using transactions with tx
8. ixr
? where x
is like a wildcard char? it is short for trans
usually, though, like xform
, xfer
, xf
(*trans*ducer-*f*unction?)...
not having a number in the name doesn't break the visual flow of the code so much as i9r
and it's also easier to type...
there are also these abbreviations in non-technical context:
9. INTCP
10. INCEP
according to https://www.allacronyms.com/interceptor/abbreviated
intercept
, without the or
suffix would be
1. INTCP
2. INTC
3. IC
? might work in non-electronics related code, so it doesn't clash with *I*ntegrated *C*ircuit
4. I/C
?
5. INT
6. INTC or
? ...in 2 words? weird...
7. incpt
according to https://www.allacronyms.com/intercept/abbreviated
it's still a question of how to name interceptors.
since they are a set of 1, 2 or 3 functions, it's tempting to name them using some verb, especially if they only effect either the enter or the leave phase only.
but then, their name like a function name, so how can we tell them apart from regular functions?
since we can use angle brackets in clojure symbols, i was wondering to adopt something like this:
1. <merge-query-and-form-params>
— which would look like a HTML tag, so might be misleading, though the context probably disambiguates it
2. >merge-query-and-form-params<
3. merge-query-and-form-params<>
4. <>merge-query-and-form-params
5. query&form-request-params->params
6. query&form-request-params->params
7. |merge-params|
— to hint at the 2 threads of execution, the enter and the leave phases
8. ixr:merge-params
9. merge-params:ixr
10. merge-params-ixr
11. i9r:merge-params
the |merge-params|
notation would also allow the indication of whether the :enter
or the :leave
phase is defined by the interceptor:
for example, the muuntaja.interceptor/format{,-negotiate,-request,-response}-interceptor
& muuntaja.interceptor/exception-interceptor
could be:
1. |format|
2. |negotiate-format_
3. |format-request_
4. _format-response|
5. _format-exception_|
or _format-exception_!
or _format-exception_err
to indicate the presence of the :error
phase only
6. |some-xform||
or |some-xform|!
or |some-xform|err
would be the name of a {:enter ... :leave ... :error ...}
interceptor
this notation would solve the problem of not knowing which phase of the execution chain does a specific interceptor contribute to. knowing that, it would be easier to imagine what is the correct ordering of the interceptors.
I use ix
, which I believe I stole from code I saw in or using https://github.com/exoscale/interceptor, and have been happy with that abbreviation