Оцените код
От: slavo  
Дата: 05.09.08 11:49
Оценка: -1
Что делать с сотрудником, который написал такой код?
if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
{
  ici_error = "stack error";
  goto fail;
}
Re: Оцените код
От: Smal Россия  
Дата: 05.09.08 11:52
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Он всё ещё сотрудник?
С уважением, Александр
Re: Оцените код
От: Clinch  
Дата: 05.09.08 11:54
Оценка: :)
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Он просто застенчив, а это — завуалированный способ подачи заявления на увольнение.
Re: Оцените код
От: alzt  
Дата: 05.09.08 11:58
Оценка: :)
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Не особо понятен код.
Но прежде, чем сильно критиковать сотрудника — предложите свой вариант.
Re: Оцените код
От: elmal  
Дата: 05.09.08 11:59
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

Выделить человека, который покажет автору, как код такого стиле надо писать правильно. Показывать личным примером, обучать, обучать и еще раз обучать. Ну а если такого сотрудника приняли на должность сеньера, а не джуниора, то наказать того, кто принимал сотрудника.
Re[2]: Оцените код
От: slavo  
Дата: 05.09.08 12:11
Оценка:
Здравствуйте, elmal, Вы писали:

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


S>>Что делать с сотрудником, который написал такой код?

E>Выделить человека, который покажет автору, как код такого стиле надо писать правильно. Показывать личным примером, обучать, обучать и еще раз обучать. Ну а если такого сотрудника приняли на должность сеньера, а не джуниора, то наказать того, кто принимал сотрудника.

Он далеко не юниор.
Re[2]: Оцените код
От: Vain Россия google.ru
Дата: 05.09.08 12:12
Оценка:
Здравствуйте, elmal, Вы писали:

S>>Что делать с сотрудником, который написал такой код?

E>Выделить человека, который покажет автору, как код такого стиле надо писать правильно. Показывать личным примером, обучать, обучать и еще раз обучать. Ну а если такого сотрудника приняли на должность сеньера, а не джуниора, то наказать того, кто принимал сотрудника.
А как наказывать? Подзатыльник? Десять палок?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[3]: Оцените код
От: alzt  
Дата: 05.09.08 12:14
Оценка: :))) :)))
Здравствуйте, Vain, Вы писали:

S>>>Что делать с сотрудником, который написал такой код?

E>>Выделить человека, который покажет автору, как код такого стиле надо писать правильно. Показывать личным примером, обучать, обучать и еще раз обучать. Ну а если такого сотрудника приняли на должность сеньера, а не джуниора, то наказать того, кто принимал сотрудника.
V>А как наказывать? Подзатыльник? Десять палок?

Возможно я слишком испорчен. Но 10 палок это чересчур строгое наказание.
Re: Оцените код
От: Vain Россия google.ru
Дата: 05.09.08 12:16
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

Смотря в каком контексте, если, к примеру, operator [] был перегружен, а код для драйвера какого-либо контроллера, то непонятно.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Оцените код
От: ned Австралия  
Дата: 05.09.08 12:18
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?


Если сотрудник программист, то устроить code review. Можно показательный.
Re: Оцените код
От: StevenIvanov США  
Дата: 05.09.08 12:28
Оценка: +1 -3
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Антипаттерны:
— магические числа
— платформозависимость
— использование goto
— (если код С++) — использование C-style cast

Какой же он после этого не junior?
че то вы темните
Re[3]: Оцените код
От: elmal  
Дата: 05.09.08 12:46
Оценка: 4 (1) :)
Здравствуйте, slavo, Вы писали:

S>Он далеко не юниор.

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

Хуже если это твой начальник, повышать квалификацию не желает и критики не переносит, так как считает себя мегакрутым, заставить его никак нельзя ничего делать, а все неприятности в проекте именно из-за его кода . В этом случае рано или поздно таких увольняют, правда это может наступить лет через 5, когда уволятся все вменяемые подчиненные, и до высшего руководства начнет доходить, что что-то не то .
Re: Оцените код
От: Аноним  
Дата: 05.09.08 12:59
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Хмм, вот тут все так ругают, нет, конечно код выглядит не очень(Для С++!!!), но:
1. Возможно это был первый сабмит человека в данной позиции
2. Контекст вынуждает к такому стилю, и так как он делает переход на fail — то метка уже должна существовать, равно как и логика использующая ici_error для, возможно, возврата кода ошибки, а значит уже какой-то программист с кучерявыми руками создал механизм возврата через коды и goto.

