The blog and portfolio of Ryosuke Hana
The blog and portfolio of Ryosuke Hana
Hexagonal Architecture is a way to structure the application so that it can be developed and tested in isolation from external technologies.
Decoupling business logic from storage in Go, adding transaction support without leaking SQL details, and coordinating atomic writes across multiple repositories using a unit of work.
I've been coding since 2006, during this time I've seen multiple trends \& technologies emerge, rise and fall - nowadays the elephant in the room is the bad press around OOP languages the likes of Jav...
Categorized overview of programming principles & design patterns - webpro/programming-principles
Parsing JSON Data is a fundamental in modern SwiftUI apps. This comprehensive guide covers all the aspects of the Codable protocols in Swift.
Module composition allows infrastructure to be described from modular building blocks.
“Do one thing” is a great idea, until you have to define “one” and “thing,” and maybe “do.” Some thoughts...
A comprehensive guide to making REST API calls in swift with the proper networking layer architecture for iOS apps in SwiftUI.
Downloading files in Swift can be pretty straightforward. However, SwiftUI apps must track multiple files, complicating their architecture.
Diary of a Life Long Learner
Ways to keep your tests simple when programming.
🧠 Laws, Theories, Principles and Patterns for developers and technologists. - dwmkerr/hacker-laws
🧠 Laws, Theories, Principles and Patterns for developers and technologists. - dwmkerr/hacker-laws
🧠 Laws, Theories, Principles and Patterns for developers and technologists. - dwmkerr/hacker-laws
We explore Uncle Bob's Clean Architecture by applying its principles to design and build a testable and loosely-coupled REST API using TDD and ASP.NET Core 2.
In this post, we'll look at how to apply the principles of The Clean Architecture to build a Xamarin.Forms Android app. This app will be based on a robust architecture that is loosely coupled and cleanly separates the important business or domain logic from other details and infrastructure like databases, UI frameworks, and network communications.
How a rich domain model keeps the business invariants consistent, testable, and easier to evolve.
In this post I’ll quickly explain the minimum you need to know in order to publish an Angular component to npm. By the end of the post you’ll know how your module can: Be platform independent (i.e. run in Web Workers, Universal). Should be bundled and distributed. Work with the Angular’s Ahead-of-Time compiler. Play well with TypeScript by allowing autocompletion and compile-time type checking. If you’re only interested in a quick checklist of things you need to consider for distributing your Angular library, go directly to the “Distributing an Angular Library - Checklist” section.
Recently I’ve been blogging mostly about Angular and it’s not by accident! Angular is an amazing framework, bringing a lot of innovation to the front-end technologies, with a great community behind it. In the same time, the projects that I’m working on have various of different requirements and sometimes I need to consider different options. Another great technology that I’ve used in the past is React. I don’t want to compare it with Angular; I’m sure there are variety of cases when one of them fits better compared to the other and visa versa.
Dynamic polymorphism (virtual functions) is central to Object-Oriented Programming (OOP). Used well, it provides hooks into an existing codebase where new functionality and behaviour can (relatively) easily be integrated into a proven, tested codebase. Subtype inheritance can bring significant benefits, including easier integration, reduced regression test time and improved maintenance. However, using virtual functions in C++ brings a runtime performance overhead. This overhead may appear inconsequential for individual calls, but in a non-trivial real-time embedded application, these overheads may build up and [...]
“An investment in knowledge always pays the best interest.” – Benjamin Franklin Many of the best software developers have T-Shaped Skills: Deep expertise in programming and software dev…
Strategy design pattern là một technique nhằm mục đích phân tách nhiều vấn đề, tách software modules thông qua Dependency Inversion.
A design pattern which generalizes Dependency Inversion and can also be applied on an architectural level.
Last week, a proposal to standardize middleware for PSR-7 was introduced to the PHP-FIG. The general concept of middleware is not a new one, and has been in use in the PHP world for many years. Severa
This is a story of testability, multithreading, and the age old question of how do we send a !Send type in Rust. I’ll explore how (not) to do this, while rambling on about how writing obsessively testable code leads to better design. Hot takes incoming.
Programming, Coffee and Indie Hacking
Real-world visual examples of SOLID principles
Decoupling from dependencies
This is part 1. part 2. part 3. part 4. My feed (rss). I’ve spoken several times about a specific type of architecture I call “Onion Architecture”. I’ve found that it lea…
How do we know that components interact correctly?
I use dependency injection for non-deterministic code.