algonote(en)

There's More Than One Way To Do It

Architecture

Visualize software architecture with a graph database

Use a graph database to advance package-by-feature Graph databases are powerful for interactive architecture visualization Software architecture is essentially a graph. If the contents of File A are used in File B, and File B is used in Fi…

Learning dependency-cruiser with Misskey

Visualizing and validating frontend dependencies I want to visualize frontend dependencies In many full-stack backend web frameworks, the directory structure is predetermined—controllers go here, models there, views over there. On the othe…

Automatically Splitting Domains by Clustering the Active Record Relationship Graph

How to automatically determine domains without relying on humans Once you have many teams, you want a modular monolith There are several terms used to refer to dividing a program into modules: Multimodularization Co-location Modular monoli…

It is wrong to abuse delegate on the basis of Demeter's Law

IMO Delegate in Ruby and Rails When a class is too bloated because all the requirements are packed, you probably want to split it up. When designing tables, you may want to normalize and split it into separate tables. There are the other w…

Measuring Python Cohesion with Cohesion

How to measure cohesion in Python What is Cohesion? Cohesion is a software metric that measures the proximity of related methods and variables. For example, in LCOM4, the functions accessing a variable in a class are traced and clustered. …

List of open source web services that architects should check out

Reference for implementation Preface: Let's read open source implementations When you are doing web development, you may feel uneasy whether this way of writing is normal or not, or whether the direction of implementation is good or not. I…

How Twitter caches timelines

Reading Twitter's internal structure. Introduction Microblogging services like Twitter have a lot of posts in a short period of time. Especially for the timeline, simply moving data in and out from the RDB will not scale. I found some arti…

GraphQL Adoption Anti-patterns

Is GraphQL a silver bullet? Introduction In web and application development, there are various methods for passing data between servers and between server and clients. The most common are SOAP and XML in the past. In most cases, JSON REST …