 Back to Basics: Design Patternswill start this talk by introducing the taxonomy of design patterns at a high level, how to read a UML diagram (as a quick refresher), a refresher on inheritance vs composition, and then spend the rest learning more design patterns 87Unified Modeling Language (UML) A compact way to represent software systems 88What is the Unified Modeling Language (UML)? 89 ● A general-purpose modeling language for software diving into code is wise!Sample UML for a Class Diagram (1/4) ● Example of a class diagram ○ Class name ○ member variables (data) ○ member functions (behaviors) 90Sample UML for a Class Diagram (2/4)0 码力 | 96 页 | 2.10 MB | 6 月前3 Back to Basics: Design Patternswill start this talk by introducing the taxonomy of design patterns at a high level, how to read a UML diagram (as a quick refresher), a refresher on inheritance vs composition, and then spend the rest learning more design patterns 87Unified Modeling Language (UML) A compact way to represent software systems 88What is the Unified Modeling Language (UML)? 89 ● A general-purpose modeling language for software diving into code is wise!Sample UML for a Class Diagram (1/4) ● Example of a class diagram ○ Class name ○ member variables (data) ○ member functions (behaviors) 90Sample UML for a Class Diagram (2/4)0 码力 | 96 页 | 2.10 MB | 6 月前3
 A Picture is Worth a Thousand Wordscom/limerick-artist-sambhu-dayal https://www.linkedin.com/in/sambhudayalb/Do we draw pictures at work? UML diagramsSome real funny diagramsWidely used proprietary tools Visio Enterprise Architect No longer converters • PlantUML • open source tool that converts simple textual descriptions to UML diagrams • Not only UML diagrams - Earth diagram, UI wireframes and more.. • Textual descriptions could be0 码力 | 18 页 | 1.77 MB | 6 月前3 A Picture is Worth a Thousand Wordscom/limerick-artist-sambhu-dayal https://www.linkedin.com/in/sambhudayalb/Do we draw pictures at work? UML diagramsSome real funny diagramsWidely used proprietary tools Visio Enterprise Architect No longer converters • PlantUML • open source tool that converts simple textual descriptions to UML diagrams • Not only UML diagrams - Earth diagram, UI wireframes and more.. • Textual descriptions could be0 码力 | 18 页 | 1.77 MB | 6 月前3
 SuperCharge Your IPC Programs With C++20 and CCI Patternexpress programmatically the meaning of descriptive text of a particular software artifact, or even an UML Diagram. Therefore, it can serve as an signature of an software artifact. • The resulting binaries0 码力 | 57 页 | 7.11 MB | 6 月前3 SuperCharge Your IPC Programs With C++20 and CCI Patternexpress programmatically the meaning of descriptive text of a particular software artifact, or even an UML Diagram. Therefore, it can serve as an signature of an software artifact. • The resulting binaries0 码力 | 57 页 | 7.11 MB | 6 月前3
 Custom Views for the Rest of Usrespectively, such that [i, s) denotes a range. sentinel_for Custom Views for the Rest of Usrespectively, such that [i, s) denotes a range. sentinel_for- is modeled only if: i == s is well-de�ned. std::assignable_from is either modeled or not satis�ed. If bool(i != s) then i is dereferenceable respectively, such that [i, s) denotes a range. sentinel_for- is modeled only if: i == s is well-de�ned. std::assignable_from is either modeled or not satis�ed. If If bool(i != s) bool(i != is only for end() to use, but nothing actually tells us that. 42Sentinels separate concerns. The de�nition of “end” is in its own class. 43class class inner_sentinel inner_sentinel { { /* ... */ /*0 码力 | 187 页 | 13.25 MB | 6 月前3
 Performance Engineering: Being Friendly to Your Hardwaremovabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12Code density uint64_t v = 0x123456789abcdef0; 47 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 MIPS li $2, 38141952 8a 42 34 78 14 02 00 af 26 42 64 b8 14 02 00 f0 de 42 34Code density uint64_t v = 0x123456789abcdef0; 48 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 RISC-V li a5, 305418240 8a 42 34 78 14 02 00 af 26 42 64 b8 14 02 00 f0 de 42 34Code density uint64_t v = 0x123456789abcdef0; 49 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 RISC-V li a5, 3054182400 码力 | 111 页 | 2.23 MB | 6 月前3 Performance Engineering: Being Friendly to Your Hardwaremovabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12Code density uint64_t v = 0x123456789abcdef0; 47 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 MIPS li $2, 38141952 8a 42 34 78 14 02 00 af 26 42 64 b8 14 02 00 f0 de 42 34Code density uint64_t v = 0x123456789abcdef0; 48 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 RISC-V li a5, 305418240 8a 42 34 78 14 02 00 af 26 42 64 b8 14 02 00 f0 de 42 34Code density uint64_t v = 0x123456789abcdef0; 49 x86 movabs r10, 0x123456789abcdef0 49 ba f0 de bc 9a 78 56 34 12 RISC-V li a5, 3054182400 码力 | 111 页 | 2.23 MB | 6 月前3
 Leveraging C++20/23 Features for Low Level Interactionsto implementation Why use this design pattern? Changes to the implementation don’t impact the class de�nition. Hence, no recompile of the callers/users of the class. class my_class { ... private: un unique_ptr Leveraging C++20/23 Features for Low Level Interactionsto implementation Why use this design pattern? Changes to the implementation don’t impact the class de�nition. Hence, no recompile of the callers/users of the class. class my_class { ... private: un unique_ptr- p_regs; } �. See also my talk from cppcon2023 re: HookableRegisterHow to de�ne the struct of the register set We need a struct of the registers in order, including padding of scope changes So we need to tell the language to not delete Where D is a (dangerous!) custom deleter de�ned by: shared_ptr - my_ptr = rhs; unique_ptr - my_uniqueptr = rhs; shared_ptr - my_sharedptr(ref 0 码力 | 56 页 | 5.39 MB | 6 月前3
 A New Dragon in the Den: Fast Conversion From Floating-Point NumbersChéron Oil painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças.Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil painting, ca. beast. Bicho de sete cabeças.Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças.Não é um bicho de sete cabeças. Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil0 码力 | 171 页 | 6.42 MB | 6 月前3 A New Dragon in the Den: Fast Conversion From Floating-Point NumbersChéron Oil painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças.Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil painting, ca. beast. Bicho de sete cabeças.Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças painting, ca. 1690-1725 Victoria & Albert Museum, London, UK Seven-headed beast. Bicho de sete cabeças.Não é um bicho de sete cabeças. Hercules slaying the Hydra Hercules slaying the Hydra Louis Chéron Oil0 码力 | 171 页 | 6.42 MB | 6 月前3
 Conan 2.1 Documentationcompiler.libcxx: libc++ compiler.version: 14 os: Macos options fPIC: True shared: False d15c4f81b5de757b13ca26b636246edff7bdbf24 info settings: arch: x86_64 build_type: Debug compiler: apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f3666 ˓→#50f91e204d09b64b24b29df3b87a2f3a hello/1.0: Package folder /Users/user/.conan2/p/21ec37b931782de8/p 74 Chapter 4. Tutorial Conan Documentation, Release 2.1.0 Check how the include and library files0 码力 | 694 页 | 4.13 MB | 1 年前3 Conan 2.1 Documentationcompiler.libcxx: libc++ compiler.version: 14 os: Macos options fPIC: True shared: False d15c4f81b5de757b13ca26b636246edff7bdbf24 info settings: arch: x86_64 build_type: Debug compiler: apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f3666 ˓→#50f91e204d09b64b24b29df3b87a2f3a hello/1.0: Package folder /Users/user/.conan2/p/21ec37b931782de8/p 74 Chapter 4. Tutorial Conan Documentation, Release 2.1.0 Check how the include and library files0 码力 | 694 页 | 4.13 MB | 1 年前3
 Conan 2.0 Documentationpackage that is the latest created $ conan list hello/1.0#:* Local Cache: hello hello/1.0#fa5f6b17d0adc4de6030c9ab71cdbede (2022-12-22 17:32:19 UTC) PID: 6679492451b5d0750f14f9024fdbf84e19d2941b (2022-12-22 Documentation, Release 2.0.17 (continued from previous page) options: fPIC=True shared=False PID: d15c4f81b5de757b13ca26b636246edff7bdbf24 (2022-12-22 17:32:14 UTC) settings: arch=x86_64 build_type=Debug compiler=apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f36660 码力 | 652 页 | 4.00 MB | 1 年前3 Conan 2.0 Documentationpackage that is the latest created $ conan list hello/1.0#:* Local Cache: hello hello/1.0#fa5f6b17d0adc4de6030c9ab71cdbede (2022-12-22 17:32:19 UTC) PID: 6679492451b5d0750f14f9024fdbf84e19d2941b (2022-12-22 Documentation, Release 2.0.17 (continued from previous page) options: fPIC=True shared=False PID: d15c4f81b5de757b13ca26b636246edff7bdbf24 (2022-12-22 17:32:14 UTC) settings: arch=x86_64 build_type=Debug compiler=apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f36660 码力 | 652 页 | 4.00 MB | 1 年前3
 Conan 2.3 Documentationcompiler.libcxx: libc++ compiler.version: 14 os: Macos options fPIC: True shared: False d15c4f81b5de757b13ca26b636246edff7bdbf24 info settings: arch: x86_64 build_type: Debug compiler: apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f3666 ˓→#50f91e204d09b64b24b29df3b87a2f3a hello/1.0: Package folder /Users/user/.conan2/p/21ec37b931782de8/p 74 Chapter 4. Tutorial Conan Documentation, Release 2.3.2 Check how the include and library files0 码力 | 748 页 | 4.65 MB | 1 年前3 Conan 2.3 Documentationcompiler.libcxx: libc++ compiler.version: 14 os: Macos options fPIC: True shared: False d15c4f81b5de757b13ca26b636246edff7bdbf24 info settings: arch: x86_64 build_type: Debug compiler: apple-clang 1#601209640bd378c906638a8de90070f7 - Cache hello/1.0#e6b11fb0cb64e3777f8d62f4543cd6b3 - Cache -------- Computing necessary packages -------- Requirements fmt/8.1.1#601209640bd378c906638a8de90070f7:d1b3f3666 ˓→#50f91e204d09b64b24b29df3b87a2f3a hello/1.0: Package folder /Users/user/.conan2/p/21ec37b931782de8/p 74 Chapter 4. Tutorial Conan Documentation, Release 2.3.2 Check how the include and library files0 码力 | 748 页 | 4.65 MB | 1 年前3
共 144 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15














