coffeeee
tags: learning go programming
context switching
TODO
- field keeps updating when typing in form
- newbrewfrom this doesn’t gives updated data after saving brew
- direct url access to /recipes/id
- in backend, how to abstract logic for verifying/getting UserId (for sql queries involving userId)
- if i used
useNavigate, how do i handle when user pressback/forwardin browser?
what i learned doing coffeeee
HTTP
Security/Authentication
Database
- sql
nulland''dbms-null-and-empty - include
usernameincoffeestable? db-table-join-or-include-in-table
Logging
Design
- REST url design:
/coffeees/{id}or/coffees?coffeeId={id} - frontend cache
- Post-Redirect-Get pattern
- frontend sends
POSTto backend - backend creates resources and return
302/303status code - browser receives and redirects
- frontend sends
networking
- docker compose, nginx
- how frontend interacts with backend
AI
- you can’t just let AI run wild
- LLMs are very good at addition, not so much subtraction
- playing around with AI to build intuition
- whenever i approach a problem with agents, i think “how can i provide a feedback loop to the agent”
business
Nothing really matters, except bringing value to the customer
Type safety, 100% test coverage, the ability to fluently express business logic in code, perfect development tooling, an efficient system that wastes no resources, using the best programming language for the job, an elegant API design, a fast feedback loop, writing great code – these are not the goal.
Here’s the goal: providing value to your customers, by shipping software that solves their problem, repeatedly.