187
            
            votes
        
        
            
        Why do library developers deliberately break existing code?
                    A major version upgrade literally means they intend to break things. You shouldn't upgrade to a new major version unless you're prepared to deal with it. Most build systems have a way to specify you'...
                
            
       
        
            
                94
            
            votes
        
            
                
                Accepted
            
        
            
            
        How to deal with fear of taking dependencies
                    ... We are forced to stay on the lowest API level of the framework (.NET Standard) …
This to me highlights the fact that, not only are you potentially restricting yourselves too much, you may also be ...
                
            
       
        
            
                55
            
            votes
        
        
            
        Why do library developers deliberately break existing code?
                    My point, and question, is: Why do library developers knowingly break existing code like this? Why not at least have it default to either true or false, whichever is the most reasonable?
Because ...
                
            
       
        
            
                51
            
            votes
        
        
            
        How to deal with fear of taking dependencies
                    We are forced to stay on the lowest API level of the framework (.net standard). The reasoning behind this is that a new platform could one day arrive that only supports that very low API level.
The ...
                
            
       
        
            
                16
            
            votes
        
            
                
                Accepted
            
        
            
        Why are developers still using proprietary third-party libraries?
                    Three obvious reasons: 
There's no open source equivalent, 
The company wants paid-for support that they can rely on. 
They are a bit behind the times and do not yet trust open source libraries.
                
            
       
        
            
                16
            
            votes
        
            
                
                Accepted
            
        
            
            
        How do I handle malformed compressed input data, which crashes external library?
                    If you are going to use a native library which might crash (regardless whether the input data is malformed, or that library has a bug), the only safe way to prevent your own application against being &...
                
            
       
        
            
                12
            
            votes
        
        
            
            
        Why do library developers deliberately break existing code?
                    Some good answers already, however, let me add my two cents from some real-world experience.
More than often, though usually acting in good faith, some API designers are pretty ignorant what kind of ...
                
            
       
        
            
                11
            
            votes
        
        
            
            
        How to deal with fear of taking dependencies
                    On the whole these things are good for your customers. Even a popular open source library might be impossible for them to use for some reason.
For example, they may have signed a contract with their ...
                
            
       
        
            
                11
            
            votes
        
        
            
            
        What to do when third party won't fix bug
                    This is one of the drawbacks of using third-party libraries: as you get more and more dependent of them, you're at the mercy of the company which develops those libraries. Not only they can set the ...
                
            
       
        
            
                10
            
            votes
        
        
            
            
        What is the correct way of adding third-party code into a C or C++ project?
                    @17of26 gave a lot of good reasons why #2 is dangerous, and why #1 makes more sense. But I think there is one thing missing, for which I recommend the following:
download the code of the library you ...
                
            
       
        
            
                9
            
            votes
        
            
                
                Accepted
            
        
        How do open source libraries like Apache Commons fit into the microservices architecture?
                    It's about libraries created by you to share common functionality when you're trying to avoid rewriting the same code in your multiple microservices. It creates a situation where you have a (loose) ...
                
            
       
        
            
                8
            
            votes
        
            
                
                Accepted
            
        
            
        Need to call private method in third party library. Copy all class or use reflection?
                    If the functionality is not part of the library's API, you shouldn't use it. There's no guarantee it will still be available in future versions, and that it won't change. So using reflection to access ...
                
            
       
        
            
                8
            
            votes
        
            
                
                Accepted
            
        
            
        Software Design: Decoupling when highly dependent on a third party library
                    heard that coupling is a bad thing and should be avoided as much as possible
