Compare commits
4 Commits
b4dca1c159
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ff106ac14 | |||
| b257e195f9 | |||
| 048280cc5c | |||
| 0562a7d608 |
-39
@@ -1,39 +0,0 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket-makefile)
|
||||
|
||||
(define test-install #f)
|
||||
|
||||
(makefile 'skill
|
||||
(target 'all
|
||||
(displayln "Use (make 'install)"))
|
||||
|
||||
(target 'install
|
||||
(let ((home (find-system-path 'home-dir)))
|
||||
(when (eq? home #f)
|
||||
(error "No home directory?, cannot find place of .codex"))
|
||||
(let* ((pwd (current-directory))
|
||||
(skilld (build-path home ".codex" "skills"))
|
||||
(racket-skilld (build-path skilld "racket-skill"))
|
||||
(js-skilld (build-path skilld "javascript-skill"))
|
||||
(cp (lambda (to-dir file)
|
||||
(let ((from (build-path pwd file))
|
||||
(to (build-path to-dir "SKILL.md")))
|
||||
(unless (directory-exists? to-dir)
|
||||
(make-directory to-dir))
|
||||
(displayln (format "cp ~a -> ~a" from to))
|
||||
(unless test-install
|
||||
(copy-file from to #:exists-ok? #t)))))
|
||||
)
|
||||
(cp racket-skilld "racket-skill.md")
|
||||
(cp js-skilld "javascript-skill.md")
|
||||
)))
|
||||
|
||||
|
||||
(target 'test-install
|
||||
(set! test-install #t)
|
||||
(make 'install)
|
||||
(set! test-install #f))
|
||||
|
||||
)
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket-makefile
|
||||
racket/file)
|
||||
|
||||
(define test-install #f)
|
||||
|
||||
(makefile 'skill
|
||||
(target 'all
|
||||
(displayln "Use (make 'install)"))
|
||||
|
||||
(target 'install
|
||||
(let ((home (find-system-path 'home-dir)))
|
||||
(when (eq? home #f)
|
||||
(error "No home directory?, cannot find place of .codex"))
|
||||
(for-each (lambda (subdir)
|
||||
(let* ((pwd (current-directory))
|
||||
(skilld (build-path home subdir)) ;".codex" "skills"))
|
||||
(racket-skilld (build-path skilld "racket-skill"))
|
||||
(js-skilld (build-path skilld "javascript-skill"))
|
||||
(cp (lambda (to-dir file)
|
||||
(let ((from (build-path pwd file))
|
||||
(to (build-path to-dir "SKILL.md")))
|
||||
(unless (directory-exists? to-dir)
|
||||
(make-directory* to-dir))
|
||||
(displayln (format "cp ~a -> ~a" from to))
|
||||
(unless test-install
|
||||
(copy-file from to #:exists-ok? #t)))))
|
||||
)
|
||||
(cp racket-skilld "racket-skill.md")
|
||||
(cp js-skilld "javascript-skill.md")
|
||||
))
|
||||
(list (build-path ".codex" "skills")
|
||||
(build-path ".copilot" "skills")))
|
||||
))
|
||||
|
||||
|
||||
(target 'test-install
|
||||
(set! test-install #t)
|
||||
(make 'install)
|
||||
(set! test-install #f))
|
||||
|
||||
)
|
||||
|
||||
@@ -142,3 +142,39 @@ Probeer dingen functioneel op te zetten, zoals dat in racket zou werken.
|
||||
- Triviale getters, setters en lokale callbacks hoeven niet afzonderlijk
|
||||
gedocumenteerd te worden wanneer hun werking direct duidelijk is.
|
||||
|
||||
# Architectuurprincipes
|
||||
|
||||
## MVC patroon
|
||||
|
||||
Over het algemeen zal bij het bouwen van de javascript code van een website
|
||||
gebruik moeten worden gemaakt van het Model-View-Controller principe.
|
||||
|
||||
Een model bestaat uit de de interne data-representatie van gegevens en heeft
|
||||
ook als verantwoordelijkheid om de opslag ervan richting een server backend
|
||||
resp. import/export ervan te regelen.
|
||||
|
||||
Op het model worden views gemaakt. Die views presenteren het model naar een
|
||||
gegeven situatie en maken het ook mogelijk om te interacteren met het model.
|
||||
|
||||
De controller zorgt koppelt de model-logica en de view-logica aan elkaar en
|
||||
bevat business rules t.a.v. het presenteren en bewerken van de model logica.
|
||||
|
||||
## Encapsulatie
|
||||
|
||||
Classes, closures en modules hebben hun eigen interne wereld en een publieke
|
||||
method/functie-interfaces. Rechtstreeks manipulatie van class/closure/module
|
||||
gegevens is verboden.
|
||||
|
||||
## Separation of concerns
|
||||
|
||||
Scheid verschillende verantwoordelijkheden in afzonderlijke onderdelen
|
||||
en voorkom dat één onderdeel meerdere, onderling onafhankelijke concerns
|
||||
door elkaar heen behandelt.
|
||||
|
||||
# Specifieke aandachtspunten
|
||||
|
||||
## Het gebruik van browseropslag
|
||||
|
||||
Opslag in de browser, zoals bijvoorbeeld door localStorage te gebruiken, is
|
||||
voor data/model verboden. Tenzij om een werkruimte te creëeren die nodig is
|
||||
t.b.v. betrouwbaarheid en performance. Of caching te doen t.b.v. performance.
|
||||
Reference in New Issue
Block a user