Schema Evolution Without Breaking Consumers
Explains how to safely evolve data schemas using API-like discipline to prevent breaking downstream systems like dashboards and ML pipelines.
Explains how to safely evolve data schemas using API-like discipline to prevent breaking downstream systems like dashboards and ML pipelines.
Key insights on API design and compatibility from Addy Osmani's lessons at Google, emphasizing that compatibility is a core product feature.
A detailed guide covering key changes, deprecations, and quality heads-up when upgrading from Java 21 to Java 25.
Explores API versioning strategies, their importance for backward compatibility, and their impact on development and release management.
JDK 23 removes the legacy COMPAT locale data provider, requiring projects to switch to CLDR or custom implementations.
A guide to using semantic SwiftUI extensions to conditionally apply new iOS features while maintaining backward compatibility with older OS versions.
A technique for future-proofing SQL code by intentionally adding errors to catch unexpected changes in data or logic.
Explains the deprecation of dynamic properties in PHP 8.2, its impact, and the recommended solutions using __get/__set or the AllowDynamicProperties attribute.
Explains the purpose of PHP deprecation notices, how to handle them, and why they are beneficial for long-term code health.
Practical strategies for updating PHP projects when external dependencies don't yet support the latest PHP version, including testing, contributing, and finding alternatives.
A reflection on API design and developer responsibility, using a historical Windows Kernel function as a case study.
Explains how to make Swift's new async/await system APIs work on older iOS versions using continuations.
Explains how to use Swift's availability checks to adopt new iOS APIs while maintaining backward compatibility with older system versions.
Introduces Vue Demi, a utility for writing universal Vue.js libraries that work with both Vue 2 and Vue 3, addressing migration challenges.
A guide to implementing enum-like behavior in PHP before PHP 8.1, using polymorphism for type safety and value-specific logic.
Explains how to use Java 13 text blocks in test code while keeping main project code compatible with older Java versions like Java 8.
Explains how to use Java 13 text blocks in test code while maintaining main code compatibility with older Java versions.
Discusses scenarios where migrating from Python 2 to Python 3 may not be necessary or feasible, focusing on business and technical constraints.
A guide to creating Multi-release JARs (MR-JARs) in Java to package code for multiple Java versions in a single artifact.
Fixing Laravel 5.3 errors when upgrading to PHP 7.2 due to a backward incompatibility with the count() function.