Application development and design
As software demands become more prevalent and complex, application development and design continues to experience a wave of changes in terms of tooling and practices. Learn about the latest in this field, including breakdowns of both established and emerging languages, as well as the key practices required for successful development efforts.
Top Stories
-
Feature
14 Aug 2024
Learn about the negative impacts of technical debt
Key leadership decisions like poor architecture to rushed processes can lead to technical debt that will affect a company long-term. Learn more about these effects. Continue Reading
-
Tip
14 Aug 2024
Follow these 8 best practices for cloud-native app development
The better your cloud-native development process is, the more efficient and reliable your application is likely to be. Follow these tips to bring your development practices to the next level. Continue Reading
-
Definition
14 Aug 2024
What is an API (application programming interface)?
An application programming interface (API) is code that enables two software programs to communicate. Continue Reading
-
Video
13 Aug 2024
Standalone Spring Boot console apps with CommandLineRunner
Want to create a Spring Boot application that runs at the command line? It's easy. Simply implement the CommandLineRunner interface, and override the required run method. Here's how. Continue Reading
-
Definition
09 Aug 2024
What is the software development lifecycle (SDLC)?
The software development lifecycle (SDLC) is a project management framework that describes the stages and tasks involved in each step of software development. Continue Reading
-
Definition
09 Aug 2024
What is software resilience testing?
Software resilience testing is a method of software testing that focuses on ensuring that applications perform well in real-life or chaotic conditions. Continue Reading
-
Definition
09 Aug 2024
What is static application security testing (SAST)?
Static application security testing (SAST) is the process of analyzing and testing application source code for security vulnerabilities. Continue Reading
-
Tip
06 Aug 2024
Epics, features and user stories explained
Epics, features and user stories are all uniquely important work products in Agile product management. Learn the difference between them and how they work together to create value. Continue Reading
-
Video
02 Aug 2024
Agile vs. Scrum: How to choose between them
Scrum and Agile both emphasize collaboration and efficiency for DevOps teams in different ways. Learn when to use each approach and when to use them in tandem. Continue Reading
-
Video
02 Aug 2024
RestController vs. Controller: What's the difference?
Spring 4 introduced the RestController to simplify RESTful API development, but most Spring Boot developers still don't know how it differs from the Spring MVC Controller. Continue Reading
-
Tip
31 Jul 2024
A beginner's guide to learning new programming languages
Rust or Ruby? Go or Groovy? As the competitive IT landscape evolves, developers can enhance their skills and career potential by learning new programming languages. Continue Reading
-
Video
29 Jul 2024
Java tic-tac-toe game coding tutorial
What's the best way to learn how to program? Code up some of your favorite childhood games. Here, we'll show you how to code a tic-tac-toe game in Java. Continue Reading
-
Definition
29 Jul 2024
What is no-code? Everything you need to know
No-code is a software development approach that requires few, if any, programming skills to quickly build an application, website or module that links into an existing system. Continue Reading
-
Definition
26 Jul 2024
What is a bitwise operator?
A bitwise operator is a character that represents an action taken on data at the bit level, as opposed to bytes or larger units of data. Continue Reading
-
Definition
26 Jul 2024
What is an API endpoint?
An API endpoint is a point at which an application programming interface -- the code that enables two software programs to communicate with each other -- connects with the software program. Continue Reading
-
Video
19 Jul 2024
GET vs. POST: What's the difference?
POST and GET are the two most-used RESTful HTTP methods. But how well versed are you on the differences between them? Continue Reading
-
Video
18 Jul 2024
How to apply the Liskov substitution principle in Java
The Liskov substitution principle is often mistaken for polymorphism and inheritance. To really understand the SOLID LSP, you must understand the nuance and distinction. Continue Reading
-
Definition
16 Jul 2024
exception handler
An exception handler is code that stipulates what a program will do when an anomalous or exceptional event occurs and disrupts the normal flow of that program's instructions. Continue Reading
-
Tip
03 Jul 2024
Top benefits of the Zig programming language
Does the world really need another programming language? Yes, say developers behind Zig. Here are five of the top features Zig brings to the programming world. Continue Reading
-
Tip
03 Jul 2024
How to use parallel streams in Java with virtual threads
Virtual threads in Java currently lack integration with the stream API, particularly for parallel streams. Here's how a JDK 22 preview feature addresses the problem. Continue Reading
-
Tip
02 Jul 2024
A guide to software design documentation and specifications
Software design documents still rank as important SDLC components -- even in the age of DevOps. Learn why they are important, how to write one and who should contribute. Continue Reading
-
Tip
02 Jul 2024
Requirements vs. user stories in software development
User stories fulfill the same purpose as software requirements but through different means. Learn how to write user stories and how they relate to software requirements. Continue Reading
-
Tip
27 Jun 2024
Cypress vs. Playwright: When to use each
Cypress and Playwright stand out as notable options among the many automated testing tools available. Learn how to make an informed choice between them. Continue Reading
-
Definition
21 Jun 2024
OpenID (OpenID Connect)
OpenID Connect is an open specification for authentication and single sign-on (SSO). Continue Reading
-
Tip
17 Jun 2024
Why and how to manage microservices without API gateways
Managing microservices without API gateways might be uncommon, but not unheard of. Consider the benefits, downsides and available auxiliary tools before taking an alternate approach. Continue Reading
-
Definition
14 Jun 2024
reactive programming
Reactive programming is a programming paradigm, or model, that centers around the concept of reacting to changes in data and events as opposed to waiting for an event to happen. Continue Reading
-
Tip
14 Jun 2024
ORM vs. SQL: When to use each
Object relational mapping and raw SQL are two different ways to interact with relational databases. Learn when to use each of the two methods and when using both is appropriate. Continue Reading
-
Definition
14 Jun 2024
object-oriented programming (OOP)
Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior. Continue Reading
-
Tip
10 Jun 2024
5 Java ORM tools to know
ORMs are a popular method for connecting to databases from Java. Consider the tradeoffs of these ORM tools to decide which tool to run with. Continue Reading
-
Definition
06 Jun 2024
haptics
Haptics is the science of applying a sense of touch and control to interaction with computer applications. Continue Reading
-
Definition
06 Jun 2024
software
Software is a set of instructions, data or programs used to operate computers and execute specific tasks. Continue Reading
-
Definition
06 Jun 2024
domain-driven design (DDD)
Domain-driven design (DDD) is a software development philosophy centered around the business domain, or sphere of knowledge, of that software's users. Continue Reading
-
Tip
05 Jun 2024
Advanced Java pattern matching techniques, with examples
Dive deeper into Java pattern matching techniques with these examples that range from nested records to type inference, variables and generics. Continue Reading
-
Definition
31 May 2024
CQRS (command query responsibility segregation)
CQRS (command query responsibility segregation) is a programming design and architectural pattern that treats retrieving data and changing data differently. Continue Reading
-
Feature
30 May 2024
Understanding and implementing the software testing pyramid
Frameworks such as the software testing pyramid help developers implement Agile core values. Learn how the testing pyramid helps teams prioritize test type frequency. Continue Reading
-
Definition
30 May 2024
clipboard
A clipboard is a feature in an operating system or application that temporarily stores data copied or cut from a document or other location, allowing the user to transfer or duplicate it elsewhere. Continue Reading
-
Tip
23 May 2024
Introduction to pattern matching in Java
Pattern matching in Java helps developers better describe data structures and avoid runtime errors, while making code more readable and easier to maintain. Here's how it works. Continue Reading
-
Definition
23 May 2024
impact mapping
Impact mapping is a visual planning technique that aligns project processes with business objectives. Continue Reading
-
Definition
23 May 2024
CALMS
CALMS is a conceptual framework for the integration of development and operations (DevOps) teams, functions and systems within an organization. Continue Reading
-
Tip
21 May 2024
10 best practices for managing data in microservices
Data architects managing loosely coupled microservices applications need to make the right decisions about databases, data ownership, sharing, consistency and failure recovery. Continue Reading
-
Definition
13 May 2024
Remote Procedure Call (RPC)
A Remote Procedure Call (RPC) is a software communication protocol that one program uses to request a service from another program located on a different computer and network, without having to understand the network's details. Continue Reading
-
Tip
13 May 2024
How the back-ends-for-front-ends pattern works
A back-ends-for-front-ends microservices pattern uses an API layer to preprocess data, handle calls and responses, and simplify development efforts. Here's how it all works. Continue Reading
-
Definition
10 May 2024
RESTful API
A RESTful API is an architectural style for an application programming interface that uses HTTP requests to access and use data. Continue Reading
-
Definition
30 Apr 2024
user interface (UI)
The user interface (UI) is the point of human-computer interaction and communication in a device. Continue Reading
-
Definition
29 Apr 2024
integrated development environment (IDE)
An integrated development environment (IDE) is a software suite that consolidates basic tools required to write and test software. Continue Reading
-
Definition
29 Apr 2024
fault injection testing
Fault injection testing is a software testing method that deliberately introduces errors to a system to ensure it can withstand and recover from error conditions. Continue Reading
-
Definition
29 Apr 2024
web application development
Web application development is the creation of application programs that reside on remote servers and are delivered to the user's device over the internet. Continue Reading
-
Definition
26 Apr 2024
12-factor app
Twelve-factor app is a methodology for building distributed applications that run in the cloud and are delivered as a service. Continue Reading
-
Definition
26 Apr 2024
feature-driven development (FDD)
Feature-driven development (FDD) is an Agile software development framework that organizes work around product features. Continue Reading
-
Definition
25 Apr 2024
model-driven development
Model-driven development (MDD) is a format to write and implement software quickly, effectively and at minimum cost. Continue Reading
-
Definition
25 Apr 2024
soak testing
Soak testing is a type of performance testing that gauges how an application handles a growing number of users or increasingly taxing tasks over an extended period of time. Continue Reading
-
Definition
24 Apr 2024
spike testing
Spike testing is a type of performance testing in which an application receives a sudden and extreme increase or decrease in load. Continue Reading
-
Definition
12 Apr 2024
OAuth (Open Authorization)
OAuth (Open Authorization) is an open standard authorization framework for token-based authorization on the internet. Continue Reading
-
Tutorial
27 Mar 2024
How the saga design pattern in microservices works
When a sequence of steps must be performed to support an operation, the microservices saga design pattern is a perfect fit. Continue Reading
-
Video
27 Mar 2024
Do the 5 Scrum values really add value?
Do the Scrum Guide's five values really provide value as proponents claim? A scientific examination suggests they should be a lot more helpful to software development teams. Continue Reading
-
Definition
25 Mar 2024
Spring Framework (Spring)
The Spring Framework (Spring) is an open source software development framework that provides infrastructure support for building Java-based applications on any deployment platform. Continue Reading
-
Definition
21 Mar 2024
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 a client or other web-based programs to use. Continue Reading
-
Video
19 Mar 2024
Learn Maven tutorial for beginners
Apache Maven is the Java world's most popular build tool, and if you're a Java developer, it behooves you to learn it. This Maven tutorial will make you an expert in a hurry. Continue Reading
-
Definition
19 Mar 2024
scripting language
A scripting language is a type of programming language in which the instructions are interpreted individually at runtime. Continue Reading
-
Definition
15 Mar 2024
low-code and no-code development platforms
Low-code/no-code development platforms are software development tools and environments that allow enterprise developers and citizen developers to create new applications using drag-and-drop components, linking them together and creating mobile or web apps. Continue Reading
-
Definition
06 Mar 2024
program counter
A program counter is a special register in a computer processor that contains the memory address (location) of the next program instruction to be executed. Continue Reading
-
Definition
05 Mar 2024
model-based systems engineering (MBSE)
Model-based systems engineering (MBSE) uses models to share information across collaborators in the design, development, test and operation of complex systems. Continue Reading
-
Video
23 Feb 2024
Top 10 differences between GitHub and Git
Enterprise development teams need to know these major differences between Git and GitHub, but also how they serve different purposes and be used together effectively. Continue Reading
-
Tip
08 Feb 2024
Top 9 smart contract platforms to consider in 2024
Platform speed, scalability, security and smart contract development support vary widely. Here's how to match features to your needs plus the lowdown on the major players. Continue Reading
-
Video
08 Feb 2024
How to set a Git username and password in Git config
There's a way to stop Git from repeatedly asking you for a username and password. Just set your username and password in Git config. Continue Reading
-
Video
07 Feb 2024
Git vs. GitHub: What's the difference?
Git and GitHub involve similar technology but are different in several important ways. Here's what you need to understand to get the most out of these key developer tools. Continue Reading
-
Video
05 Feb 2024
Full Git and GitHub tutorial for beginners
Git is the most popular version control tool on the market, and GitHub is the most popular Git hosting service. This Git and GitHub course shows you how to use them together. Continue Reading
-
Definition
05 Feb 2024
work in progress (WIP)
Work in progress (WIP) refers to the number of tasks or projects that are currently in the process of being completed. Continue Reading
-
Definition
25 Jan 2024
Java
Java is a widely used programming language expressly designed for coding applications and services used in the distributed environment of the internet. Continue Reading
-
Definition
25 Jan 2024
Chaos Monkey
Chaos Monkey is a software tool Netflix engineers developed to test the resiliency and recoverability of their Amazon Web Services (AWS) infrastructure. Continue Reading
-
Definition
22 Jan 2024
API lifecycle management
API lifecycle management is a part of application programming interface management that supports the design, development and maintenance of APIs, including their transitioning from design and testing to a production environment. Continue Reading
-
Definition
12 Jan 2024
polyglot programming
Polyglot programming is the practice of writing code in multiple languages to capture additional functionality and efficiency not available in a single language. Continue Reading
-
Definition
11 Jan 2024
Java compiler
A Java compiler is a program that takes the text file work of a developer and compiles it into a platform-independent Java file. Continue Reading
-
Definition
05 Jan 2024
beta test
In software development, a beta test is the second phase of software testing in which a sampling of the intended audience tries out the product. Continue Reading
-
Tip
21 Dec 2023
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
-
Feature
19 Dec 2023
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
-
Definition
19 Dec 2023
Business Process Model Notation (BPMN)
Business Process Modeling Notation (BPMN), also called Business Process Model and Notation, is an open standard to diagram a business process. Continue Reading
-
Definition
15 Dec 2023
business logic
In programming, business logic is the part of a software program responsible for implementing the business rules that define how data should be created, modified, transformed, communicated and in other ways managed and controlled. Continue Reading
-
Tip
15 Dec 2023
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
-
Tip
12 Dec 2023
A review of 7 software architecture visualization tools
Visualization tools like Visio and Draw.io can provide a lot of benefits when it comes to software architecture design and management, but choosing the right one is important. Continue Reading
-
Definition
08 Dec 2023
hyperconverged appliance (HCI appliance)
A hyperconverged appliance (HCI appliance) is a hardware device that provides multiple data center management technologies within a single box. Continue Reading
-
Tip
07 Dec 2023
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
-
Answer
01 Dec 2023
11 real benefits of microservices
There's a reason why so many vendors have moved from monoliths to microservices. Here are 11 real benefits microservices bring to companies. Continue Reading
-
Tip
30 Nov 2023
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
-
Definition
22 Nov 2023
natural user interface (NUI)
A natural user interface -- or NUI -- is an interface that is designed to feel as natural as possible. Continue Reading
-
Tip
16 Nov 2023
What does the Python 'if name equals main' construct do?
Ever wonder what Python's if name equals main syntax does? Here we explore what it does and when to use it. Continue Reading
-
Tip
08 Nov 2023
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
-
Tip
07 Nov 2023
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
-
Tip
26 Oct 2023
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
-
Tip
20 Oct 2023
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
-
Tip
19 Oct 2023
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
-
Tip
17 Oct 2023
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
-
Definition
16 Oct 2023
decentralized application (DApp)
A decentralized application (DApp) is a type of distributed, open source software application that runs on a peer-to-peer (P2P) blockchain network rather than on a single computer. Continue Reading
-
Tip
11 Oct 2023
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
-
Tip
29 Sep 2023
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
-
Definition
27 Sep 2023
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
-
Tip
22 Sep 2023
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
-
Tip
19 Sep 2023
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
-
Tip
18 Sep 2023
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
-
Tip
15 Sep 2023
Idempotent HTTP methods and REST
The Hypertext Transport Protocol requires all HTTP verbs to identify as idempotent or not. But what is an idempotent method, and how does idempotence apply to RESTful API design? Continue Reading
-
Tip
11 Sep 2023
Three-tier vs. microservices architecture: How to choose
The microservices approach is well suited to an app that needs a high level of modularity. When is the added complexity worth it, and how do you make that call? Continue Reading
-
Definition
30 Aug 2023
skeuomorphism
Skeuomorphism is when something is designed with extra ornamentation to make it resemble another object so it is more familiar. Continue Reading