Re[4]: Качество кода open-source
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.06.08 09:15
Оценка:
Здравствуйте, Sheridan, Вы писали:

>> В опенсорсе здесь просто анархия, держится на честном слове.

S>Твои слова держутся на честном слове, извините за каламбур. Не участвовал ты в проектах вестимо...

А что, нужно учавствовать в проекте, дабы увидеть бред, который там вместо кода ?
Re[4]: Качество кода open-source
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.06.08 09:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

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

C>Ты участвовал в достаточно крупных OpenSource-проектах? Правильно, не участвовал.

Не нужно учавствовать, что бы взять да посмотреть исходный код.

C>Так как в большинстве из них это всё есть.


Есть и что ? По моему качество кода в Опенсорсе обычно гораздо хуже, чем в коммерческом.
Re[4]: Качество кода open-source
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.06.08 09:29
Оценка:
Здравствуйте, IT, Вы писали:

IT>Это уже не open source, это — trash source. Ни в одном нормальном проекте тебе не дадут гадить просто так.


Опенсорсники не считают свой код корявым. Свой код им не кажется непонятным, сложным и тд и тд. В этом все дело.
Re[5]: Качество кода open-source
От: ambel-vlad Беларусь  
Дата: 15.06.08 10:56
Оценка:
Hi Ikemefula

>>> В опенсорсе здесь просто анархия, держится на честном слове.

S>>Твои слова держутся на честном слове, извините за каламбур. Не участвовал ты в проектах вестимо...

I>А что, нужно учавствовать в проекте, дабы увидеть бред, который там вместо кода ?


Чтобы посмотреть код участвовать не нужно. Но если бы ты поучаствовал в разработке open source продуктов, то чушь, которая выделена жирным ты бы не говорил. Потому что в противном случае получается как уже писали не open source, а trash source.
Re[5]: Качество кода open-source
От: Сергей  
Дата: 15.06.08 11:07
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


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

C>>Ты участвовал в достаточно крупных OpenSource-проектах? Правильно, не участвовал.

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


Ну-ка расскажи, каким образом, посмотрев исходный код, можно "насрать где попало".

C>>Так как в большинстве из них это всё есть.


I>Есть и что ?


Есть и всё. Значит, применяют и соблюдают, и в этом аспекте нет разницы, закрытая разработка или открытая.

I>По моему качество кода в Опенсорсе обычно гораздо хуже, чем в коммерческом.


Это оно так по твоему, а не на самом деле.
Re[5]: Качество кода open-source
От: Сергей  
Дата: 15.06.08 11:08
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


IT>>Это уже не open source, это — trash source. Ни в одном нормальном проекте тебе не дадут гадить просто так.


I>Опенсорсники не считают свой код корявым. Свой код им не кажется непонятным, сложным и тд и тд. В этом все дело.


Прекрасно. А знаешь ли ты, что проприетарщики не считают свой код корявым? Свой код им не кажется непонятным, сложным и тд и тд. В этом все дело.
Re[5]: Качество кода open-source
От: Сергей  
Дата: 15.06.08 11:10
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>А что, нужно учавствовать в проекте, дабы увидеть бред, который там вместо кода ?


В этом одно из отличий открытой разработки от закрытой. Для того, чтобы увидеть бред, который вместо кода в закрытом проекте, в нем обязательно надо участвовать, а в открытом — можно так посмотреть.
Re[3]: Качество кода open-source
От: shrecher  
Дата: 15.06.08 11:26
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Да и код зачастую исследовательский: возникает идея и непонятно, принесет она дивиденды или нет. Заранее все педантично оформлять не зватит никакого времени на разработку. Оформлять опосля? Не всегда есть и на это время.

M>Далее, такой код зачастую содержит элементы научно исследовательской работы. И находится он должен в виде, наиболее удобной исследователю. А далее разделение труда: исследователь дальше проводит исследования, адепты преобразуют результат его исследований в что-то более академическое. Не всегда эти два качества совмещаются в одном человеке.

Ну вообще-то production код.

M>К тому же ты явно недооцениваешь человеческие возможности. Если человек имеет мотивацию, то человек разберется.


Это непродуктивно.

S>>1. часто нет описания идеи что каждый модуль делает. Ее можно вытащить из кода, но долго


M>В двух словах ее можно вытащить из названия файла.

конечно можно! Разгадать все можно.
Вот доступность и идеи и ее понятность отличает профессионально написанный код от поделки.


S>>2. Минимум комментариев даже для очень нетривиальных методов

S>>
s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];


M>Если писать коментарии в таких местах, то весь код будет очень большим коментарием. Разработка раймет в разы больше времени. Выгода? Затрудняюсь ответить. Тут не коментарии нужны, а статья. Общий обзор.


