Cheatsheet for Golang beginners
??? TODO ???
1 - Git template project to startup Go projects
- github/gitea configuration:
prevent loosing work results => protect shared branches;
prevent blocking other developers => isolate ongoing work per person;
catch conflicts early => often rebase & test localy before merge;
make change history easy => untangle merges in linear history;
improve code quality => code review & feedback before merge
- local git configuration:
identify author for each change => user.name, user.email;
local repo must follow shared repo => pull.ff;
easy access to shared repo => SSH keys;
adapt stored line endings to local os standard => core.autocrlf
- golang setup:
go.mod, folder structure, makefile, license file
2 - Automated workflows for Go developers
- Automate local development steps:
makefile (vs. taskfile, justfile)
- Default CI pipeline via "Gitea Actions" (using the vscode extension):
a pipeline is divided into orchestration and logic sections to be executed;
a logic section of the pipeline must also be able to be executed and tested locally and isolated.
- Implementation of pipeline logic:
uses makefile and bash scripts (later via "Dagger"?);
linters = static code analyzers for source code quality checking;
3 - SQLite basics
Possible column types and constraints:
???
4 - Go programming stack for web applications
- Golang als back-end core technology
- Templ & stdlib net/http als back-end web libraries
(vs Chi, Gin, Fiber, Echo)
- Tailwind CSS & Alpine.js als front-end web technology
(vs Htmx, Datastar)
- DaisyUI als (Tailwind CSS based) UI component library
(vs Shadcn UI, Tailwind UI, Pines UI, TailGrids, etc)
- LibSQL/SQLite als relationele database
(vs MySQL, PostgreSQL)
- SQLc als Object-Relational Mapper (ORM) utility/library
(vs Raw, SQLx, GORM)