🔗 LemonAppDev/konsist

GitHub - LemonAppDev/konsist: Konsist is a powerful static code analyzer tailored for Kotlin, focused on ensuring codebase consistency and adherence to coding conventions. Konsist is a powerful static code analyzer tailored for Kotlin, focused on ensuring codebase consistency and adherence to coding conventions. Konsist is a linter that guards the consistency of Kotlin projects by enforcing a cohesive code structure and unified architecture. Konsist guards are written in the form of unit tests (JUnit / Kotest)....

May 24, 2024 · 1 min · 117 words

🔗 Enterprise Integration Patterns

Messaging Patterns Overview - Enterprise Integration Patterns This pattern catalog describes 65 integration patterns, collected from many integration projects since 2002. The patterns provide technology-independent design guidance for developers and architects to describe and develop robust integration solutions. The inspiration to document these patterns came when we struggled through multiple integration vendors’ product documentation just to realize later that many of the underlying concepts were quite similar.

December 1, 2023 · 1 min · 67 words

🔗 Architecture Antipatterns

Architecture Antipatterns Discover common architecture antipatterns, learn how to avoid them and overcome design pitfalls! Gain valuable insights, practical advice, and real-world examples to build better software architectures and improve existing ones. Cargo-Culting Domain Allergy Emotional Attachment Infrastructure Ignorance Malignant Growth Misapplied Genericity Never change a running system Over-Engineering Over-Modularization Under-Modularization

December 1, 2023 · 1 min · 51 words

🔗 Site Structure

Site Structure | Web Style Guide 3 The success of the organization of your web site will be determined largely by how well your site’s information architecture matches your users’ expectations. A logical, consistently named site organization allows users to make successful predictions about where to find things. Figure 3.2 — Examples of the “Goldilocks problem” in getting the site structure “just right.” Too shallow a structure (left) forces menus to become too long....

August 15, 2023 · 1 min · 188 words

📜 Gregor’s Law

Excessive complexity is nature’s punishment for organizations that are unable to make decisions. — Gregor Hohpe in The Architect Elevator You can trace its origin to my original blog post on IT complexity from 2018.

August 14, 2023 · 1 min · 35 words

🏞 The structure of JUnit

{width=“562” height=“388”} By version 4.11, transitive dependencies have proliferated seemingly unchecked. We are far from the short dependency-chains and few cyclic-dependencies of good structure. A better way… There are many ways to do this, but one way is to practice radial encapsulation . (…) shows the evolution of a radially-encapsulated program that is bigger than JUnit yet has throughout its history retained a structural clarity that JUnit seems to have abandoned....

May 12, 2015 · 1 min · 94 words

🏞 (image)

Not all technical debt is born the same, because A Mess is not a Technical Debt . (via TechnicalDebtQuadrant )

August 16, 2014 · 1 min · 20 words

🏞 (image)

What OO Fails to Do What object oriented programming fails to do is express collaborations between objects. To show you exactly what I mean, let’s take a look at two system operations (two use cases) requiring the same group of objects collaborating with each other. (…) DCI to the Rescue DCI is a paradigm invented by Trygve Reenskaug (the inventor of the MVC pattern) to solve these problems. (via Data Context Interaction: The Evolution of the Object Oriented Paradigm – SitePoint )...

December 28, 2013 · 1 min · 92 words

🔗 The Twelve-Factor App

The Twelve-Factor App In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps (…) Codebase Dependencies Config Backing Services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes

December 10, 2013 · 1 min · 48 words

🏞 (image)

via The Clean Architecture | 8th Light by “Uncle” Bob Martin The outer circles are mechanisms. The inner circles are policies. The overriding rule that makes this architecture work is The Dependency Rule . This rule says that source code dependencies can only point inwards . Entities Use Cases Adapters (Controllers, Gateways, Presenters) Frameworks Only Four Circles? No, the circles are schematic. You may find that you need more than just these four....

August 16, 2012 · 1 min · 194 words

🏞 (image)

The MVC and 3-Tier architectures combined (via The Future of Web Development « mvalente.eu/mv.* )

July 29, 2012 · 1 min · 15 words

🔗 Interactive Application Architecture Patterns

Interactive Application Architecture Patterns The Model-View-Controller , Model-View-Presenter , and Presentation-Abstraction-Control patterns are similar in many ways, but have each evolved to address slightly different concerns. This article discusses each pattern along with its history and design motivations to encourage the correct understanding and application of these patterns.

July 29, 2012 · 1 min · 48 words

🏞 Keynote: Architecture the Lost Years

Keynote: Architecture the Lost Years by Robert Martin @ Ruby Midwest 2011 (also on YouTube … and a few weeks later, without slides , on The “A” word. A Discussion About Architecture in a Software Craftsmanship conference ) Images clipped together from… The “Presenter” and “View Model” at 35:28 “The whole Enchilada!” at 37:50 “The Database is a Detail!” at 42:26 Elements summary: Entities — Generic application agnostic data and business rules (e....

July 29, 2012 · 1 min · 172 words

📜 Good architecture

A good architecture allows major decisions to be deferred! Robert Cecil Martin Or putting it in another way… A good architecture maximizes the number of decisions NOT made.

July 28, 2012 · 1 min · 28 words