Skip to main content

Questions tagged [libraries]

A library is a collection of resources providing data and/or services for developing independent software.

Filter by
Sorted by
Tagged with
15 votes
4 answers
4k views

What side-effects, if any, are okay when importing a python module?

Generally, modules should not have side effects. However, in a lot of cases, the side-effects are hard to avoid or may be desirable. There are also popular packages with on-import side-effects. Which ...
Kaia's user avatar
  • 422
9 votes
5 answers
4k views

Writing public libraries: Should I let the consumer of the library enforce thread safety?

I'm writing a .NET library which exposes certain public APIs. Currently, I have not enforced thread safety in my library for following reasons apparent to me: locks (Monitor.Enter and Monitor.Exit) ...
Critical Failure- Core Dumped's user avatar
1 vote
1 answer
269 views

How small is too small for a library or package?

Background I came across this question about whether few big libraries, or many small libraries is better. I tend to agree with the accepted answer, that many small libraries is better. However, since ...
Tyler's user avatar
  • 31
2 votes
1 answer
60 views

Node Services and Enum Sharing

I will get to the question in a minute.... We have 2 in house services that either have an API contract between the 2 that involves an enum or the enum value is stored in a shared database. I don't ...
jdtommy's user avatar
  • 129
2 votes
4 answers
321 views

How would I go about writing my own implementation of Win32 functions?

So I am currently coding a C program for Windows and come across a little bit of a problem. I've been compiling using the mingw-w64 toolchain. In my program, I am attempting to remove as many ...
baron's user avatar
  • 55
2 votes
2 answers
491 views

Is trunk-based development viable for SDK development?

