Design Patterns
CppCon 2024 klaus.iglberger@gmx.de Design Patterns The Most Common Misconceptions (2 of N)2 Klaus Iglberger C++ Trainer/Consultant Author of “C++ Software Design” (Co-)Organizer of the Munich Email: klaus.iglberger@gmx.deThe 2nd in a Row 3The 2nd in a Row 45 Let’s again talk about design patterns and virtual functionsThe Overhead of Inheritance Hierarchies 6The Overhead of Inheritance common interface; • … is used via the base class interface; • … introduces an abstraction and is a design pattern. • … should be called “Static Interface” Adding Functionality via CRTP … • … provides0 码力 | 136 页 | 7.95 MB | 5 月前3Open Flags 调研
© XXX Page 1 of 23 open flags 调研(已实现)© XXX Page 2 of 23 open接口原型 open flags flags定义 flags的含义 libfuse open open flags 在curvefs上的测试 open flags 实现方式 整体flags支持方案 具体flag的实现方案 O_TRUNC I/O模式类 O_DIRECT O_SYNC FASYNC, O_TMPFILE 结论 参考文献 open接口原型 # man page open, openat, creat - open and possibly create a file #includeint open(const char *pathname, int flags); int open(const char *pathname, int flags int flags, mode_t mode); int openat2(int dirfd, const char *pathname, const struct open_how *how, size_t size); open系统调用会打开pathname指定的文件(如果不存在,如果携带O_CREAT flag则会创建),返回一个文件描述符fd(该fd是进程打开文件描述符表的index), 0 码力 | 23 页 | 524.47 KB | 5 月前3Prototype your design
Prototype your design! Robert Griesemer dotGo 2016, Paris 1 Getting to good software design ● Literature is full of design paradigms ● Usually involves ○ Design docs ○ Feedback from reviewers ○ is created until design is “completed” 2 How can we tell if we have a good design? 3 Elsewhere, design thinking requires prototyping 4 Empathize Define Ideate Test From Design School Stanford: 15, 11) 5 j matrix[i,j] i High-level goals 1. More readable code 2. Great performance Many open questions: ○ Which primitive operations? ○ What implementation? ○ What notation? ○ etc. 6 Observation0 码力 | 30 页 | 164.99 KB | 1 年前3Open Discussion on Project Planning
Open Discussion on Project Planning Planning in an Agile Environment Key Tenets Planning should focus strongly on the near term Eliminate waste caused by planning for eventualities that never come circumstances o Agile methodology does not force programs to establish their full scope, requirements, and design at the start, but assumes that these will change over time. Even so, the program must maintain a applications o Replace comprehensive Preliminary Design Reviews (PDRs) and Critical Design Reviews (CDRs) with more frequent and incremental design reviews during the release planning phases. To demonstrate0 码力 | 2 页 | 49.30 KB | 5 月前3Back to Basics: Design Patterns
Please do not redistribute slides without prior permission. 1Back to Basics: Design Patterns Mike Shah, Ph.D. @MichaelShah | mshah.io September 17, 2020 60 minutes | Introductory to Intermediate forward to discussion!Abstract Design Patterns are reusable elements of design that may help aid in making software more maintainable, flexible, and extensible. The term 'design patterns' can be traced back Four' book Design Patterns, in which common software design patterns were defined and categorized. In this talk, you will learn the fundamentals of the creational, structural, and behavior design patterns0 码力 | 96 页 | 2.10 MB | 5 月前3The Roles of Symmetry And Orthogonality In Design
dot com Symmetry And Orthogonality System Design The Roles of In Designcharley bay charleyb123 at gmail dot com Symmetry And Orthogonality System Design The Roles of In DesignCharley Bay - charleyb123 charleyb123 at gmail dot com The Roles of Symmetry And Orthogonality In Design cppcon 2021 Either you keep self improving, or it's time to move into management. --Niall Douglas 30-Sep-2021 https://old of Symmetry And Orthogonality In Design cppcon 2021 Today’s Agenda • Levels of “Knowing” • Role of Symmetry • Role of Asymmetry • Role of Orthogonality • Design Relationships • Conclusion What’s0 码力 | 151 页 | 3.20 MB | 5 月前3Design Patterns: Facts and Misconceptions
Design Patterns Facts and Misconceptions Klaus Iglberger, CppCon 2021 klaus.iglberger@gmx.de2 Klaus Iglberger C++ Trainer/Consultant Author of the C++ math library (Co-)Organizer of the CppCon B2B and SD tracks Email: klaus.iglberger@gmx.de3Let’s talk about Software Design and Design Patterns 4Disclaimer 5 All content is based on personal, subjective impressions and opinions opinions. You may have another opinion, and that is fine! There is no definitive answer in software design. It depends. But that is the reason why it is fun.6 std::make_unique() … … improves exception0 码力 | 88 页 | 17.31 MB | 5 月前3The Most Important Design Guideline is Testability
12The Most Important Design Guideline is Testability CppCon 2024 3 Jody Hagins jhagins@dev.nullThe Most Important Design Guideline is Testability CppCon 2024 4 Jody Hagins jhagins@dev.nullThe nullThe Most Important Design Guideline is Testability CppCon 2024 5 Jody Hagins jhagins@maystreet.com coachhagins@gmail.com6 Grad School and Winning the LotteryRemember This? 7 https://www.youtube com/watch?v=a76Z__kQJdo&t=83s8 The Most Important Design Guideline https://www.youtube.com/watch?v=a76Z__kQJdo&t=83s9 The Most Important API Design Guideline? TESTABILITY https://www.youtube.com/watch0 码力 | 126 页 | 9.11 MB | 5 月前3Can Data-Oriented-Design be Improved?
1Can data-oriented-design be improved? Ollivier Roberge Collège Jean-de-Brébeuf 2A brief historic • 1960s • FORTRAN • Lisp • 1980s • OOP • Structured programming • Modules • 2000s • Template is DoD about? • DoD (“Data oriented design”) • Not about cache lines, nor struct layout (at its core) • From wikipedia: ”As a design paradigm, data-oriented-design focuses on optimal transformations • And your program needs to do something: 𝐷𝑎𝑡𝑎&$%#$% = 𝐹(𝐷𝑎𝑡𝑎!"#$%) 13Data oriented design = Functional programmingOn the ”equality”… • DoD and functional programming may have strong differences0 码力 | 39 页 | 1.18 MB | 5 月前3Cache-Friendly Design in Robot Path Planning
to get from one location to another before actually moving. 8Cache-friendly design 9Cache-friendly design Program design focused on optimizing code by avoiding pathological affects of memory access 10Cache-friendly design - Random person on StackOverflow Modern memory pipelines are so complex you are basically optimizing for the cache 11Cache-friendly design 12Cache-friendly design 13Cache-friendly 13Cache-friendly design 14Cache-friendly design Accessing data means accessing memory through the cache 15Cache-friendly design Accessing data means accessing memory through the cache Running instructions means0 码力 | 216 页 | 10.68 MB | 5 月前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100