Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Красота кода 
:(
    Опции темы
Она
Дата 15.5.2004, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 23.4.2004
Где: Москва




А вот таперь о красоте. Считаю, что программистам, в плане зрителей (как художникам) не повезло. Так, что не получится из программистов Ван Гогов (хоть все поотрезайте). Очень мало людей занимаются программированием, еще меньшее количество способно ОЦЕНИТЬ код другого человека. Да и вкусы у всех разные, но как мне кажется, главная красота кода, в его философии...понятности и т.д. Т.е. она зависит от очень многих факторов, может человек придумать офигенное решение, но реализует его криво, и "красота" его от этого пострадает... Это я Вам тут как художник говорю, как человек, способный понять муки творчества программистов....


--------------------
С уважением. Мария.
PM MAIL   Вверх
Lonley
Дата 16.5.2004, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск




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

{*******************************************
 *                                                                                  *
 *                                                                                  *
 *******************************************}

типа вот таких smile.gif

Это сообщение отредактировал(а) Lonley - 16.5.2004, 02:26


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
maxim1000
Дата 16.5.2004, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев




Мне кажется, стоит разделить понятие "красота кода" и "красота решения задачи"
К красоте кода в моем понимании относится все, что связанно с форматированием, именами переменных и функций, выделению кусков кода в отдельные функции и пр.
А вот к красоте решения задачи (опять же в моем понимании) относится то, что здесь обсуждается
Я, кстати, за 3-й вариант: не могу придумать нормального ллкритерия, по которому он был бы хуже какого-то другого
Цитата
write(x and 1)

думаю, хорошие компиляторы переделают это в "mod 2"
Цитата
хотя самый быстрый наверно №4

не-е, лишнее обращение к памяти по сравнению с 3-м, а в остальном все так же, плюс необходимость заполнения массива перед работой
Цитата
есть люди которые в жизни не могут обойтись без порядка, ну например не работается им когда в раковине грязная посуда. вроде лежит она себе там никого не трогает, есть не просит, а всё дело принципа.

интересно, что на моем рабочем месте жуткий беспорядок (как я написал в теме про рассеяность), а вот в программах я фанатично все упорядочиваю
Даже в программах на ассемблере использую имена переменных и ссылок иногда больше десятка символов, отступы в соответствии с блоками кода
(я даже в институтских конспектах вместо абзацев использовал отступы, как в программах: в них можно семантики больше вложить)
Цитата
Очень мало людей занимаются программированием, еще меньшее количество способно ОЦЕНИТЬ код другого человека

вот и приходится сидеть и восхищаться совим кодом biggrin.gif
Добавлено @ 02:32
Цитата
в квартире полный бардак, а в программе я немогу пройти мимо если нет положенного
отступа  прямо руки чешуться поставить его

о, вот у меня и соратник появился, а то на работе все смеются (точнее сначала смеялись, потом привыкли), когда я начинаю устанавливать отступы
---
кстати, ошибочка маленькая:
Цитата
Цитата
write(x and 1)

думаю, хорошие компиляторы переделают это в "mod 2"

имелось в виду, конечно, наоборот...


--------------------
qqq
PM WWW   Вверх
chipset
Дата 16.5.2004, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US




Lonley
Респект adv/65.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Baa
Дата 16.5.2004, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва




Мне ближе всего третий вариант. Да, кстати, кто-то там говорил про дробные числа? Дробные числа свойствами четности не обладают ;) Потому мы имеем дело только с целыми числами.
з.ы. самый красивый код:
Код
xor ax, ax
;)



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Дрон
Дата 16.5.2004, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург




Baa
Код
xor ax, ax

Да... С тех пор как впервые это увидел всегда только так и пишу smile.gif


--------------------
Да. Именно так.
PM   Вверх
maxim1000
Дата 16.5.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев




Цитата
напечатать 0, если число чентое, и 1 в противном случае

Цитата
Дробные числа свойствами четности не обладают

не сказано вывести 1 для нечетных чисел, которые должны быть для этого целыми
если 0.5 нельзя назвать четным, поэтому это - как раз тот самы "противный случай" smile.gif
Цитата
xor ax, ax

