Здравствуйте Undutchable, Вы писали:
А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.
U>Я пользуюсь вторым, чтобы было проще отслеживать вложенные скобки.
И я тоже.
U>PS По стилю программирования, мне кажется, вопросы открываются в Прочем (или я не прав?)
А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.
Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль. Но не все так просто. Не так давно мне пришлось общаться с одной американской фирмой по написанию одной (не слишком сложной) программы. Так вот, одним из из условий было соблюдение ИХ стиля оформления исходного текста. Вот некоторые пункты (что помню):
1) if, while и т.д. должны иметь стиль, как у тебя стиль 1
2) после if, while, switch и т.д. должен быть один пробел, а уже затем открывающая скобка
3) отступы должны состоять из 4-х пробелов
4) комментарии подобно их примеру (сейчас уже не вспомню)
5) имена переменных должны быть в венгерской нотации (был пример)
Здравствуйте econt, Вы писали:
E>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.
<...>
Вероятно, маэстро изволит шутить? (1) обычно именуется не иначе как K&R style, где буковка K означает Kernighan А, вообще, по этому поводу есть статейка в Jargon File.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.
E>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.
K&R стилем называется как раз первый.
Но не все так просто. Не так давно мне пришлось общаться с одной американской фирмой по написанию одной (не слишком сложной) программы. Так вот, одним из из условий было соблюдение ИХ стиля оформления исходного текста.
Где то я видел целую кучу автоматических расстановщиков стилей,
можно писать как хочешь а потом кодировать перед посылкой.
P.S. Я тоже предпочитаю второй, и вообще последнее время баланс
меняется в его сторону, притом прямопропорционально ширине
диагонали монитора. Одним из аргументов в ползу первого было
то что он не занимает лишнее место
if () {
}
это 2 строки
if ()
{
}
это 3.
С 25 строками на экране из которых под
редактор дано 15 это имело смысл,
а сейчас стало не сильно актуально.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
1. Случай для одного разработчика.
Пиши как угодно. Лишь бы тебе было понятно. Некоторые из моих знакомы писали на Паскале в одну строчку.
Я использую 2, он нагляднее.
В древние временя я писал на Паскале и после каждого end писал коммент: end; {for} или end; {repeat}
Мои программы легко понимали челы даже отдаленно знакомые с Паскалем.
Иногда приходится переносить куски кода из одного проекта в другой и тд. В случае с 1 много непоняток с отслеживанием скобок.
2. Случай для группы разработчиков.
Использовать надо то, что выбрано всеми. Так понятнее. Многие конторы вводят обязательные правила для оформления программ.
MFC и MSCRT юзают 2.
3. Случай с STL. Там стиль Питоновский. Не очень наглядный, но есть свои преимущества. Ходят слухи, что это оттого, что STL рождалась Питоном. Вообще, при расширении библиотеки следует использовать тот стиль оформления, именования и тд., которого придерживались создатели библиотеки.
А>1. А>-------- А>
switch (a) {
case 1:
//break;
case 1:
//break;
default:
//
} //switch (a)
последний комментарий //switch — если switch вылазит за пределы экрана (применяю также и к остальным конструкциям)
case переносится на 4 символа для того, чтобы на одной вертикальной линейке были только открывающие и закрывающие конструкции (напр., switch и закрывающая скобка). То же правило и для остального, т.е. написав
if ()
{
}
на одной линии оказывается 3 элемента, а не 2.
Поэтому в предложенных 2-х вариантах всегда выбираю 2-й — меньше места, чем 1-й и одновременно понятен не меньше.
A>>там { } не нужны, просто не зачем DS>Во-первых красивее, во-вторых — это эе область видимости
А зачем там область видимости?
Или ты собираешься там еще кучу переменных в каждый case вводить с одинаковыми названиями?
Да даже если и так? Отработав один case прога по break перейдет за пределы switch и они так и так уже не будут видны... Или я что-то упустил?
Здравствуйте Anatolix, Вы писали:
E>>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.
A>K&R стилем называется как раз первый.
Да, что-то я забывать стал основоположников... Книжку эту я последний раз читал лет так 8 назад. Так что за замечание спасибо.
Здравствуйте Undutchable, Вы писали:
U>Здравствуйте Аноним, Вы писали:
U>... А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.
U>Я пользуюсь вторым, чтобы было проще отслеживать вложенные скобки.
Специально попробовал в своем текущем проете использовать оба эти стиля и сравнить их, надо отметить, что первый гораздо удобнее и наглядней, с использованием первого возникает эффект удлиннения блоков кода и хуже
охваьывается структура кода и логика, так что для логики полезней, на мой взгляд второй вариант, а для человеко/сторок конечно первый =)
Хотя это всего лишь мое мнение.
Взойти на гору можно разными путями, но само восхождение остается неизменным.