Domain-Driven Design
A definition of DDD as a software design discipline
The latest blog posts to take off on Hacker News. 14,541 posts.
A definition of DDD as a software design discipline
It's common for me to get excited about a personal project, put a bunch of time into it, and then lose interest. As much as possible, I want these projects to continue working; upkeep isn't fun. What does designing for minimum maintenance look like? The biggest piece is minimizing your dependencies, and limiting them…
When you find a weird program from four decades ago and realize that it's yours.
What is it about voxels that makes people go crazy? Throughout the past decade, there have been SO many developers obsessed with shrinking them down to have as many as possible ( 1 , 2 , 3 , 4 , 5 ), admittedly including myself. It’s exciting both as a developer and to the gaming community to see amazing algorithms…
I do the bulk of my code reviews from the command line, especially when reviewing larger changes. I've built up a number of tools and config settings that help me dig into the nuances of the code I'm reviewing, so that I can understand it better than if I were just browsing online.
The Spaghetti Code Conjecture says that Busy Beaver programs ought to be, in some sense, as complicated as possible. Scott Aaronson puts it this way:
Lazy programmers often prefer to substitute computing effort for programming effort.
There now is a Winboard version that can handle bigger boards, and a Fairy-Max engine that can run under it ( download )
A critical but informative look at the new structural pattern matching feature in Python 3.10, with real-world code examples.
I’m inspired to write this post because Someone Is Wrong On The Internet. Of course a more accurate statement would be “I disagree with some aspects of what someone on the internet said, even though they have an entirely valid point of view”. But that’s less catchy. I saw a Tweet I violently agreed with, so I…
We’ve been upgrading our frontend tech stack at Liferay Cloud this past year. Nifty tools we’ve adopted include:...
The most effective engineers I’ve worked with were effective not just because of how they wrote code, but because of things they did when they were not writing code. Here’s my (growing)…
This is not a tutorial. If you're looking for a quick, easy, "how to use git" kind of post, look elsewhere.The goal of this post is to give you just enough understanding of the git internals that you can build up a correct intuition of what various git commands actually do under the hood.
Last year, I submitted a PR to the Clojure web request routing library, Compojure . Even though I was doing Clojure full time at work, there was still a lot for me to learn and always will be.
git purr, git meowge, and git puss! My doodling on basic git commands, and difference between merge and rebase with cats!
Try Nix and don't look back.
If you have any question or suggestions about this tutorial, please file them as issues here .
PostgreSQL always allowed, by default, any user to connect to any database, and create new tables (and views, and so on) in “public" schema. The one that is created by default.
The macro Ecto Query dynamic/2 allows you to build query fragments and interpolate them into one large query. We get easy-to-manage query building in an accessible way. It allows you to control the parameters from the user and transparently create filtering of data stored in the database.
Years ago, OpenBSD gained two new security system calls, pledge(2) (originally tame(2) ) and unveil . In both, an application surrenders capabilities at run-time. The idea is to perform initialization like usual, then drop capabilities before handling untrusted input, limiting unwanted side effects. This feature is…
I’ve been using Go for a few years now, mostly in my open source project Lazygit. In my day job I use Ruby and Typescript, and I’ve also spent some time with Rust. Each of those languages have design quirks that can grind a developer’s gears, and although my own precious gears have been ground by every language I’ve…
How to use the python web scraping framework Scrapy to crawl indeed.com. Learn data engineering strategies for getting actionable insights from public information.
I’ve seen people be genuinely puzzled about why functional programming is not more popular. For example I’m currently reading “Out of the Tar Pit” where after arguing for fu…
Ship/Show/Ask is a branching strategy that helps teams wait less and ship more, without losing out on feedback.
David Fowler doesn't have a blog. I think the psychic weight of having a blog ...
Personal webpage of Fabian Mentzer.