к сожалению не помню Intel'овского ассемблера (возможно ли там "mov ax,0"),
но мне этот код красивым не кажется. По мне так код должен быть понятным, и не просто понятным, а таким, чтобы тратилось минимум времени на пониманием хотя бы отдельных строк.
Когда я смотрю на эту строку, вижу прежде всего логическую операцию и начинаю размышлять, где это у меня в чисто вычислительном алгоритме оказались логические операции...
Кстати, последнее время наблюдается перенос С-ишного синтаксиса в ассемблеры, вот это мне нравится...


--------------------
qqq
PM WWW   Вверх
Дрон
Дата 16.5.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург




Можно писать и mov ax,0, но xor ax,ax выполняется быстрее. Хотя ты наверно прав, что сторонний человек догадается не сразу hehe.gif

А насчёт переноса синтаксиса языков высокого уровня в асм, то в этом есть и минусы.
Чел привыкший думать на языке Си не сразу увидит большую гибкость асма и следовательно эффективность кода будет ниже.




--------------------
Да. Именно так.
PM   Вверх
Chingachguk
Дата 16.5.2004, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Цитата


Цитата 
xor ax, ax

к сожалению не помню Intel'овского ассемблера (возможно ли там "mov ax,0"),
но мне этот код красивым не кажется. По мне так код должен быть понятным, и не просто понятным, а таким, чтобы тратилось минимум времени на пониманием хотя бы отдельных строк.
Когда я смотрю на эту строку, вижу прежде всего логическую операцию и начинаю размышлять, где это у меня в чисто вычислительном алгоритме оказались логические операции...


Ну не скажи... Возьмем реализацию следующей задачи: если i равно 1, то i сделать равным 2 - иначе сделать его равным 1. Может встретится в двухкнопочном окне в обработчике нажатий клавиш, где i - номер кнопки (1,2).

Можно сделать так:

Цитата

if i=1 then i=2 else i:=1; // if (i==1) i=2 else i=1;


но можно и так:

Цитата

i:=i xor 3; // i^=3;




--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
LSD
Дата 16.5.2004, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin




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


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chipset
Дата 16.5.2004, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US




И ещe исключение генерить;)


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
LSD
Дата 16.5.2004, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin




Цитата(chipset @ 16.5.2004, 17:36)
И ещe исключение генерить;)

По обстоятельствам, если это автономная процедура и язык поддерживает исключения то генерить.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
dm9
Дата 16.5.2004, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва




Baa, а меня ещё больше порадовало решение задачи "поменять местами два числа, не используя 3-ю переменную".

xor ax, bx
xor bx, ax
xor ax, bx

smile.gif

А вот насчёт красоты кода - не могу читать код, пока по-своему не отформатирую. Красота определяется привычкой.

А вот изящно решённая задача - это да! Порадовать может. Как вышеупомянутая, например. Или вот это решение, например smile.gif
http://forum.vingrad.ru/index.php?showtopi...t=0&#entry91663
PM MAIL ICQ   Вверх
Дрон
Дата 16.5.2004, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург




Цитата
Baa, а меня ещё больше порадовало решение задачи "поменять местами два числа, не используя 3-ю переменную

Ну уж если использовать асм, то там есть xchg smile.gif smile.gif
А можно ещё так:
a = a + b
b = a - b
a = a - b


А что вы скажете про разницу между:
for (i=0;i<n;i++) и for(i=n-1;i>=0;i--)
Какой цикл по вашему лучше, если n - переменная и порядок обхода не важен?



--------------------
Да. Именно так.
PM   Вверх
Coocky
Дата 16.5.2004, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е




Вообще гениальный код приходит как гениальная мысль.Нелзя(НЕ ВЕРЮ!!!) все время писать гениально!!!Просто иногда пробивает...
Я помню как давно написал сортировку методом пузырька одним циклом.Препод в шоке был biggrin.gif biggrin.gif biggrin.gif
Но работало.Хотя при проверке на большом массиве скорость была ужасная. wink.gif Препод успокоился biggrin.gif biggrin.gif

Это сообщение отредактировал(а) Coocky - 16.5.2004, 23:28


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

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


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.