Dobre praktyki programistyczne w oparciu o projekt np. z GitHub

0

Tak jak w opisie poszukuję jakiegoś fajnego projektu który mógłby prezentować dobre praktyki programistyczne może ktoś może coś polecić, interesuje mnie projekt w C++ z Qt. Chciałbym popracować nad jakością własnego kodu podglądając jak inni kodując piszą czytelne oraz dobre programy. Proszę o propozycję projektów :) .

0

Dobre praktyki wg kogo/czego? I o jaką wersję Qt Ci chodzi?

KDevelop oraz QtCreator to dojrzałe IDE napisane w Qt. KDE to linuksowy desktop napisany w Qt. Google Earth na linuksa był napisany w Qt, ale nie chce mi się szukać repo, nawet nie wiem czy źródła są dostępne.

0

Bywa tak że są programy napisane elegancko które miło i łatwo się czyta i ich przeciwieństwo. Chciałbym popatrzeć jak inni piszą takie czytelne łatwe w rozbudowie programy. W tym momencie szukam jakiegoś takiego programu do analizy.

0

Bywa tak że są programy napisane elegancko które miło i łatwo się czyta i ich przeciwieństwo

To jest bardzo subiektywne kryterium. Poza tym, ładny kod nie zawsze wiąże się z przyjemnym używaniem produktu. Takie MongoDB jest w wielu miejscach fajnym przykładem na ładny kod napisany w C++, ale jako produkt sprawuje się koszmarnie.

Poza tym, w C++ ciężko napisać kod, który czyta się naprawdę przyjemnie, obiektowe wzorce, które sprawdzają się w takiej javie czy C# w C++ często są antywzorcem. Do tego coraz częściej właściwym rozwiązaniem problemu stają się szablony, które czyta się dobrze tylko jeśli jesteś ich autorem. Znajdź raczej projekty, które odniosły sukces i przestudiuj co było tego źródłem, skup się na tym a nie na szczegółowym, wymuskanym kodzie, który forsują teoretycy w swoich książkach.

4

Ładny kod w C++ to najszybsza droga do wypalenia się programisty... Wierzysz w to i szukasz tego, a tymczasem okazuje się, że w którymś z kolei projekcie i którejś z kolei firmie trafiasz na przeinżynierowanego kolosa z masą pułapek, w których, jeśli nie przeklikasz się kilka szablonów i get'ów w górę, spędzisz cały dzień na rozwiązywaniu problemów z całym projektem.

Trzeba mieć na uwadze, że kod który wygląda ładnie, zmienne są nazywane dobrze, itp. może być tak naprawdę potworną kupą [CIACH!], które zabije Twoją pasję, którą miałeś jako początkujący.

To tyle, jeśli chodzi o moje doświadczenia z projektami komercyjnymi.

1

Z mojej obserwacji wynika, że gdy ktoś mówi "over engineering" to trzeba się zastanowić, o które z dwóch znaczeń chodzi:

  • ja tego nie rozumiem i nie chce tego zrozumieć
  • ktoś inny czegoś nie rozumie i używa czegoś na siłę bo fajne lub trendy (np newbie przeciążający operatory, albo użycie wielowątkowości do dodawania dwóch liczb)

Niestety w 70% przypadków podpada pod punkt pierwszy.

A proste dobre praktyki programistyczne to:

  • pisanie kodu małymi funkcjami/klasami (one responsibility principle)
  • korzystanie z interfaców (lub sygnałów slotów jeśli to Qt), by minimalizować zależności modułów od siebie
  • pisanie testów (Test Driven Development - ciężko przełamać nawyki pisania najpierw kodu potem testów, ale naprawdę warto) - pisanie testów to minimum
  • nadawanie symbolom dobrze przemyślanych nazw
  • przestrzeganie standardów kodowania (są różne standardy, ale w ramach jednego projektu trzeba być konsekwentnym)
  • nauczenie się wzorca projektowego MVC/MVVM/VIPER lub innej pochodnej MVC zrozumienie go i ścisłe jego przestrzeganie (wygląda na proste, ale jest trudne szczególnie jeśli pracuje się z innymi, którzy mają to gdzieś).

Polecam książkę "Clean Code" Robert C. Martin lub jego filmiki (dostępne na Safari)

1

Jeśli chodzi o dobre praktyki, to ja polecam przestudiowanie dokumentu Google C++ Style Guide, wbrew tytułowi w środku jest mnóstwo wskazówek nie tylko odnośnie formatowania kodu, ale także jakich konstrukcji języka nie używać, jakie używać i w jaki sposób to robić, prawdziwa kopalnia wiedzy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1