@_m_b_j_ > domain logic takes magnitudes more DB state as input than request state.
Interesting take. But still it deals with "where the logic happens" instead of "what language it's expressed in".
Would you still hold your point if Ruby was the lang in the DB instead of plpgsql?
@_m_b_j_ Do you mean SQL is a better language to express domain logic? (in which case writing more SQL in a ruby appserver would also work)
Or do you want the the domain logic to run inside the DB runtime to avoid crossing the process/network boundaries?
There's 260 chapters in the New Testament.
There's 260 weekdays in a year.
If you think this makes a nice occasion to read through the whole of it, here's a reading plan (standard book order with two helpful twists).
#NTin52weeks
@purinkle I think the difference lies in how they integrate with the rest of the app. Views are built from the SQL "state" (often private/internal), whereas read models are built from events, which aim to facilitate integration with explicit contract and loose coupling.
@_Paul_Abrams_ Interesting perspective. I think I get your point. The thing is that apart from the reviewers attention cost, a PR-based process itself comes at a huge cost of impeding the development.
Disadvantages of Pull Requests
https://t.co/ntcE7jaFI9
There's been some discussions about PRs recently. Here's my try to systematize the factors to help make better informed decisions
1. PRs promote long living branches, which means more merge conflicts.
Super useful for pair programmers
- Github's `Co-authored-by` annotation
- Git's `--trailer` option to automatically add text to commit messages
- Git's snippets for trailer text
👇
When you’re pair programming a lot, you might want to mention co-authors of the commits by adding line below to commit messages
Co-authored-by: Jane Doe <[email protected]>
It’s supported by github and others: https://t.co/IlgUqRiHwp
Thanks for the tip @pawelpacana
Some people think that the problem with 'null' is that doing null-checks is annoying and you can forget about them. In Java, this could be solved via annotations and IDE quick fixes. This problem is also well solved in Kotlin. But in fact, the problem with 'null' is different.
@johnykov What we can do is
1. raise awareness of the hidden costs and help make informed decisions
2. suggest small steps for change, evolution instead of revolution, which isn't likely to happen
Your idea is a nice example for (2). Good luck on suggesting it to your manager.
@johnykov Thanks for sharing your story.
I try to avoid thinking in absolute terms of what devs should or should not do in general. After all every company is free to impose any rules it wants.