Is trunk-based development (TBD) viable for development of software where versioning, compatibility, long term support and service level agreements (SLA) play a big role for business (e.g. libraries, ...
Tomasz Bąk's user avatar
3 votes
1 answer
108 views

Shell Script Design Patteren: Source a library file VS Call different files?

We discuss about POSIX compliant shell script here. While we are writing more and more shell scripts, we build some helper functions to reuse the codes. We are considering putting a few helper ...
midnite's user avatar
  • 131
0 votes
2 answers
201 views

Appropriate design pattern for providing a default Argparse instance, eliminating boilerplate

I'm using argparse.ArgumentParser extensively; however, it comes with a lot of boilerplate to set up, and this is especially noticeable when you've got more than a few common arguments that probably ...
g_elef's user avatar
  • 19
0 votes
2 answers
83 views

Deserializing serial protocol enums: Recoverable or unrecoverable errors?

I am currently implementing a library in Rust that implements a proprietary serial protocol. The protocol specifies several enum values, that mostly are returned by the hardware as u8s (bytes), but ...
Richard Neumann's user avatar
0 votes
1 answer
193 views

Options for designing a generic library

During development of libraries (mainly for use in internal projects) I have come across the "problem" of how to design them in a generic way. I am going to demonstrate with an example ...
Patrick Wright's user avatar
0 votes
0 answers
159 views

Pattern for Nuget Package (Abstractions, DepedencyInjections, etc.)

I've been interested in following what other successful libraries are doing with their nuget packages. Unfortunately, I can't seem to find any materials to read online and I don't even know what to ...
Lawrence's user avatar
  • 123
0 votes
2 answers
342 views

Local development for TypeScript library organized as mono repo with Lerna

I currently am developing a TypeScript shared library. The library needs to be imported in sections to minimize the imported bundle size, so I broke it up into packages with a monorepo with Lerna. ...
devleo's user avatar
  • 51
0 votes
0 answers
147 views

How to handle dependency injection in a library to avoid frequent breaking changes?

Let's say I have a C# .NET library with the following classes: public class FooService { private readonly IDependencyA a; public FooService(IDependencyA a) { this.a = a; } ...
srk's user avatar
  • 127
0 votes
1 answer
72 views

Is it a bad idea to create a library that only contains some mappers and related functions? [closed]

There is a software (once monolith) that makes use of a long list of mappers. You can think of them as Choices field, where each item translates into different conventions. For ex, say that they are ...
aws1785's user avatar
12 votes
2 answers
2k views

Designing a Python string validation library

My employer has a significant number of company-internal strings which require format validation. For instance, order number AAA-BBB-CCC, stock number AB-123456 or factory ABC1 - Regex with extras (...
MikeFoxtrot's user avatar
1 vote
1 answer
98 views

How should I approach the development of an app with an parallel independent library?

I'm currently working on an ERP Blazor WebAssembly app that works alongside its base Razor Class libraries. The app could have some custom pages that aren't the same for all the customers and are ...
ImZac's user avatar
  • 21
0 votes
4 answers
2k views

Share Global Variable in DLL, feasible or naive?

So the gist is to have a static global variable that can be modified by different executables. For example I have 2 different source files including the same dll.h: dll.h #include <iostream> ...
VJZ's user avatar
  • 127
0 votes
4 answers
1k views

Is API exactly the same as header file?

I am trying to understand the difference between an Application Programming Interface and a Library and I stumbled upon this question: https://stackoverflow.com/questions/3678665/is-there-still-a-...
Noob_Guy's user avatar
  • 159
0 votes
2 answers
187 views

Why session should be a param when you write a query function?

I read a lot of examples where I read code like this: def get_user_by_id(session, id) ... and the function that calls that function needs to create or get the DB session a pass to the function. the ...
Tlaloc-ES's user avatar
  • 387
4 votes
5 answers
706 views

How to prevent in house frameworks and libraries from becoming technical debt

My company develops many relatively small projects that a lot of times do the same things and have a similar structure. (e.g. read/write to a databse, data pre processing, building a query etc.). This ...
krezno's user avatar
  • 167
0 votes
1 answer
905 views

How to handle config/env vars in a library project

I am building a new Python library project to be consumed by several of my application projects. The existing code consumes environment variables for various configuration settings. Should my ...
Brian's user avatar
  • 183
2 votes
2 answers
196 views

How to document external libraries that have been adopted into an existing codebase?

I have been using an external library for a while now. Unfortunately, it stopped receiving updates, and has since been adopted into my codebase. The issue is the library was poorly documented in the ...
Nicholas Ficara's user avatar
-3 votes
1 answer
161 views

Best way make a complex libraries as a plugin with dependency inversion principle [closed]

For instance, if we have a complex library with many functionalities, how can we make this lib a plugin such that it can be replaced with another lib more easily. The answer obviously is the ...
Vitor Figueredo Marques's user avatar
6 votes
4 answers
12k views

How to get an ILogger instance from extension methods?

Let's say I have this service abstraction exposed from a library. public interface INavigator { ImmutableList<IPageViewModel> Entries { get; } void NavigateForward(IPageViewModel page); ...
Batesias's user avatar
  • 244
4 votes
4 answers
696 views

Design pattern to create a shared lib architecture

I am making a renderer as a hobby, one thing I thought to try is making the low levelAPI be dynamically swappable, i.e. you could have an opengl or vulkan backend and switch between the two without ...
Makogan's user avatar
  • 261
2 votes
2 answers
793 views

Strategy for offering a library both a single-header and as a header + compiled implementation

I am maintaining a FOSS library which, for the sake of discussion, consists of a small .h file and a larger .c file (plus build-related files, see below) I've been requested to offer this library as a ...
einpoklum's user avatar
  • 2,566
6 votes
1 answer
771 views

Is changing the exception a method throws a breaking change for a library?

I have a library that I am distributing on maven in the new version I will be changing the exceptions some methods are throwing. Is this considered a breaking change? If this is the only change in the ...
K-RUSHer's user avatar
2 votes
3 answers
171 views

Should I ensure my libfoo library's include file can be included as foo/foo.h?

I'm maintaining a small C library; let's call it libfoo. It has quite a few users (actually it's complicated - it's the main fork of a highly popular library which has been abandoned); and it sports a ...
einpoklum's user avatar
  • 2,566
1 vote
1 answer
358 views

Re-export (certain) library components from barrel file

Situation At the project I'm currently working on we're using Chakra UI to create our UI. But I guess this question applies to whatever (UI) library you're using. There are certain components that ...
Jap Mul's user avatar
  • 111
40 votes
7 answers
10k views

Why do library developers deliberately break existing code?

Today, I updated ZBateson\MailMimeParser the PHP e-mail parser library from 1.x to 2.x. Soon enough, my PHP error log started filling up with errors. Noting where it happened, I found out that it had ...
user16508174's user avatar
6 votes
3 answers
1k views

How to simplify exception handling for library users?

Suppose of having a library exposing the following piece of functionality: public static class AwesomeHelpers { public static async Task<int> ComputeSomethingImportAsync(CalculationInputs ...
Enrico Massone's user avatar
3 votes
1 answer
449 views

Shared library and modules with versioning

I have different versions of modules and they should all work together with the same shared library which could also have different versions like displayed in the image below: From a daily use ...
TomatenSalat's user avatar
0 votes
1 answer
1k views

How to expose C++ static library interface, extending Pimpl to an abstract interface

Until today I had a static C++ library with no separation between the public interface and internal headers. My other apps just linked to it, included the required headers, and used whatever they ...
user3717741's user avatar
2 votes
2 answers
122 views

What's a good solution for prioritising tasks for a company code library?

I work at a game company that has a Core Library with a bunch of ultities, extensions and systems that we typically import large chunks of into projects. Recently we have been trying to improve our ...
Sebastian King's user avatar
1 vote
3 answers
5k views

"Hard coded" vs. configuration files for values in libraries? (code organization question)

I'm trying to get a good understanding as to whether there is a best practice or standard regarding keeping values within your code libraries or referencing them from another config file. I don't ...
Kyle's user avatar
  • 13
2 votes
4 answers
574 views

Is it common practice to declare exceptions in a library that won't be thrown or caught anywhere within that library?

I have a very basic library that serves the purpose of collecting some useful but simple pieces of code. Like for example a Percent struct or functions like ToDegrees() and ToRadians(), just to give ...
Stelios Adamantidis's user avatar
3 votes
4 answers
515 views

Should functions depend on other functions?

Suppose I have a function to log error messages printError(). Suppose I have another function which might throw an error, doSomething(). Should doSomething() implement its own error logging or depend ...
404 Name Not Found's user avatar
2 votes
0 answers
352 views

Drawing the boundary between high level API and low level API

Assume that were developing a cross platform graphics engine. Now we have quite a lot of low level APIs to choose from (OpenGL, Vulkan, DirectX 11, DirectX 12, ...). Now because of this, we are gonna ...
D-RAJ's user avatar
  • 129
-2 votes
1 answer
101 views

How to start developing a well architected Javascript Library?

I want to start developing an. open-source javascript library. I can see other open-source libraries are well structured. They have src, dist, test kind of folders, etc. Which is making me very ...
Saba Naeem's user avatar
1 vote
1 answer
43 views

CLI and Lib package, where to put module loading code

My Software contains a lib package, a cli package and an arbitrary number of plugin packages. The plugin packages do the algorithmic work. The lib package basically just executes the plugins and ...
danielr1996's user avatar
3 votes
2 answers
4k views

Programming a library in multiple languages

I am planning to implement a cryptographic library for several languages and looking for best practices. I have looked at several threads, especially this, this, and this one, which answer my ...
mushishi's user avatar
-2 votes
1 answer
127 views

In C++, does it make sens to have library project be composed of other libraries?

I'm working on a C++ project which is currently divided into "sub modules" / "components". Each of these are compiled into a separate library (components are usually 10-20 files). The libraries are ...
Antiro42's user avatar
1 vote
2 answers
56 views

Suitable way to round results returned by any function of a class

Assume there is a class Shape. The class has two functions area() and perimeter(). Let's say Circle and Square inherit from Shape and override these methods. Obviously the results are going to be ...
Abhishek Kumar's user avatar
-4 votes
1 answer
76 views

Development paradigms of ML libraries

I know that Tensorflow use symbolic model-building APIs where the developers can use them to build static computational graphs. Whereas Pytorch offer imperative programming paradigm where it performs ...
ShaAk's user avatar
  • 1
2 votes
1 answer
487 views

Backward compatibility testing

As a creator of a software library, how can I verify backward compatibility with earlier versions? When using a dependency management (here: Maven), multiple versions of my dependency could be (...
Matthias's user avatar
  • 145
0 votes
1 answer
215 views

When does it make sense to update eslint/prettier?

I have the following setup: different teams shared eslint config (that imports airbnb rules as a basis). Whenever a developer decides to update libraries, if eslint/prettier have updates, it's a ...
sergioviniciuss's user avatar
45 votes
5 answers
19k views

What is the difference between a library and a dependency?

In this docker beginner video its explained, that different stacks may depend on different libraries and dependencies and that this can be handled with Docker. However, I don't get what the ...
Adam's user avatar
  • 577
2 votes
2 answers
461 views

Is it a best practice or anti-pattern to export mock versions of functions for a library?

Context We are creating a library that makes an API (HTTP) request to a 3rd party. During testing we have written mock versions of the functions that make external requests so that we can test the ...
nelsonic's user avatar
  • 137
2 votes
1 answer
524 views

What is the name of the throw-an-exception on invalid inputs pattern?

In some .NET libraries, there's a pattern of two alternative ways to call a function. int i = x.GetValue(k); /* Might throw. */ if (x.TryGetValue(k, out int i) { /*...*/ } else { /* ... */ } I ...
billpg's user avatar
  • 611
0 votes
1 answer
135 views

How should I provide generic typing and allocation for a collection library in C?

I am in the process of implementing a persistent collection in C, specifically, an immutable hash trie. In order to increase acceptance and reusability, I have identified the following key areas that ...
ammut's user avatar
  • 159

1
2 3 4 5
8