Get started
Bring yourself up to speed with our introductory content.
Get started
Bring yourself up to speed with our introductory content.
Object-oriented vs. functional programming explained
While plenty of developers entertain the idea of adopting a functional programming model, it's important to first know exactly how it differs from the object-oriented approach. Continue Reading
The 5 SOLID principles of object-oriented design explained
In this primer on SOLID, we'll examine the five principles this development ideology embodies, the practices they encourage and the reasons these concepts matter. Continue Reading
How to make a strong business case for software projects
Every software project proposal requires in-depth research into the technical aspects at play, but the business case for the project should tone down the tech talk. Continue Reading
-
The pros and cons of a layered architecture pattern
Layered architecture patterns provide a consistent and secure way to organize code when implemented correctly. However, the way those layers interact should remain a top concern. Continue Reading
interoperability
Interoperability refers to the degree to which a software system, devices, applications or other entity can connect and communicate with other entities in a coordinated manner without effort from the end user. Continue Reading
Comparing MERN vs. MEAN stacks for web app development
While MERN and MEAN stacks share many common elements, their respective use of React and Angular is a defining factor in choosing one or the other.Continue Reading
Elixir vs. Clojure for functional programming at scale
While they don't have the prestige of JavaScript or Python, Elixir and Clojure are making a name for themselves when it comes to functional programming at scale.Continue Reading
WSO2
WSO2 is a middleware vendor that sells open source application program interface (API) management software.Continue Reading
Prometheus
Prometheus is an open source monitoring and alerting toolkit for microservices and containers that provides flexible queries and real-time notifications.Continue Reading
The basics of working with pseudocode
Writing pseudocode is a great way to practice problem-solving skills, a crucial aspect in programming. It helps developers conceptualize and communicate their ideas.Continue Reading
-
The growing link between microservices and WebAssembly
The microservices architecture has become popular, but it runs into complexity and cost challenges. Implementing WebAssembly can alleviate those worries.Continue Reading
Serverless vs. containers: Which one for microservices apps?
How do you know when microservices should run in containers vs. serverless functions? A big factor is what you plan to do with your microservices.Continue Reading
What are microservices? Everything you need to know
Microservices, or microservices architecture, is an approach to the design and implementation of enterprise applications in which a large application is built from modular components or services.Continue Reading
Understanding the role of polymorphism in OOP
Polymorphism is used in OOP to allow developers to write more efficient code and redefine methods for derived classes; however, it could raise real-time performance issues.Continue Reading
Understanding protocol buffers vs. JSON
Protocol buffers have some compelling advantages over JSON when it comes to sending data between internal services. But is it really a replacement for JSON?Continue Reading
API economy
The API economy refers to the set of business models and practices designed around the use of application programming interfaces (APIs) in today's digital economy.Continue Reading
Scripting vs. programming languages: Where they differ
Choosing a programming language is often dictated by the problem the programmer wants to solve and the compute goal that a language is designed to achieve.Continue Reading
Kotlin vs. Scala: Which one is right for your project?
As general-purpose programming languages, both Scala and Kotlin have a lot to offer. But that doesn't mean their uses cases are the same.Continue Reading
Architecting beyond microservices and monoliths
A recent architectural change tied to Amazon's Prime Video service could help enterprise application teams understand their own microservices vs. monolithic architecture choices.Continue Reading
Business Process Modeling Language (BPML)
Business Process Modeling Language (BPML) is an XML standard metalanguage used to outline business processes in an easy-to-understand way.Continue Reading
What to know about building microservices with ASP.NET Core
It's optimized for containerization, integrates with the cloud and works on multiple platforms. Does ASP.NET Core deserve a place in your development shop?Continue Reading
Rust vs. C++: Differences and use cases
C++ was mature before Rust even existed. Does that mean developers should switch from C++ to Rust? Not always.Continue Reading
3 critical stops on the back-end developer roadmap
When it comes to acquiring the skills needed to be a proficient back-end developer, there are no shortcuts. Some of the topics to know will be obvious, others might not be.Continue Reading
Understanding Roc: Functional and separate from the runtime
Though it's a newer programming language with a small development community, Roc is meant to be an easy-to-read language that incorporates a pure, functional programming approach.Continue Reading
Spring Framework
The Spring Framework (Spring) is an open source software development framework that provides infrastructure support for building primarily Java-based applications.Continue Reading
Webhooks explained simply: What they do and how they work
Webhooks make significant use of basic API call mechanisms, while also setting event triggers in a few clicks of a button without the overhead of heavy request-response structures.Continue Reading
The basics of TOGAF certification and some ways to prepare
TOGAF offers architects a chance to learn the principles behind implementing an enterprise-grade software architecture, including how to align business goals with IT capabilities.Continue Reading
A quick intro to the MACH architecture strategy
While not particularly prescriptive, alignment with a MACH architecture strategy can help software teams ensure application designs make proper use of current technologies.Continue Reading
How to maintain polyglot persistence for microservices
Managing microservice data may be difficult without polyglot persistence in place. Examine how the strategy works, its challenges and some options for polyglot databases.Continue Reading
5 noteworthy challenges of automotive software development
Modern cars are loaded with technology, but creating in-vehicle applications isn't always a cakewalk. Here are five unique challenges developers face with automotive software.Continue Reading
Breaking down the cornerstone components of OOP
Object-oriented programming changed the game for those working on complex software systems. But what are the key elements that define this prominent approach to development?Continue Reading
5 types of software architecture design worth knowing
While it's impossible to identify any software design style as the 'most important' to know, there are five major patterns with which all architects should arguably become familiar.Continue Reading
Microservices vs. headless architecture: A brief breakdown
Microservices and headless architectures are both techniques capable of providing flexibility and modularity, but how do you make a wise choice between them?Continue Reading
How to create a smart contract using Ethereum
Solidity is a powerful language for programming and deploying smart contracts on the Ethereum network. Here's how to get started, with advice on choosing the best tools.Continue Reading
The past, present and future of AI coding tools
Though AI-assisted software development has seemingly hit a historical turning point, things like intelligent code completion, static code analysis arguably led the way.Continue Reading
business capability
A business capability is the ability of an organization to achieve a specific outcome or objective.Continue Reading
API security
Application program interface (API) security refers to policies and procedures that protect APIs against malicious attacks and vulnerabilities.Continue Reading
data type
In software programming, data type refers to the type of value a variable has and what type of mathematical, relational or logical operations can be applied without causing an error.Continue Reading
state diagram (state machine diagram or statechart diagram)
A state diagram (also known as a state machine or statechart diagram) is an illustration of all the possible behavioral states a software system component may exhibit and the various state changes it's predicted to undergo over the course of its ...Continue Reading
Falcor vs. GraphQL: The differences that matter
While both essentially represent two approaches to a similar end goal, there are some key differences between GraphQL and Falcor that are worth understanding.Continue Reading
middleware
Middleware is software that is used to bridge the gap between applications and operating systems.Continue Reading
service-oriented architecture (SOA)
Service-oriented architecture (SOA) is a software development model that makes services reusable and lets them communicate across different platforms and languages to form new applications.Continue Reading
CQRS (command query responsibility segregation)
Command query responsibility segregation (CQRS) is a programming design pattern that treats retrieving data and changing data differently.Continue Reading
A quick look at the Carbon programming language
Carbon is an experimental programming language built to stand on the shoulders of C++ -- but with a new outlook on memory safety, threading and functional programming.Continue Reading
Ways to get by when Waterfall development reigns
Against all odds, the Waterfall methodology maintains a tight grip over countless numbers of software development teams. Fortunately, there are a few ways to make the most of it.Continue Reading
The raw -- yet burgeoning -- potential of coreless banking
While coreless banking is still a novel concept, it shows strong potential to liberate banks from the rigid software systems that have dominated the industry for decades.Continue Reading
The fundamentals of achieving high cohesion and low coupling
It's easy to say, 'high cohesion, low coupling,' but is it as easy to put into practice? We examine some of the basics behind cohesion, coupling and the right balance between them.Continue Reading
client-side framework
A client-side framework is a software development framework that focuses on executing application processes on end user devices rather than the application's own server.Continue Reading
What developers need to know about open banking
Open banking has made financial transactions easier and more secure for those with multiple banking accounts; however, vulnerabilities within open APIs raise security concerns.Continue Reading
dependency injection
In object-oriented programming (OOP) software design, dependency injection is the process of supplying a resource that a given piece of code requires.Continue Reading
API testing
API testing is a type of software testing that analyzes an application program interface (API) to verify that it fulfills its expected functionality, security, performance and reliability.Continue Reading
native code
Native code is binary data compiled to run on a processor, such as an Intel x86-class processor.Continue Reading
polyglot persistence
Polyglot persistence is a conceptual term that refers to the use of different data storage approaches and technologies to support the unique storage requirements of various data types that live within enterprise applications.Continue Reading
GraphQL
GraphQL is an open source query language that describes how a client should request information through an API.Continue Reading
enterprise architecture framework
An enterprise architecture framework (or simply EA framework) is the collection of processes, templates and tools that software teams use to plan and build large, enterprise-grade application architecture systems.Continue Reading
componentization (component-based development)
Componentization is an approach to software development that involves breaking software down into identifiable and reusable pieces that application developers can independently build and deploy.Continue Reading
5 ways to survive the challenges of monolithic architectures
Those unable to make the jump to microservices still need a way to improve architectural reliability. Here are five ways software teams can improve a monolith's reliability.Continue Reading
What are the types of APIs and their differences?
Enterprises increasingly rely on APIs to interact with customers and partners. It all starts with knowing which type of API is right for your needs.Continue Reading
How architects can use napkin math to forecast performance
Although modern software systems can be inordinately complex, architects can still use simple napkin math to glean quick overviews of system performance and architecture alignment.Continue Reading
state management
Application state management is the process of maintaining knowledge of an application's inputs across multiple related data flows that form a complete business transaction -- or a session -- to understand the condition of the app at any given ...Continue Reading
source code
Source code is the fundamental component of a computer program that is created by a programmer, often written in the form of functions, descriptions, definitions, calls, methods and other operational statements.Continue Reading
gRPC
GRPC is a high-performance remote procedure call framework released by Google in August 2016.Continue Reading
data dictionary
A data dictionary is a collection of descriptions of the data objects or items in a data model to which programmers and others can refer.Continue Reading
application programming interface (API)
An application programming interface (API) is code that enables two software programs to communicate.Continue Reading
A primer on core development team structure concepts
To establish the right development team size, managers must look at each member's responsibilities and communication paths, as well as know when to split teams.Continue Reading
feature flagging
Feature flagging is a simple programming design pattern that allows developers to turn application features on or off without having to redeploy or change code already in production.Continue Reading
12 API security best practices to protect your business
As with any software development cycle, API security must be built in from the start. Follow these guidelines to design, deploy and protect your APIs.Continue Reading
The basics, benefits and risks of cell-based architecture
Developers who work with microservices may find the concept familiar, but cell-based architecture takes its own spin on modularity to address large-scale system failover issues.Continue Reading
3 common CQRS pattern problems, and how teams can avoid them
While CQRS can provide a lot of value when it comes to structuring an event-driven architecture, improper practices can cause this pattern to be more of a burden than a blessing.Continue Reading
Why API naming conventions matter, and how to master the art
Naming APIs can be a daunting process, since it requires a balance between simplicity and clarity. JJ Geewax, author of 'API Design Patterns,' has some advice for developers.Continue Reading
10 application performance metrics and how to measure them
You've deployed your application, now what? To keep your application performing well, you need to track various metrics. Take a look at these ten critical KPIs.Continue Reading
parser
In computer technology, a parser is a program that's usually part of a compiler. It receives input in the form of sequential source program instructions, interactive online commands, markup tags or some other defined interface.Continue Reading
A 7-point language comparison of Ballerina vs. Golang
This comparison takes a look at both Ballerina and Golang, including their support for high-level programming, libraries, built-in management features and community support.Continue Reading
How viable is it to create microservices in Python?
Python offers microservices developers access to advanced scripting, embedded testing and plugin tooling. But is it a good fit for you? And what are the alternatives if it isn't?Continue Reading
Frameworks for an observability maturity model
Observability helps developers and IT operations teams identify and fix system issues. And with the right setup, it can improve on itself over time to catch potential problems.Continue Reading
Can you really use a shared database for microservices?
Since its emergence as a mainstream development style, experts have debated the wisdom of using a shared database for microservices versus providing a database per service.Continue Reading
system of systems (SoS)
A system of systems (SoS) is the collection of multiple, independent systems in context as part of a larger, more complex system.Continue Reading
SOAP (Simple Object Access Protocol)
SOAP (Simple Object Access Protocol) is a message protocol that enables the distributed elements of an application to communicate.Continue Reading
6 ways cloud-native and cloud-agnostic architecture differ
While development teams should carefully weigh the tradeoffs between cloud-native and cloud-agnostic architectures, they don't necessarily have to commit to just one.Continue Reading
object
In object-oriented programming (OOP), objects are the things you think about first in designing a program and they are also the units of code that are eventually derived from the process.Continue Reading
The basics of working with declarative programming languages
While imperative programming is often a go-to, the declarative approach has proved useful in the face of demands for complex, feature-heavy business applications.Continue Reading
Micro apps vs. microservices: What developers should know
On the surface, the contrast between micro apps and microservices simply seems a matter of front-end vs. back-end concerns. But this isn't the only difference worth knowing.Continue Reading
An intro to cloud-native microservices and how to build them
While there are a variety of ways to develop cloud-native microservices, focus on strategies that enable as much agility, resiliency and development simplicity as possible.Continue Reading
Resource Description Framework (RDF)
The Resource Description Framework (RDF) is a general framework for representing interconnected data on the web.Continue Reading
event handler
In programming, an event handler is a callback routine that operates asynchronously once an event takes place.Continue Reading
WebLogic
Oracle WebLogic Server is a leading e-commerce online transaction processing (OLTP) platform, developed to connect users in distributed computing production environments and to facilitate the integration of mainframe applications with distributed ...Continue Reading
SPML (Services Provisioning Markup Language)
Services Provisioning Markup Language (SPML) is an open source XML-based standard that facilitates the exchange of account provisioning information among applications, services and organizations.Continue Reading
BPEL (Business Process Execution Language)
BPEL (Business Process Execution Language) is an XML-based language that allows web services, APIs and human processes in a service-oriented architecture (SOA) to interconnect and share data in a business workflow.Continue Reading
Eclipse (Eclipse Foundation)
Eclipse is a free, Java-based development platform known for its plugins that allow developers to develop and test code written in other programming languages.Continue Reading
EAI (enterprise application integration)
Enterprise application integration (EAI) is the task of uniting the databases and workflows associated with business applications to ensure that the business uses the information consistently and that changes to core business data made by one ...Continue Reading
BSA | The Software Alliance
BSA | The Software Alliance is an advocate for public policies that foster technology innovation and drive economic growth.Continue Reading
web services
Web services are a type of internet software that use standardized messaging protocols and are made available from an application service provider's web server for use by a client or other web-based programs.Continue Reading
Remote Procedure Call (RPC)
Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details.Continue Reading
foo (in software programming)
Foo (pronounced FOO) is a term used by programmers as a placeholder for a value that can change depending on conditions or on information passed to the program.Continue Reading
open API (public API)
Review this definition to learn about open APIs, also known as a public APIs, including their associated benefits, industry use cases and unique attributes.Continue Reading
Enterprise Service Bus (ESB)
An enterprise service bus (ESB) is a software platform used to distribute work among connected components of an application.Continue Reading
8 fundamental microservices security best practices
Despite the benefits, microservices will introduce profound security issues. We review the biggest microservices security challenges and eight strategies used to combat them.Continue Reading
refactoring
Refactoring is the process of restructuring code, while not changing its original functionality.Continue Reading
user interface (UI)
The user interface (UI) is the point of human-computer interaction and communication in a device.Continue Reading
UUID (Universal Unique Identifier)
A UUID (Universal Unique Identifier) is a 128-bit value used to uniquely identify an object or entity on the internet.Continue Reading