samdeepthink
Author

samdeepthink

Knowledge Planet: Old Dock's Tech Chronicles Zhihu: SamDeepThinking A technical manager who still codes heavily on the front line. From junior developer to tech lead, then tech manager, now leading the whole front‑ and back‑end development team—leveling up along the way. I have some insights on programming, career development, and tech management.

167
Articles
0
Likes
340
Views
0
Comments
Recent Articles

Latest from samdeepthink

100 recent articles max
samdeepthink
samdeepthink
Aug 30, 2026 · Fundamentals

Understanding the Open‑Closed Principle Through Spring’s Extension Hooks

The article explains the Open‑Closed Principle, shows how Spring leaves empty hook methods like onRefresh() for extensions, demonstrates the concept with a Java demo, compares inheritance‑based and interface‑based extension approaches, and discusses trade‑offs and practical guidelines for designing extension points.

Extension HooksOpen-Closed Principledesign patterns
0 likes · 10 min read
Understanding the Open‑Closed Principle Through Spring’s Extension Hooks
samdeepthink
samdeepthink
Aug 29, 2026 · Fundamentals

Why a Contract‑Compliant List Still Breaks Liskov Substitution in Java

The article demonstrates that although List.of, Arrays.asList, and unmodifiableList implement the List interface, they violate the Liskov Substitution Principle because their optional add/remove operations throw UnsupportedOperationException, revealing a hidden contract mismatch between interface documentation and runtime behavior.

Immutable CollectionsLiskov Substitution PrincipleList
0 likes · 13 min read
Why a Contract‑Compliant List Still Breaks Liskov Substitution in Java
samdeepthink
samdeepthink
Aug 28, 2026 · Fundamentals

How Java’s LocalDate Embodies the Single Responsibility Principle

The article explains how JDK 17’s java.time.LocalDate follows the Single Responsibility Principle by separating date data from formatting, contrasts this design with the older mutable java.util.Date, and shows how to spot classes that take on too many responsibilities.

API DesignDateTimeFormatterImmutable Objects
0 likes · 6 min read
How Java’s LocalDate Embodies the Single Responsibility Principle
samdeepthink
samdeepthink
Aug 27, 2026 · Fundamentals

Can Code Comments Help Reduce Technical Debt?

The author argues that well‑written, regularly maintained code comments explain design decisions, make future modifications safer, and therefore serve as an effective tool for lowering technical debt, despite common claims that clean code alone eliminates the need for comments.

Best PracticesTechnical Debtcode comments
0 likes · 4 min read
Can Code Comments Help Reduce Technical Debt?
samdeepthink
samdeepthink
Aug 26, 2026 · R&D Management

Understanding Technical Debt: Why Code Becomes a Liability and How to Cut It

The article explains how every line of code adds constraints and maintenance cost, turning code into technical debt, examines why developers often avoid repaying it, and offers practical strategies such as writing less, reusing existing components, and regularly removing dead code to keep debt under control.

Software EngineeringTechnical Debtcode quality
0 likes · 13 min read
Understanding Technical Debt: Why Code Becomes a Liability and How to Cut It
samdeepthink
samdeepthink
Aug 25, 2026 · Backend Development

How RocketMQ Implements Ordered Consumption Locking

The article explains RocketMQ's two‑layer locking mechanism that guarantees ordered consumption by holding a queue‑level lock inside a while loop, clarifies why autoCommit only affects offset reporting, and shows how the client correctly processes multiple messages in a single thread.

Backend DevelopmentMessageListenerOrderlyRocketMQ
0 likes · 11 min read
How RocketMQ Implements Ordered Consumption Locking
samdeepthink
samdeepthink
Aug 25, 2026 · Backend Development

How RocketMQ Transactional Messages Ensure Data Consistency in Order‑Inventory Scenarios

The article explains how RocketMQ’s transactional message mechanism guarantees consistency between order creation and inventory deduction by using half‑messages, a local transaction callback, a second‑phase confirmation, and broker‑side timeout checks, while highlighting common pitfalls and best‑practice recommendations.

Distributed ConsistencyRocketMQTransactional Messaging
0 likes · 9 min read
How RocketMQ Transactional Messages Ensure Data Consistency in Order‑Inventory Scenarios
samdeepthink
samdeepthink
Aug 23, 2026 · Databases

Is Splitting Data Across Machines Distributed? Understand Sharding vs Distributed Systems

The article explains that merely placing data on multiple machines constitutes sharding—a way to split data for capacity—but true distributed systems require coordinated nodes that communicate, replicate, and handle failures, illustrated with an e‑commerce warehouse analogy and guidance on choosing between sharding and distributed databases.

Database Architecturedistributed systemsselection criteria
0 likes · 8 min read
Is Splitting Data Across Machines Distributed? Understand Sharding vs Distributed Systems
samdeepthink
samdeepthink
Aug 21, 2026 · R&D Management

Agile Is a Mindset, Not a Fixed Methodology

The article argues that agile is a set of guiding principles—early delivery, rapid feedback, and adaptation—rather than a rigid set of practices like Scrum or Kanban, and advises teams to tailor processes to their context instead of blindly following a prescribed workflow.

AgileKanbanScrum
0 likes · 4 min read
Agile Is a Mindset, Not a Fixed Methodology
samdeepthink
samdeepthink
Aug 21, 2026 · R&D Management

Why Architects Who Haven’t Coded in Years Miss Critical System Realities

The article explains how architects who stop writing or reading code lose essential insight into the system, leading them to suggest impractical solutions like a non‑existent message center, and offers concrete practices to stay connected with the codebase.

Technical Debtarchitecturecode-review
0 likes · 8 min read
Why Architects Who Haven’t Coded in Years Miss Critical System Realities