Category: Technology



What's the difference between a declaration and a definition? What is a translation unit, and how is it related to the source code that you write? How would you describe the one-definition rule? What is name-mangling? If the answers to these questions are a little hazy for you, or if you would like a refresher on the fundamentals of how source code is converted into executable programs, then this talk is for you. In this session, we'll cover the process of compiling and linking C++ source code, describing and discussing the key concepts involved in that process along the way. Attendees will leave with a basic understanding of such fundamental concepts as translation units, declarations, definitions, the one-definition rule, name-mangling, ABIs, and how the compiler and linker conspire to convert human-readable source code into binary code that executes on hardware. PUBLICATION PERMISSIONS:
CppCon Organizer provided Coding Tech with the permission to republish CppCon tech talks. CREDITS:
CppCon YouTube channel: https://www.youtube.com/channel/UCMlGfpWw-RUdWX_JbLCukXg https://www.youtube.com/watch?v=iGOEKtYfEdY



In this talk, Elizé discusses why design systems are necessary, and what considerations will affect the scope of your design system. PUBLICATION PERMISSIONS:
FITC Events Conference Organizer provided Coding Tech with the permission to republish FITC Events tech talks. CREDITS:
FITC Events YouTube channel: https://www.youtube.com/channel/UCmaq7t-9UQW8GmN2cN1J8LQ https://www.youtube.com/watch?v=8At9VoySKTc



We often think of manual testing as slower and less effective than automated testing, but most test suites haven't automated that much! Computers can execute all our pre-defined tests very quickly – and this is definitely a good thing, especially for regression tests – but the tricky parts are still done by humans. We select test cases (inputs) and check that the corresponding outputs make sense; we write functions that "arrange, act, and assert" for our tests; and we decide – or script via CI systems – which tests to execute and when. So lets explore some next-generation tools that we could use to automate these remaining parts of a testing workflow! PROPERTY-BASED TESTING helps you to write more powerful tests by automating selection of test cases: instead of listing input-output pairs, you describe the kind of data you want and write a test that passes for all X…. We'll see a live demo, and learn something about the Python builtins in the process! CODE INTROSPECTION, and a handy templating tool, can help write tests for you. Do you need to know any more than which code to test, and what properties should hold? ADAPTIVE FUZZING tools take CI to its logical conclusion: instead of running a fixed set of tests on each push, they sit on a server and run tests full-time… fine-tuning themselves to find bugs in your project and pulling each new commit as it lands! By the end of this talk, you'll know what these three kinds of tools can do – and how to get started with automating the rest of your testing tomorrow. PUBLICATION PERMISSIONS:
Original video was published with the Creative Commons Attribution license (reuse allowed). Link: https://www.youtube.com/watch?v=IcvCTHcYoMg&t=54s https://www.youtube.com/watch?v=XkpDwl5n7pg