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

I>Здравствуйте, saf_e, Вы писали:


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


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

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

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

I>Вредная привычка, да.
см.ниже

_>>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 заодно уходит статика.

I>Т.е. контейнеры всегда предпочтительнее, даже если в них нет строгой необходимости?
контейнеры всегда предпочтительнее (за тем исключением, когда вам нужно писать код чтобы их "обмануть", тогда имеет смысл подумать о вариантах)

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

I>Не совсем понял, в данном конкретном случае в чем превосходство функции над макросом? Вроде так оптимальнее же.
попробуйте отладить макрос А оптимальность -- спорный вариант, компилятор и так встроит все, что нужно

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

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

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

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

I>И да, спасибо вам


Да, собственно, не за что.

Прежде всего, люди которые дают вам задание хотят увидеть чего вы стоите как специалист.
Т.е. они ожидают, что вы напишите код, который от вас можно ожидать в коммерческом продукте. Допуская все эти детские ошибки (и возможно какие-то другие) вы оставляете о себе впечатление "джуниора", вне зависимости от вашего фактического уровня

И еще, несерьезный подход к собеседованию, фактически (для работодателя), означает несерьезный подход к работе (тут можно спорить, но я бы к этому так и отнесся).

Запрос про разбор полетов можете перепостить в основную ветку форума по ++, возможно там набегут более опытные комментаторы... Ну или просто флейма на пару десятков страниц

Удачи! Относитесь к собеседованиям серьезнее!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.