Что касается магических значений — то эти для меня ясны с первого взгляда, и причина такой проверки тоже, и при наличии хотябы комментов к данному коду я бы не придерался.
Re: Оцените код
От: Alexander G Украина  
Дата: 05.09.08 13:50
Оценка: 1 (1)
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Если я правильно понял мэджики, то это будет работать только под отладчиком.
Поэтому в релиз код не пойдёт. А в целях отладки и не такое напишешь.
Русский военный корабль идёт ко дну!
Re[4]: Оцените код
От: slavo  
Дата: 05.09.08 14:08
Оценка:
Здравствуйте, elmal, Вы писали:

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


S>>Он далеко не юниор.

E>Если в общем квалификация приличная (то есть знает кучу технических мелочей, ошибое детских не допускает и код работает нормально, но вот со стилем у него не сложилось, так как не били по рукам в свое время), то просто заставить писать в нужном нормальном стиле, ну и дать почитать соответствующую литературу. Если бить по рукам, то стиль выправляется достаточно быстро. Соответственно ничего страшного.

E>Хуже если это твой начальник, повышать квалификацию не желает и критики не переносит, так как считает себя мегакрутым, заставить его никак нельзя ничего делать, а все неприятности в проекте именно из-за его кода . В этом случае рано или поздно таких увольняют, правда это может наступить лет через 5, когда уволятся все вменяемые подчиненные, и до высшего руководства начнет доходить, что что-то не то .


вполне вероятный сценарий
Re[2]: Оцените код
От: slavo  
Дата: 05.09.08 14:09
Оценка:
Здравствуйте, StevenIvanov, Вы писали:

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


S>>Что делать с сотрудником, который написал такой код?

S>>
S>>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>>{
S>>  ici_error = "stack error";
S>>  goto fail;
S>>}
S>>


SI>Антипаттерны:

SI>- магические числа
SI>- платформозависимость
SI>- использование goto
SI>- (если код С++) — использование C-style cast

SI>Какой же он после этого не junior?

SI>че то вы темните

самый что ни на есть мажор
Re[2]: Оцените код
От: slavo  
Дата: 05.09.08 14:11
Оценка:
Здравствуйте, Alexander G, Вы писали:

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


S>>Что делать с сотрудником, который написал такой код?

S>>
S>>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>>{
S>>  ici_error = "stack error";
S>>  goto fail;
S>>}
S>>


AG>Если я правильно понял мэджики, то это будет работать только под отладчиком.

AG>Поэтому в релиз код не пойдёт. А в целях отладки и не такое напишешь.

на сколько я понял, этот код как раз и был написан, чтобы предотвратить проблемы в релизах, в работающем коде Причем работать это дожно и под вендой, и под линуксом.
Re: Оцените код
От: sch  
Дата: 05.09.08 14:17
Оценка: 1 (1) +1
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Нельзя судить о человеке по одному коммиту.
Если человек вменяем, то легко пожурить и сказать что так лучше не делать.
Если человек вменяем, но не понимает что это будет работать только в debug, то объяснить ему.
Если человек не вменяем, то уволить.
Re[2]: Оцените код
От: slavo  
Дата: 05.09.08 15:14
Оценка: :)
Здравствуйте, sch, Вы писали:

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


S>>Что делать с сотрудником, который написал такой код?

S>>
S>>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>>{
S>>  ici_error = "stack error";
S>>  goto fail;
S>>}
S>>


sch>Нельзя судить о человеке по одному коммиту.

sch>Если человек вменяем, то легко пожурить и сказать что так лучше не делать.
sch>Если человек вменяем, но не понимает что это будет работать только в debug, то объяснить ему.
sch>Если человек не вменяем, то уволить.

увольняю
Re: Оцените код
От: _Ursus_  
Дата: 05.09.08 15:16
Оценка:
Здравствуйте, slavo, Вы писали:

S>Что делать с сотрудником, который написал такой код?

S>
S>if((int)ici_os.a_top[-1] == 0xfdfdfdfd || *(int*)ici_os.a_top[-1] == 0xcccccccc))
S>{
S>  ici_error = "stack error";
S>  goto fail;
S>}
S>


Злые какие все, а?
В раннем студенчестве я тоже подобный по осмысленности код нередко писал... а хто никогда не писал такого, пусть кинет камень
А вы — уволить, уволить
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.