C++ Core Guidelines.

C++ Core Guidelines – co to jest ? Jest to temat, którym warto się poważniej zainteresować – a przynajmniej ja go za taki uważam 🙂

C++ Core Guidelines jest projektem, wystartowanym przez Bjarne Stroustrup’a (tego pana powinniście kojarzyć) i prowadzonym z pomocą Herb’a Sutter’a (też bardzo znany zawodnik).

Całość polega na spisaniu w formie tekstowej wszelkiej maści zasad, idiomów, gotowych rozwiązań oraz zaleceń, dotyczących nowoczesnego programowania w języku C++. Nowoczesnego, to znaczy z wykorzystaniem najnowszych wersji języka C++ (C++11, C++14, C++17).

Autorzy, bazując na swojej wiedzy, wieloletnim doświadczeniu oraz wielu rozmowach ze specjalistami z branży, pokazują, jak efektywnie i skutecznie wykorzystywać nowoczesny język C++. Projekt jest hostowany w witrynie GitHub, pod adresem:

https://github.com/isocpp/CppCoreGuidelines

i będzie się oczywiście cały czas zmieniał. Nie przeszkadza to jednak w tym, żeby już dziś mu się przyjrzeć – w mojej ocenie całość jest w tym momencie nieźle zorganizowana i zawiera cenne informacje oraz wskazówki.

Co tak naprawdę zawierają wytyczne, opublikowane jako C++ Core Guidelines ?

Większość zasad skupia się na wysokopoziomowych zagadnieniach, takich jak: interfejsy, zarządzanie zasobami, zarządzanie pamięcią, współbieżność, itp. Wspomniane zasady mają mieć oczywiście wpływ na jakość wytwarzanego kodu źródłowego – w zamyśle ma on być szybki, odporny na błędy oraz prosty.

Oczywiście wiele z opublikowanych zasad będzie nie do przyjęcia dla wielu organizacji lub osób. Bezpośrednim powodem jest duża ogólność publikowanych treści – one muszą takie być. Każdy powinien z nich wynieść to, co może wykorzystać w sposób najlepszy w swojej pracy.

Liderzy projektu zdają sobie oczywiście sprawę z niedoskonałości, braków i błędów, które znajdują się w opublikowanych treściach. Dlatego każda sugestia jest mile widziana – każdy może mieć swój wkład w powstawanie tego, jedynego w swoim rodzaju, dokumentu.

Co chcą osiągnąć autorzy projektu ?

Nadrzędnym celem jest pomoc w rozwijaniu bazy kodu źródłowego oraz w tworzeniu nowego kodu w sposób nowoczesny i skuteczny. Tak, żeby z każdym dniem nasz kod stawał się bardziej zrozumiały i mniej podatny na wszelkiego rodzaju paskudne błędy, zarówno strukturalne, jak i logiczne.

Całość sugestii i porad jest zaprojektowana w taki sposób, aby możliwe było ich niezależne wdrożenie do naszego kodu. Dzięki temu zasady mogą być implementowane w sposób stopniowy i wybiórczy. Każda niezależna zmiana ma podnosić jakość kodu, bez negatywnych skutków ubocznych.

Kolejnym celem jest integracja wypracowanych zasad z wszelkiego rodzaju narzędziami, a więc kompilatorami, IDE, narzędziami do statycznej analizy kodu, itp. Autorzy chcą tworzyć przydatne narzędzia i mają nadzieję, że społeczność również zacznie działać w ten sposób, niejako wymuszając stosowanie ustalonych wytycznych w swoim kodzie źrółowym.

Ocena ?

Generalnie inicjatywę pod tytułem C++ Core Guidelines oceniam bardzo pozytywnie i szczerze jej kibicuję. Widzę, że ze względu na głównych autorów, projekt wzbudził dość szerokie zainteresowanie. Mam nadzieję, że przyniesie to pozytywne efekty. Ze względu na szybki rozwój języka C++, taka inicjatywa jest po prostu programistom potrzebna.