Re[5]: Говнокод ли это?
От: _Obelisk_ Россия http://www.ibm.com
Дата: 21.08.11 19:14
Оценка:
Здравствуйте, Доктор ТуамОсес, Вы писали:

ДТ>Тогда почему Вы обиделись, когда я недвусмысленно намекнул, что с++ — это, вообще говоря гавноязык (хоть С++ программисты и являются самой многочисленной среди всех программистов группой)?


Чтоб оскорблять язык надо хотя бы поработать на нем достаточно долгое время на серьезных проектах.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[3]: Говнокод ли это?
От: uncommon Ниоткуда  
Дата: 22.08.11 00:27
Оценка:
Здравствуйте, Доктор ТуамОсес, Вы писали:

ДТ>Почитал я Вас ребята и от души поржал.

ДТ>Вы называете "гавнокодом" вполне приличный код.
ДТ>Говорите что это "ужас", "кошмар"?
ДТ>А как Вам ЭТО?

ДТ>Это очень читабельно?

ДТ>Это не "ужас"?

ДТ>Тем не менее это реальный код из микрософтовского инклуда c:\Program Files\Microsoft Visual Studio\VC98\Include\COMDEF.H студии MSVC++ 6.0

ДТ>

Дохтур, открой свою книжку с вопросами по С++ и повтори следующие моменты:

* smart pointers
* typedef
* macros

и потом разбери, как

_COM_SMARTPTR_TYPEDEF(IFoo, __uuidof(IFoo));

превращается в:

typedef _com_ptr_t< _com_IIID<IFoo, __uuidof(IFoo)> > IFooPtr;

и что это значит.
Re: Говнокод ли это?
От: Gradient http://www.x-trips.com/
Дата: 22.08.11 07:16
Оценка: 6 (2) +1
Здравствуйте, YetAnotherOne, Вы писали:

YAO>Как вы считаете, является ли данный класс говнокодом?


Мммм... няма! Руки чешутся отрефакторить.
А ведь с настоящим говонкодом вместо желания рефакторить возникает стойкое желание выкинуть и написать заново.
Так что пациент скорее жив чем мертв, поставлю 4
-----
Любимая фраза физика-теоретика: "Вот видите, мы ошиблись всего лишь на порядок".
Re: Говнокод ли это?
От: Паблик Морозов  
Дата: 22.08.11 07:39
Оценка:
Здравствуйте, YetAnotherOne, Вы писали:

YAO>Как вы считаете, является ли данный класс говнокодом?


Да.

YAO>Если бы вам предложили поддерживать проект с подобным кодом, вы бы были в восторге или огорчились бы?


Не испытал бы ни одну из данных эмоций.

YAO>По сравнению с качеством кода в вашей конторе хуже или лучше?


По разному. Бывает лучше, бывает хуже.

YAO>Во сколько бы оценили по 5-ти бальной шкале?


3 (если оно работает без ошибок).
Re[3]: Говнокод ли это?
От: Eye of Hell  
Дата: 22.08.11 07:52
Оценка:
ДТ>Это очень читабельно?
ДТ>Это не "ужас"?
ДТ>Тем не менее это реальный код из микрософтовского инклуда c:\Program Files\Microsoft Visual Studio\VC98\Include\COMDEF.H студии MSVC++ 6.0

Это автосгенеренный заголовочный файл — он не предназначен для чтения.
Re[2]: Говнокод ли это?
От: StandAlone  
Дата: 09.09.11 14:20
Оценка:
Здравствуйте, _FRED_, Вы писали:


_FR>Учитывая же ошибки в коде (отсутствие проверок в стриме и то, что стрим может закрыться после того, как бдует передан в этот код) ценность его чуть больше нуля.


Почти со всем согласен. Но вот по этой части вопрос — ну, может быть эксепшен, и что?
using корректно всё освободит.
А если сам стрим будет закрыт где-то еще... Ну, bad luck.
Как ты предполагаешь от этого застраховаться? Копию сделать для начала? А если стрим закроют в процессе создания копии?
ИМХО, надуманная претензия..
Re: твёрдая 4. Не говнокод точно!
От: Философ Ад http://vk.com/id10256428
Дата: 09.09.11 21:58
Оценка:
Немного смутил вот этот кусок.

YAO> do

