Re[7]: А зачем подчёркивать различия? :)
От: Alex Alexandrov США  
Дата: 27.04.08 18:21
Оценка: 7 (1)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Alex Alexandrov, Вы писали:



AA>>Из двух других примеров Романа

AA>>я решил (вполне ожидаемо), что мы обсуждаем С++.

E>IMHO обсуждаемые проблемы и идеи универсально применимы или непременимы в С/С++/С#...


Идеи — да. Реализация идей, как обычно, имеет кучу мест, где прячутся бесы. Я лишь имел в виду, что использование хвостовых запятых в перечислениях является нарушением текущего стандарта. Когда у нас код в первый раз переводился на GCC и когда начали строго следить за ворнингами, эти хвостовые запятые пришлось в коде явно вычищать. Собственно, этим опытом и делюсь. Если все это уже знают — сорри за флуд.
It's kind of fun to do the impossible (Walt Disney)
Re[6]: Зачем друг друга мучить?
От: igna Россия  
Дата: 27.04.08 18:56
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Ваш начальник был прав, непонятно только, почему он не смог объяснить вам причины.


Ну это было давно, но если не ошибаюсь главным аргументом было то, что конструктор якобы не должен бросать исключений.
Re[7]: Зачем друг друга мучить?
От: Erop Россия  
Дата: 27.04.08 20:59
Оценка:
Здравствуйте, igna, Вы писали:

I>Ну это было давно, но если не ошибаюсь главным аргументом было то, что конструктор якобы не должен бросать исключений.

Это заваит от того, в каком случае бросает исключение конструктор. Если часто, то н едолжен.
А ещё "давно" было много реализаций С++, на которых исключения действительно было лучше не бросать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: Обидны мне слова ваши, дяденька...
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 27.04.08 22:49
Оценка: +2
R>>Речь о том, что вместо того, чтобы инспектировать код подчиненных на наличие нестандартного стиля форматирования, можно просто контролировать использование единой настройки автоформатирования, которую также хранить в системе контроля версий.

AA>Настройки форматирования IDE могут быть дополнением к описанным правилом, но уж никак не заменой.


Любите сложности?
... << RSDN@Home 1.2.0 alpha 4 rev. 1088>>
Re[8]: Обидны мне слова ваши, дяденька...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 28.04.08 03:52
Оценка: +1
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Хм, то есть вместо того, чтобы простым текстом описать требования к форматирования, мы вводим требования к тому, какую IDE использует человек. Типа, демократия по-майкрософтовски? В сад. Я весь код в Vim пишу, кто-то у нас в команде Emacs использует, кто-то в редакторе Фара все пишет. Следовать правилам форматирования я нахожу весьма разумным, пересаживать всех на одну ИДЕ — нет. Настройки форматирования IDE могут быть дополнением к описанным правилом, но уж никак не заменой.

Следование выбору единой IDE скорее решение конкретного человека, чем приказное наставление: человек выбирает, или ему кроме того, что с него требуют выполнения поставленных задач, еще и выделять время на форматирование кода в соответствии со стандартом команды — или использовать инструмент, который сделает это в фоне за него. Вместо того, чтобы тратить время на ручное упорядочивание бардака в условиях предоставленной мнительной свободы, мне кажется, стоит тратить время на работу.
Re[7]: Зачем друг друга мучить?
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 28.04.08 03:52
Оценка: +1
Здравствуйте, igna, Вы писали:

I>Ну это было давно, но если не ошибаюсь главным аргументом было то, что конструктор якобы не должен бросать исключений.

Мимо. Единственный способ отменить создание объекта (а это достаточно часто нужно, при формировании некорректных входных данных) — выбросить из конструктора исключение. Насколько понял, вы пишете на Java — посмотрите конструкторы классов JDK, практически каждый бросает исключение в соответствующем случае.
Re[9]: Обидны мне слова ваши, дяденька...
От: Alex Alexandrov США  
Дата: 28.04.08 04:44
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Здравствуйте, Alex Alexandrov, Вы писали:


R>Следование выбору единой IDE скорее решение конкретного человека, чем приказное наставление: человек выбирает, или ему кроме того, что с него требуют выполнения поставленных задач, еще и выделять время на форматирование кода в соответствии со стандартом команды — или использовать инструмент, который сделает это в фоне за него. Вместо того, чтобы тратить время на ручное упорядочивание бардака в условиях предоставленной мнительной свободы, мне кажется, стоит тратить время на работу.


Почему "ручное упорядочивание"? Есть масса способов сделать это автоматически. Возможностей Вима хватает с головой, да еще и остается. У Visual Studio возможности куда беднее. Есть, конечно, Visual Assist и прочие, но ведь их покупать надо.
It's kind of fun to do the impossible (Walt Disney)
Re[13]: Ну что ж. Мастер класс, так мастер класс :)
От: fmiracle  
Дата: 28.04.08 05:09
Оценка:
Здравствуйте, Erop, Вы писали:

C>>А документация пишется тут же — в исходном коде с помощью Doxygen/JavaDoc.

E>Кстати, в сложных, наукоёмких проектах такой подход совершенно не работает. В таких проектах документация -- довольно сложные и свосем предментыне статьи


К каждому методу??? Ой ли?

Может быть все же отдельная большая документация с подробными описаниями, которая все равно нужна, и общий reference по классам и методам, который как раз прекрасно генерится по JavaDoc?
Re[8]: Альтернатива
От: fmiracle  
Дата: 28.04.08 05:13
Оценка: +1
Здравствуйте, igna, Вы писали:

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


I>Верно. Но у такого подхода есть и недостатки. Например надо обрабатывать ситуацию, когда файл не найден. Или еще иногда нужно запретить пользователю изменять список. Не думаю, что предлагаемый тобой подход является предпочтительным в 100% всех случаев. Бывает, что предпочтительнее хранить список в исходном коде.


Еще можно хранить в ресурсном файле. Или заполнять список в коде и искать по нему потом...
Re: Запись if с несколькими || или &&
От: fmiracle  
Дата: 28.04.08 05:21
Оценка: 1 (1) +1
Здравствуйте, igna, Вы писали:

а как записать подобное условие:

if( cond3 || (cond1 && cond2) || (cond4 && cond5 ) )

?
я правильно понимаю, что это должно быть записано так:

if( false 
    || cond3 
    || (true 
        && cond1 
        && cond2
       ) 
    || (true 
        && cond4 
        && cond5 
       ) 
   )


?

А не убьешься читать такую конструкцию?

З.Ы. я использую перенос длинных строк по && или || в if, но только если они получаются слишком длинные — чтобы удобнее воспринимать строку без скроллнга, или, иногда, если условие разбитое на строчки выглядит понятнее.
Но замусоривать лишними true/false и разбивать на строки даже короткие условия — это ужасная идея...
Re[2]: Запись if с несколькими || или &&
От: igna Россия  
Дата: 28.04.08 05:50
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>А не убьешься читать такую конструкцию?


