CppCon 2016: John Lakos “Advanced Levelization Techniques (part 1 of 3)'

preview_player
Показать описание


Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, one also needs a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience. In this talk we begin by briefly reviewing the basics of physical design. We then present a variety of levelization and Insulation techniques, and apply them in present-day, real-word examples to avoid cyclic, excessive, or otherwise inappropriate dependencies. Along the way, we comment on how to make the best use of what the C++ language has to offer.

John Lakos
Bloomberg LP
Software Infrastructure Manager
John Lakos, author of "Large Scale C++ Software Design.", serves at Bloomberg LP in New York City as a senior architect and mentor for C++ Software Development world-wide. He is also an active voting member of the C++ Standards Committee, Library Working Group. Previously, Dr. Lakos directed the design and development of infrastructure libraries for proprietary analytic financial applications at Bear Stearns. For 12 years prior, Dr. Lakos developed large frameworks and advanced ICCAD applications at Mentor Graphics, for which he holds multiple software patents. His academic credentials include a Ph.D. in Computer Science ('97) and an Sc.D. in Electrical Engineering ('89) from Columbia University. Dr. Lakos received his undergraduate degrees from MIT in Mathematics ('82) and Computer Science ('81). His next book, entitled "Large-Scale C++, Volume I: Process and Architecture", is anticipated in 2014.


*-----*
*--*
*-----*
Рекомендации по теме
Комментарии
Автор

So much goodness herein. I honestly think collectively we owe John at the very least a tip of the hat. He’s applied so much effort to the domain of software engineering at scale.

tomkirbygreen
Автор

Great talk! This is what am I looking for.

thongphamvan
Автор

In the example of Logical Relationships; wouldn't simply declaring and defining the PointList_Link in the .cpp file be enough to ensure it isn't used outside of PointList?

origamibulldoser
Автор

12:00 He made a joke about how the people he normally works with are "slower" than this audience. I bet they're feeling the love.

TheIronSavior
Автор

Does anyone know the tool he used to extract the dependencies between components? Is it open source?

thongphamvan
Автор

Does anyone know if that tool is open source?

lapinrigolo
Автор

Cycle = failure to abide by causality.

zofe