YAO> {
YAO> // читаем до 2 подряд идущих CRLF
YAO> readed = stream.Read(buf, 0, 1);
YAO> if (readed != 1 || buf[0] != 13)
YAO> {
YAO> continue;
YAO> }
YAO> readed = stream.Read(buf, 0, 1);
YAO> if (readed != 1 || buf[0] != 10)
YAO> {
YAO> continue;
YAO> }
YAO> readed = stream.Read(buf, 0, 1);
YAO> if (readed != 1 || buf[0] != 13)
YAO> {
YAO> continue;
YAO> }
YAO> readed = stream.Read(buf, 0, 1);
YAO> if (readed == 1 && buf[0] == 10)
YAO> {
YAO> return;
YAO> }
YAO> } while (readed > 0);
YAO>[/c#]
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Говнокод ли это?
От: DorfDepp  
Дата: 09.09.11 22:01
Оценка: -1
Здравствуйте, YetAnotherOne, Вы писали:

Увольнять любого, кто пишет код и комментарии не на английском.
Re[2]: Говнокод ли это?
От: dilmah США  
Дата: 09.09.11 22:17
Оценка:
DD>Увольнять любого, кто пишет код и комментарии не на английском.

тут есть исключение: когда код связан с обработкой (неанглоязычных) текстов, и комментарии поясняют какой именно кейс обрабатывается. Что-то типа такого.
Re[2]: Говнокод ли это?
От: catBasilio  
Дата: 10.09.11 10:05
Оценка: 1 (1)
Здравствуйте, DorfDepp, Вы писали:

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


DD>Увольнять любого, кто пишет код и комментарии не на английском.


А что не так с комметариями? По опыту могу сказать что так как девелоперы — народ русскоязычный то в цепочке

коммент в голове (на русском) -> коммент в коде (на кривом англицком) ----> коммент в голове прочитавшего код девелопера (перевод на русский)


происходит искажение смысла по сравнению с цепочкой:


коммент в голове (рус) -> коммент в коде (рус) ----> коммент в другой голове (рус)

UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Re[3]: Говнокод ли это?
От: Nik_1 Россия  
Дата: 10.09.11 10:27
Оценка: :)
Здравствуйте, catBasilio, Вы писали:

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


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


DD>>Увольнять любого, кто пишет код и комментарии не на английском.


B>А что не так с комметариями? По опыту могу сказать что так как девелоперы — народ русскоязычный то в цепочке


Кстати, это тема! Надо всем договориться писать коментарии тока на русском языке, тогда другим поддерживать наш код будет труднее и спрос на русских разрабов вырастет.
Re[4]: Говнокод ли это?
От: sc Россия  
Дата: 10.09.11 11:02
Оценка:
Здравствуйте, Nik_1, Вы писали:

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


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


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


DD>>>Увольнять любого, кто пишет код и комментарии не на английском.


B>>А что не так с комметариями? По опыту могу сказать что так как девелоперы — народ русскоязычный то в цепочке


N_>Кстати, это тема! Надо всем договориться писать коментарии тока на русском языке, тогда другим поддерживать наш код будет труднее и спрос на русских разрабов вырастет.


Ви нид ту гоу дипер. Тогда уж нужно и переменные, и имена ф-ций и т.д. на русском называть. Либо Прямоугольник::Размер(), либо Prjamougoljnik::Razmer(). 1-ый вариант студия, с++ переваривает.
Re[2]: Говнокод ли это?
От: 0K Ниоткуда  
Дата: 10.09.11 11:11
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Увольнять любого, кто пишет код и комментарии не на английском.


В России/Украине/Молдове можно сделать проект дешевле всего. Самая дешевая раб. сила (индусов в топку -- с ними отдельный разговор). Так что если проект не планируется никуда аутсорсить -- вполне нормальный вариант комментировать на русском.
=сначала спроси у GPT=
Re[4]: Говнокод ли это?
От: 0K Ниоткуда  
Дата: 10.09.11 11:12
Оценка:
Здравствуйте, Nik_1, Вы писали:

N_>Кстати, это тема! Надо всем договориться писать коментарии тока на русском языке, тогда другим поддерживать наш код будет труднее и спрос на русских разрабов вырастет.


На них и так спрос большой. Только мало нормальных.
=сначала спроси у GPT=
Re[5]: Говнокод ли это?
От: Nik_1 Россия  
Дата: 10.09.11 11:22
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, Nik_1, Вы писали:


N_>>Кстати, это тема! Надо всем договориться писать коментарии тока на русском языке, тогда другим поддерживать наш код будет труднее и спрос на русских разрабов вырастет.


