# modularity

Published articles for modularity.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How Wasm components enable pluggable tooling through interposition

DevFeed: [How Wasm components enable pluggable tooling through interposition](<https://devfeed.tech/articles/how-wasm-components-enable-pluggable-tooling-through-interposition-15137.md>)

Original publisher: [Read original article](<https://bytecodealliance.org/articles/how-wasm-components-enable-pluggable-middleware>)

Author: Elizabeth Gilbert

Published: 2026-05-14T00:00:00Z

Content type: article

Language: en

Sources: [Bytecode Alliance](<https://devfeed.tech/sources/bytecode-alliance.md>)

Topics: [wasm](<https://devfeed.tech/topics/wasm.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [services](<https://devfeed.tech/tags/services.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [wasm-components](<https://devfeed.tech/tags/wasm-components.md>)

### AI overview

The article explains how WebAssembly components can support pluggable HTTP middleware through component composition, service chaining, and interposition. It describes in-process communication between components whose imports and exports agree, including fan-in service topologies and chains of handlers for cross-cutting request and response processing.

### Source excerpt

And how the splicer framework makes it tractable at any interface edge.

## How a Learning Project Became Our Modern Mobile Test Framework

DevFeed: [How a Learning Project Became Our Modern Mobile Test Framework](<https://devfeed.tech/articles/how-a-learning-project-became-our-modern-mobile-test-framework-28058.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2026-02-18-how-a-learning-project-became-our-modern-mobile-test-framework/>)

Author: Raymond Saba I'm an SDET who enjoys building test automation; Finding Ways

Published: 2026-02-18T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [webDriver](<https://devfeed.tech/topics/webdriver.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [appium](<https://devfeed.tech/tags/appium.md>), [automation](<https://devfeed.tech/tags/automation.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [java](<https://devfeed.tech/tags/java.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [quality-assurance](<https://devfeed.tech/tags/quality-assurance.md>), [standards](<https://devfeed.tech/tags/standards.md>), [threads](<https://devfeed.tech/tags/threads.md>), [webdriver](<https://devfeed.tech/tags/webdriver.md>)

### AI overview

This engineering article describes how trivago's aging homegrown mobile automation framework evolved into a shared iOS and Android test framework. It covers the transition from Appium 1 to Appium 2 and later Appium 3, including a rewrite based on W3C WebDriver standards, platform-specific drivers, modularity, and parallel execution with threads in one JVM.

### Source excerpt

About six years ago, our mobile automation setup was showing its age. It was a small, homegrown framework that had worked "well enough" for a long time, until we tried to upgrade Java and a few ...

## Creating an Arduino Library for ESP32

DevFeed: [Creating an Arduino Library for ESP32](<https://devfeed.tech/articles/creating-an-arduino-library-for-esp32-13737.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/12/arduino-library-creation/>)

Author: John Lee

Published: 2025-12-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Arduino](<https://devfeed.tech/topics/arduino.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Library](<https://devfeed.tech/topics/library.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [arduino](<https://devfeed.tech/tags/arduino.md>), [arduino-ide](<https://devfeed.tech/tags/arduino-ide.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [modular](<https://devfeed.tech/tags/modular.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [programming](<https://devfeed.tech/tags/programming.md>), [structure](<https://devfeed.tech/tags/structure.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A step-by-step guide to creating, structuring, and publishing custom Arduino libraries for ESP32. It explains library benefits and structure, prerequisites, and implementation through a minimal "Hello World" example.

### Source excerpt

Learn how to create, structure, and publish Arduino libraries for ESP32. This step-by-step guide covers everything from understanding a library structure to submitting your library to the Arduino Library Manager.

## Bevy Entity Component System on ESP32 with Rust no\_std

DevFeed: [Bevy Entity Component System on ESP32 with Rust no\_std](<https://devfeed.tech/articles/bevy-entity-component-system-on-esp32-with-rust-no-std-13691.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/04/bevy-ecs-on-esp32-with-rust-no-std/>)

Author: John Lee

Published: 2025-04-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Bevy](<https://devfeed.tech/topics/bevy.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bevy](<https://devfeed.tech/tags/bevy.md>), [blog](<https://devfeed.tech/tags/blog.md>), [component](<https://devfeed.tech/tags/component.md>), [ecs](<https://devfeed.tech/tags/ecs.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [microcontrollers](<https://devfeed.tech/tags/microcontrollers.md>), [modular](<https://devfeed.tech/tags/modular.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [no-std](<https://devfeed.tech/tags/no-std.md>), [rust](<https://devfeed.tech/tags/rust.md>), [wasm](<https://devfeed.tech/tags/wasm.md>)

### AI overview

This tutorial demonstrates how to use Bevy ECS with Rust no_std on ESP32 devices. It explains ECS concepts and shows embedded application examples based on Conway's Game of Life and the Spooky Maze Game, with an emphasis on modular code structure and event-based peripheral integration.

### Source excerpt

Introduction# Embedded development in Rust is rapidly evolving, and one of exciting new developments is the introduction of no_std support into the Bevy Entity Component System (ECS). This improvement allows developers to leverage the powerful and modular design of Bevy ECS on resource-constrained devices like the ESP32.

## Vector Sets are part of Redis

DevFeed: [Vector Sets are part of Redis](<https://devfeed.tech/articles/vector-sets-are-part-of-redis-20640.md>)

Original publisher: [Read original article](<http://antirez.com/news/149>)

Published: 2025-04-03T18:01:20Z

Content type: article

Language: en

Sources: [Antirez](<https://devfeed.tech/sources/antirez.md>)

Topics: [Redis](<https://devfeed.tech/topics/redis.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [API](<https://devfeed.tech/topics/api.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [design](<https://devfeed.tech/tags/design.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [module](<https://devfeed.tech/tags/module.md>), [native](<https://devfeed.tech/tags/native.md>), [redis](<https://devfeed.tech/tags/redis.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article announces that Vector Sets have been merged into Redis. It describes them as a new Set-like data type that stores vectors, supports vector-similarity queries, and will be available as a native data type in Redis 8 while retaining modular internal boundaries. The feature is still in beta.

### Source excerpt

Yesterday we finally merged vector sets into Redis, here you can find the README that explains in detail what you get: https://github.com/redis/redis/blob/unstable/modules/vector-sets/README.md The goal of the new data structure is, in short, to create a new "Set alike" data type, similar to Sorted Sets, where instead of having a scalar as a score, you have a vector, and you can add and remove elements the Redis way, without caring about anything except the properties of the abstract data structure Redis implements, ask for elements similar to a given query vector (or a vector associated to some element already in the set), and so forth. But more about that later, a bit of background, first: From the path of the README itself, you can see the implementation is into "modules", but actually, Vector Sets are not a module, it's a part of the Redis core, the thing is that I started developing them as a module, and later I suggested that the implementation should still use the modules API, in order to promote modularity of the internals of Redis, in order to have both the advantages: every Redis instance starting from Redis 8 will have Vector Sets as a native data type, and there are clear boundaries between the core and the implementation ## The first new main data type of Redis after... some time I think that the latest big data structure of Redis were Streams, also developed by me. I resigned, returned, forks happened in the meantime, and it still it looks like the burden to introduce a new data type in Redis is mine :D I must say: I'm ok with that, because as much as I like programming, I also like design, a lot, and I had a feeling, that vectors, and vector similarity, are conceptually very simple, so they deserved a very simple API. And that was what I tried to do. Vector Sets are still a beta feature but I can tell you something, I can guarantee you can learn the API in 3 minutes. I decided that a fundamental requirement for implementing vector similarity was to also

## Ep. 2: Elevating Software Design in Go: Package Architecture in Modern Development

DevFeed: [Ep. 2: Elevating Software Design in Go: Package Architecture in Modern Development](<https://devfeed.tech/articles/ep-2-elevating-software-design-in-go-package-architecture-in-modern-development-22235.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/05/elevating-software-design-in-go-package-architecture-in-modern-development-ep-2.html>)

Published: 2024-05-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api-design](<https://devfeed.tech/tags/api-design.md>), [code-modularity](<https://devfeed.tech/tags/code-modularity.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [go](<https://devfeed.tech/tags/go.md>), [go-development](<https://devfeed.tech/tags/go-development.md>), [go-projects](<https://devfeed.tech/tags/go-projects.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [package-architecture](<https://devfeed.tech/tags/package-architecture.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [software-design](<https://devfeed.tech/tags/software-design.md>)

### AI overview

This video episode explains package architecture in Go. It emphasizes clear boundaries between components, focused package functionality, avoiding generic packages such as "Utils" or "Common," and the role of robust type systems in maintainable software.

### Source excerpt

Introduction: In this insightful episode, Bill dives deep into the realm of package design, shedding light on its crucial role in software development. Here are three key takeaways for Go developers: Code Modularity: Learn how Go's packaging system creates essential firewalls between program components, enhancing maintainability. Focused Functionality: Discover the importance of designing packages that provide specific functionality, fostering code clarity. Avoiding Pitfalls: Bill warns against common package design mistakes like centralized "common" packages, promoting a layered approach to maintainable code.

## Ethereum Foundation Announces $900K Collaborative Zero-Knowledge Public Goods Grant Round

DevFeed: [Ethereum Foundation Announces $900K Collaborative Zero-Knowledge Public Goods Grant Round](<https://devfeed.tech/articles/zk-grants-round-17093.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2024/02/21/zk-grants-round>)

Author: Rodrigo Vasquez

Published: 2024-02-21T00:00:00Z

Content type: release

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [zero-knowledge](<https://devfeed.tech/topics/zero-knowledge.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [applications](<https://devfeed.tech/tags/applications.md>), [collective](<https://devfeed.tech/tags/collective.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [funding](<https://devfeed.tech/tags/funding.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [open](<https://devfeed.tech/tags/open.md>), [project](<https://devfeed.tech/tags/project.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [standards](<https://devfeed.tech/tags/standards.md>), [zero-knowledge](<https://devfeed.tech/tags/zero-knowledge.md>)

### AI overview

The Ethereum Foundation, Aztec, Polygon, Scroll, Taiko, and zkSync launched a collaborative grant round for Zero Knowledge public goods projects. The six co-funders contributed $150,000 each, creating a $900,000 pool, and will participate in funding allocation decisions. Applications close on March 18, 2024.

### Source excerpt

The Ethereum Foundation is thrilled to announce a collaborative grant round with Aztec, Polygon, Scroll, Taiko, and zkSync to develop Zero Knowledge public goods projects. Each co-funder of the grant round has contributed 150K USD in funds, bringing the total grant pool to 900K USD. The breadth and complexity...

## TDD: Writing Testable Code

DevFeed: [TDD: Writing Testable Code](<https://devfeed.tech/articles/tdd-writing-testable-code-20716.md>)

Original publisher: [Read original article](<https://medium.com/javascript-scene/tdd-writing-testable-code-30ac7a3bf49c?source=rss----c0aeac5284ad---4>)

Author: Eric Elliott

Published: 2024-01-21T23:50:43Z

Content type: tutorial

Language: en

Sources: [Eric Elliot](<https://devfeed.tech/sources/eric-elliot.md>)

Topics: [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [coding](<https://devfeed.tech/topics/coding.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [advice](<https://devfeed.tech/tags/advice.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [defects](<https://devfeed.tech/tags/defects.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [react](<https://devfeed.tech/tags/react.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [technology](<https://devfeed.tech/tags/technology.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial explains how to write more testable code through modularity, clarity, separation of concerns, and independence from external systems. It also describes tight coupling as a barrier to testability and maintainability, noting that dependencies can cause changes to cascade into bugs elsewhere.

### Source excerpt

Writing testable code is a vital skill in software engineering. Let's explore practical advice, strategies, and tactics for writing more testable code, unlocking the benefits of modularity, reusability, and high quality software in your projects. Embracing testability in your coding practice isn't just about catching bugs; it's about fostering a culture of quality and efficiency in your projects. A good quality process is an essential prerequisite to continuous delivery, which is the ability to ship code to production at any time, allowing you to iterate quickly and respond to user needs and changing expectations. We'll start by exploring the importance of separation of concerns -- a principle that's crucial in achieving testable code. This approach isn't just a technical necessity; it's a mindset that simplifies complexity and enhances the overall quality of your work. Whether you're a seasoned developer or just starting out, this article aims to provide practical advice and strategies that can be immediately applied to your projects. Overview of Testability in Code Testability in code refers to how easily a software system can be tested. Highly testable code allows for more efficient and effective identification of defects, ensuring higher quality and reliability. Key characteristics of testable code include modularity, where the code is organized into discrete units; clarity, meaning the code is understandable and its purpose is clear; and independence, where units of code can be tested in isolation without reliance on external systems or states. Understanding the Problem: Tight Coupling in Code Tight coupling is often a subtle yet significant barrier to achieving highly testable and maintainable code. Coupling is the degree to which a change in one part of the code may impact or break the functionality in another part of the code. Tight coupling occurs when two or more parts of the code are highly dependent on each other, making it difficult to change one part wi

## Managing State in Vue Applications: The Composable Provider Pattern

DevFeed: [Managing State in Vue Applications: The Composable Provider Pattern](<https://devfeed.tech/articles/managing-state-in-vue-applications-the-composable-provider-pattern-20035.md>)

Original publisher: [Read original article](<https://technology.doximity.com/articles/managing-state-in-vue-applications-the-composable-provider-pattern>)

Author: Doximity

Published: 2023-07-21T07:23:00Z

Content type: article

Language: en

Sources: [Doximity](<https://devfeed.tech/sources/doximity.md>)

Topics: [Vue.js](<https://devfeed.tech/topics/vue.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Nuxt.js](<https://devfeed.tech/topics/nuxt.md>)

Tags: [code-modularity](<https://devfeed.tech/tags/code-modularity.md>), [components](<https://devfeed.tech/tags/components.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [vue](<https://devfeed.tech/tags/vue.md>)

### AI overview

This article explains the Composable Provider pattern for state management in Vue applications. The approach combines the Vue Composition API with the Provide/Inject APIs to manage complex, feature-driven state, with benefits including scalability, maintainability, reusability, and reduced code duplication.

### Source excerpt

State management is a fundamental concept of front-end application design, and a critical aspect in building robust Vue applications. As Vue applications grow in complexity, managing state becomes an increasingly challenging task, especially when working with a large organization of engineers spread across various product teams. Fortunately, the Vue and Nuxt ecosystem provides a variety of state management solutions, each with its own trade-offs. In this blog post we will explore the Composable Provider pattern, which handles state management by combining the Vue Composition and Provide/Inject APIs, and why its clean and simple implementation is a powerful approach to handling complex, feature-driven state in modern Vue applications. Note: This article was originally intended as a reference for our internal engineering team, but given its potential general use among Vue application developers we are publishing it here. We hope you'll find this pattern helpful when designing your Vue application's state as we have here at Doximity! Why Efficient State Management Matters Efficient state management plays a crucial role in the development of Vue applications. As applications grow in complexity, the ways in which we manage and handle changes to state become increasingly important. Here are a few key reasons why managing state efficiently matters: Scalability: As Vue applications and the teams building them grow in size, the complexity and size of their state grow also. Efficient state management allows for better scalability by providing a structured and organized approach to handling state. It becomes easier to add new features, maintain existing functionality, and reason about the flow of data within the application. Code Maintainability: Well-managed state reduces code complexity and promotes code maintainability. When state is not encapsulated properly, it becomes challenging to understand and modify the application's behavior. By implementing sound state management

## How to Generate Package Private Code with jOOQ's Code Generator

DevFeed: [How to Generate Package Private Code with jOOQ's Code Generator](<https://devfeed.tech/articles/how-to-generate-package-private-code-with-jooq-s-code-generator-28941.md>)

Original publisher: [Read original article](<https://blog.jooq.org/how-to-generate-package-private-code-with-jooqs-code-generator/>)

Author: lukaseder

Published: 2023-06-28T15:54:18Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Java 9](<https://devfeed.tech/topics/java-9.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [code-generator](<https://devfeed.tech/tags/code-generator.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-code-generator](<https://devfeed.tech/tags/jooq-code-generator.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [package-private](<https://devfeed.tech/tags/package-private.md>), [visibility](<https://devfeed.tech/tags/visibility.md>), [visibility-modifier](<https://devfeed.tech/tags/visibility-modifier.md>)

### AI overview

This tutorial explains Java package-private visibility and shows how to configure jOOQ's code generator to generate package-private types. The approach can help keep generated jOOQ implementation details from leaking into client code.

### Source excerpt

Java's package private visibility is an underrated feature. When you omit any visibility modifier in Java, then the default (for most objects) is package private, i.e. the object is visible only to types in the same package: In fact, a compilation unit (the .java file) can contain multiple such classes. You don't have to create ... Continue reading How to Generate Package Private Code with jOOQ's Code Generator ->

## The supergraph: a new way to think about GraphQL

DevFeed: [The supergraph: a new way to think about GraphQL](<https://devfeed.tech/articles/the-supergraph-a-new-way-to-think-about-graphql-23545.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/the-supergraph-a-new-way-to-think-about-graphql>)

Author: Matt DeBergalis

Published: 2022-05-18T09:00:00Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [API](<https://devfeed.tech/topics/api.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apis](<https://devfeed.tech/tags/apis.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [bff](<https://devfeed.tech/tags/bff.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [mobile-development](<https://devfeed.tech/tags/mobile-development.md>), [modular](<https://devfeed.tech/tags/modular.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [react](<https://devfeed.tech/tags/react.md>), [updates](<https://devfeed.tech/tags/updates.md>), [use-cases](<https://devfeed.tech/tags/use-cases.md>)

### AI overview

Apollo announces the general availability of Apollo Router and a cloud-hosted build pipeline, alongside recent releases of Federation 2 and Contracts. The article introduces "supergraph" architecture as a unified, modular approach to composing GraphQL APIs, organizational data, microservices, and digital capabilities.

### Source excerpt

We've had a busy month at Apollo. Over the last several weeks we've released some significant updates to the Apollo stack. Last month we shipped Federation 2, a sophisticated and more flexible approach to GraphQL composition. And last week we made Contracts generally available, a way to tailor your graph to specific use cases like mobile development or creating public GraphQL APIs.

## Counting over Range Predicates

DevFeed: [Counting over Range Predicates](<https://devfeed.tech/articles/counting-over-range-predicates-25643.md>)

Original publisher: [Read original article](<https://richardstartin.github.io/posts/range-counts>)

Author: Richard Startin's Blog

Published: 2022-03-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Richard Startin's Blog](<https://devfeed.tech/sources/richard-startin-s-blog.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Sorting](<https://devfeed.tech/topics/sorting.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [effective](<https://devfeed.tech/tags/effective.md>), [filter](<https://devfeed.tech/tags/filter.md>), [inlining](<https://devfeed.tech/tags/inlining.md>), [java](<https://devfeed.tech/tags/java.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [performance](<https://devfeed.tech/tags/performance.md>), [roaring](<https://devfeed.tech/tags/roaring.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This post examines counting objects that satisfy range and other filters when no database is available. It compares Java's Stream API with specialized Java code and finds that exploiting data already sorted by time can make filtering and counting more efficient.

### Source excerpt

This post follows on from my last post about selecting objects satisfying a range predicate, and instead looks at how to count the objects. If you can select objects, you can count them too, but it's a simpler problem so resources can be saved with a specialised solution.

## Introducing Contracts: serve many audiences with a unified graph

DevFeed: [Introducing Contracts: serve many audiences with a unified graph](<https://devfeed.tech/articles/introducing-contracts-serve-many-audiences-with-a-unified-graph-23412.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/introducing-contracts-serve-many-audiences-with-a-unified-graph>)

Author: Vivek Ravishankar

Published: 2021-11-10T10:45:05Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Binance](<https://devfeed.tech/topics/binance.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [apis](<https://devfeed.tech/tags/apis.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [canonical](<https://devfeed.tech/tags/canonical.md>), [feature](<https://devfeed.tech/tags/feature.md>), [modularity](<https://devfeed.tech/tags/modularity.md>)

### AI overview

Apollo introduces Contracts, a preview feature on its Enterprise plan that creates tailored contract graphs by filtering a single unified graph for different audiences. The feature aims to preserve unified-graph benefits while supporting audience-specific schemas, access levels, and experiences.

### Source excerpt

At Apollo, we talk a lot about building a unified graph, and for good reason. A unified graph provides incredible benefits - a single source of truth for all services, faster apps, faster delivery, less maintenance overhead, and more. But unification introduces new challenges, especially at scale; "How do I support different experiences and levels of access for different personas or types of users like customers, employees, suppliers, and partners?" "How do I provide my partners and public API...

## Модуляризация iOS-приложения Badoo: борьба с последствиями

DevFeed: [Модуляризация iOS-приложения Badoo: борьба с последствиями](<https://devfeed.tech/articles/ios-badoo-23631.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/538270/>)

Author: nsurl-dev (Badoo)

Published: 2021-01-21T17:01:19Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Swift](<https://devfeed.tech/topics/swift.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-73f5f2c76797](<https://devfeed.tech/tags/tag-73f5f2c76797.md>), [tag-a3309a813b61](<https://devfeed.tech/tags/tag-a3309a813b61.md>), [tag-d96e238f1419](<https://devfeed.tech/tags/tag-d96e238f1419.md>)

### AI overview

This article describes Badoo's experience expanding iOS app modularization and handling the resulting challenges. It covers dependency-graph complexity, CI load, slower application startup as modules increase, monitoring, and an internal Swift command-line utility for automating dependency-graph analysis and fixing typical linking errors.

### Source excerpt

В предыдущей статье я рассказывал о том, как мы выделили модуль чата в нашем приложении. Всё прошло успешно, и мы собирались распространить этот опыт -- начать тотальную модуляризацию в iOS-разработке Badoo. Даже презентовали подход продуктовым командам, командам, занимающимся тестированием и непрерывной интеграцией, и постепенно стали внедрять модуляризацию в наши процессы. Мы сразу понимали что будут проблемы, поэтому не торопились и раскатывали решение поэтапно, что помогло нам вовремя понять проблемы о которых пойдет речь далее. В этой статье я расскажу: -- как мы не потерялись в сложном графе зависимостей; -- как спасли CI от чрезмерной нагрузки; -- что делать, если с каждым новым модулем приложение запускается всё медленнее; -- мониторинг каких показателей стоит предусмотреть и почему это необходимо. Читать далее

## Модуляризация iOS-приложения: зачем и как мы разбиваем Badoo на модули

DevFeed: [Модуляризация iOS-приложения: зачем и как мы разбиваем Badoo на модули](<https://devfeed.tech/articles/ios-badoo-23627.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/531162/>)

Author: nsurl-dev (Badoo)

Published: 2020-12-03T13:26:03Z

Content type: article

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Expo](<https://devfeed.tech/topics/expo.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [badoo](<https://devfeed.tech/tags/badoo.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-a3309a813b61](<https://devfeed.tech/tags/tag-a3309a813b61.md>)

### AI overview

Badoo describes its experience modularizing iOS applications, including how to define modules, organize dependencies, reduce launch time, monitor the process, automate module creation, and prevent linking errors. The article also discusses modularization as an ongoing process involving specialized, reusable modules.

### Source excerpt

В iOS-разработке Badoo мы уже несколько лет занимаемся созданием модулей, и большая часть нового кода разрабатывается вне кодовой базы приложений. Сейчас у нас более 100 модулей для Badoo и Bumble. В этой статье я расскажу о нашем опыте и отвечу на самые популярные вопросы о модуляризации: -- по какому принципу выделять модули; -- как организовать связи между ними; -- достаточно ли для фичи одного фреймворка; -- как сократить время запуска многомодульного приложения; -- зачем в этом процессе мониторинг; -- можно ли автоматизировать создание новых модулей и так далее. Мой коллега, лид команды iOS-разработки и Core-команды Артем Лоенко, в начале года говорил об этом на митапе FunCorp в докладе "Катастрофически полезные последствия модуляризации". Я приведу более подробный разбор процесса модуляризации и некоторых опущенных в его рассказе деталей. Читать далее

## Community Detection in Graphs -- a Casual Tour

DevFeed: [Community Detection in Graphs -- a Casual Tour](<https://devfeed.tech/articles/community-detection-in-graphs-a-casual-tour-40357.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/05/19/community-detection-in-graphs-a-casual-tour/>)

Published: 2014-05-19T10:00:32Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>)

Tags: [approximation](<https://devfeed.tech/tags/approximation.md>), [approximation-algorithms](<https://devfeed.tech/tags/approximation-algorithms.md>), [cliques](<https://devfeed.tech/tags/cliques.md>), [clustering](<https://devfeed.tech/tags/clustering.md>), [community-detection](<https://devfeed.tech/tags/community-detection.md>), [erdos-renyi](<https://devfeed.tech/tags/erdos-renyi.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [network](<https://devfeed.tech/tags/network.md>), [newman](<https://devfeed.tech/tags/newman.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [power-law-distribution](<https://devfeed.tech/tags/power-law-distribution.md>), [random-graph](<https://devfeed.tech/tags/random-graph.md>), [randomized-algorithm](<https://devfeed.tech/tags/randomized-algorithm.md>), [technical](<https://devfeed.tech/tags/technical.md>), [walktrap](<https://devfeed.tech/tags/walktrap.md>)

### AI overview

This introductory article examines community detection in graphs. It explains the informal idea of a community, why defining one precisely and usefully is difficult, and how the clique-based approach leads to computationally intractable problems, including the NP-hardness of finding the largest clique.

### Source excerpt

Graphs are among the most interesting and useful objects in mathematics. Any situation or idea that can be described by objects with connections is a graph, and one of the most prominent examples of a real-world graph that one can come up with is a social network. Recall, if you aren't already familiar with this blog's gentle introduction to graphs, that a graph $ G$ is defined by a set of vertices $ V$, and a set of edges $ E$, each of which connects two vertices.

## Modularity in JavaScript MVC Frameworks

DevFeed: [Modularity in JavaScript MVC Frameworks](<https://devfeed.tech/articles/modularity-in-javascript-mvc-frameworks-21191.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2013/04/modularity-in-javascript-frameworks/>)

Published: 2013-04-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>), [Highlight.js](<https://devfeed.tech/topics/highlightjs.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [communication](<https://devfeed.tech/tags/communication.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [components](<https://devfeed.tech/tags/components.md>), [extend](<https://devfeed.tech/tags/extend.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This article explains how modularity can improve JavaScript MVC applications. It presents widgets as atomic components with clear responsibilities and recommends decomposing complex applications into smaller, reusable, testable, and maintainable parts. It also discusses decoupling component communication through event broadcasting, pub/sub, or the Observer pattern.

### Source excerpt

Lorem ipsum dolor sit amet