HN user

shinzui

83 karma

[ my public key: https://keybase.io/shinzui; my proof: https://keybase.io/shinzui/sigs/F-TdWfNm9Eg4blHlO0fomSW4HIly88NoktXZkymijX0 ]

Posts0
Comments29
View on HN
No posts found.
The UX of UUIDs 2 years ago

Because TypeIDs are compatible with UUIDv7 and are supported by libraries in many languages.

Lens is one of my favorite libraries, but I can understand why optics, in general, is a divisive topic. Like many things in Haskell, you won't appreciate optics without suffering through a steep learning curve.

Optics don't just save you a few keystrokes. Instead, they make tedious code that you would never write trivial. And more importantly, they're composable. So it's impossible to appreciate their effectiveness without using them on a real-world app. For example, I've worked in an app with three layers, each with its record types, and without the lens library, the pain of converting between records would have been insufferable. Instead, most developers would couple the three layers together to avoid the problem, which makes the codebase brittle.

Leaving the Cloud 4 years ago

DHH’s preferred architecture is a rails monolith with a single database behind it that you keep scaling vertically. I believe both Hey and Basecamp are still using that architecture.

Leaving the Cloud 4 years ago

It's worth noting that Basecamp's architecture relies on vertical scaling, which can get very expensive in the cloud.

DevOps is broken 4 years ago

DevOps (the term), like Agile, made sense when it was introduced but lost its meaning as the industry evolved.

Unfortunately, it's extremely rare to find software that exhibits "miryokuteki hinshitsu." The author's examples are not quite right. For example, linear is missing too many core features to be useful for many use cases.

It depends on your context. Having moved from ECS on AWS to K8s on GCP I found kubernetes simpler despite its vast number of concepts. It has the correct abstractions for a microservice architecture, and it made us write less boilerplate code to manage and deploy services.

MonolithFirst 11 years ago

A hybrid approach is a better strategy once you have product/market fit. You should build your core domain as a monolith but have auxiliary infrastructure services built as microservices. The hybrid approach has the advantage of safely investing in microservices architecture that would later allow you to refactor your monolith once you truly understand your bounded contexts.