![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#51 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
![]()
Я с того времени, как начал самостоятельно заниматся программированием, почти весь код пишу неформатировано, полублочно и довольно криво. На Топкодере это даже помогает. А так - необходимости, чтобы мой код поинмали остальные, нету, разбиение всегда понятно для меня самого, а блоки обрываю по правому краю экрана - одно из объяснений в том, что с кодом я работаю, визуально воспринимая, но фактически не читая, поэтому с пятном на 5 строк мне работать удобней, чем с столбцом на полутора экрана, по которому надо бегать глазами вверх-вниз, паралельно сканирую в горизонтальном направлении. Да и просто - если читать, то удобней, когда "книга", а не столбец таблицы.
О, еще 1 преимущество вспомнил - реже надо мотать текстовый редактор. Если я пишу задачу, и отформатированный код занимает 150 строк, а "мой" - 40, то первый мне надо, в случае необходимости, листать, чтобы, например, посмотреть на оглашенные переменные или, наоборот, поискать неоглашенные... а иногда при стандартной записи, если где-то не проструктурируеш, то приходится долго искать, где ж этот бегин или эта скобка, которую ты открыл, должна закрыватся (обычно получается, что где-то на 1.5 экрана внизу). Я же почти всегда вижу весь код (только в очень технически нудных задачах получается больше экрана, но тогда, например, можно сделать несколько отдельных блоков, разбитых пустыми строчками межуд собой, и каждый превратить в отдельный экран ![]() |
![]() |
![]() |
![]() |
#52 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Не очень читал всю тему. что-то уж тяжко
А на этот пост, хочу сказать. Код:
Например почитать можно здесь. http://http://www.intuit.ru/department/se/paradigms/ Мало того, из личного опыта скажу. Начинал писать прога - как на ум ложиться. Ну приблизительно также. как пишет товарищ выше. Сейчас пытаюсь соблюдать правила от именования переменных (стараюсь делать их читабельно-осмысленными, типа СB_pole - CheckBox для переменной ПОЛЕ Pi_temp - ссылка на временную переменную целого типа и т.п.) Соответственно процедуры и функции стараюсь писать так, чтобы они были независимые от внешних данных максимально, чтобы дернув код, я не разбирался почему вдруг он перестал работать. А эдак через день выяснилось в в моделе М инициализируется переменная П, которая используется в этом модуле неявно. Кто-то скажет - это сложно и не обязательно. Вполне может быть, но для больших проектов без этого - дело труба. Иначе объем нарастающего кода завалит мозги и при "чтении" "отладке" и "проверке" можно зарыться просто по уши, тратя до 70% времени на выяснение, а какого хрена этот код такой и чего тут имелось ввиду. Поэтому я сейчас сторониик правил, "чистописания", комментариев и парадигм. Хотя не всегда сам их блюду. но по мере опыта стараюсь.
и это пройдет...
Последний раз редактировалось grenles; 13.10.2009 в 23:32. |
![]() |
![]() |
![]() |
#53 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() |
![]() |
![]() |
![]() |
#54 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Для тех, кто оправдывает такой код. Обратитесь к классикам, что говорят по этому поводу книги? Покажите хоть одного автора который говорит, что нужно писать так. И совершенно наоборот, и более того, в первую очередь, это относится к программам на С/С++. Практически все требуют корректного оформления программного кода.
Почитайте например Правила программирования на Си и С++ Ален И. Голуб. Там же указано к чему ведет такой код и имеется огромная куча примеров ![]() ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 14.10.2009 в 07:28. |
![]() |
![]() |
![]() |
#55 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
![]() |
![]() |
![]() |
![]() |
#56 | |||
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
![]() Цитата:
![]() Кто-то где-то спрашивал что такое говнокод? Это он. Зы. Да-да, знаю, Кэп ![]() Зызы Цитата:
ЗЫЗЫЗЫ А еще меня посетила гениальная мысль. Я сильно подозреваю, что безграмотное оформление кода (именно безграмотное) сродни безграмотному построению текста. Ведь никому не придет в голову писать текст без знаков препинания, ну естественно где их отсутствие смысл не меняет? Это одно и тоже. Читать тошно и неохота. Классиков читать надо больше, молодежь! А не порноящик смотреть. Цитата:
![]()
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
Последний раз редактировалось crazy horse; 14.10.2009 в 11:47. |
|||
![]() |
![]() |
![]() |
#57 | |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
![]() Цитата:
Но кстати и в первом случае я выдерживаю вполне определённый стиль, и я смогу объяснить почему у меня в одном месте два вложенных for'а в одной строке, а в другом - нет. Выше я не говорил, хорош или плох код, приведённый в начале темы, я лишь заметил, что преподаватели скорее всего крайне негативно отнесутся к такому коду. Но я вот посты читаю, и смотрю, что преподаватели - везде разные. Да, вот ещё добавлю, раз уж упомянут Топкодер. Это на личных соревнованиях пофигу на читаемость и понятность кода, а на командных... Топкодер - не единственное соревнование. Последний раз редактировалось megachuhancer; 14.10.2009 в 13:42. |
|
![]() |
![]() |
![]() |
#58 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Что кошмарного то, то, что в параметры функции Length передаётся функция Copy, в которой вызывается функция Pos ?! или то, что длины строк сравниваются? ужас-ужас.. ![]() нет, безусловно, я бы такой код не написал.. Как минимум ввёл переменную для сохранения позиции разделителя, проверил, что в строке этот разделитель есть (позиция больше нуля) и тогда использовал его фунциях Length/Copy... но код достаточно наглядный, не видя других частей программы, без комментариев, только по коду достаточно легко "прочитать", что он собственно делает... А хотите увидеть действительно жуткий код? Тогда милости прошу - A few small obfuscated Programs и ещё обязательно! зайти сюда - Си / Говнокод #1274 я даже не откажу себе в удовольствии процитировать полностью программу CRAZY.C: Код:
|
|
![]() |
![]() |
![]() |
#59 | |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,865
|
![]() Цитата:
![]() E-Mail: arigato.freelance@gmail.com
|
|
![]() |
![]() |
![]() |
#60 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]() Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при в ходе на половину сайтов просит ввести код активации, получить который можно послав смс | 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 |