Tweeting about software architecture, principles and design patterns.

Joined October 2016
131 Photos and videos
Java Design Patterns retweeted
Design Patterns is a wonderful book. Yes, I know, it's thirty years old. Yes, I know it uses older languages. But it's still great. Some folks have said that the concept of Design Patterns is out of date -- that those patterns were just workarounds for the bad languages of the day. What a load of Dingoes Kidneys! The Patterns described in the book are timeless and well worth the effort to learn. They are crystalized applications of old and well worn principles. You _will_ use them, one way or another, because they are common solutions to common problems. If you don't know them already, you'll work them out for yourself. The benefit of learning the patterns from the book is that it gives those common solutions canonical names, and canonical forms. When others who know those names and forms see them in your code, they'll know exactly what to expect.
43
27
474
30,072
Java Design Patterns retweeted
Microservice architecture adoption anti-pattern - Microservices as the goal bit.ly/2Db1jqG
1
32
116
When a business transaction is completed, all the the updates are sent as one big unit of work to be persisted in one go to minimize database round-trips. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
42
Null Object is an object with no referenced value or with defined neutral ("null") behavior. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
2
39
Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
34
Java Design Patterns retweeted
𝗪𝗵𝗲𝗻 𝘁𝗼 𝘀𝗲𝗹𝗲𝗰𝘁 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻? Choosing the correct design pattern in software engineering is critical to practical problem-solving. This guide simplifies the process, helping you decide between patterns based on specific needs. To select a pattern, we must first go through the problem identification. If the problem is related to: 🔸 Object Creation? → Creational Patterns 🔸 Object Assembly? → Structural Patterns 🔸 Object Interactions? → Behavioral Patterns 𝟭. 𝗖𝗿𝗲𝗮𝘁𝗶𝗼𝗻𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 🔹 Singleton: This is used when a single instance of a class is needed. Some examples are logging and database connections. 🔹 Factory Method: Decouple object creation from usage. For example, you create different types of database connections based on configuration. 🔹 Abstract Factory: Create families of related objects. For example, I build parsers for different file formats (e.g., JSON, XML, CSV). 🔹 Builder: Constructing complex objects step by step. For example, if you need to create a complex domain object. 🔹 Prototype: Creating duplicate objects and reusing cached objects to reduce database calls. 𝟮. 𝗦𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 🔹 Adapter: Make incompatible interfaces compatible. For example, it integrates a new logging library into an existing system that expects a different interface. 🔹 Composite: Represent part-whole hierarchies. For example, graphic objects in a drawing application can be grouped and treated uniformly 🔹 Proxy: Control access to objects. For example, lazy loading of a high-resolution image in a web application. 🔹 Decorator: Dynamically add/remove behavior. For example, we are implementing compression or encryption on top of file streams. 🔹 Bridge: Decouple abstraction from implementation. For example, I am separating platform-specific code from core logic. 𝟯. 𝗕𝗲𝗵𝗮𝘃𝗶𝗼𝗿𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 🔹 Strategy: Define a family of algorithms. These algorithms allow users to choose different sorting or compression algorithms. 🔹 Observer: Maintain a consistent state by being notified of changes and, for example, notifying subscribers of events in a messaging system. 🔹 Command: Encapsulate a request as an object. For example, I implement undo/redo functionality in text or image editor. 🔹 State: Encapsulate state-specific behavior. For example, we are handling different states of a user interface element (e.g., enabled, disabled, selected). 🔹 Template Method: Define the skeleton of an algorithm in operation, deferring some steps to subclasses and implementing a base class for unit testing with customizable setup and teardown steps. In the end, we came up with the pattern we needed. To learn more about it, check out my free book on Design Patterns in the comments. #softwaredesign
1
73
334
30,621
The Active Object pattern decouples method execution from method invocation to improve concurrency and responsiveness in multithreaded applications java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
2
36
Sharding is used to distribute data across multiple databases or servers to improve performance and scalability. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
27
To dynamically assign roles to objects, enabling them to change behavior and responsibilities at runtime. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
37
Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. Prototype design pattern: java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
36
Java Design Patterns retweeted
Elevate your Spring Boot skills with essential design patterns! 📚 Our post covers the must-know patterns for better development. #SpringBoot #Java #CodingTips 💡 buff.ly/3WthMj7

8
15
2,005
Abstract Factory provides an interface for creating families of related objects java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
29
Monad pattern ensures that each operation is executed regardless of the success or failure of previous ones. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
21
Registry is a well-known object that other objects can use to find common objects and services. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
2
18
Using the balking pattern, a certain code executes only if the object is in particular state. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
22
Java Design Patterns retweeted
5 Best Tools for Java Developers 1. IntelliJIDEA - bit.ly/3YPouyw 2. JUnit - bit.ly/3IAwKds 3. Docker - bit.ly/3GKbC5S 4. Kubernetes - bit.ly/3WRDSJx 5. Selenium - bit.ly/3iiEgBM 6. Terraform - bit.ly/3XaORxq
1
67
181
14,464
Abstract Document aims to provide a consistent way to handle hierarchical and tree-like data structures by defining a common interface for various document types. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
1
25
Asynchronous method invocation is a pattern where the calling thread is not blocked while waiting for results of tasks. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
38
For a system implemented using microservices architecture, API Gateway is the single entry point that aggregates the calls to the individual microservices. java-design-patterns.com/pat… #Java #SoftwareEngineering #SoftwareArchitecture #SoftwareDesign #DesignPatterns #opensource
35