Коментировать нужно не понятные места. Нет извенений, что не хватило времени.

S>>3. Магические констатны смысл которых может вытекать из общей картины, но не из конкретного метода.

S>>
if (uc == 0x17) goto endhdr_2;


M>Ну будет там стоять STATE_17, будет проще?


вы ведели код ядра WIndows? Его можно посмотреть в WDK. Там каждый фрагмет прокомментарен, все костанты проименованны со смыслом.

S>>4. Опять макросы, длинные функции по 500 и больше строк


M>Ну длинные функции, что с того?


Это плохо.

M>Так что при разработке проще держать все вместе одним большим замесом.


S>>5. однобуквенные названия переменных (j,i,n,s)


M>Придумай что получше


Я ничего не имею против если щетчик цикла назван i
for( int i=0;i<10; i++ ) do_something();

но если щетчик объявлен 20 строк выше цикла и используется как индекс массива, то его нужно именовать со смыслом

char mydata[ mydatasize ];
int idxMydata=0; // понятно, что индекс для массива mydata
for( idxMydata=0; idxMydata < mydatasize; idxMydata ++ )
mydata[idxMydata]=0;

Очень плохо когда индекс используется несколько раз для разных массивов.
Re[6]: хмм, смотреть как-то страшно :)
От: elmal  
Дата: 15.06.08 17:20
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Это сопрограмма. RTFM TAOCP 1.4.2.

RO>Алгоритм понимать необязательно, но обрати внимание, как часто вызывается YIELD. С точки зрения программирования, YIELD магическим образом обновляет состояние класса и продолжает выполнение (а на самом деле там return, после которого функция вызывается еще раз с обновленными параметрами).
Код посмотрел и ужаснулся. Ужаснули оба варианта — непонятно ни черта при беглом прочтении, явно требуется в обоих случаях уменьшать уровни вложенности, выделять методы и к выделенным методам писать комментарий. Но вообще, второй вариант мне понравился гораздо больше — там более менее все понятно, особенно если избавиться от волшебных чисел и выделить обработку каждого состояния в отдельный метод (да и от if было бы неплохо избавиться, либо просто непосредственно замапив состояние на его обработчик либо воспользовавшись полиморфизмом и выделив state в отдельный класс). Точнее — второй вариант можно сказать что вообще понравился, замечания у меня мелкие. Хотя, вариант с YIELD вполне имеет право на жизнь, вот только код подструктурировать надо чтоб его понять можно было простым чтением. А в текущей реализации у меня при попытке разобраться в первом варианте начинает голова болеть, если мне такое в рабочем коде встретится я устану черти как уже максимум через 4 часа и дальше уже работать не смогу

И вот теперь стало интересно. Лет 5 назад я бы не ужасался, считал что так и надо писать, восхищался элегантностью решения и умом разработчика и т.д. А сейчас как-то на такое страшно смотреть, понимание, каким должен быть код стало абсолютно другое. Интересно — это что, деградация у меня, или наоборот ? А то — если у кого нахожу из джуниоров такой стиль — дико матерюсь и прошу переписать (или сам переписываю еще более матерясь, если мне там баг приходится править), может я не прав и так и надо писать, а мне уже завязывать пора с программированием ?
Re[7]: хмм, смотреть как-то страшно :)
От: Олег Гашев
Дата: 15.06.08 17:43
Оценка:
Здравствуйте, elmal, Вы писали:


E>И вот теперь стало интересно. Лет 5 назад я бы не ужасался, считал что так и надо писать, восхищался элегантностью решения и умом разработчика и т.д. А сейчас как-то на такое страшно смотреть, понимание, каким должен быть код стало абсолютно другое. Интересно — это что, деградация у меня, или наоборот ? А то — если у кого нахожу из джуниоров такой стиль — дико матерюсь и прошу переписать (или сам переписываю еще более матерясь, если мне там баг приходится править), может я не прав и так и надо писать, а мне уже завязывать пора с программированием ?



Сделай так просто, как возможно, но не проще этого.


(C) Альберт Эйнштейн
Либо я найду путь, либо проложу его. © Свифт
Re[5]: Качество кода open-source
От: elmal  
Дата: 15.06.08 19:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Вполне нормальный код, в общем.

Код конечно ужасным не назову, понять можно не сильно напрягаясь, но можно написать более красиво и понятно, простор для улучшения есть, не идеально . ИМХО
Re[4]: Качество кода open-source
От: WFrag США  
Дата: 16.06.08 02:33
Оценка:
Здравствуйте, shrecher, Вы писали:

M>>Ну будет там стоять STATE_17, будет проще?


S>вы ведели код ядра WIndows? Его можно посмотреть в WDK. Там каждый фрагмет прокомментарен, все костанты проименованны со смыслом.


