Re[3]: Прошу критиковать решение.
От: inher1tance  
Дата: 07.09.10 14:17
Оценка:
Здравствуйте, saf_e, Вы писали:

_>Немного глянул. детальный разбор давать не берусь, много всяких недочетов. Из того что бросилось в глаза за пару минут:


_>1. Используйте "precompiled headers".

Всегда так делаю в реальных проектах, но думаю для данной задачи это было не критично.

_>2. Не используйте (НИКОГДА) using namespace в хедерах (а std под страхом смертной казни!) -- потомки проклянут!

Вредная привычка, да.

_>3. Активнее используете коллекции


_> static const int MaxAllowedSteps = 1000;

_> static char sequence[MaxAllowedSteps];
_> //array of pointers to cell
_> Cell** m_ppCells;
_> //array of pointers to marble
_> Marble** m_ppMarbles;

_>все это спокойно меняется на std::vector/string заодно уходит статика.

Т.е. контейнеры всегда предпочтительнее, даже если в них нет строгой необходимости?

_>4. Неоправданно использование макроса #define STEP(d). В данном случае легко заменяется на ф-цию.

Не совсем понял, в данном конкретном случае в чем превосходство функции над макросом? Вроде так оптимальнее же.

_>5. Достаточно запутанная схема реализации состояний и их сношения с рекурсивной ф-цией.

Я просто делаю вид, что работаю со стеком состоянии. Всего 3 операции PushState, PopState, RestoreState, но реализация самых функции слегка запутанно, да. Просто сначала хотел сделать по другому, потом изменил и добавил хэш.

_>Возможно что-то упустил. Плюс стиль оформления слабоват -- смелее используйте разделители и комментарии.

А насколько важна стилистика, если задача решена в целом верно? Я легко могу адаптироваться под стандарты данной команды. Но мне просто шанса не дают себя проявить, а таким тонкостям можно научится только работая в команде с профессионалами. В той конторе, где сейчас работаю нету у кого поучится, получается я там самый крутой и это очень плохо

И да, спасибо вам
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.