Re[6]: Нектарокодеры
От: mgu  
Дата: 25.11.20 04:19
Оценка:
Здравствуйте, so5team, Вы писали:

mgu>>Дожили: матёрые программисты стыдятся показать код, даже необязательно свой.


S>Попробуйте начать с себя.


Мосье желает посмотреть на говно?
Re[7]: Нектарокодеры
От: so5team https://stiffstream.com
Дата: 25.11.20 06:41
Оценка:
Здравствуйте, mgu, Вы писали:

S>>Попробуйте начать с себя.


mgu>Мосье желает посмотреть на говно?


Определить адекватность ваших оценок.
Re[11]: Нектарокодеры
От: so5team https://stiffstream.com
Дата: 25.11.20 07:04
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>И это печально. Странно, что программистов не интересует блестящий код. Если проблему не замечают, это не значит, что её нет.


А "блестящий код" -- это не синоним ли "сферического коня в вакууме"?

ИМХО, код можно поделить на следующие категории:

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

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

* нормальный (хороший код). Делает то, что требуется. Не содержит явных косяков. Понятен. Оставляет возможность развития со временем.

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

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

UPD. Люди с разным уровнем знаний, длиной опыта и шириной кругозора могут отнести один и тот же код к совершенно разным категориям.

Что такое блестящий код -- хз.

Еще можно понять, что такое "блестящее решение". Например, когда неожиданно применяется какой-то подход/алгоритм/структура данных для того, чтобы оптимально вписаться в имеющиеся ограничения. Решение, которое вызывает вау-эффект, которое не лежит на поверхности. Скажем, когда ради экономии каждого байта памяти список строят на XOR-е указателей. Только вот не обязательно "блестящее решение" будет воплощено в жизнь даже в виде так себе кода.

mgu>Так посмотрел же, сало как сало, ничего выдающегося.


Что означает термин "сало"?

mgu>У меня несколько другая сфера деятельности: я обычно не намолачиваю код, а делаю так, чтобы он быстро и надёжно работал. Время, конечно, ограничено, поэтому я успеваю пройти только часть пути, заказчика уже устраивает результат, а меня -- нет.


Ну прям униальная специализация. Если вас не устраивает то, что вы сами делаете, то это ваши личные заморочки. Которые, возможно, следует решать с помощью специалистов из области психиатрии.
Отредактировано 25.11.2020 7:17 so5team . Предыдущая версия .
Re[12]: Нектарокодеры
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 25.11.20 07:15
Оценка: :)
Здравствуйте, so5team, Вы писали:

mgu>>Так посмотрел же, сало как сало, ничего выдающегося.


S>Что означает термин "сало"?


Высококачественный жир тролля
Re[2]: Нектарокодеры
От: Dym On Россия  
Дата: 25.11.20 11:15
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>я видел хорошие примеры кода

Вот всегда так, кто-то видел, кто-то слышал, кто-то знает того, кто знает того, кто знает того, кто видел издалека того, кто пишет хороший код. Похоже на легенду: где-то далеко-далеко, на древнем дубе, висит ларец на урановых цепях, в ларце заяц, в зайце утка, в утке яйцо, а в яйце в заброшенном дата-центре есть комната, а в ней сервер, в нем флешка с идеальным кодом.
Счастье — это Glück!
Re: Нектарокодеры
От: L_G Россия  
Дата: 25.11.20 14:17
Оценка:
Вспомнилось: проскакивала такая статейка (перевод) — "Исключительная красота исходного кода Doom 3"
https://habr.com/ru/post/166113/
Правда, я не плюсовик и не игродел, так что даже не читал.
Но, по крайне мере, кого-то когда-то какой-то код в восторг приводил — бывало.

Мне же кажется, что код может сильно впечатлить, только если увидишь в нем что-то новое и интересное, доселе неизведанное, если можно что-то почерпнуть в нем для себя. Получается, вероятность получить такие впечатления для программиста больше на заре его карьеры, а с приобретением знаний и опыта эта вероятность всё меньше и меньше.
Каша в голове — пища для ума (с)
Отредактировано 25.11.2020 14:20 L_G . Предыдущая версия .
Re[8]: Нектарокодеры
От: mgu  
Дата: 26.11.20 04:18
Оценка:
Здравствуйте, so5team, Вы писали:

S>>>Попробуйте начать с себя.


mgu>>Мосье желает посмотреть на говно?


S>Определить адекватность ваших оценок.


Ну вот, например:

День рождения №2
Автор: mgu
Дата: 03.10.18


Код обычный, не знаю, что в нём можно улучшить. А вот пользовательский интерфейс -- полнейший шлак.
Re[12]: Нектарокодеры
От: mgu  
Дата: 26.11.20 04:37
Оценка:
Здравствуйте, so5team, Вы писали:

mgu>>И это печально. Странно, что программистов не интересует блестящий код. Если проблему не замечают, это не значит, что её нет.


S>А "блестящий код" -- это не синоним ли "сферического коня в вакууме"?


Ну, бывают же блестяшие стихи, хотя бы у Нашего Всего, хотя и у него много отходов.

S>ИМХО, код можно поделить на следующие категории:


S>* нормальный (хороший код). Делает то, что требуется. Не содержит явных косяков. Понятен. Оставляет возможность развития со временем.


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


Хм... Получается, что такой код:

if (a)
  return true;
else
  return false;


...по вашей классификации нормальный, а по моей -- кусок кала.

S>UPD. Люди с разным уровнем знаний, длиной опыта и шириной кругозора могут отнести один и тот же код к совершенно разным категориям.

S>


Естественно!

S>Что такое блестящий код -- хз.


S>Еще можно понять, что такое "блестящее решение". Например, когда неожиданно применяется какой-то подход/алгоритм/структура данных для того, чтобы оптимально вписаться в имеющиеся ограничения. Решение, которое вызывает вау-эффект, которое не лежит на поверхности. Скажем, когда ради экономии каждого байта памяти список строят на XOR-е указателей. Только вот не обязательно "блестящее решение" будет воплощено в жизнь даже в виде так себе кода.


"Блестящий код" -- частный случай "блестящего решения". К последнему, например, может относиться использование встроенной конструкции вместо аналогичного велосипеда.

mgu>>Так посмотрел же, сало как сало, ничего выдающегося.


S>Что означает термин "сало"?


Из неполиткорректного анекдота:
https://anekdotovstreet.com/anekdot/letyat-v-samolete-negr-i-hohol-progolodalis/144/

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


Н-да... Дожили.
Re[13]: Нектарокодеры
От: mgu  
Дата: 26.11.20 04:38
Оценка:
Здравствуйте, kaa.python, Вы писали:

mgu>>>Так посмотрел же, сало как сало, ничего выдающегося.


S>>Что означает термин "сало"?


KP>Высококачественный жир тролля


Курдючный!
Re[3]: Нектарокодеры
От: mgu  
Дата: 26.11.20 04:41
Оценка:
Здравствуйте, Dym On, Вы писали:

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


S>>я видел хорошие примеры кода

DO>Вот всегда так, кто-то видел, кто-то слышал, кто-то знает того, кто знает того, кто знает того, кто видел издалека того, кто пишет хороший код. Похоже на легенду: где-то далеко-далеко, на древнем дубе, висит ларец на урановых цепях, в ларце заяц, в зайце утка, в утке яйцо, а в яйце в заброшенном дата-центре есть комната, а в ней сервер, в нем флешка с идеальным кодом.

Да, чересчур много людей видели Ленина и дружили с Высоцким, однако они не мифические персонажи.
Re[2]: Нектарокодеры
От: mgu  
Дата: 26.11.20 04:46
Оценка:
Здравствуйте, L_G, Вы писали:

L_G>Мне же кажется, что код может сильно впечатлить, только если увидишь в нем что-то новое и интересное, доселе неизведанное, если можно что-то почерпнуть в нем для себя. Получается, вероятность получить такие впечатления для программиста больше на заре его карьеры, а с приобретением знаний и опыта эта вероятность всё меньше и меньше.


