|
О стилистике при оформлении исходников, для начинающих и не только |
|
|
|
 |
Ответов
(1 - 93)
|
Feb 13 2010, 16:23
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Dog Pawlowa @ Feb 13 2010, 18:53)  Лучше иметь правила, чем не иметь. А что больше всего не нравится? В порядке упоминания: - типа пишите в стиле "моя твоя понимай", дабы любой чукча мог понять? Но я не чукча  - не используйте goto - где-то кто-то что-то слышал, что "настоящие программисты" так делать не должны. - не используйте табуляцию - чистое ламерство  - никогда не пишите комментарии над кодом - ну просто бред. Комментировать каждую строчку, тем более побитую в соответствии чукотским восприятием - это глупость, комментируется именно блок операторов и в комментарии описывается что глобально делается а не что такое 2 + 2. - используйте #if 0 для комментирования блоков - трюкачи, блин, а нормальные редакторы и компиляторы не судьба пользовать. Дальше по нарастающей  Цитата(_Pasha @ Feb 13 2010, 19:00)  В довесок... Да, это самая известная по дебильности попытка заставить обезьяну программировать без ошибок и использовать жалкие подобия компиляторов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 13 2010, 16:30
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Dog Pawlowa @ Feb 13 2010, 18:53)  А что больше всего не нравится? Оформление блоков типа: Код if (bla-bla) { ... } И пробелы вместо табуляции тоже бесят. Далее: - !defined(X) - Дикая бредятина про многострочные комментарии - Лишние пробелы везде и всюду
|
|
|
|
|
Feb 13 2010, 17:56
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(aaarrr @ Feb 13 2010, 19:30)  Оформление блоков типа: Код if (bla-bla) { ... } Кстати, поскольку устоявшиеся стили code folding в соответствующих редакторах (codeblocks например) показывают свернутые блоки в виде Код { ------------------------------ считаю полезным помещать комментарии к блоку сразу за скобкой. И еще никогда не понимал смысла вот такого форматирования (это Astyle): Код struct { unsigned field1 :1; } Нафига такая фигня фигачецца?
|
|
|
|
|
Feb 13 2010, 19:43
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Feb 13 2010, 21:53)  ИМХО, tab 4 - самый правильный способ. Для 'C' - 4. Для ASM - 8 Цитата(Dog Pawlowa @ Feb 13 2010, 21:39)  В ИАРе четыре года назад сделал табуляцию два пробела - на ноутбуке приходилось работать, иначе ничего не видно. Ничего не понял. Начинал работать на каком-нибудь 14" CRT и никаких проблем от 4 не имел.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 13 2010, 20:09
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(aaarrr @ Feb 14 2010, 00:58)  Покажите мне редактор, который не умеет устанавливать размер табуляции. Только пыль сдуть предварительно не забудьте. А лично меня любой устраивает  Т.к. я пользуюсь пробелами и симметричными для блоков отступами. Но вот, например, один из моих коллег пользуется исключительно только редактором FARа. Потому, что у него везде TABы и псевдографика в комментариях присутствует, а при просмотре/редактировании в "неправильном" редакторе все это оформление рушится. Цитата(aaarrr @ Feb 14 2010, 00:58)  Мне почему-то казалось, что код обычно пишется не для выкладывания на форум. Если вы код пишете для себя, то можете вообще все в одну строку писать. Но если код предназначен для кого-то еще или уже опубликован, то извольте оформить его так, чтобы он адекватно и понятно для восприятия отображался вне зависимости от размера TABов, типа фонтов, которыми он отображается, и диагонали экрана. Цитата(zltigo @ Feb 14 2010, 01:01)  Нет, они просто не пользуются дерьмовыми редакторами и предпочитают использовать один из множества достойных редакторов, достоинства которых далеко не исчерпываются ПРОДУМАННОЙ поддержкой табуляции. Вот-вот. Я об этом и говорю. Редакторы есть правильные и неправильные, а тот кто пользуется 640х480 вообще лузер
|
|
|
|
|
Feb 13 2010, 20:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(rezident @ Feb 13 2010, 23:09)  а при просмотре/редактировании в "неправильном" редакторе все это оформление рушится. Зачем неправильный заключили в кавычки? Он действительно неправильный, поскольку правильный понимает и табуляции и пробелы и конвертирует пробелы в табуляции при загрузке без нарушения оформления, впрочем и табуляции в пробелы тоже. Но это если нужно иметь "картинку", а не исходный текст с которым РАБОТАЮТ. Причем в качестве картинки, скриншот вне конкуренции  , хотя улыбаюсь я зря  судя по количеству скриншотов выкладываемых даже на этот форум  количество людей не подозревающих о том, что текстовый файл это не картинка в окошечке IDE неуклонно растет. И еще, я любой исходник под себя (или под корпоративный стандарт, буде надо) на автомате вполне прилично корветну, ибо использование правильных инструментов обязательно для профессиональной работы. Любой работы, хоть написания текстов, хоть забивания гвоздей. Цитата(rezident @ Feb 13 2010, 23:09)  а тот кто пользуется 640х480 вообще лузер  Это не проблема для нормального текстового редактора - просто выбор шрифтов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 13 2010, 20:29
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(rezident @ Feb 13 2010, 23:07)  Если вы код пишете для себя, то можете вообще все в одну строку писать. Но если код предназначен для кого-то еще или уже опубликован, то извольте оформить его так, чтобы он адекватно и понятно для восприятия отображался вне зависимости от размера TABов, типа фонтов, которым он отображается, и диагонали экрана. Большую часть кода, который выкладывается на форуме, составляют фрагменты, сопровождающиеся просьбой помочь в решении какой-либо проблемы. Этот код, разумеется, должен быть оформлен так, чтобы: а) облегчить жизнь тем, кто его будет читать (например, из него должно быть вычищено все лишнее, убраны закомментированные фрагменты, добавлены не очевидные typedef'ы и define'ы и т.п.) б) корректно отображаться в теме Но нет ни малейшей необходимости в обычной жизни выкраивать правила оформления по "форумным" лекалам.
|
|
|
|
|
Feb 13 2010, 22:52
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 13 2010, 23:27)  Зачем неправильный заключили в кавычки? Он действительно неправильный, поскольку правильный понимает и табуляции и пробелы и конвертирует пробелы в табуляции при загрузке без нарушения оформления, впрочем и табуляции в пробелы тоже. Ну, плохие редакторы поругали, замечательно. А теперь объясните, чем вам так не нравятся пробелы. Ведь "нормальные" редакторы должны понимать пробельные отступы и удалять, например, группу пробелов сразу. А ведь кроме редакторов есть еще всякие багтрекеры, websvn, diff-ы всякие разные, у которых я видел проблемы с табовыми отступами. Вывод в pdf с табами часто выливается гемор, оформление какой-то доки в ворде с кусочком вставленного кода - гемор. По большому счету - преобразовать не сложно, одно нажатие на кнопку - да, все женщины нормальные редакторы делают это. НО! если уж говорить о нормальных редакторах без кавычек, то они так же прекрасно работают с пробельными отступами как и с табовыми, в то же время пробельные лишены недостатков табовых. Впрочем, как обычно вы судите других по себе.
|
|
|
|
|
Feb 14 2010, 07:39
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 01:52)  А теперь объясните, чем вам так не нравятся пробелы. Относительно недавно уже была тема - высказывался. Можете найти, дабы не повторяться. Причины -возможность более быстрой и естественной навигации курсора и редактирования по табуляциям и наличие у форматеров дополнительной информации об оформлении для качественного конвертирования в другие стили - реально нужно для передачи исходников. Цитата(_Pasha @ Feb 14 2010, 03:49)  Хочется чего-нить простого, как зубило Смысла во внутренней простоте нет - пусть там где-то внутри будет очень сложным, уровнем повыше, таким, что-бы можно было править под себя. И внешне тогда он получится, правильное слово "услужливым" - т.е. простым в использовании для выдрессировавшего его владельца. Слик этим условиям достаточно хорошо удовлетворяет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 09:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Dog Pawlowa @ Feb 14 2010, 12:25)  Дык Ваша нелюбовь к отладке известна  Нелюбовь это совершенно не то слово - правильное слово это "равнодушие". Отладка тоже не то слово - правильное "внутрисхемная отладка". Возможность именно отладки системы в любых, и в том числе эксплуатационных условиях это, напротив, "наше все". Время отданное обдумыванию и написанию, а не внутрисхемной отладке в спешке написанного 2+2=? окупается сторицей, посему никакие множественные окошечки, кнопочки, ... не должны мешать этому процессу. IDE, которая не позволяет быстро скрыть лишнее и переключиться на единственное окно с текстом уродлива. Цитата(sigmaN @ Feb 14 2010, 12:47)  Алсо, ИМХО, кодить в FAR как-то уж больно по-дедосвки что-ли....  Напротив - стиль юного "хакера"  , но по любому более, чем неразумно. Впрочем, тут уже была тема про писание в FAR-е. Кому интересно, может найти.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 10:42
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 14 2010, 10:39)  Относительно недавно уже была тема - высказывался. Ну да, не барское это дело, ссылки давать... Цитата(zltigo @ Feb 14 2010, 10:39)  возможность более быстрой и естественной навигации курсора и редактирования по табуляциям Вы же в слике работаете? Не поверю, что не знаете, что там есть галка "Cursor left/right in leading spaces = Move cursor by tab stops", которая позволяет реализовать навигацию по пробелам аналогично навигации по табам. Что такое "редактирование по табуляциям" я так и не понял Цитата(zltigo @ Feb 14 2010, 10:39)  наличие у форматеров дополнительной информации об оформлении для качественного конвертирования в другие стили - реально нужно для передачи исходников Вы про beautify что-ли? Так оно прекрасно и с пробльными отступами работает, постоянно пользуюсь
|
|
|
|
|
Feb 14 2010, 11:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 13:42)  Ну да, не барское это дело, ссылки давать... Поиск есть. Ссылки не коллекционирую. Цитата Вы же в слике работаете? Нет. Но навигация используется развитая. Для поиска-замены табуляция, как отдельный признак не помешает тоже. Но кроме того есть еще и редактирование. Кроме того основной вопрос в другом - зачем пользоваться эрзац-заменителями табуляций, вместо их естественного использования, если есть нормальные инструменты и голова на плечах. Цитата такое "редактирование по табуляциям" я так и не понял  Табуляция это один символ и удаляется как один символ. Цитата Вы про beautify что-ли? Нет. Все форматеры, естественно, так или иначе работают, поскольку это их работа, только опять безответный вопрос - зачем сначала гробить информацию о форматировании, дабы потом ее по косвенным признакам восстанавливать?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 11:51
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 14 2010, 14:33)  Нет. Но навигация используется развитая. Для поиска-замены табуляция, как отдельный признак не помешает тоже. точно так же как и четыре последовательных пробела. Впрочем, не могу себе представить ситуацию, в которой нужно искать или заменять сочетание символов и отступов. Если только специально не ставить какие-то метки - но это уже из ряда вон. Нормальные без кавычек редакторы сохраняют букмарки в файлах проекта, которые можно включить в VCS Цитата(zltigo @ Feb 14 2010, 14:33)  Табуляция это один символ и удаляется как один символ. да, я снячала ляпнул, потом понял, что имелось в виду. Никогда не удалял отступы, всегда пользовался indent/outdent на горячих клавишах Цитата(zltigo @ Feb 14 2010, 14:33)  Кроме того основной вопрос в другом - зачем пользоваться эрзац-заменителями табуляций, вместо их естественного использования, если есть нормальные инструменты и голова на плечах. Да нет, основной вопрос не в принципе, а в к комфорте кодинга и дальнейшего использования исходников (экспорт, ручная документация и пр). Я вообще разговор завел с целью чего-то новое для себя открыть. Ну, думаю, мало ли я чего не понимаю, вдруг табы это и есть наше все... Оказалось - банальная вкусовщина.
|
|
|
|
|
Feb 14 2010, 12:39
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 14:51)  Впрочем, не могу себе представить ситуацию, в которой нужно искать или заменять сочетание символов и отступов. Отчего-же? некое, например, нетвердо запомненное имя не в середине строки. Оно, конечно, можно искать и нечто начинающееся с какого-то количества пробелов... Вопрос опять-же стандартный - зачем не пользоваться возможностями, если они есть? Я понимаю, что той-же Эллочке-Людоедке глубоко по барабану не только табуляция, пунктуация, но и вообще львиная доля русского языка не говоря о 'C', но уподобляться не хотелось-бы  . А ведь с мелочей типа табуляций все и начинается - табуляции не используйте, сложные конструкции не используйте, выражения разбивайте, потом еще пару шагов и i += 2 не используйте, ....... После такой лоботомии даже какая либо простейшая языковая конструкция типа: (void)arg; вместо "понятной, как у всех": arg = arg; Вызывает остекленение. Цитата(Dog Pawlowa @ Feb 14 2010, 15:09)  И вкусовщина вызвана чем-то личным. Причем тут вкусовщина? Вы мне напоминаете мою жену, которая набила в ворде диссертацию в стиле "а я так вижу" - без этих самых табуляций и прочего, зато пробелы и жесткие переводы строк в изобилии. Она тупо сделала "картинку", а не документ содержащий дополнительную информацию а не только буквы и слова. Чем я с проклятиями занимался в ночь перед сдачей, после внесения нескольких десятков коррекций Вы, полагаю, сообразили? Да, текстовый формат безумно скуден для задания информации о форматировании  , но это не причина отказываться от того, что есть. Цитата(Alex B._ @ Feb 14 2010, 14:51)  дальнейшего использования исходников (экспорт, ручная документация и пр). Да и для этого тоже. Для того, что-бы изменить видимость исходника с 2x на 4 отступа мне в одном случае надо изменить размер табуляции а в другом, как минимум, прогнать через форматер который в меру своих настроек и интеллекта попробует сделать примерно то-же самое - найти места отступов по пробелам, но к сожалению почти неизбежно чего-нибудь покорежит.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 13:14
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Feb 14 2010, 16:00)  прекрасно понимаю, что никаких разумных обоснований этому уже давно не осталось. Да ну? В догонку еще ко всему сказанному - в приложении два скриншота одного исходника написанного с табуляциями (=4, хотя это не имеет никакого значения) Переключением размера табуляции получил внешний вид в стиле Dog Pawlowa с двумя отступами. Вопрос а чего это Dog Pawlowa думет, как ему поступить со своими двумя отступами? Проблемы видите? И я не вижу. Проблемы есть только у тех, кто захочет иметь исходник с другим отступом ЕСЛИ ОТСТУПЫ СДЕЛАНЫ ПРОБЕЛАМИ. Какие еще "обоснования", простите, нужны??????
Эскизы прикрепленных изображений
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 13:50
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 16:26)  Ха, так вы привели положительный пример, это ни о чем не говорит.  Цитата А давайте попробуем зайти с другого конца. С другого конца находится Анус, а я как раз и призываю пользоваться ЕСТЕСТВЕННЫМИ путями. Цитата ..переформатированием с помощью встроенного форматтера SlickEdit. Я тоже пользуюсь форматтерами, например, PolyStyle, для таких паталогических случаев. Проблемы есть  . Мне обязательно покупать и ставить Slick? Или я просто имею право пользоваться символом табуляции в любом редакторе, не смотря на то, что некоторые ламеры этим пользоваться не умеют и у них "проблемы"? Цитата(AHTOXA @ Feb 14 2010, 16:23)  А пример ваш не совсем честный. Если есть справа комментарии, то они сползут все  Какой был перед глазами, не подбирал и не подтасовывал. Массированных построчных комментариев-пустышек справа в стиле: uint8_t hour; // Hours практически не пишу. Разбег через несколько а то и несколько десятков строчек зло не большое, я их и вообще-то и не выравниваю. Комментарии с табуляцией расползутся при изменении идентов, а вот если они будут забиты пробелами, то расползаться будут и при редактировании данной структуры. Да, конечно у правильных редакторов есть средства для всяких auto indent, но тот-же FAR наломает дров
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 14:02
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 14 2010, 16:50)  С другого конца находится Анус, а я как раз и призываю пользоваться ЕСТЕСТВЕННЫМИ путями. Слив засчитан Цитата(zltigo @ Feb 14 2010, 16:50)  Мне обязательно покупать и ставить Slick? Или я просто имею право пользоваться символом табуляции в любом редакторе, не смотря на то, что некоторые ламеры этим пользоваться не умеют и у них "проблемы"? Ах вот уже "в любом редакторе", а не в правильном. Ну да, ну да. Вы имеете права пользоваться чем хотите, в конце концов главное результат. Цитата(zltigo @ Feb 14 2010, 16:50)  Массированных построчных комментариев-пустышек справа в стиле... практически не пишу. Да причем тут вы? Вы не пишите, а в исходниках, которые приходится читать - сплошь и рядом.
|
|
|
|
|
Feb 14 2010, 14:35
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 17:02)  Слив засчитан Можете для собственного самоубеждения повторить эту "волшебную" мантру еще несколько раз. Только разочарую - на реальность она влияния не оказывает  Цитата Ах вот уже "в любом редакторе" Да, в любом. Любом, редакторе а не форматере. Не только имеющемся у Вас (и у меня) достойнейшем редакторе SlickEdit способном заниматься кроме функций редактирования еще и достаточно приличным ПЕРЕформатированием индентов в написанном через анус исходнике. Цитата(Alex B._ @ Feb 14 2010, 17:02)  а в исходниках, которые приходится читать - сплошь и рядом. Забивание табуляций пробелами решает эту проблему при попытке сменить индент? Нет? Тогда какие еще "проблемы" с табуляцией, которые решаются ее тупой заменой на пробелы? Одну единсвенную - если кто-то скопипастит во что-нибудь типа простейшего форумого вьювера исходник. Плюсы перечислил ранее, пути обхода проблем с запробеленными исходниками знаю и пользуюсь, но "расслабляться и получать удовольствие" от сношения с загаженными пробелами исходниками не собираюсь. Замена табуляций пробелами операция примитивнейшая и редко какой редактор не выполняет ее АБСОЛЮТНО корректно на полном автомате в отличии от обратной операции. Что еще?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 14:56
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 14 2010, 17:35)  Забивание табуляций пробелами решает эту проблему при попытке сменить индент? Полностю решает, потому что эти пробелы форматтер вообще трогать не будет. Цитата(zltigo @ Feb 14 2010, 17:35)  Тогда какие еще "проблемы" с табуляцией, которые решаются ее тупой заменой на пробелы? Это я у вас спрашиваю, какие проблемы с пробелами. Не переводите стрелки. Пока услышал только какие-то надуманные и эмоциональные аргументы. Я на днях в одном репозитории SVN через websvn ковырялся - тихий ужас. В движке размер табов устанавливается, естественно для всех файлов репозитория (причем, понятное дело, админом). Ну а внутри табы и 4 и 2 и даже (OMG!) 3 пробела. Пришлось плюнуть, извлекать и переформатировать. Дураку ясно преимущество пробелов в этом случае.
|
|
|
|
|
Feb 14 2010, 15:01
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex B._ @ Feb 14 2010, 17:56)  Полностю решает, потому что эти пробелы форматтер вообще трогать не будет. Это я у вас спрашиваю, какие проблемы с пробелами. Не переводите стрелки. Это, как я понимаю, для того, что бы лишь-бы чего ляпнуть в ответ  , пойти на третий круг...Не мусорьте, просто повторите свою любимую мантру "слив засчитан", но только пожалуйста, про себя - публично не надо, ибо глуповато выглядит
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 15:20
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(zltigo @ Feb 14 2010, 18:01)  Это, как я понимаю, для того, что бы лишь-бы чего ляпнуть в ответ  , пойти на третий круг...Не мусорьте, просто повторите свою любимую мантру "слив засчитан", но только пожалуйста, про себя - публично не надо, ибо глуповато выглядит  Глуповато выглядит переходить в споре на личности и цепляться к фразам. Хе, не ожидал от вас такого =)
|
|
|
|
|
Feb 14 2010, 16:00
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Злодей @ Feb 14 2010, 18:38)  "Не используйте эмоции в комментариях." Тоже не факт  . Я вот несколько недель назад закомментировал несколько сот строк исходника с мутью от Microchip. И написал краткий, но исчерпывающий, и доходчивый комментарий на русском (кодировка WIN1251, кстати, прекрасный повод для обсуждения, какую использовать  ).
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 14 2010, 16:11
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Alex B._ @ Feb 14 2010, 18:20)  Глуповато выглядит переходить в споре на личности и цепляться к фразам. Хе, не ожидал от вас такого =) Хе-хе. А попытки уязвить собеседника фразочками типа "вкусовщина", "не барское дело", "слив засчитан", думаете, выглядят умно и тонко? Цитата(zltigo @ Feb 14 2010, 19:00)  кодировка WIN1251, кстати, прекрасный повод для обсуждения, какую использовать  Да-да, в FAR'е-то по умолчанию DOS
|
|
|
|
|
Feb 14 2010, 22:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Feb 14 2010, 19:11)  Да-да, в FAR'е-то по умолчанию DOS  Да, ибо консоль, но плагины разные есть. В принципе 866 AKA "альтернативная" самая разумная кодировка, что-бы не говорили юниксоиды и уж тем более микрософт. Но тут уж я "сдался" и последние годы по умолчанию, если вдруг кирилица нужна, пользую 1251, хотя в редактор встроил и распознавание и переключение OEM/ANSI кодовых страниц. Разнообразные перекодировки тоже имеются. Цитата(Dog Pawlowa @ Feb 15 2010, 00:37)  Но sprintf требует указатель на буфер родного типа char. Зачем-же ему фигню какую-то другого типа подсовывать, если с текстами работаете? Да и сам sprintf() штука не слишком незаменимая, дабы его в сотнях мест пользовать. Скорее всего Вам vfprintf(),vprintf(),vspritf() требуются.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 15 2010, 23:13
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(AHTOXA @ Feb 14 2010, 15:23)  А пример ваш не совсем честный. Если есть справа комментарии, то они сползут все  натюрлих, блин... Попробовал как-то в Notepad++ включить пропорциональный шрифт и посмотреть так исходники. Довольно приятственно выглядит сам текст программы, даже не ожидал. Из-за "узкого" пробела лучше переставить TAB=8, так как 4 начинають выглядеть как 2 :-) Одно откровенно паршиво - независимот от установки TAB при переходе к пропорциональному шрифту разбегаются эти комментарии справа, отступы между типами и именами, например, при объявлении структур (точно так же, как они разбегаются при изменении TAB) Можно подровнять табуляциями же - но тогда ужасно выглядит, если открыть в другом редакторе, в котором моноширинный шрифт :-)
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 15 2010, 23:21
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(ReAl @ Feb 16 2010, 02:13)  Попробовал как-то в Notepad++ включить пропорциональный шрифт и посмотреть так исходники. Довольно приятственно выглядит сам текст программы, даже не ожидал. А уж как при этом таблички с шестнадцатеричными числами смотрятся - загляденье просто  Цитата const u_short t_ln[256] = { 0x0000, 0xffd3, 0xdfea, 0xcd3a, 0xbff5, 0xb5ab, 0xad41, 0xa625, 0x9ffb, 0x9a8c, 0x95af, 0x9149, 0x8d45, 0x8993, 0x8628, 0x82f9, 0x7ffe, 0x7d32, 0x7a8e, 0x7810, 0x75b1, 0x7371, 0x714b, 0x6f3e, ... Но это плохой пример - для пущего эффекта надо чтобы через строку чередовались 0x00 и 0xDD.
|
|
|
|
|
Feb 16 2010, 04:31
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(sigmaN @ Feb 16 2010, 07:02)  Или только написание в хорошем редакторе, а отладка в IDE +1. Вся работа с исходниками в хорошем редакторе, а также сборка из него, навигация по сообщениям об ошибках и т.д. А IDE только для внутрисхемной отладки. Поскольку ничего, кроме как ходить по сорцам и работать с отладочными окнами, не требуется, то хилые возможности IDE в части редактирования не напрягают совсем. Плюс еще в том, что в одном и том же редакторе работаешь с исходниками для совершенно разных проектов/платформ, включая и HDL дизайн - среда привычная. Меняются только отладчики. Цитата(sigmaN @ Feb 16 2010, 07:02)  P.S. скачал SlickEdit2009... чувствуется мощность... )) Отож.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Feb 16 2010, 10:13
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(aaarrr @ Feb 16 2010, 01:21)  А уж как при этом таблички с шестнадцатеричными числами смотрятся - загляденье просто  Да, действительно - ужас. Только 1) я такие таблички не читаю - сгенерирвал, вставил и пусть живёт себе. 2) терпеть не могу и при моноширинном шрифте маленькие буквы в hex-числах (как и большую X, поєтому всегда пишу "0x%X" а не "%#x" или "%#X"). А так - так и ничего, если не выбирать шрифты Comic, Gothic и подобные.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 16 2010, 10:24
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(sonycman @ Feb 16 2010, 15:19)  Хм, только бы знать, как прикрутить парсер, к примеру, чтобы компилер кейла выдавал результаты компиляции в окошко слика, и по ним можно было переходить... Project->Properties->Tools, настроить по вкусу запуск любимого тула с перехватом его вывода в окно слика. Переход по сообщениям настраивается на основе регулярных выражений в Build->Configure Error Parsing... Добавляете свой парсер в Categories, создаете регулярное выражение в Expressions (или несколько, если они бывают разного формата). Для отладки выражения там есть инструмент Tools->Regex Evaluator, где можно накидать примеров строк и интерактивно наблюдать, как на них реагирует маска по задаваемому выражению. Если что не понятно по месту, то F1 - в доке все вполне внятно описано.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Feb 16 2010, 21:12
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
А я тоже табуляциями пользуюсь. И, мне кажется, (стыдно признаться) что действительно редактировать удобнее и быстрее. Пробовал переходить на пробелы - мне как то неудобно. Вот думаю, что гоняю себе.  И без фара жить не могу.  Тоже привычка дол@аная нортовская. Плагины я там не ставил никакие, так он меня раздражает жутко, например своим поиском ... Но как говорится "плакали, морщились, но всёже жрали кактус..."  И что-то редакторы крутые у меня не приживаются. И вроде комп вполне приличный, но slick, иногда у меня подтормаживает. А я могу долго думать, а потом пишу быстро, так эти тормоза начинают раздражать. Встроенные функции он как-то ищет избирательно. То подсветит, то забудет... Короче, понятно, что сейчас поступит диагностика "вы просто не умеете их готовить" - и я заранее с этим соглашусь, но всётаки стоит признать, что редакторы и прочие фичи - это елементы комфорта. И я признаю, кидайте в меня камень, что многое - дело вкуса, сложившихся предпочтений и т.п. И корней этого - теперь уже не найти. Да и не хочется так глубоко рыться в себе.  Уже не хочется. Поэтому я поддерживаю _Pasha. Хотелось бы полегче, попроще (как зубило), но чтобы поудобнее. И чтобы не создавал 150 файлов проекта блин...  Редактируй - что дают.  А то на одну настройку SlickEdita уйдёт пол жизни. Хочется отдельный комп покупать для редактирования. И ещё один вопрос. Навеяло этой темой. Интересно, насколько программисты консервативны? Насколько зависят от привычек и пристрастий? Вот что-то подсказывает мне - что здорово зависят. А ведь не должны. Ведь софт, по-определению. А?
|
|
|
|
|
Feb 16 2010, 21:40
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(SasaVitebsk @ Feb 17 2010, 00:12)  И ещё один вопрос. Навеяло этой темой. Интересно, насколько программисты консервативны? Насколько зависят от привычек и пристрастий? Вот что-то подсказывает мне - что здорово зависят. А ведь не должны. Ведь софт, по-определению. А? Не сказал бы, что очень уж консервативны. Накопление опыта и формирование стиля - это достаточно длительный эволюционный процесс, некоторый здоровый консерватизм не помешает. Если, конечно, он не проявляется таким образом, что единожды научившись писать на "C для AVR", человек совершенно теряет желание осваивать что-либо еще.
|
|
|
|
|
Feb 16 2010, 21:58
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(rezident @ Feb 16 2010, 23:37)  Аналогично!  Причина очень простая - общий провод один, а питаний может быть несколько. Пошел оффтопик... Вот именно - и узелков может быть несколько. А без узелков провод - один. И еще - плюсик - это минусик, к которому добавили палочку. И плюсовой провод - такой же как минусовой, но к которому добавили узелок (это меня еще дед так учил). И 12в больше, чем 5В, поэтому на 12в два узелка, на 5в - один. И минус черный (или более темный), потому что земля, а земля - темная. А если есть в палитре красный - то он плюсовой, потому что красный - цвет горячего. Может и не правильно, но запоминается легко. Консервативность есть - сопротивляюсь долго. Но если созрел для изменения - то резко и без переходного периода.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 17 2010, 06:44
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Сергей Борщ @ Feb 16 2010, 23:58)  Пошел оффтопик... Вот именно - и узелков может быть несколько. А без узелков провод - один. И еще - плюсик - это минусик, к которому добавили палочку. И плюсовой провод - такой же как минусовой, но к которому добавили узелок (это меня еще дед так учил). И 12в больше, чем 5В, поэтому на 12в два узелка, на 5в - один. И минус черный (или более темный), потому что земля, а земля - темная. А если есть в палитре красный - то он плюсовой, потому что красный - цвет горячего. Может и не правильно, но запоминается легко. Консервативность есть - сопротивляюсь долго. Но если созрел для изменения - то резко и без переходного периода. +1 к каждому предложению :-) Только меня отец :-)
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 18 2010, 10:13
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(aaarrr @ Feb 17 2010, 20:56)  На мой взгляд, в обоих приведенных вариантах присутствуют лишние пробелы. А на мой взгляд и у вас лишние пробелы. Когда условие чуточку сложнее, трудно читаемо. Код if(a<b && c!=d) { error(); return(0); } а for по умолчанию содержит несколько выражений Код for(i=0; i<20; i++);
|
|
|
|
|
Feb 20 2010, 12:04
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
ИМХО при написании программ на СИ надо пользоваться принципами правил русского или английского языка: Пробелы между словами, фразами, выражениями, и, конечно, после знаков пунктуации (; . ,). А вот после открывающейся скобки и перед закрывающей - пробелы не нужны (совсем). <- вот так Я пишу так: Код for (uint8_t i=0; i<20; i++) { }
while (x) { }
if (a && !b) { } На мой взгляд так приятнее читается.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 20 2010, 15:52
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Ko4egap @ Feb 18 2010, 13:13)  А на мой взгляд и у вас лишние пробелы. Когда условие чуточку сложнее, трудно читаемо. Тогда пишите так: Код if(a<b && c!=d){error();return(0);} Идеал  Ну а я буду так: Код if( ( a < b )&&( c != d ) ) { error(); return( 0 ); } но Код for( int i=0; i < x; i++ ) { call( z, i ); a = sizeof(x); ...... }
typedef struct { union { unsigned long long num; BYTE dd[8]; struct { ulong nlo; ulong nhi; }; }; BYTE cnt; } Numb_t;
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 21 2010, 00:46
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Вот и я почему-то как-то интуитивно захотел отделить кобки if() от выражения. т.е. Код if( ( a < b )&&( c != d ) ) на мой взгляд идеально насчёт Код { call( z, i ); ... } Думаю кто-то может возразить, но лично я нахожу это очень привлекательным. Сперва я, для "экономии строк", пользовался стилем К&R для скобок, но потом понял, что это не совсем удобно при отладке. Хотя красиво и практично в том плане, что нет пустой строки занятой только { А тут и скобки легко считать и строка не пустует. Возьму на заметку. Мне нравится.
--------------------
The truth is out there...
|
|
|
|
|
Feb 21 2010, 07:20
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(sigmaN @ Feb 21 2010, 02:46)  А тут и скобки легко считать и строка не пустует. Возьму на заметку. Мне нравится. Да я вот тоже исключительно на K&R сижу 1, по крайней мере там, где от меня не требуется работать в общем стиле. И тоже на это форматирование, не первый раз уже на этом форуме показанное, с интересом посматриваю. Вроде нравится, а вроде и нет. Надо в каком-то небольшом текущем проекте на него перейти, "покатать на языке, вкус почувствовать". ______ 1 Только в if с длинными условиями ставлю { не в конце, да ещё и за ним утаскиваю закрывающую круглую от условия. Код if( abcdef && qwerty || zxcvbn && poiuytr ) { foo(); }
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 24 2010, 08:03
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
zltigo, не надо путать кислое с длинным. Так: Код if(a<b && c!=d){error();return(0);} писать не буду, потому что я пропагандирую читабельность а не сокращение кол-ва строк. У человеческого глаза довольно узкий угол обзора, в вашем случае, выражение Код if( ( a < b )&&( c != d ) ) расползается по всей строке, а сочетание символов ')&&( ' вообще сума сводит, создается ощущение будто бы это логическое "И" должно выполнится самым первым, вы разделели два цельных выражения на части и приклеили по осколку от каждого к третьему. Почему тогда && не выделен пробелами? А обилие абсолютно ненужных там скобок окончательно запутывает. Вы в школе квадратное уравнение так записывали? ( a * x 2 ) + ( b * x ) + c = 0 Или все-таки так? a*x 2 + b*x + c = 0 вот еще пример a*(b+c) или a * ( b + c ) IMHO во втором случае неочевиден порядок действий Итого: мое мнение: пробелами, стоит разделять отдельные логические выражения, так чтобы порядок действий, в котором они выполняются был как можно более нагляден.
Сообщение отредактировал Ko4egap - Feb 24 2010, 08:24
|
|
|
|
|
Feb 24 2010, 09:49
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
немного неверно пример привел. Стиль записи кода вроде Код if( ( a < b )&&( c != d ) ) соответствует такому стилю записи мат выражений ( a * x 2 )+( b * x )+ c = 0
|
|
|
|
|
Feb 24 2010, 21:23
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Feb 24 2010, 23:41)  Ежу - понятно, а вам, чтобы понять.... Проблемы не в понимании, проблемы в читаемости. Для читаемости полезна прежде всего легкость узнаваемости знакомых конструкций, слов. Конструктивными элементами формирующими легко узнаваемые и распознаваемые конструкции и являются скобочки, отступы, разделители... буквы, цифры, символы не являются конструктивными элементами - они наполнитель.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 24 2010, 21:58
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(zltigo @ Feb 25 2010, 02:23)  Проблемы не в понимании, проблемы в читаемости. Для читаемости полезна прежде всего легкость узнаваемости знакомых конструкций, слов. Вот именно! Кто как привык - тот так и быстрее и легче узнаёт конструкции и слова. А обоснования - это уже потом придумываются. Так что, по большому счёту, мы сейчас спорим о вкусах. Цитата Конструктивными элементами формирующими легко узнаваемые и распознаваемые конструкции и являются скобочки, отступы, разделители... буквы, цифры, символы не являются конструктивными элементами - они наполнитель. Тоже верно. Но зачем в конструкции Код if(x < 2) добавлять к скобочкам (которые уже разделители) ещё и пробелы: Код if( x < 2 ) ?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 24 2010, 22:03
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Feb 25 2010, 00:58)  Тоже верно. Но зачем в конструкции Код if(x < 2) добавлять к скобочкам (которые уже разделители) ещё и пробелы: Код if( x < 2 ) Для того, что-бы отделить собственно конструкцию if( .... ) от ее содержимого x<2 С этой-же целью после if перед скобкой отсутствует пробел. Цитата(AHTOXA @ Feb 25 2010, 00:58)  Так что, по большому счёту, мы сейчас спорим о вкусах. Я не спорю, я просто привел в противовес пример своего форматирования.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 24 2010, 22:51
|
Профессионал
    
Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942

