Breaking Dependencies: The SOLID PrinciplesBreaking Dependencies: The SOLID Principles Klaus Iglberger, CppCon 2020 klaus.iglberger@gmx.de2 Klaus Iglberger C++ Trainer since 2016 Author of the C++ math library (Co-)Organizer requirements) … and by that imposes minimum dependencies.79 The Interface Segregation Principle (ISP) Guideline: Make sure interfaces don’t induce unnecessary dependencies.80 Questions?81 The Dependency Inversion Inversion Principle (DIP) tells us that the most flexible systems are those in which source code dependencies refer only to abstractions, not to concretions.” (Robert C. Martin, Clean Architecture)830 码力 | 96 页 | 2.14 MB | 6 月前3
10 Problems Large Companies Have with Managing C++ Dependencies and How to Solve Them10 Problems Large Companies Have Managing C++ Dependencies and How to Solve Them Augustin Popa, Microsoft C++ TeamIntroduction Augustin Popa Senior Product Manager, Microsoft C++ Team @augustin_popa features Other compiler flagsProblem 1: ABI incompatible C++ binaries Solution 1: Build C++ dependencies from source •Instead of consuming prebuilt libraries, establish a way to build them from source approaches: • “Build from source” package manager like vcpkg or Conan • Leverage CI to build dependencies and use the binaries • Teams that own libraries share build instructions • Monorepo: build0 码力 | 46 页 | 917.72 KB | 6 月前3
Conan 2.10 Documentationfrom/to the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.7 Vendoring dependencies in Conan packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6 Integrations artifacts. A package is defined by a “conanfile.py”. This is a file that defines the package’s dependencies, sources, how to build the binaries from sources, etc. One package “conanfile.py” recipe can generate immutability allows for improved processes, downloading, installing and updated dependencies as well as uploading dependencies. The revisions allow accurate traceability of artifacts, and thus allows better0 码力 | 803 页 | 5.02 MB | 10 月前3
Conan 2.9 Documentationfrom/to the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.7 Vendoring dependencies in Conan packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6 Integrations artifacts. A package is defined by a “conanfile.py”. This is a file that defines the package’s dependencies, sources, how to build the binaries from sources, etc. One package “conanfile.py” recipe can generate immutability allows for improved processes, downloading, installing and updated dependencies as well as uploading dependencies. The revisions allow accurate traceability of artifacts, and thus allows better0 码力 | 795 页 | 4.99 MB | 10 月前3
Conan 2.8 Documentationfrom/to the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 5.7 Vendoring dependencies in Conan packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6 Integrations artifacts. A package is defined by a “conanfile.py”. This is a file that defines the package’s dependencies, sources, how to build the binaries from sources, etc. One package “conanfile.py” recipe can generate immutability allows for improved processes, downloading, installing and updated dependencies as well as uploading dependencies. The revisions allow accurate traceability of artifacts, and thus allows better0 码力 | 785 页 | 4.95 MB | 10 月前3
Conan 2.7 Documentationfrom/to the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 5.7 Vendoring dependencies in Conan packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6 Integrations artifacts. A package is defined by a “conanfile.py”. This is a file that defines the package’s dependencies, sources, how to build the binaries from sources, etc. One package “conanfile.py” recipe can generate immutability allows for improved processes, downloading, installing and updated dependencies as well as uploading dependencies. The revisions allow accurate traceability of artifacts, and thus allows better0 码力 | 779 页 | 4.93 MB | 10 月前3
Conan 2.6 Documentationfrom/to the cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 5.7 Vendoring dependencies in Conan packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6 Integrations artifacts. A package is defined by a “conanfile.py”. This is a file that defines the package’s dependencies, sources, how to build the binaries from sources, etc. One package “conanfile.py” recipe can generate immutability allows for improved processes, downloading, installing and updated dependencies as well as uploading dependencies. The revisions allow accurate traceability of artifacts, and thus allows better0 码力 | 777 页 | 4.91 MB | 10 月前3
Conda 23.3.x Documentationruns on Windows, macOS, and Linux. Conda quickly installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer collection of files that are installed directly into an install prefix. Conda keeps track of the dependencies between packages and platforms. The conda package format is identical across platforms and operating and does not contain any files, it is referred to as a metapackage. The metapackage may contain dependencies to several core, low-level libraries and can contain links to software files that are automatically0 码力 | 370 页 | 2.94 MB | 8 月前3
Conda 23.5.x Documentationruns on Windows, macOS, and Linux. Conda quickly installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer collection of files that are installed directly into an install prefix. Conda keeps track of the dependencies between packages and platforms. The conda package format is identical across platforms and operating and does not contain any files, it is referred to as a metapackage. The metapackage may contain dependencies to several core, low-level libraries and can contain links to software files that are automatically0 码力 | 370 页 | 3.11 MB | 8 月前3
Conda 4.6.0 Documentationruns on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. packages that you have installed. For example, you may have one environment with NumPy 1.7 and its dependencies, and another environment with NumPy 1.6 for legacy testing. If you change one environment, your libraries, Python or other modules, executable programs and other components. Conda keeps track of the dependencies between packages and platforms. Conda packages are downloaded from remote channels, which are0 码力 | 190 页 | 728.67 KB | 8 月前3
共 182 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19













