SShortSingh.
Back to feed

Architectural Patterns, Design Patterns, and Idioms: How Software is Structured

0
·1 views

Software architecture is organized across three levels of abstraction: architectural patterns, design patterns, and idioms. Architectural patterns define the overall structuring principle of a system, while design patterns describe smaller units and relationships within subsystems. Idioms represent the lowest level, addressing language-specific implementation details for components and their relationships. Because idioms depend on a programming language's features, the same concept can look different across languages or may not apply at all in some. For instance, C++ relies on reference-counting idioms for memory management, whereas Smalltalk's built-in garbage collection makes such idioms unnecessary.

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 ·

Wrist Pain in Developers Is a Lagging Indicator, Not a Real-Time Signal

Repetitive strain pain in developers often appears hours or days after the actual overuse occurs, making it difficult to identify the true cause. This delay leads many to wrongly credit equipment changes — like new keyboards — for recoveries that were simply the result of reduced workload after a sprint ended. Research into personal pain history typically reveals that discomfort peaks one to two days after the heaviest typing sessions, not on the day itself. Experts suggest tracking keyboard hours and morning pain scores over several weeks to reveal the lagged correlation between cumulative input volume and symptoms. The most effective prevention is proactively scheduling lighter workweeks after known high-intensity periods, rather than waiting for pain to appear before making changes.

0
ProgrammingDEV Community ·

Indonesian Self-Taught Frontend Developer Builds Web Portfolio via Hands-On Projects

Muhammad Idzhar Al-Asyari, an Indonesian web developer known online as @zhar_website, graduated from SMK Tunas Pemuda with a specialization in Software Engineering. He has been teaching himself web development using HTML, CSS, and JavaScript, building projects from the ground up to sharpen his skills. One of his ongoing projects, ZharWeb, combines a website catalog with his personal developer profile. He uses GitHub to store, manage, and publish his work, treating each project as a learning opportunity. Idzhar aims to continue growing his frontend development skills and create more practical, real-world web applications.

0
ProgrammingDEV Community ·

Dev fixes script that wasted 3 API calls per run by misreading quota errors as bad output

A developer discovered that their automated article-generation script was misidentifying Claude's quota-limit messages as low-quality article output for four consecutive days between September 13 and 16. Because the quality checker only measured character count, it repeatedly concluded the short limit message was simply an article that needed rewriting, triggering two additional wasted API calls per run. The root cause was the script's failure to distinguish between a fixable failure and an unfixable one — a quota limit cannot be resolved by retrying until the reset window passes. The fix involved adding a grep check immediately after each generation pass to detect known quota-limit message patterns and abort on the first match. With the patch in place, the script now consumes exactly one API call before exiting cleanly, and the same fix is being applied to three other scripts sharing the same retry structure.

0
ProgrammingDEV Community ·

One Developer's Path From AI Skeptic to Dependent — and Back to Balance

A software developer has shared a personal account of evolving attitudes toward AI coding tools, spanning from dismissing ChatGPT in early 2023 to adopting it after a colleague's recommendation. By early 2024, growing industry buzz around AI tools like Devin prompted a more serious re-evaluation, and in early 2025 the developer began actively using GitHub Copilot. Weeks of use led to a concerning level of dependency, prompting a self-imposed 'AI detox' period. The developer then established personal guidelines to use AI as a productivity tool without sacrificing core coding skills. Drawing on this experience, they authored a guide called 'Street-Smart Coding,' aimed at helping developers build fundamentals before relying on AI assistance.

Architectural Patterns, Design Patterns, and Idioms: How Software is Structured · ShortSingh