SShortSingh.
Back to feed

Hexagonal Architecture Slowed AI Coding Agent by 38%, Engineer's Experiment Finds

0
·65 views

A principal engineer tested whether hexagonal architecture would help an AI coding agent work more efficiently, expecting the structured approach to prove its worth. The experiment used a Java billing service called ChargeLedger, built for an EV charging network, with two versions: one following hexagonal architecture principles and one using a flatter, architecture-neutral design. Across nine features, the hexagonal version took 38% longer to reach acceptance compared to the flat implementation. The engineer concluded that architectural indirection added by habit — such as interfaces with single implementations and pass-through methods — carries a real cost for both humans and AI agents. While not abandoning clean code principles, the engineer now argues that every layer of abstraction requires concrete justification rather than being applied as a default practice.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Assembly Language for Beginners: Learning How Programs Talk to the CPU

Assembly is the lowest-level programming language people still write by hand, a readable layer over the machine code a CPU executes. The article argues that learning it reveals how computers work, covering registers, memory, and the stack, and explains why some high-level code runs faster or slower than expected. It presents a tiny x86-64 program that exits with code 42 to show how simple the instructions are. The author suggests starting with NASM on Linux or an online assembler, then building up to programs that print text and add numbers. While useful for students, embedded developers, and security researchers, the piece notes Assembly is slow to write and tied to one architecture, so it is not suited for everyday app development.

0
ProgrammingDEV Community ·

AquaSort: A Browser Puzzle Game of Pouring and Sorting Colored Liquids

AquaSort is a small, self-contained browser game in which players pour colored liquids between tubes until each color occupies a single vessel. The rules are simple enough to learn in about ten seconds, and levels have no end, with difficulty rising through more colors, locked tubes, and star ratings for efficient moves. The game also offers a daily challenge, achievements, a skin collection, and cloud saving of progress. It was built as a single canvas codebase without an engine and is distributed through the Playgama Bridge SDK to roughly a dozen portals. The game is free, requires no signup, works on mobile, and supports 14 languages.

0
ProgrammingDEV Community ·

StarHub Kit v1.3.0 compiles one topology into firewall and Tailscale rules to isolate AI coding sandboxes

The author describes risks from autonomous AI coding agents given raw shell access in cloud VMs, containers, or Tailscale-connected machines, including access to cloud metadata endpoints and lateral probing of private network peers. Wi-Fi subnet overlaps and throttled UDP/443 proxy tunnels can also cause silent connectivity failures. To address this, the author released StarHub Kit v1.3.0, an open-source, zero-dependency Python policy compiler and MCP server. It compiles a single declarative topology into nftables, macOS pf, Tailscale ACL, and iptables rules, plus Sing-box and Mihomo QUIC rulesets. The project is MIT-licensed and reports OpenSSF Best Practices Silver certification and SLSA Build Level 3 provenance.

0
ProgrammingDEV Community ·

PHP 8.6 Adds Partial Function Application, clamp() and Duration for Laravel Developers

PHP 8.6 is scheduled for release on November 19, 2026, and is already at the release candidate stage. Rather than listing every change, the article highlights five features most likely to affect everyday Laravel code. The headline feature, partial function application, lets developers fill in some arguments of a call and receive a closure, with placeholders marking the rest. A new clamp() function keeps values within a minimum and maximum, useful for capping user-supplied input such as page sizes or discounts. The piece also covers a new readonly Time\Duration value object for nanosecond-precision durations, and it closes with an upgrade checklist for moving production applications.