 Design PatternsCppCon 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 | 6 月前3 Design PatternsCppCon 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 | 6 月前3
 Open 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 #include Open 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 #include- int 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 | 6 月前3
 Prototype your designPrototype 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 年前3 Prototype your designPrototype 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 年前3
 Back to Basics: Design PatternsPlease 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 | 6 月前3 Back to Basics: Design PatternsPlease 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 | 6 月前3
 The Roles of Symmetry And Orthogonality In Designdot 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 | 6 月前3 The Roles of Symmetry And Orthogonality In Designdot 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 | 6 月前3
 Design Patterns: Facts and MisconceptionsDesign 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 | 6 月前3 Design Patterns: Facts and MisconceptionsDesign 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 | 6 月前3
 The Most Important Design Guideline is Testability12The 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 | 6 月前3 The Most Important Design Guideline is Testability12The 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 | 6 月前3
 Can 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 | 6 月前3 Can 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 | 6 月前3
 Cache-Friendly Design in Robot Path Planningto 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 | 6 月前3 Cache-Friendly Design in Robot Path Planningto 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 | 6 月前3
 基于open-falcon的平安云监控基于open-falcon的 平安云监控 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 团队介绍 Ø 平安云IAAS团队 Ø 负责平安集团IAAS平台建设 Ø 为平安集团内部其他子公司服务 Ø 打造对外的金融云服务 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 argus是什么 Ø 是平安云监控系统 Ø 希腊神话里的百眼巨人 Ø 基平open-falcon开发的平安云监控系统 Ø 是一个Go语言实现的项目 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 自带单元测试框架 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 argus的前身open-falcon agent transfer meta updater hbs graph judge redis sender query mysql web alarm gitlab0 码力 | 30 页 | 10.40 MB | 1 年前3 基于open-falcon的平安云监控基于open-falcon的 平安云监控 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 团队介绍 Ø 平安云IAAS团队 Ø 负责平安集团IAAS平台建设 Ø 为平安集团内部其他子公司服务 Ø 打造对外的金融云服务 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 argus是什么 Ø 是平安云监控系统 Ø 希腊神话里的百眼巨人 Ø 基平open-falcon开发的平安云监控系统 Ø 是一个Go语言实现的项目 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 自带单元测试框架 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 argus的前身open-falcon agent transfer meta updater hbs graph judge redis sender query mysql web alarm gitlab0 码力 | 30 页 | 10.40 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













