Wpis z mikrobloga

Zacznę trochę na odwrót, od review parsera @sylwke3100 – o co poprosił mnie tutaj: http://www.wykop.pl/wpis/4723845/caly-parser-zrobiony-na-razie-tylko-obsluguje-licz/#comment-10219865 :)

Repozytorium: https://github.com/sylwke3100/cristallparser

[0] Brak konstruktorów – przydałby się chociażby dla

CrystallGrammarModel
, ręczne ustawianie parametrów to kiepski pomysł.

[1] Metoda

CristallGrammar::addGrammar
i pochodne: użycie new-delete jest tu kompletnie niepotrzebne. Ponadto patrz [0] – konstruktor!

[2] Klasa

CrystallValues
definiuje właściwie wolne funkcje i nie ma potrzeby opakowywania ich w klasę – C++ nie jest restrykcyjnie obiektowy. Ewentualnie można zapakować je w namespace.

[3] Z drugiej strony – używana w metodach

CrystallValues
zmienna

Summary
wygląda na globalną. Pozbądź się tego natychmiast!

[4] Jak już wspominałem:

using namespace
na poziomie nagłówków to zła praktyka, polecam to zmienić.

[5] Nazywanie zmiennych wielką literą trochę mnie razi, ale jest konsekwencja, więc uznam to za coding style.

[6] Nie ma potrzeby nadawać explicite wartości dla wartości

enum
poza jednym przypadkiem

Rules
, gdzie wyraźnie są to flagi bitowe.

[7] Zdecyduj się, czy metody nazywasz wielką czy małą literą.

#codereview #cpp
  • 13
  • Odpowiedz