Вероятность ниже, зато какой восторг! Если сравнить с биологами: "О, трилобит, прямо как в учебнике!" или "Да это же недостающее звено в эволюции! И притом живёт в наше время!!!"
Re[9]: Нектарокодеры
От: so5team https://stiffstream.com
Дата: 26.11.20 06:16
Оценка:
Здравствуйте, mgu, Вы писали:

S>>Определить адекватность ваших оценок.


mgu>Ну вот, например:


mgu>День рождения №2
Автор: mgu
Дата: 03.10.18


mgu>Код обычный, не знаю, что в нём можно улучшить.


Да, код-то пованивает. И названия у пары переменных стремные, и смысл использования миллисекунд в этих расчетах ускользает, а никаких пояснений в коде нет. Не говоря уже о том, что сама суть существования поля "age" при наличии даты рождения ускользает. Уж не профессиональный ли вы говнокодер, батенька?
Re[13]: Нектарокодеры
От: so5team https://stiffstream.com
Дата: 26.11.20 06:28
Оценка: :)
Здравствуйте, mgu, Вы писали:

mgu>Ну, бывают же блестяшие стихи, хотя бы у Нашего Всего, хотя и у него много отходов.


Как минимум, к стихам не предъявляют требований быть однозначно воспринимаемыми и пригодными к дальнейшей модификации.

mgu>Хм... Получается, что такой код:


mgu>
mgu>if (a)
mgu>  return true;
mgu>else
mgu>  return false;
mgu>


mgu>...по вашей классификации нормальный,


По-моему здесь недостаточно данных для классификации этого фрагмента, а именно:

* на каком ЯП он написан;
* в каком контексте он употреблен;
* что за тип у a;
* какой code style и code guidelines используется в проекте.

В зависимости от ответов на эти вопросы данный фрагмент может быть как нормальным, так и подлежащим замене на что-то из нижеследующего перечня (в предположении, что это код на C++):
return a;

if (a)
  return status::in_progress;
else
  return status::completed;

if (a != 0) {
  return true;
}
else {
  return false;
}

return (a != 0);


mgu>а по моей -- кусок кала.


А вас нужно лечить.

mgu>"Блестящий код" -- частный случай "блестящего решения". К последнему, например, может относиться использование встроенной конструкции вместо аналогичного велосипеда.


Т.е. вот это блестящий код:
for(auto & t : threads) {
  deactivate(t);
}

а вот это уже нет:
for(threads_container::iterator it = threads.begin(), end = threads.end(); it != end; ++it) {
  deactivate(*it);
}

?

mgu>>>Так посмотрел же, сало как сало, ничего выдающегося.


S>>Что означает термин "сало"?


mgu>Из неполиткорректного анекдота:

mgu>https://anekdotovstreet.com/anekdot/letyat-v-samolete-negr-i-hohol-progolodalis/144/

Осталось загадкой, как содержание анекдота про жадность соотносится с качеством кода проектов ACE и POCO.
Re[10]: Нектарокодеры
От: mgu  
Дата: 26.11.20 23:13
Оценка:
Здравствуйте, so5team, Вы писали:

S>Да, код-то пованивает. И названия у пары переменных стремные, и смысл использования миллисекунд в этих расчетах ускользает, а никаких пояснений в коде нет. Не говоря уже о том, что сама суть существования поля "age" при наличии даты рождения ускользает. Уж не профессиональный ли вы говнокодер, батенька?


Очевидно же, что нет: у профессиональных говнокодеров всё на редкость тупо и понятно.
Re[11]: Нектарокодеры
От: so5team https://stiffstream.com
Дата: 27.11.20 06:10
Оценка:
Здравствуйте, mgu, Вы писали:

mgu>Очевидно же, что нет: у профессиональных говнокодеров всё на редкость тупо и понятно.


"на редкость тупо и понятно" -- это свойство промышленного кода на Java и Go. Тут же другой случай. И другой пациент.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.