Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 21:31   #51
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Я с того времени, как начал самостоятельно заниматся программированием, почти весь код пишу неформатировано, полублочно и довольно криво. На Топкодере это даже помогает. А так - необходимости, чтобы мой код поинмали остальные, нету, разбиение всегда понятно для меня самого, а блоки обрываю по правому краю экрана - одно из объяснений в том, что с кодом я работаю, визуально воспринимая, но фактически не читая, поэтому с пятном на 5 строк мне работать удобней, чем с столбцом на полутора экрана, по которому надо бегать глазами вверх-вниз, паралельно сканирую в горизонтальном направлении. Да и просто - если читать, то удобней, когда "книга", а не столбец таблицы.
О, еще 1 преимущество вспомнил - реже надо мотать текстовый редактор. Если я пишу задачу, и отформатированный код занимает 150 строк, а "мой" - 40, то первый мне надо, в случае необходимости, листать, чтобы, например, посмотреть на оглашенные переменные или, наоборот, поискать неоглашенные... а иногда при стандартной записи, если где-то не проструктурируеш, то приходится долго искать, где ж этот бегин или эта скобка, которую ты открыл, должна закрыватся (обычно получается, что где-то на 1.5 экрана внизу).
Я же почти всегда вижу весь код (только в очень технически нудных задачах получается больше экрана, но тогда, например, можно сделать несколько отдельных блоков, разбитых пустыми строчками межуд собой, и каждый превратить в отдельный экран
LeBron вне форума Ответить с цитированием
Старый 13.10.2009, 23:27   #52
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Не очень читал всю тему. что-то уж тяжко

А на этот пост, хочу сказать.
Код:
 А так - необходимости, чтобы мой код поинмали остальные, нету, разбиение всегда понятно для меня самого, а блоки обрываю по правому краю экрана - одно из объяснений в том, что с кодом я работаю, визуально воспринимая, но фактически не читая, поэтому с пятном на 5 строк мне работать удобней
лично я подошел к стадии, когда переписывать 100 раз практически один и тот же код уже в лом. Стал задумываться. как бы писать так, чтобы куски кода как кирпичи использовать дальше. Так и докатился до изучения парадигм программирования. Сложно, но помогает.

Например почитать можно здесь. http://http://www.intuit.ru/department/se/paradigms/

Мало того, из личного опыта скажу.

Начинал писать прога - как на ум ложиться. Ну приблизительно также. как пишет товарищ выше.

Сейчас пытаюсь соблюдать правила от именования переменных (стараюсь делать их читабельно-осмысленными, типа СB_pole - CheckBox для переменной ПОЛЕ Pi_temp - ссылка на временную переменную целого типа и т.п.)

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

Кто-то скажет - это сложно и не обязательно. Вполне может быть, но для больших проектов без этого - дело труба. Иначе объем нарастающего кода завалит мозги и при "чтении" "отладке" и "проверке" можно зарыться просто по уши, тратя до 70% времени на выяснение, а какого хрена этот код такой и чего тут имелось ввиду.

Поэтому я сейчас сторониик правил, "чистописания", комментариев и парадигм. Хотя не всегда сам их блюду. но по мере опыта стараюсь.
и это пройдет...

Последний раз редактировалось grenles; 13.10.2009 в 23:32.
grenles вне форума Ответить с цитированием
Старый 14.10.2009, 00:29   #53
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
Смех

Цитата:
Сообщение от AlDelta Посмотреть сообщение
Как вам мышление будущих программистов)?
Сорри , долго тему перечитывать А ваш вариант ответа какой?) Я просто не совсем понял - положительно или отрицательно)
Lime вне форума Ответить с цитированием
Старый 14.10.2009, 07:26   #54
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Для тех, кто оправдывает такой код. Обратитесь к классикам, что говорят по этому поводу книги? Покажите хоть одного автора который говорит, что нужно писать так. И совершенно наоборот, и более того, в первую очередь, это относится к программам на С/С++. Практически все требуют корректного оформления программного кода.
Почитайте например Правила программирования на Си и С++ Ален И. Голуб.
Там же указано к чему ведет такой код и имеется огромная куча примеров . Да программу можно написать как угодно, так же как построить криво дом. А в чем проблема? Подумаешь одна стена на 30 см длинее противоположной, в БТИ же все равно примут . Однако, почему-то никто себе такой дом не хочет.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 14.10.2009 в 07:28.
Utkin вне форума Ответить с цитированием
Старый 14.10.2009, 09:01   #55
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
необходимости, чтобы мой код поинмали остальные, нету, разбиение всегда понятно для меня самого
Также считал тот многократно мною проклятый программист, чьи проги я вынужден теперь доделывать на работе. (
ds.Dante вне форума Ответить с цитированием
Старый 14.10.2009, 11:32   #56
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
И что из того, что код сложен для восприятия?
Главное, чтобы он корректно работал.
Кошмар. Мы еще индусов ругаем (кстати, фреймворк там внутри кода откомментирован так, что порой чтобы что-то в нем изменить, мне даже не приходится лезть в документацию по классу.) Покайтесь, грешники!
Кто-то где-то спрашивал что такое говнокод? Это он.
Зы. Да-да, знаю, Кэп
Зызы
Цитата:
Однако, почему-то никто себе такой дом не хочет.
Однако строили и строят. Кастрировать! Сам в таком прожил довольно долго...
ЗЫЗЫЗЫ А еще меня посетила гениальная мысль. Я сильно подозреваю, что безграмотное оформление кода (именно безграмотное) сродни безграмотному построению текста. Ведь никому не придет в голову писать текст без знаков препинания, ну естественно где их отсутствие смысл не меняет? Это одно и тоже. Читать тошно и неохота. Классиков читать надо больше, молодежь! А не порноящик смотреть.

Цитата:
Да ладно, народ, что вы прям раскричались. Может это первое творение девушки, а вы так ругаете Я сам, когда гляжу на свои творения 5-летней давности, удивляюсь, через какое место надо было писать, чтоб получилось такое.
Если захочет, научится и будет писать нормально. А не захочет, ну будет у нас на одного экономиста больше
+1. Злой я чего-то в последнее время стал И свои поделки забыл.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 14.10.2009 в 11:47.
crazy horse вне форума Ответить с цитированием
Старый 14.10.2009, 13:35   #57
megachuhancer
Форумчанин
 
Регистрация: 16.04.2009
Сообщений: 247
По умолчанию

Цитата:
На Топкодере это даже помогает. А так - необходимости, чтобы мой код поинмали остальные, нету
Не, ну у меня два "режима". Когда решаю задачи в условиях сильного ограничения времени у меня действует "одному мне понятный стиль". А когда пишу что-то крупное (`>500 строк) , то стараюсь писать аккуратно.
Но кстати и в первом случае я выдерживаю вполне определённый стиль, и я смогу объяснить почему у меня в одном месте два вложенных for'а в одной строке, а в другом - нет.
Выше я не говорил, хорош или плох код, приведённый в начале темы, я лишь заметил, что преподаватели скорее всего крайне негативно отнесутся к такому коду. Но я вот посты читаю, и смотрю, что преподаватели - везде разные.

Да, вот ещё добавлю, раз уж упомянут Топкодер. Это на личных соревнованиях пофигу на читаемость и понятность кода, а на командных... Топкодер - не единственное соревнование.

Последний раз редактировалось megachuhancer; 14.10.2009 в 13:42.
megachuhancer вне форума Ответить с цитированием
Старый 16.10.2009, 11:17   #58
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Utkin
Для тех, кто оправдывает такой код.
я полностью согласен с доводами тех, кто говорит, что код писать надо чётко/структурно/по правилам... Полностью! Мне только не совсем понятно, что вызвало такой праведный гнев и священный ужас в коде из #1...
Что кошмарного то, то, что в параметры функции Length передаётся функция Copy, в которой вызывается функция Pos ?! или то, что длины строк сравниваются? ужас-ужас..
нет, безусловно, я бы такой код не написал..
Как минимум ввёл переменную для сохранения позиции разделителя, проверил, что в строке этот разделитель есть (позиция больше нуля) и тогда использовал его фунциях Length/Copy... но код достаточно наглядный, не видя других частей программы, без комментариев, только по коду достаточно легко "прочитать", что он собственно делает...

А хотите увидеть действительно жуткий код?
Тогда милости прошу - A few small obfuscated Programs

и ещё обязательно! зайти сюда - Си / Говнокод #1274
я даже не откажу себе в удовольствии процитировать полностью программу CRAZY.C:
Код:
/* sent by Stephan Hughson - 2003 */
/* must be compiled with cc or g++*/

#include <stdio.h>

int main(int t,int _,char*a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.10.2009, 11:40   #59
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov
я даже не откажу себе в удовольствии процитировать полностью программу CRAZY.C:
Такое надо ещё постараться написать, что бы оно при этом работало так, как задумывалось. Так что код не читабельный, но автор молодец, что способен на такое
Arigato вне форума Ответить с цитированием
Старый 16.10.2009, 16:06   #60
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
/* must be compiled with cc or g++*/
Ээээ... G++?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при в ходе на половину сайтов просит ввести код активации, получить который можно послав смс twichska Свободное общение 6 28.05.2009 23:09
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Компонент, который может обрабатывать BB коды rpy3uH Компоненты Delphi 1 28.10.2008 21:25
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24