|
Полностью тему не прочитал, только выборочно.
1. Пришла в голову банальная мысль, странно, что задумался только сейчас. Хорошо оформленный текст программы (читаемость, легкость... и т. п.), кстати как и хорошо оформленный простой текст, приводит к меньшей утомляемости при работе с ним. Даже если конкретные участки не интересуют, но когда глаз часто видит кашу, то быстро начинаешь уставать. Не говоря уже про ту часть, непосредственно отладкой которой занимаешься.
2. Кому-нибудь приходилось выполнять перевод текста программы в MS Word и в последующем оформленять по ГОСТ?! Сложилось впечатление (может, у меня что-то криво складывалось), что и табуляции и пробелы и на моноширинных шрифтах «копипастятся» изначально криво, требуют доводки. Использовал для этих целей Courier New. Хотя, быть может, в ворде как раз все правильно, а кривой IDE (AVR Studio).
|
|
|
|
|
Feb 25 2010, 06:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(zltigo @ Feb 25 2010, 02:03)  Для того, что-бы отделить собственно конструкцию if( .... ) от ее содержимого x<2 С этой-же целью после if перед скобкой отсутствует пробел. На мой взгляд, это ужасно... Код if (x < 2) Не стоит экономить на пробелах. Хуже от этого не будет.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|