0K>На них и так спрос большой.

Вот и надо поддерживать его чтоб так было всегда
0K>Только мало нормальных.
вы просто неумеете их искать.
Re[3]: Говнокод ли это?
От: DorfDepp  
Дата: 10.09.11 13:47
Оценка:
Здравствуйте, catBasilio, Вы писали:

B>

B>коммент в голове (на русском) -> коммент в коде (на кривом англицком) ----> коммент в голове прочитавшего код девелопера (перевод на русский)


Ну... у меня комментарии на английском в голову приходят. Мне русский читать тяжелее.
Re[3]: Говнокод ли это?
От: DorfDepp  
Дата: 10.09.11 13:49
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Самая дешевая раб. сила (индусов в топку -- с ними отдельный разговор).


Нууу... почему так? Интересные жизнерадостные люди. Пишут код, поют, танцуют. По крайней мере не ходят с угрюмыми лицами, словно кто-то помер, как некоторые.
Re: Говнокод ли это?
От: _Raz_  
Дата: 10.09.11 21:38
Оценка:
Здравствуйте, YetAnotherOne, Вы писали:

YAO>Как вы считаете, является ли данный класс говнокодом? Если бы вам предложили поддерживать проект с подобным кодом, вы бы были в восторге или огорчились бы? По сравнению с качеством кода в вашей конторе хуже или лучше? Во сколько бы оценили по 5-ти бальной шкале?


Код мой. Отвечю на все, кроме языков коментария
... << RSDN@Home 1.2.0 alpha 5 (M6) rev. 1511>>
Re[2]: readed?
От: _Raz_  
Дата: 10.09.11 21:43
Оценка:
Здравствуйте, qqqqq, Вы писали:

Q>мне бросились в глаза переменные под названием readed. Это "считано" в пререводе на рунглиш?

оно самое
... << RSDN@Home 1.2.0 alpha 5 (M6) rev. 1511>>
Re[2]: Говнокод ли это?
От: _Raz_  
Дата: 10.09.11 21:56
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Что видно здесь: какие-то (private) методы названы в камеле, какие-то (internal) в паскале. Это в топку.

Это начальство из явы

_FR>Свойство, возвращающее string и при этом которое [CanBeNull] туда-же. Строковое свойство не должно возвращать null. Вместо него надо возвращать String.Empty, что бы избавить вызывающего от не нужных проверок (а когда проверка нужна, то проверка на null и на String.IsNullOrEmpty() — не велика разница). К тому же, если свойства реализованы явно (а не автосвойствами) принято снабжать get-accessor атрибутом [DebuggerStepThrough]. Без этого не редко отладка превращается в чёрте-что.

Вот то что в черте знает что — согласен.

_FR>Дальше — разбить большие методы на несколько поменьше было бы полезно: невооружённым взглядом видно, что, например, вынесение вычисления энкодинга никому не помешает.

Нельзя.

_FR>Литералы так же полезно объявить заранее в виде констант, хотя бы в самом методе. Захардкоженный текст сообщений об ошибках я ещё почему-то могу понять, если он на _английском_, но на русском такое категорически не переваривается.

Ну нельзя же

_FR>Вообще, если окинуть взглядом весь класс, видно, что вся его работа заключается в том, что бы из пары (StreamReader) получить тройку (HttpHeaders, string, Encoding). При этом зачем-то используются пара статических методов и один экземплярный, который меняет поля объекта, которому принадлежит. Я бы так и написал несколько бы статических методов, которые вычисляют

Ну не так уж и явно

_FR>

    _FR>
  1. HttpHeaders в зависимости от того, какая фабрика вызвана: ParseRequest или ParseResponse
    _FR>
  2. Encoding по вычесленному выше HttpHeaders
    _FR>
  3. string и энкодинг по стриму, хидерам и энкодингу из хидеров.
    _FR>

_FR>Получилось бы три независимых метода. Вызвал их по очереди (не в конструкторе), получил три переменных, после этого создавай неизменяемый объект из трёх полей и возвращай его.

Да там ошибок то нет (логических)

_FR>Учитывая же ошибки в коде (отсутствие проверок в стриме и то, что стрим может закрыться после того, как бдует передан в этот код) ценность его чуть больше нуля.
... << RSDN@Home 1.2.0 alpha 5 (M6) rev. 1511>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.