Questions tagged [extensibility]
The extensibility tag has no usage guidance.
50
questions
1
vote
2
answers
371
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 ...
2
votes
1
answer
462
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
126
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
370
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 ...
1
vote
1
answer
591
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
481
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
150
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
268
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
503
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
407
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
197
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
817
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 ...
7
votes
1
answer
656
views
How to tackle extensibility considering the Data/Object Anti-Symmetry?
In Clean Code by Uncle Bob, page 124-125 he states
Procedural code (code using data structures) makes it easy to add new functions without changing the existing data structures. OO code, on the ...
4
votes
1
answer
481
views
Plugin framework for extensible software
I need to make a web app which provides the feature to install/uninstall
plugins. Think of something like Eclipse IDE like software. The only difference
is you cannot restart it like Eclipse to apply ...
0
votes
1
answer
348
views
How should I design a C# bot that can be extended with minimal code changes?
I'm designing a C# bot using the Microsoft Bot Framework. I'd like the bot to be easily extensible, allowing developers to add dialogs/responses while making code changes in as few places as possible. ...
4
votes
1
answer
1k
views
Factory pattern versus dynamic class instantiation in PHP
I am developing a web framework in PHP, and I want to make it fully extendable. My goal is to make it possible for a developer to change the behavior of any component without having to modify the "...
1
vote
1
answer
232
views
Is it true that JVM language is difficult to integrate with C than other language? [closed]
I have seen many libraries provide high level API in the language like python or lua. For example:
The linear algebra library "Trilinos" provides a python API.
The deep learning framework "torch" ...
0
votes
2
answers
615
views
Writing extensible versus deletable code [closed]
I know this might just be semantics, but reading the article titled Write code that is easy to delete, not easy to extend made me think that perhaps it is more or less along the same lines of creating ...
4
votes
1
answer
1k
views
Extension versus Delegation
I am using Swift and am wondering about the concepts of Extension and Delegation. Recently I found a case where either one of these two concepts could be applied. This reminded of the "composition ...
8
votes
3
answers
7k
views
C++ Extensible namespaces - how to force declarations back into global namespace
It is good programming style to include all necessary dependencies in a header that references them. Often this includes declarations that are placed in the STD & global namespaces (like cstdio). ...
1
vote
3
answers
141
views
Design question concerning extensibility
I am constructing a new class which handles deciding which class should process the requests from a web service. I'm looking for a solution for a problem that I am having regarding extensibility with ...
2
votes
1
answer
148
views
Should I represent physical accessories of a system as classes in software?
I am redesigning a system comprised of a data-acquisition unit and a lot of different sensors (voltage sensor, angle sensor, pressure sensor, etc.).
In the software domain model, there is a base ...
-2
votes
1
answer
247
views
Architecture - 3D Modeling Library
I'm writing a library to allow users to generate 3D models programatically.
User writes code (e.g. Square(4))
User views preview of 3D model (with built in visualizer)
User can "print" the model to a ...
1
vote
1
answer
647
views
Extending a class for debugging: public API, hidden implementation or something else?
I'm working on a fairly large project that involves 3D drawing, and I want to add some visualizers (for example, to see the bounding boxes of the objects) to make debugging easier. However, I'm having ...
2
votes
2
answers
511
views
Making an MVC app extensible for multiple business markets
Suppose you are to create a single, global e-commerce application to support multiple markets in different regions of the world using ASP.NET MVC.
Although most of the business logic for the ...
3
votes
0
answers
557
views
Do thin fluent builder method chains have any need to be "extensible"?
In an environment where refactoring is difficult extensibility can be a life saver. However, this is no excuse to over engineer code.
Given that a thin fluent builder method chain is backed by well ...
3
votes
1
answer
448
views
Is there a term for this coding practice?
One of the incidental complexities of introducing features to an existing system is that the programmer often has to touch several areas of code that are not immediately adjacent. Over the long haul ...
3
votes
1
answer
2k
views
How to design extension mechanism for java app
I have an application where I have a set of core features.
The application itself HAS to work in core only mode.
I would also want to make the application extensible such that, when certain jar/...
2
votes
2
answers
244
views
Principles of an extensible data proxy
There is a growing industry now with more than 30 companies playing in the Backend-As-A-Service (BaaS) market.
The principle is simple: give companies a secure way of exposing data housed on premises ...
2
votes
2
answers
376
views
generic chaining technique for overloaded method
A common operation in JavaScript is to replace an object method with a new one while still calling the original method. This is often done like this:
var originalMethod = obj.method;
obj.method = ...
-1
votes
1
answer
75
views
serving up future-proof kinfolk - extensible contract interfaces [closed]
Ok, I have this human here, but what can it do, how would you discover its special abilities? And when you find out what kind of expert you've got then how would you actually make use of its unique ...
3
votes
1
answer
220
views
Agile: When to re-factor and when to extend while accruing technical debt? [duplicate]
Consider the following scenario.
You currently have a feature set A you wish to extend to include feature set B. In the near feature there's a high possibility that you wish to extend this even ...
8
votes
3
answers
1k
views
Java Generics - how to strike a balance between expressiveness and simplicity
I'm developing some code that utilizes generics, and one of my guiding principles was to make it usable for future scenarios, and not just today's. However, several coworkers have expressed that I may ...
14
votes
2
answers
16k
views
How to make an ASP.NET MVC site modular
I'm in the planning stage for an employee intranet system to be built with ASP.NET MVC 4. We'd like the site to consist of separate "modules", each of which provides a different feature: messaging, ...
2
votes
7
answers
391
views
Designing extensible, interactive systems
Steve Yegge's The Pinoccio Problem describes a very special type of program: one that not only fulfills the original purpose of its creators, but also is capable of performing arbitrary, user-defined ...
20
votes
19
answers
6k
views
Programming languages with a Lisp-like syntax extension mechanism [closed]
I have only a limited knowledge of Lisp (trying to learn a bit in my free time) but as far as I understand Lisp macros allow to introduce new language constructs and syntax by describing them in Lisp ...
12
votes
5
answers
4k
views
How should I create a mutable, varied jtree with arbitrary/generic category nodes?
Please note: I don't want coding help here, I'm on Programmers for a reason. I want to improve my program planning/writing skills not (just) my understanding of Java.
I'm trying to figure out how to ...
4
votes
1
answer
164
views
How do I architect 2 plugins that share a common component?
I have an object that takes in data and spits out a transformed output, called IBaseItem.
I also have two parsers, IParserA and IParserB. These parsers transform external data (in format dataA and ...
4
votes
2
answers
638
views
For a Javascript library, what is the best or standard way to support extensibility
Specifically, I want to support "plugins" that modify the behavior of parts of the library.
I couldn't find much information on the web about this subject. But here are my ideas for how a library ...
4
votes
3
answers
230
views
When is 'cloning', rather than reusing, a module acceptable design solution?
For this question, I'll give an example module to facilitate the discussion, Let's say the module is a calculation engine, It currently servers its purpose for its current audience. The requirement is ...
124
votes
7
answers
14k
views
What is the most effective way to add functionality to unfamiliar, structurally unsound code? [duplicate]
This is probably something everyone has to face during the development sooner or later.
You have an existing code written by someone else, and you have to extend it to work under new requirements.
...
2
votes
3
answers
148
views
Might I run into any trouble if I plug into an existing service/application with my own application and charge for it? [closed]
I know this is more of a lawyer question, however I figure someone here has probably done this and can give me a quick answer.
Lets take a moderately extreme case. I build an adapter for a website ...
-1
votes
0
answers
143
views
Extensibility in multi-tenant systems? [duplicate]
Possible Duplicate:
How do you manage extensibility in your multi-tenant systems?
I asked this on StackOverflow, but I thought it might be more appropriate for Programmers.
I've got a few big ...
0
votes
1
answer
189
views
What do I need to develop a PHP extension in lampp?
Actually I'm dealing with a trouble in my system, I have to delivery the system to clients and it was built in PHP, JS, ShellScript and SQL.
I would like to encrypt the code or obfuscate it from ...
6
votes
3
answers
304
views
How to design a system that allows for multiple parallel extensions of the same "component"?
As a player, I found the following problems about creating and using "extensions" (aka mods) for games:
1) Whenever the game is updated, all the mods break.
2) Most mods don't work with each ...
24
votes
3
answers
4k
views
How would one go about building pluggable software?
If you have an application of some sort and you want your users to be able to write plugins for it, how should the application be designed?
What do you have to take into account, what design ...
5
votes
3
answers
5k
views
Difference between extensible programming and extendible programming?
What exactly is the different between "extensible programming" and "extendible programming?"
Wikipedia states the following:
The Lisp language community remained
separate from the extensible ...
7
votes
1
answer
322
views
Should I let my users write BnfExpressions to extend my grammar?
Preface
I'm designing a templating language (please skip the don't/why?? speech). One of the major goals of this language is to be extensible. There are 2 main elements in my language. "Tags" and "...
5
votes
3
answers
4k
views
How can I improve the ease of which I can extend my software?
I am thinking about how software like Microsoft Windows grows from small as MS-DOS to Windows 7, Adobe Photoshop from its first version to version CS5. What techniques were used to accomplish this? ...