featured in #545
featured in #544
Falsehoods Programmers Believe About Names
- Patrick McKenzie tl;dr: As a public service, I’m going to list assumptions your systems probably make about names. All of these assumptions are wrong. Try to make less of them next time you write a system which touches names. (1) People have exactly one canonical full name. (2) People have exactly one full name which they go by. (3) People have, at this point in time, exactly one canonical full name. (4) People have, at this point in time, one full name which they go by. (5) People have exactly N names, for any value of N.featured in #523
featured in #520
Avoiding The Soft Delete Anti-Pattern
- Tim Fisken tl;dr: “In the sphere of databases, this terror of deleting things leads people to advocate soft deletion: instead of really deleting a record, you add a field which marks the record as deleted, and you treat any record marked in that way as if it were deleted. This is generally a bad idea, and there are a number of better ways of ensuring access to old data.”featured in #514
Common DB Schema Change Mistakes
- Nikolay Samokhvalov tl;dr: Nikolay covers 18 mistakes, categorized into three big categories of DB schema migration mistakes: "(1) Concurrency-related mistakes. (2) Mistakes related to the correctness of steps. (3) Miscellaneous – mistakes related to the implementation of some specific database feature or the configuration of a particular database."featured in #511
featured in #474
Exceptional Exception Handling
- Yiming Sun tl;dr: Have you ever seen huge exception-handling blocks that throws an exception? Yiming shows an example and highlights the core problems: (1) It obscures the logic so unintended exceptions may be caught. (2) The code might end up catching different exceptions. (3) It rethrows a general exception, with the original exception ignored. This means that the root cause is lost - we don't know what exactly goes wrong. Yiming shows a better way to handle errors.featured in #471
The Ultimate Guide To Developer Counter-Productivity
- John Cutler tl;dr: John highlights 20+ specific areas where developers often lose productivity, including: (1) Reactive, unplanned work. (2) Context switching and startup costs. (3) Non-value-adding admin & compliance work. (5) Ineffective planning. (6) Dependency management overhead. (7) Ineffective meetings and communication. (8) Redundant manager briefing & orientation. (9) Consensus seeking and decision-making drag. (10) Ineffective collaboration arrangements. And more.featured in #448
featured in #391