Odcinek

Prezentacja dnia 1 — Bjarne Stroustrup: Styl C++11

with Bjarne Stroustrup

Wiemy, jak napisać zły kod: zaśmiecać nasze programy rzutami, makrami, wskaźnikami, nagimi nowymi i usuniętymi oraz skomplikowanymi strukturami sterowania. Alternatywnie (lub dodatkowo) możemy zaciemniać każdą decyzję projektową w bałaganie głęboko zagnieżdżonych abstrakcji przy użyciu najnowszych wskazówek programistycznych zorientowanych na obiekty i ogólnych sztuczek programistycznych. Następnie, dla dobrej miary, możemy skomplikować nasze algorytmy z ciekawymi przypadkami specjalnymi. Taki kod jest niezrozumiały, niezrozumiały, zwykle nieefektywny, a nie rzadkością.

Ale jak napisać dobry kod? Jakie zasady, techniki i idiomy możemy wykorzystać, aby ułatwić tworzenie kodu jakości? W tej prezentacji przedstawiam argument dla interfejsów bogatych w typy, kompaktowych struktur danych, zintegrowanego zarządzania zasobami i obsługi błędów oraz wysoce ustrukturyzowanego kodu algorytmicznego. Zilustruję moje pomysły i wytyczne z kilkoma idiomatycznymi przykładami kodu.

Używam języka C++11 bezpłatnie. Przykłady obejmują automatyczne, ogólne wyrażenia stałe, jednolite inicjowanie, aliasy typów, bezpieczne wątki typu i literały zdefiniowane przez użytkownika. Funkcje języka C++11 dopiero zaczynają pojawiać się w kompilatorach produkcyjnych, więc niektóre z moich sugestii są przypuszczeniami. Jednak opracowanie "nowoczesnego stylu" jest niezbędne, jeśli nie chcemy utrzymywać nowo napisanego kodu w stylu lat 70-tych i 1980 w 2020 roku.

Ta prezentacja odzwierciedla moje przemyślenia na temat tego, co "Modern C++" powinno oznaczać w 2010 roku: język programowania oparty na abstrakcji lekkiej z bezpośrednim i wydajnym mapowaniem na sprzęt, odpowiedni dla kodu infrastruktury.