Не надо убиваться, я ведь не утверждал, что if(false нужно использовать всегда.
Re[8]: Зачем друг друга мучить?
От: igna Россия  
Дата: 28.04.08 06:56
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, igna, Вы писали:


E>Это заваит от того, в каком случае бросает исключение конструктор. Если часто, то н едолжен.

А если часто, но не конструктор, а Initialize?

E>А ещё "давно" было много реализаций С++, на которых исключения действительно было лучше не бросать

Это был VC++ 6.0.
Re[8]: Зачем друг друга мучить?
От: igna Россия  
Дата: 28.04.08 07:03
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Мимо. Единственный способ отменить создание объекта (а это достаточно часто нужно, при формировании некорректных входных данных) — выбросить из конструктора исключение. Насколько понял, вы пишете на Java — посмотрите конструкторы классов JDK, практически каждый бросает исключение в соответствующем случае.


Тогда это был C++. И почему-то было популярно создавать "пустой" объект и лишь затем заполнять его содержанием. Вот пример: CFileVersionInfo.
Re[9]: Зачем друг друга мучить?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 28.04.08 08:31
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, rsn81, Вы писали:


R>>Мимо. Единственный способ отменить создание объекта (а это достаточно часто нужно, при формировании некорректных входных данных) — выбросить из конструктора исключение. Насколько понял, вы пишете на Java — посмотрите конструкторы классов JDK, практически каждый бросает исключение в соответствующем случае.


I>Тогда это был C++. И почему-то было популярно создавать "пустой" объект и лишь затем заполнять его содержанием. Вот пример: CFileVersionInfo.


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

Альтернативы этому подходу фактически нет. Можно, конечно, извращаться — построить частный (private) конструктор, который готовит к десериализации, и дружественную функцию, которая его вызывает с комплектом нужных аргументов. Но это то же с видом сбоку, если не сложнее.
The God is real, unless declared integer.
Re[7]: Запись if с несколькими || или &&
От: jazzer Россия Skype: enerjazzer
Дата: 28.04.08 08:36
Оценка: 2 (1)
Здравствуйте, igna, Вы писали:

I>Здравствуйте, CreatorCray, Вы писали:


CC>>Да замените себе diff утилиту на ту, которая будет подсвечивать не только измененные строки но и что именно в строках изменилось.


I>На какую?


tkdiff (кроссплатформенный, ибо Tk)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: Зачем друг друга мучить?
От: igna Россия  
Дата: 28.04.08 09:46
Оценка:
Здравствуйте, netch80, Вы писали:

N>Это и сейчас "популярно" в том случае, если штатно предусматривается возможность создания группы объектов десериализацией потока. Тогда пустой конструктор создаёт "мёртвый", но готовый к принятию потокового представления объект.


Ну тогда это было популярнее, в том смысле, что кое-кто всегда выносил "реальную" инициализацию из конструктора. Просто на всякий случай, как в приведенном мной выше примере.
Re[14]: Ну что ж. Мастер класс, так мастер класс :)
От: Roman Odaisky Украина  
Дата: 28.04.08 10:34
Оценка: +1
Здравствуйте, fmiracle, Вы писали:

C>>>А документация пишется тут же — в исходном коде с помощью Doxygen/JavaDoc.

E>>Кстати, в сложных, наукоёмких проектах такой подход совершенно не работает. В таких проектах документация -- довольно сложные и свосем предментыне статьи :)

F>К каждому методу??? Ой ли?

F>Может быть все же отдельная большая документация с подробными описаниями, которая все равно нужна, и общий reference по классам и методам, который как раз прекрасно генерится по JavaDoc?

Уж сколько раз твердили миру. В документации должно быть описано не то, что делает код (точнее, не только то), а зачем он там, какую проблему решает.
До последнего не верил в пирамиду Лебедева.
Re[10]: Обидны мне слова ваши, дяденька...
От: Roman Odaisky Украина  
Дата: 28.04.08 10:40
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

R>>Следование выбору единой IDE скорее решение конкретного человека, чем приказное наставление: человек выбирает, или ему кроме того, что с него требуют выполнения поставленных задач, еще и выделять время на форматирование кода в соответствии со стандартом команды — или использовать инструмент, который сделает это в фоне за него. Вместо того, чтобы тратить время на ручное упорядочивание бардака в условиях предоставленной мнительной свободы, мне кажется, стоит тратить время на работу.


AA>Почему "ручное упорядочивание"? Есть масса способов сделать это автоматически. Возможностей Вима хватает с головой, да еще и остается. У Visual Studio возможности куда беднее. Есть, конечно, Visual Assist и прочие, но ведь их покупать надо.


Vim — это очень хороший текстовый редактор, но всё равно «d\t.pb\t(gse\t;» удобнее, чем «data.push_back(getSomeElement());».

P. S. Брам произносит его как «Фим».
До последнего не верил в пирамиду Лебедева.
Re[11]: Offtop: vim & Bram Moolenaar
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 28.04.08 11:12
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>P. S. Брам произносит его как «Фим».


К голландском звук 'v' произносится как нечто среднее между нашим 'ф' и 'в'.
-- Андрей
Re[9]: Зачем друг друга мучить?
От: Erop Россия  
Дата: 28.04.08 22:02
Оценка:
Здравствуйте, igna, Вы писали:

E>>Это заваит от того, в каком случае бросает исключение конструктор. Если часто, то н едолжен.

I>А если часто, но не конструктор, а Initialize?

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