Shapes of Classification Service

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Shapes of Classification Service por Mind Map: Shapes of Classification Service

1. Q & A

2. code

2.1. project

2.1.1. stats

2.1.1.1. 3K LOC

2.1.1.1.1. 1,700 code

2.1.1.1.2. 1,300 test code

2.1.2. dependencies

2.1.3. internals

2.1.3.1. declaration of our stack

2.1.3.1.1. varies for test

2.1.3.1.2. system.clj passes each an env

2.1.3.2. main namespaces

2.1.3.2.1. composing a request handler

2.1.3.3. database functions

2.1.3.4. models

2.1.3.4.1. offers

2.1.3.4.2. keywords

2.1.3.4.3. tags

2.1.3.4.4. The Concept Triad

2.1.3.5. api

2.1.3.5.1. common

2.1.3.5.2. representations

2.1.3.5.3. data manipulation

2.2. tests

2.2.1. a representative example

3. data

3.1. structure

3.1.1. in our existing systems (PL, etc.)

3.1.1.1. offers

3.1.1.1.1. has one

3.1.1.1.2. has many

3.1.2. in the new c12n world

3.1.2.1. POV

3.1.2.1.1. offers

3.1.2.1.2. taxa

3.2. definition

3.2.1. very succinct

3.2.2. all about the attributes

3.2.2.1. and how they change over time

3.2.2.1.1. meaning that every single attribute modification has transactional data associated with it identifying provenance and time

3.2.3. grouping by entity is almost coincidental

3.2.3.1. and, in fact, the entity could be a polymorphic name

3.2.3.1.1. like ":taxon/uuid"

3.2.4. think: polymorphic and STI all of the things (minus the trauma)

3.2.4.1. any attribute can be applied to any entity

3.2.4.2. but how much or how little it varies depends

3.2.4.3. plus all of the "re-playability" of a git repo

3.3. mutation

3.3.1. CRUD'ing of taxa

3.3.2. CRUD'ing of offer / taxa assocs

3.3.2.1. Updating offer / taxa assocs to indicate deprecation

3.3.2.2. any taxa can be deprecated

3.3.2.2.1. so no *new* associations with offers

4. summary

4.1. what we get from clojure

4.1.1. compact but powerful functions

4.1.2. easy abstraction to higher level functions

4.1.2.1. where do you stop?

4.1.3. explicit reasoning about state

4.1.4. immutability, concurrency, etc.

4.2. what we get from datomic

4.2.1. a super-flexible db that lets us

4.2.1.1. be polymorhpic with our attributes

4.2.1.2. express a rich set of relationships succinctly

4.2.1.2.1. in 16 attribute definitions

4.2.1.3. operate with db functions that provide atomicity

4.2.1.3.1. a few hundred LOC

4.2.1.4. have full time travel on our data

4.2.1.4.1. which we are not fully leveraging yet

5. notes

5.1. cmd y shows function source

5.2. Interact with Datomic (Ghadi)

5.2.1. LP with Gorilla

5.2.1.1. lein with-profile base,test,user,gorilla gorilla :port 3000

5.2.1.1.1. open

5.2.2. REPL some interactions at the db level

5.2.2.1. see the db tests for some ideas