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 The SOLID Principles Single-Responsibility Principle Open-Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle9 The SOLID Principles Single-Responsibility Inversion Principle Robert C. Martin Michael Feathers10 The SOLID Principles11 The SOLID Principles I will introduce the SOLID principles … … as guidelines not limited to OO programming … as general0 码力 | 96 页 | 2.14 MB | 6 月前3
Performance Engineering: Being Friendly to Your HardwareBeing Friendly to Your Hardware Performance Engineering A gentle introduction to hardware for software engineers 2Where does C++ run? 3On an abstract C++ machine 4On an abstract C++ machine?0 码力 | 111 页 | 2.23 MB | 6 月前3
Design and Implementation of Highly Scalable Quantifiable Data Structures in C++Quantifiability Definition Vector Space System Model Entropy Measurement Correctness and Performance Engineering Case Study: k-FIFO Queue Design and Implementation of Quantifiable Stack/Queue Live Demonstration e. denotational, not small step operational) ▶ Correctness is binary, lacking any metric for engineering trade-offs ▶ Forced to make assumptions about abstract data type and object semantics (i.e. a First Principles Inspired by Descartes Applying Cartesian thought to concurrent systems, we see that first principles describe what the program does (what is programmed), while secondary principles such0 码力 | 51 页 | 4.08 MB | 6 月前3
Dependency Injection in C++Dependency Injection in C++: A Practical Guide CppCon 2024 September 18, 2024 Pete Muldoon Senior Engineering LeadBloomberg 4 Questions #includeHereWho Am I? Bloomberg 5 • Started using a consultant • Bloomberg Ticker Plant Engineering Lead • Talks focus on practical Software Engineering • Based in the real world • Demonstrate applied principles • Take something away and be able to use Usage) Software Development Completeness : Knowing when you are done and why it matters Other Engineering talks by yours truly :Questions? 125 Bloomberg Contact : pmuldoon1@Bloomberg.net Bloomberg is 0 码力 | 106 页 | 1.76 MB | 6 月前3
Khronos APIs for Heterogeneous Compute and Safety: SYCL and SYCL SCconditions, signed/unsigned, etc. ▪ Not always identifying the problem ▪ Not much in the way of principles to apply ▪ Formation of SG23 - Safety and Security Kona 2022 Evening Session 38DIRECTION GROUP40 fully initialized (its value can’t change until assigned) ▪ Can reject in non-conforming modes ▪ Principles on applying it to current UB ▪ P2973 Erroneous behaviour for missing return from assignment ▪ (as a whole) safety experts ▪ Many of the solutions proposed are ad hoc ▪ We (desperately) need principles we can apply ▪ SYCL ▪ Subset of customers that have specific and critical requirements ▪ Formation0 码力 | 82 页 | 3.35 MB | 6 月前3
When Nanoseconds Matter: Ultrafast Trading Systems in C++15 years in Trading and Defense • Today’s talk - Engineering low-latency trading systems - Profiling techniques to find bottlenecks - Some principles along the way4 “All that we know, all that we are programming is also a losers’ game! - It’s mostly about being very disciplined… - … and not over-engineering your system • In the trading game, time to market is an important “latency” too!137 Credits0 码力 | 123 页 | 5.89 MB | 6 月前3
Hiding Your Implementation Details is Not So Simple2024Hyrum's Law 36 Hiding your Implementation Details, Amir Kirsh @ CppCon, 2024 (“Software engineering at Google: lessons learned from programming over time”): - Developers come to depend on all observable Hiding your Implementation Details, Amir Kirsh @ CppCon, 2024 Less code to decommission! Software Engineering Completeness : Knowing when you are done and why it matters Peter Muldoon44 Hiding your Implementation your Implementation Details, Amir Kirsh @ CppCon, 2024 Hiding rules go well with known design principles: Encapsulation: Protecting Object Integrity. Exposing necessary interfaces only. Internal changes0 码力 | 145 页 | 2.45 MB | 6 月前3
BehaviorTree.CPP: Task Planning for Robots and Virtual Agentslast 20 years, the de-facto standard in robotics has been (informally) Component Based Software Engineering ● Multi-process and multi-nodes, distributed systems. ● Lot of inter-process communication. novel pre-post condition extension, that reduces complexity, when dealing with states.Main Design Principles 1. Productivity 2. Composability 3. ReusabilityNodes and Trees These are your reusable Tree Nodes0 码力 | 59 页 | 7.97 MB | 6 月前3
Back to Basics: Debugging TechniquesThe Debugging Process – In Theory – And Practice 16 • There's an analogy here with software engineering processes... Simple cases - waterfall Complex cases – iterative and incrementalCppCon 2021 – Back invariants, pre-conditions, post-conditions, and self-test complex components • Consider employing the principles of test-driven design • Implement test assets in parallel with the solution • Employ good configuration0 码力 | 44 页 | 470.68 KB | 6 月前3
Continuous Regression Testing for Safer and Faster Refactoringfunction or variable Changing system con�guration Updating build system toolchain “Software engineering is programming integrated over time.” - Titus Winters6 Aurora Innovation It takes 23 days for Good test systems report insights as output, not raw test results .25 Aurora Innovation Design Principles Developer Friendly Designed for everyday use by developers. Should enable creating tests that0 码力 | 85 页 | 11.66 MB | 6 月前3
共 149 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
相关搜索词
BreakingDependenciesTheSOLIDPrinciplesPerformanceEngineeringBeingFriendlytoYourHardwareDesignandImplementationofHighlyScalableQuantifiableDataStructuresinC++DependencyInjectionKhronosAPIsforHeterogeneousComputeSafetySYCLSCWhenNanosecondsMatterUltrafastTradingSystemsHidingDetailsisNotSoSimpleBehaviorTreeCPPTaskPlanningRobotsVirtualAgentsBackBasicsDebuggingTechniquesContinuousRegressionTestingSaferFasterRefactoring













