Refactoring Design Patterns in Python

Refactoring Design Patterns in Python

This table in Python contains a list of code smells and the design patterns that address them. class CodeSmells: Duplicated_Code = [ form_template_method, introduce_polymorphic_creation_with_factory_method, chain_constructors, replace_one__many_distinctions_with_composite, extract_composite, unify_interfaces_with_adapter, introduce_null_object, ] Long_Method = [ compose_method, move_accumulation_to_collecting_parameter, replace_conditional_dispatcher_with_command, move_accumulation_to_visitor, replace_conditional_logic_with_strategy, ] Conditional_Complexity = [ # Complicated conditonal logic replace_conditional_logic_with_strategy, move_emblishment_to_decorator, replace_state_altering_conditionals_with_state, introduce_null_object, ] Primitive_Obssession = [ replace_type_code_with_class, … Read more

Multi-Tenant Data Isolation and Row Level Security

Multi-Tenant Data Isolation and Row Level Security

Over the past one and a half years, I was involved in designing and developing a multi-tenant treasury management system. In this article, I will share our approaches to the data isolation aspect of our multi-tenant solution and the learnings from it. Background and Problem Regarding Data Isolation Before going into the problem that I … Read more

JetBrains releases AI coding agent Junie

JetBrains releases AI coding agent Junie

JetBrains has announced the launch of its new AI coding agent, Junie. Junie runs within JetBrains IDEs and can take on simple coding tasks or assist on more complex tasks with collaboration from the developer. “Thanks to the power of JetBrains IDEs, coupled with reliable LLMs, Junie already solves tasks that would otherwise require hours … Read more

Mocking and Its Importance in Integration and E2E Testing

Mocking and Its Importance in Integration and E2E Testing

In the software development lifecycle (SDLC), testing is one of the important stages where we ensure that the application works as expected and meets end-user requirements. Among the various techniques that we use for testing, mocking plays a crucial role in testing different components of a system, especially when the external services that the application … Read more

An Introduction to Bloom Filters

An Introduction to Bloom Filters

The Bloom filter is a lesser-known data structure that is not widely used by developers. It is a space-efficient, highly probabilistic data structure that every developer should be familiar with. It can significantly speed up exact match queries, especially in cases where indexing has not been added to that field. The space efficiency of a … Read more

Understanding HyperLogLog for Estimating Cardinality

Understanding HyperLogLog for Estimating Cardinality

Cardinality is the number of distinct items in a dataset. Whether it’s counting the number of unique users on a website or estimating the number of distinct search queries, estimating cardinality becomes challenging when dealing with massive datasets. That’s where the HyperLogLog algorithm comes into the picture. In this article, we will explore the key … Read more

A Practical Guide to Creating a Spring Modulith Project

A Practical Guide to Creating a Spring Modulith Project

Spring Modulith empowers developers to define logical application modules in their code, facilitating the creation of well-structured, domain-aligned Spring Boot applications. This approach introduces modular design principles to the Spring Framework, providing a more organized way to develop applications. The General Availability (GA) version was released in August 2023, and the current stable version at … Read more

How to Test QR Codes in Your Applications

How to Test QR Codes in Your Applications

Building quality software is only possible with quality tests. Whether you write test scripts for QA engineers or build automated tests, tests help to ensure that your applications continue to function as they grow and evolve. However, using automated testing to verify correct behavior can be challenging if your application generates visual artifacts, such as … Read more

How LLMs Are Going to Change Code Generation in Modern IDEs

How LLMs Are Going to Change Code Generation in Modern IDEs

For years, developers have dreamed of having a coding buddy who would understand their projects well enough to automatically create intelligent code, not just pieces of it. We’ve all struggled with the inconsistent naming of variables across files, trying to recall exactly what function signature was defined months ago, and wasted valuable hours manually stitching … Read more

Fresh Data for AI With Spring AI Function Calls

Fresh Data for AI With Spring AI Function Calls

The LLM can work with the knowledge it has from its training data. To extend the knowledge retrieval-augmented generation (RAG) can be used that retrieves relevant information from a vector database and adds it to the prompt context. To provide really up-to-date information, function calls can be used to request the current information (flight arrival … Read more