I think this is overly dogmatic.
In some cases it makes more sense to just accept the tight coupling. This is especially ...
                
            
       
        
            
                7
            
            votes
        
        
            
        How to deal with fear of taking dependencies
                    Short answer is that you should start introducing third-party dependencies. During your next stand-up meeting, tell everyone that the next week at work will be the most fun they have had in years -- ...
                
            
       
        
            
                7
            
            votes
        
            
                
                Accepted
            
        
        Put source code for dependencies within the project itself
                    Yes, this is called bundling. It has known weaknesses (for instance, you don't get security updates or bugfixes for the third-party library unless you re-import their sources, and it is probably more ...
                
            
       
        
            
                7
            
            votes
        
            
                
                Accepted
            
        
            
            
        Best practice for storing third party tools
                    It makes fully sense to store and keep installers of any third party tools you are using in your development process (not just your build process) in a location under your control. It does not matter ...
                
            
       
        
            
                6
            
            votes
        
        
            
        What is the correct way of adding third-party code into a C or C++ project?
                    You always want to package any dependencies with your project.
Your software is going to be built and tested with a particular version of a specific library.  It's not guaranteed to work with any ...
                
            
       
        
            
                6
            
            votes
        
            
                
                Accepted
            
        
            
        Should we include the entire sources of the libraries used in our project?
                    Putting the entire source of a library in your project allows you to:
Maintain and update the library in the event that it is abandoned.
Make alterations to the library to advance goals for your ...
                
            
       
        
            
                5
            
            votes
        
        
            
        Using third-party libraries - always use a wrapper?
                    This is one of those things they tell you to do in school, and it sounds reasonable in theory, but there simply aren't many cases where it's worth your time in practice.
Don't waste your time writing ...
                
            
       
        
            
                5
            
            votes
        
            
                
                Accepted
            
        
            
            
        Should you "rebrand" the exception of the library you're using?
                    Generally speaking, it's fine to use a language's own exceptions, since these are commonly understood. I wouldn't use 3rd party exceptions, since using that 3rd party library isn't part of the API you'...
                
            
       
        
            
                5
            
            votes
        
            
                
                Accepted
            
        
            
        Is it a good idea to have a fork of a library's public repo in my solution?
                    There are two aspects to your question that I want to answer separately
Having a copy of a library in your repository
If you store a copy of a third-party library in a repository that you own, you ...
                
            
       
        
            
                5
            
            votes
        
        
            
            
        Designing a third-party web solution
                    I'm getting blocked on some architecture decisions
No you aren’t.
Being blocked means you can’t work until you get something you need.
You have what you need. You have so much of it you can’t make up ...
                
            
       
        
            
                4
            
            votes
        
        
        How can I painlessly upgrade my team's codebase to Visual Studio 2017?
                    It may be a viable option to branch off a "legacy master" in git for those still using 2013. This is especially good since you know that the branch will eventually be closed, as everyone has moved to ...
                
            
       
        
            
                4
            
            votes
        
        
        How can I painlessly upgrade my team's codebase to Visual Studio 2017?
                    At our site, we maintain a range of projects over VS2010 and VS2015 (concurrently). This works OK, obviously you have to double compile stuff and make sure the VS2010 compiler doesn't cough on any ...
                
            
       
        
            
                4
            
            votes
        
            
                
                Accepted
            
        
        How to avoid messy code when working with different libraries
                    You say that’s messy code. I might say it’s great because it draws a clear distinction between your own code base and the 3rd party code base. Good or bad isn’t at all clear cut in this situation.
...
                
            
       
        
            
                4
            
            votes
        
            
                
                Accepted
            
        
            
            
        DDD: Viable approaches to integrating with external systems (Adapters, ACLs, Bounded Contexts)
                    These all are not wrong, and have some value, but I feel you're going at it with a wrong attitude.
The domain doesn't care whether something is external to the application or not. Separating "...
                
            
       
        
            
                4
            
            votes
        
            
                
                Accepted
            
        
            
        Use of internal interface around paid APIs
                    Have a look to the facade pattern:
https://refactoring.guru/design-patterns/facade
Is just for that:
Facade is a structural design pattern that provides a simplified interface to a library, a ...
                
            
       
        
            
                4
            
            votes
        
            
                
                Accepted
            
        
            
        Is there a way to detect if the guest user on web page has opened my mobile application to enhance his user xp
                    No, you will not be able to get any reliable identifier to link users across devices unless they log in.
While smartphones do hold a lot of such information, the operating systems and browsers will ...
                
            
       
        
            
                3
            
            votes
        
        
            
        What should I use for @Nullable if I used the lombok @NonNull?
                    Per the lombok documentation:
Lombok has always treated various annotations generally named @NonNull on a field as a signal to generate a null-check if lombok generates an entire method or ...
                
            
       
        Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
third-party-libraries × 116libraries × 17
open-source × 11
licensing × 10
design × 8
java × 8
c++ × 7
git × 6
c# × 5
programming-practices × 5
.net × 5
version-control × 5
architecture × 4
php × 4
api × 4
dependencies × 4
dependency-management × 4
design-patterns × 3
python × 3
unit-testing × 3
development-process × 3
interfaces × 3
github × 3
frameworks × 3
maven × 3