Code Analysis++
UG: https://www.meetup.com/St-Petersburg-CPP-User- Group/ ● C++ Russia: https://cppconf.ru/en/Why Code Analysis?Software QualityReadability Maintainability tools fuzzer battery life Repeatable Orthogonality SW helps solving problems The Last Spike Languages Memory management Expressive code Simplicity Work as intended Documented ReviewsReliability Efficiency Security Maintainability Managing Makefiles 23 % Parallelism support 22 % Managing MSBuild projects 18 % Debugging issues in my code 18 % Memory safety: Bounds safety issues 16 % Memory safety: Use-after-delete/free 15 % Security0 码力 | 61 页 | 2.70 MB | 5 月前3Better Code: Contracts
1Better Code: Contracts Dave Abrahams & Sean Parent What's holding our software together? Can we do better than duct tape and good intentions? 2© 2023 Adobe. All Rights Reserved. Adobe’s Software Libraries ResearchDocumentation > Code 4© 2023 Adobe. All Rights Reserved. Local reasoning Local reasoning is the idea that the reader can make sense of the code directly in front of them, without without going on a journey discovering how the code works. —Nathan Gitter (https://medium.com/@nathangitter/local-reasoning-in-swift-6782e459d) 5© 2023 Adobe. All Rights Reserved. Local reasoning |0 码力 | 204 页 | 4.46 MB | 5 月前3Connecting User And Library Code
@@@ All of library code is in LibSpace, user code without frame is in UserSpace@@@ As opposed to library sharing entities with other libraries+ @@@ Deducing this removes the need for CRTP2 Slides1. https://godbolt for default implementation (something which can be done generally) @@@ All of library code is in LibSpace, user code without frame is in UserSpace1. @@@ Terms: 1. Overload: multiple functions with the ”5 Slides@@@ (*) Concepts are only limiting by behavior / qualities@@@ All of library code is in LibSpace, user code without frame is in UserSpace 1. Basic: https://godbolt.org/z/nej3977z8@@@ This is done0 码力 | 58 页 | 18.82 MB | 5 月前3Changing Legacy Code: With Confidence
for Maintaining and Migrating Working Code Changing Legacy Code with Confidence: Brian Ruth (he/him) brian.ruth@garmin.comPart 0: Legacy Code• It works* • It may not have tests, but It is currently making the company money • One person's bug is another's critical feature Legacy code has value *well enough, for some definition of "works"• Best practices and languages change • Developers Supporting tools change The Legacy of Code *for some definition of "structure"• Preserve working code • Introduce testing • Gradual improvement • Make code self documenting • Instill confidence in0 码力 | 114 页 | 982.54 KB | 5 月前3Code generation for Vulkan Initialization
CODE CODE GENERATION GENERATION FOR VULKAN FOR VULKAN INITIALIZATION. INITIALIZATION.LEARNING VULKAN LEARNING VULKAN So… I’ve decided to learn Vulkan. Did I learn it? Not yet.WHAT DID I LEARN? WHAT #define platform selection All extensionsDEPENDENCIES DEPENDENCIESWHAT DID I DO? WHAT DID I DO? Simple code generation XSLT translation to header �le Enumerate all the things Platforms, extensions, and types0 码力 | 13 页 | 963.32 KB | 5 月前3Better Code: Exploring Validity
Better Code Exploring Validity David Sankel | Principal Scientist CppCon 2023© 2023 Adobe. All Rights Reserved. Adobe’s Software Technology Lab Sean Parent Senior Principal Scientist Manager, Software 2023 Adobe. All Rights Reserved. C++ at Adobe! Careers Events Training Videos (STLab Better Code Series!) Blog Posts … developer.adobe.com/cpp© 2023 Adobe. All Rights Reserved. Comments/Questions©0 码力 | 117 页 | 6.03 MB | 5 月前3Coping With Other People's Code
& David Abrahams "Better Code: Contracts" • Friday 2:45pm, David Sankel "Better Code: Validity" AdobeCoping with Other People's Code Adobe 11my crafsman house Adobe 12my 15post-conference re-entry letdown Adobe 16post-conference re-entry Coping with Other People's Code Adobe 17post-conference re-entry coping is not rewriting 100% to your own tastes Adobe 18triage 33belonging Adobe 34belonging Adobe 35belonging Adobe 36belonging Adobe 37belonging is unpalatable code a sign that you do not belong? (no) Adobe 39belonging beliefs in belonging impact behavior, which0 码力 | 128 页 | 9.17 MB | 5 月前3Reusable Code & Reusable Data Structures
place(rect r) { ... } }; std::arraya = { , , }; vertical_center(a); // Boom! Code reused! } struct widget { 1 rect bounding_box(); 2 void place(rect r); 3 }; 4 5 struct 19 20 21 22 111213SUCCESS! 13.1SUCCESS! SUCCESS? 13.2UNDERSTANDING CODE IS HARD, WRITING CODE IS EASY We love writing code! We have tools! Classes, inheritance, variant, optional, virtual functions Don't generalize from single use case 21CUSTOMIZING GENERIC FUNCTIONS Client code → generic library code → client code 221. DISPATCH TO FUNCTION OVERLOADS void place_items(rect bounds, forward_range 0 码力 | 132 页 | 14.20 MB | 5 月前3Visual Studio Code: CppCon 2023
0 码力 | 1 页 | 3.10 MB | 5 月前3Designing C++ Code Generator Guardrails
Finance L.P. All rights reserved. © 2024 Bloomberg Finance L.P. All rights reserved. Designing C++ Code Generator Guardrails A collaboration between outreach and development teams & users CppCon 2024 of least astonishment.” We were offering a modern set of guardrails for Bloomberg’s 20-year-old Code Generator. Others responded before we could. They said they weren’t the least bit surprised.© 2018 Engineering department had collaborated, shared their use cases, accepted our changes, rewritten their code, and updated community cookie cutters and documentation.© 2018 Bloomberg Finance L.P. All rights0 码力 | 48 页 | 2.71 MB | 5 月前3
共 380 条
- 1
- 2
- 3
- 4
- 5
- 6
- 38