Skip to content

Latest commit

 

History

History
87 lines (57 loc) · 2.41 KB

changelog.md

File metadata and controls

87 lines (57 loc) · 2.41 KB

Building commit

https://stackoverflow.com/questions/15729491/makefile-command-not-working-but-command-did

Interfaces, Code Structure, Modelling and Service Tests

#6

Interfaces

  • In Go, callers instead of callees specify interfaces
  • Clear separation of Data, Business layers
    • Data has it's view of a User, Business has it's view of a User

Cons

  • Super explicit, from a non-Go style perspective there's a lot of duplicate code

Pros

  • Somewhat like domain driven design but applied vertically, this design forces each layer to be explicit about what it assumes.

Service Tests

  • Decided to go with golang for integrations

Cons

  • Static typing is not very useful for asserting service level json responses
  • Sort of in the same location as source - bad practices can contaminate test code with assumptions from source code
  • verbose

Pros

  • Strongly typing is useful in the future for testing gRPC/GraphQL endpoints
  • Although strongly and statically typed, liberal use of maps is allowed
  • Easy to write, maybe some strong typing can help
  • No need to manage another framework/language in CI, can use same tools for linting etc..
  • http is already a package
  • also supports concurrency which would be a problem in python

Conservative use of pointers

  • todo link

References

Readme

add writing and docs sneak

  • minor change for github action branch matcher to include all branches except main
  • checkout step for main branch

Dockerize

  • add this changelog file
  • add start server log
  • add makefile build, test, run and containerize steps
  • add github action
  • publish image to dockerhub

Practices, Principles and Philosophy

see ppp.md

External

  • create aljorhythm/sapere-server docker repository

Not included

  • service test framework
  • database
  • deployment
  • release github action steps

References