Скажем, Eclipse SDK тоже вполне хорошо прокомментарен, все константы проименованы со смыслом, и.т.д
Re[6]: Качество кода open-source
От: Cyberax Марс  
Дата: 16.06.08 03:01
Оценка:
Здравствуйте, elmal, Вы писали:

C>>Вполне нормальный код, в общем.

E>Код конечно ужасным не назову, понять можно не сильно напрягаясь, но можно написать более красиво и понятно, простор для улучшения есть, не идеально . ИМХО
Ну так напиши... Из всего что я смотрел, в Putty очень простой и понятный код работы с SSL. В OpenSSL он заметно запутаннее.
Sapienti sat!
Re[5]: Качество кода open-source
От: shrecher  
Дата: 16.06.08 03:32
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Maxim S. Shatskih, Вы писали:


С>>>Ты знаком со всем open-source кодом?

MSS>>Нет, но с многим. Угребищный стиль кодирования там норма.
C>Взял несколько проектов, которые у меня сейчас лежат в виде исходников (кроме ядра Линукса) и взял оттуда наугад кусок кода.

C>1) Cairo — обычный чистый С-шный код, ничего особого.


Нормальный код, форматированный и читаемый. Только не понятно почему надо на С уродоваться, если есть С++.
Re[6]: Качество кода open-source
От: Sheridan Россия  
Дата: 16.06.08 05:17
Оценка:
shrecher однажды (16 июня 2008 [Понедельник] 07:32) писал:

> Нормальный код, форматированный и читаемый. Только не понятно почему надо на С уродоваться, если есть С++.

Наследие у плюсов такое, быть потомком С. Да и С заметно быстрее компилируется, несколько быстрее работает и потребляет меньше памяти...

--
...belive in the matrix...
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[7]: Качество кода open-source
От: CreatorCray  
Дата: 16.06.08 05:27
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>несколько быстрее работает и потребляет меньше памяти...

Ну щас чую опять начнется C vs C++
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Качество кода open-source
От: Sheridan Россия  
Дата: 16.06.08 06:09
Оценка:
CreatorCray однажды (16 июня 2008 [Понедельник] 09:27) писал:

> Ну щас чую опять начнется C vs C++

Повоюйте, ага. А я почитаю...
Как раз читаю книжку по истории С++, довольно интересно

--
...belive in the matrix...
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[5]: Качество кода open-source
От: shrecher  
Дата: 16.06.08 09:37
Оценка:
Здравствуйте, WFrag, Вы писали:

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


M>>>Ну будет там стоять STATE_17, будет проще?


S>>вы ведели код ядра WIndows? Его можно посмотреть в WDK. Там каждый фрагмет прокомментарен, все костанты проименованны со смыслом.


WF>Скажем, Eclipse SDK тоже вполне хорошо прокомментарен, все константы проименованы со смыслом, и.т.д


Ну я говорю, что весь код плохой. Просто OSS привлекает новичков и студентов, от этого и качества кода сильно страдает. Нормальный код, это тот, который написан и выложен большими конторами IBM, RH и пр.
Re[6]: Качество кода open-source
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.06.08 09:50
Оценка:
Здравствуйте, Сергей, Вы писали:

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


С>Ну-ка расскажи, каким образом, посмотрев исходный код, можно "насрать где попало".


Я говорю о том, что в коде уже было насрано до того, как я в него сунул нос.

Так понятно ?

C>>>Так как в большинстве из них это всё есть.


I>>Есть и что ?


С>Есть и всё. Значит, применяют и соблюдают, и в этом аспекте нет разницы, закрытая разработка или открытая.


Разница есть. Многие опенсорсники очень волюнтаристски относятся к исходному коду. Очень часто опенсорс это отсутствие должного контроля над качеством кода.

I>>По моему качество кода в Опенсорсе обычно гораздо хуже, чем в коммерческом.

С>Это оно так по твоему, а не на самом деле.

Разумеется, я то говорю о том что видел, в отличие от твоего "на самом деле"
Re[6]: Качество кода open-source
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.06.08 09:54
Оценка:
Здравствуйте, Сергей, Вы писали:

IT>>>Это уже не open source, это — trash source. Ни в одном нормальном проекте тебе не дадут гадить просто так.


I>>Опенсорсники не считают свой код корявым. Свой код им не кажется непонятным, сложным и тд и тд. В этом все дело.


С>Прекрасно. А знаешь ли ты, что проприетарщики не считают свой код корявым? Свой код им не кажется непонятным, сложным и тд и тд. В этом все дело.


В коммерческом коде, где одноразовые проекты, все примерно как в опенсорсе.

А вот в более серьезных проектах обычно есть контроль за качеством кода. И здесь девелоперы приучаются писать не для себя одного.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.