Questions tagged [extensibility]
The extensibility tag has no summary.
52 questions
2
votes
8
answers
498
views
Contract extensibility as it relates to enums and type unions
Say I have a contract returning a type:
type CreditCard = {
scheme: "Visa" | "Mastercard"
}
and later we decided to include Amex as card type, then making this change:
type ...
8
votes
2
answers
1k
views
Is there a term that's kind of the opposite of 'deprecated' - that's 'in future major versions this thing will be required'
In terms of deprecation strategies, we can mark a value as deprecated and this can imply that 'this thing exists now and should work, but in future major releases this thing may disappear and will ...
1
vote
2
answers
433
views
Is it okay to extend more than one class if a new type/feature is needed?
I coudn't find a better phrasing for my question and hope it is not too confusing.
my question mainly targets the open/closed principle and extensibility of my program.
I tried to condense everything ...
3
votes
1
answer
805
views
How could Vulkan pNext design be implemented in a "safer" way?
Vulkan introduces a member .pNext of type void* in all its core structs allowing to create handles. This member purpose is to allow to extend the structure by passing a pointer another one.
This is ...
0
votes
1
answer
153
views
Any tradeoffs for using open methods?
I was trying to understand the use of multi-methods recently and saw several claims that they solve the Expression Problem. However, I ended concluding that it is not the multi-methods that solve it, ...
4
votes
2
answers
944
views
How to model classes that can be extendable?
I have recently inherited a codebase which has a weird problem and I am trying to search for an extensible solution that can solve my issue.
Consider I have a model class that is used as a model to ...
3
votes
1
answer
933
views
C++: Broadcast/observer pattern with polymorphic events
I'm currently trying to implement an event-system following a broadcast/observer scheme. I have events/notifications that contain information about what is happening:
class Event
{
public:
Event(...
3
votes
4
answers
868
views
Extension points via inheritance vs via delegate fields
In C#/.NET, I have a class that I want to provide extension points for. I can do this either using inheritance:
public class Animal {
public virtual void Speak() { }
}
public class Dog : Animal {
...
1
vote
0
answers
173
views
Does the React (and Vue.js) frameworks support extensibility?
Please forgive me if I am mixing up the terminology here, I'm a bit unfamiliar with it. I wanted to find a way to support extensibility in a web application; I wanted a web application that was ...
1
vote
1
answer
344
views
Create a common interface to use N libraries and define specific behaviours
I am creating a browser automation library that is capable of using Puppeteer(automates chromium) and Selenium(automates all major browsers), but the goal is to also be able to add more libraries in ...
12
votes
3
answers
3k
views
What are the pros and cons of using final methods (in abstract classes)
For the purpose of writing a coding styleguide, how should final methods in software design be judged?
By final I mean the Object-oriented sense that a class that can be subclassed provides methods, ...
0
votes
2
answers
682
views
Is it wrong to build as much granularity as possible into a REST API?
I was recently considering the difference between using raw SQL and using a query builder like knex.js for writing dynamic queries so that I get any level of granularity for filtering database tables.
...
1
vote
2
answers
622
views
Design Pattern to extract arbitrary field from arbitrary file format
Lets say I have multiple file types:
.json, .csv ... etc
These file types come in different formats:
Second json structure
Extra column added to csv
etc.
I need to extract fields from these files; ...
1
vote
1
answer
225
views
Ensure encapsulation and Open/Closed principle with Command pattern?
I'm developing a small multiplayer game. It'll be served by one websockets server and consumed by multiple consumers. As such I need to be cautious about concurrency errors.
The general software ...
4
votes
5
answers
1k
views
Designing for 3rd Party Extensibility
I'm having trouble understanding how to provide an API to 3rd parties in order to allow extensions for desktop applications. I understand that if I'm using a compiled language (e.g. C++), I can load ...