Articles Tagged “Design”
23 articles tagged “Design”, newest first.
-
Practical Multithreading Best Practices: Java Edition — Conventions for the Virtual Thread Era
Run Java tasks on ExecutorService and virtual threads, not raw threads. Covers synchronized vs. ReentrantLock, cooperative stopping via interruption, atomic ...
-
Practical Multithreading Best Practices: C Edition — Writing Safely the Win32 API Way
In C on Win32 the established practice is _beginthreadex, SRW locks and condition variables, Interlocked, and a stop event plus WaitForMultipleObjects. Also ...
-
Practical Multithreading Best Practices: C++ Edition — Designing Failures Out with RAII and jthread
C++ data races are undefined behavior. Learn the std::thread destructor trap, stopping with jthread and stop_token, scoped_lock, atomic's real role, and Win3...
-
Practical Multithreading Best Practices: .NET Edition — What to Decide Before You Add More Threads
Keep .NET/C# threads from crashing or hanging. Ride on Task, cut shared mutable state, lock with discipline, stop with CancellationToken, and respect the UI ...
-
Never Use a QR Code's Decoded Value As-Is — Error Correction Succeeding Does Not Guarantee the Value
QR error correction does not guarantee the decoded value. Sample images and two decoders show why dirt can yield a different value, and what a business syste...
-
Stop Using Write-Host — PowerShell Output Streams and Log Design
How to choose between PowerShell's six output streams, the problems with Write-Host and where it genuinely belongs, why function return values get polluted, ...
-
Code Design for Business Systems — Deciding Product and Customer Codes, and Check Digits
A practical guide to deciding the code scheme for a business system, including product and customer codes. Covers a decision table for meaningful codes versu...
-
An Introduction to ADRs (Architecture Decision Records) — The Minimal Way to Record 'Why We Designed It This Way' on a Small Team
Code never explains why it was written that way. We cover how to use an ADR (Architecture Decision Record) — one decision, one Markdown file — to preserve th...
-
Don't Forget to Decide 'How Many Seconds Is Fast Enough' — Organizing Non-Functional Requirements With IPA's Non-Functional Requirements Grade
Disputes like 'it's too slow' or 'we didn't expect that failure response' usually trace back to non-functional requirements nobody decided on. This article e...
-
When Not to Move a Windows App to the Web: A Decision Table and the Practical Answer of Splitting
Requests to move in-house Windows apps to the web are increasing, but for apps built around device integration, local file processing, offline operation, or ...
-
Where Should catch and Logging Go in Exception Handling?
To avoid broad catches in deep helpers, duplicate logs at every layer, and result-mapping that hides root causes, we organize the responsibilities of the bou...
-
Why You Should Prefer Event Waits over Sleep(1) on Windows
On Windows, the accuracy of short timed waits is bounded by the system clock granularity and scheduling. If you are waiting for work to arrive, I/O to comple...
-
A Decision Table for Whether to Exit or Continue After an Unexpected Exception
When an unexpected exception occurs, should the app exit or keep running? We organize the decision from the perspectives of state corruption, external side e...
-
A Minimum Security Checklist for Windows App Development
A checklist-style guide to the security basics for WPF / WinForms / WinUI / C++ / C# business apps: privileges, signing, updates, secrets, HTTPS, input valid...
-
What Is the .NET Generic Host? - The Foundation for DI, Configuration, and Logging
What the Generic Host does, seen through its relationship to DI, configuration, logging, IHostedService, and BackgroundService - and where it pays off versus...
-
What Is .NET Native AOT? - How It Differs from JIT and Trimming
What Native AOT is, sorted out against JIT, ReadyToRun, self-contained, single-file, trimming, and source generators, plus the cases it fits and the cases wh...
-
Choosing Between .NET's Three Timers - PeriodicTimer/Timer/DispatcherTimer
Which .NET timer should you use? PeriodicTimer for async loops, Timer for ThreadPool callbacks, DispatcherTimer for WPF UI, plus a decision table and code.
-
Why Use the .NET Generic Host and BackgroundService in Desktop Apps
How to use the Generic Host and BackgroundService to organize startup, periodic processing, shutdown, logging, configuration, and DI in Windows tools and res...
-
A Practical Guide to FileSystemWatcher - Handling Missed and Duplicate Events
We organize how to use FileSystemWatcher and its pitfalls - missed events, duplicate notifications, completion-detection traps, rescans, atomic claims, and i...
-
A Practical Decision Table for C# async/await - Task.Run and ConfigureAwait
C# async/await best practices, organized with a decision table that covers I/O waits, CPU work, Task.Run, ConfigureAwait(false), and fire-and-forget.
-
A Practical Guide to Getting as Close to Soft Real-Time as Possible on Ordinary Windows
How to stabilize periodic and low-latency processing on ordinary Windows, covering timer resolution, thread priorities, power settings, and how to monitor th...
-
Mutual Exclusion Fundamentals for File-Based Integration - Best Practices for File Locks and Atomic Claims
We organize mutual exclusion for file-based integration around file locks, atomic claims, temp -> rename, and idempotency, and lay out designs that keep shar...
-
An Introduction to HCP Charts and MakingHCPChartSkill
We explain what HCP charts are and walk through how MakingHCPChartSkill converts HCP-DSL into deterministic SVG, how to read the output, and how to use it.