3 narzędzia, które ułatwią pracę programiście: ClangFormat, Cppcheck, Valgrind
ClangFormat do automatycznego formatowania kodu, Cppcheck do statycznej analizy błędów oraz Valgrind do analizy dynamicznej. Oto niezbędne minimum dla osób, które nigdy nie korzystały z tych narzędzi (i nawet o nich nie słyszały). Każdy ma swoje ulubione narzędzia - jakie są Wasze propozycje?
Forbot z- #
- #
- #
- #
- #
- #
- 138
- Odpowiedz
Komentarze (138)
najlepsze
@Vetinari: Z 10 lat temu to był wskaźnik statusu społecznego na polskich forach skupiających posiadaczy: symfonii C++, tej żółtej książki o PHP i kursów HTML z allegro na płycie za 20zł. ( ͡° ͜ʖ ͡°)
@incydent_kakaowy: Nie przebranżowisz się szybko. W ogóle czujesz potrzebę przebranżowienia? C/C++ to jest raczej specyficzny rynek, o wiele mniejszy i mniej mobilny niż web-dev. Nie mówię, że gorzej płatny ale trudniejszy bo to jest zazwyczaj budowanie bibliotek czy backendu na niskim poziomie. To wymaga zupełnie innego podejścia do zasobów niż na wysokim poziomie i bardzo często wymaga romansów
- ważny jest storage - nie zawsze najlepszy jest RDBMs, czasmi warto pójść w NoSQL, czasami natomiast ważne jest to by zmieszać ze soba jedno i drugie podejście
- część systemów moze wymagać podejścia bazowanego na przechowywaniu wszystkich eventów, wtedy równeż warto pomyśleć nad innym storage'em do zbierania eventów, innym do wyciągania danych
- normalizacja danych
Valgrind - zajebisty, nie raz dupę uratował w przypadku memory corruption.
Cppcheck - wieszał się na każdym nietrywialnym projekcie :D
ClangFormater - działa ok ale dogadanie się w korpo co do jednego stylu formatowania potrafi być trudniejsze niż się wydaje
Potem tego formattera wrzucasz na CI ze skryptem sprawdzającym czy dev wrzucił kod zgodny z formatterem i tyle. Co do zasady nazewnictwa oraz snake_kejsów czy innych camelKejsów też ktoś musi to ustalić, a inni stosować, bo jest tego warte w pracach zespołowych. Niestosowanie się
Mam małe doświadczenie, ale byłem w dużym korpo w którym działały takie zasady, potem w małej firmie, w której również wprowadzono i działały. Oba przypadki łączy historia, że w pewnym momencie kod wyglądał jak gówno i trzeba było coś zmienić
(Pewnie zależy jak bardzo embedded - ale ten sanitizer googlowy chyba nie jest wspierany na Linux & ARM).