Здравствуйте, CompleteBrains, Вы писали:
CB>В этом проекте я старался писать код, на который было бы приятно смотреть. Приятность кода состоит из множества параметров к тому же здесь должна присутствовать некая неописуемая магия. Приятность начинается на уровне отдельных модулей и простирается вплоть до локальных переменных. Хотелось, чтобы код можно было всунуть в рамочку и повесить в музее.
CB>В общем, что вы думаете об этом проекте? Акцентируя внимание на его восприятии. И учтите, что я пытаюсь прокатить не за зеленого новичка, поэтому отнеситесь критично и за каждый промах валите меня гнилым помидором. Этот код должен стать идеальным. Ответственность за это лежит на вас (драматизирую).
CB>Итак, налетай народ, валим нуба! CB>Для начала ознакомьтесь с описанием: диаграммы (я старался), структура, поэзия, недостатки (очень много недостатков): http://www.scribd.com/doc/138457565/Flying CB>Ну и виновник торжества, сам код: https://github.com/CompleteBrains/Flying
Так... Пустые методы — зачем растаскивать скобки на несколько строк? Ты ещё комментарий напиши, что это — пустой метод.
using namespace std — то есть, то нет. Забавно вот это:
using namespace std;
// ...
std::map ...
Табуляции в форматировании — зло.
Зачем нужна struct Pointer? Ты собираешься регулярно менять реализации указателей? И почему она повторена в нескольких местах?
try/catch, проверка кодов возврата, я так понимаю, не царское дело?
В хидерах что-то мрачное, намекающее на необходимость отлучения автора от клавиатуры (мои комментарии в: /* */):
// Library functions export#define exportdll __declspec(dllexport)
/* Это лучше оформить так, чтобы запись символа экспорта отличалась от системной,
и не создавала путаницы, если будет несколько библиотек. Например:
#define FLYING_DLL_EXPORT
*/
// I hate CapsLock#define null NULL
/* Да мне наплевать, что ты там hate,
вынесу эту строчку при первом удобном случае.
Не надо косить под компилятор. */
/* За такие вещи полагается месяц читать Страуструпа вслух по пять часов в день. */
// Logic symbols#define equals ==
#define not !
#define notequal !=
#define and &&
#define or ||
/* Убрать!!! Содержательного смысла в них нет. */
// Literals#define Space " "#define Tab " "#define Endl "\n"/* Это всё тоже лишнее. */
// Visual Studio Macrocosm#define FunctionName __FUNCTION__
#define Line __LINE__
#define CurrentTime __TIME__
Вывод: автор нуб и опозорился.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>В хидерах что-то мрачное, намекающее на необходимость отлучения автора от клавиатуры (мои комментарии в: /* */):
Не хватает еще
#define begin {
#define end }
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Ну минусы все отписали. Переработанная версия должна быть уже почти идеал ))
По мне — для начала нормуль. Я б тебя в команду взял, я не сноб )
Основной плюс — разобраться и переписать этот код будет не слишком сложно. Так же импонирует подход к проработке, вектор, так сказать.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>Везде одинаково выглядеть не может. Есть мониторы размеров 12", а есть 30". ОК>>Ты не понял. Я имел в виду индентацию кода а не размер мониторов. А может быть и понял но ушел от ответа таким образом.
IT>Это ты не понял. Код по разному смотрится на разных мониторах. Если ты мне прижал свой код к краю МОЕГО экрана ТВОИМИ двумя пробелами индентации, то нафиг мне такой твой код.
Нет, это ты не понимаешь и забудь ты про разные размеры мониторов. Допустим у нас мониторы одного размера. Ты выставил табы в четыре спейса и сделал индентацию в два тэба, т.е. ты у себя видишь восемь спейсов. А мне нравятся табы в 8 спейсов. То есть получается у меня уровень индентации будет 16 спейсов и в зависимости от того сколько у тебя уровней вложенности, то у меня код начнет "уплывать" вправо в то время как у тебя он будет смотреться нормально. Я, конечно, могу уменьшить табы до четырех спейсов чтобы у меня смотрелось как у тебя, но почему я это должен делать? Так что получается палка о двух концах. А если еще представить другого программиста который выставляет табы в два спейса, то это вообще ужас начинается...
Так что самое лучше решение это делать так, чтобы код выглядел как задумал начальный автор, т.е. иметь везде спейсы. Или иметь соглашение о том каким должен быть выставлен таб но как инфорсить его я не представляю. Все равно код перекосится вопреки всем стараниям; я это постоянно вижу. Так что все зло от табов.
IT>>>Вот вот. Если я использую табы, то как хочу так и регулирую этот размер. А если извращенец отбивает код двумя пробелами, потому что у него 12" монитор, то на моём мониторе это выглядит как полный отстой. ОК>>Опять речь не о мониторах и не о тебе одном. Ты, допустим, выставишь один размер табов потому что тебе так удобно и нравится. Без проблем тут но мне нравится другой размер табов. Как у меня будет смотреться твой код? Поэтому я и говорю что в коде должны быть только спейсы.
IT>Так в том то и дело, что если отбивать код табами, то каждый сам сможет настроить свой размер табов. Даже сможет его настроить для себя на разных компьютеровх, например, на лаптопе с экраном 14" и на десктопе с экраном 30". А размер пробелов не настроишь.
Настраиваешь не размер пробелов а их количество. Я тебе выше уже объяснил какая каша бывает в коде где разные табы и это при одинаковых мониторах! Так что лучше иметь код в том виде как задумал изначальный автор. Будет не перфект но всяко лучше той мешанины из табов разных размеров и спейсов.
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
Ой, как всё запущено-то...
ГВ>>Зачем нужна struct Pointer? CB>Я ненавижу нижнее подчеркивание
На здоровье! Но когда ты передашь свой код кому-то ещё, он вынужден будет заново уяснять, как обозначены указатели. И фиг бы с ним, но ты же ещё раскидал копии этой структуры по разным хидерам — это-то нафига делать?
ГВ>>/* За такие вещи полагается месяц читать Страуструпа вслух по пять часов в день. */ CB>Это потому что везде где встречается например not (DontKillMe()) будет замена символов? А еще причины есть?
Это потому, что когда C++-программист будет читать твой код и увидит "and", "not", "or", первое, что он подумает, что это переменная или какое-то специфическое служебное слово из последних изысков. А вдруг это вообще — название класса? А если это макро, то какие у него побочные эффекты? Чтобы ответить на эти вопросы ему придётся копаться в хидерах, хотя этого можно было бы и избежать. Ровно то же самое относится к null и Space/Tab/Endl.
А что, наконец, делать с битовыми операциями? Они тоже — and/or/xor. Как будешь обозначать? bitand, bitor, bitxor?
Потом, тебе нравится "and" (строчные буквы), а кому-то, положим, нравится "AND" (прописные буквы). Вы сделаете два Syntax.h...
И на сладкое. Например, в boost встречаются методы null(). Догадываешься, какой будет эффект, если попытаться совместить boost с Syntax.h?
ГВ>>Ещё убери пустые комментарии "Description:", зачем они? Или заполни их содержательным текстом. CB>Чтобы методы визуально отделять друг от друга иначе они сливаю в сплошное мессиво
А просто разделители без текстов поставить — нет? Текст пишут для того, чтобы его читали, либо не пишут вообще. Если читать в комментарии нечего — нарисуй вместо него линию.
A>>Syntax.h это вообще жесть, я думал так только индусы могут CB>Why? А то действительно, не понимаю
Потому что не надо пытаться делать из C++ другой язык программирования с другим синтаксисом. Если тебе нужен другой язык — возьми этот самый другой язык и успокойся.
8>>а еще полно тупых комментов, типа: CB>Отмазка: иногда такие нужны чтобы быстро понять, что тут делается не вникая в код
Вот как раз поэтому я и сказал тебе, что не надо пытаться под кого-то косить. Программист с приличным опытом не нуждается в бессодержательных комментариях, потому что привык читать код.
ioj>>дефайны на стандартные вещи — удел полных *даков CB>Why? Why? Oh God WHY?
Потому что к стандартным вещам все уже привыкли и вот такая запись не вызывает вопросов:
if (!Foo()) {...}
а вот такая заставляет задумываться, о чём она, вообще:
if (not Foo()) {...}
Что это за not? Будет ли здесь вызвано неявное приведение типа, возвращаемого Foo к bool? Или к int? Или есть какой-нибудь MySuperBoolean?
ioj>>использование в хидерах типов, которые подключаются неявно CB>Да, это отстой. Но у меня возникла проблема когда я попытался найти это в коде. Требуется помощь
По видимому имеются в виду типы вроде Vector и Matrix. Кстати говоря, я тоже не понял, зачем ты ввёл эти переопределения. Но ioj тут лучше ответит.
CB>Что-то не то. Вы все к деталям придираетесь, к в вопросам касательно вкусов, как будто там не нет более существенных косяков. Короче никакое не мясо, а так, щеночки сосиску покусали. И да, очень недостает аргументов на конкретных примерах. Вас что, никто критике не учил?
Не знаю, кому как, но мне стало безразлично, что у тебя там за суть, после того, как я увидел вакханалию очередного улучшения языка. Автор явно сосредоточен не на том, на чём следовало бы.
Вот ещё прекрасное (не помню уже, где именно, а код ты убрал):
if (x) { ... } // x - число с плавающей точкой
Ты в курсе о погрешностях вычислений с плавающей точкой?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
ГВ>>>>Табуляции в форматировании — зло. IT>>>А за пробелы повбывав бы.
ГВ>>За какие именно?
IT>За ведущие.
Табов вообще в коде не должно быть. Пробелы — the lowest common denominator и код с пробелами будет выглядет везде одинакого независимо от такого сколько спейсов выставили автор и остальные программисты.
Есть извращенцы которые по два спейса на таб ставят. Можешь представить какая муть получается у тех у кого восемь спейсов.
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Код не без странностей но далеко не полное г.!
A>С++ там и рядом не лежал, ни С++11, ни вообще С++
Именно то количество языка что задействовал автор в коде и должно быть в реальном проекте. А ты, я так понимаю, будешь пихать в проект все фишки плюсов только потому что реальный пацан!
A>синглтоны глаза режут
Тут согласен. Синглтоны вообще не нужны.
A>Syntax.h это вообще жесть, я думал так только индусы могут
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>Я переместил тему потому что в форуме cpp глухо а мне нужно мясо. Поскольку мне этот код демонстрировать в придачу к резюме, раздел форума выбрал правильный, надеюсь
Шоб былО мясо, нужно такое в священные войны постить )))
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали: CB> Поскольку мне этот код демонстрировать в придачу к резюме, раздел форума выбрал правильный, надеюсь
Забей, "идеальный код" — понятие очень субьективное. Как бы тут его не вылизывали, интервьювер всеравно найдет кчему докапаться.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Да я давно над этим подумал и вот что тебе скажу. Ты боишься "разметки кода прибитой гвоздями к предпочтениям разработчика" но не боишься самого кода? Что-то тут не то. Считай что эта прибитая разметка и есть часть самого кода/стиля.
Не надо смешивать код и оформление. Корявый код может быть отлично оформлен, но речь не о нем.
ОК>Что тут непонятного? Писали разные люди в разное время разные файлы с разными установками, потом же правили эти файлы и о том что происходило — ну в общем имеем то что имеем. И это не впервой так!
Если бы команда позаботилась об автоматическом энфорсменте coding style во время билда, такого не случилось бы. В противном случае я не вижу разницы между "каждый выбирает себе размер отступа в пробелах, и наплевав на остальные сабмитит такие файлы" и "каждый выбирает свой собственный стиль во всем — скобках, пробелах, именовании, комментариях и т.д."
ОК>Мелкая? Я тебе привел еще одну причину по которой стоит от табов отказаться!
Этой проблемы не существует, она надуманна и искусственна. Более того, использование пробелов здесь только мешает делу, потому что при изменении названия функции (что может произойти при автоматическом рефакторинге), все поплывет и придется вручную переформатировать. Отфильтровывать подобные изменения в репозитории от нормальных правок — то еще удовольствие.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>В общем, что вы думаете об этом проекте? Акцентируя внимание на его восприятии. И учтите, что я пытаюсь прокатить не за зеленого новичка, поэтому отнеситесь критично и за каждый промах валите меня гнилым помидором. Этот код должен стать идеальным. Ответственность за это лежит на вас (драматизирую).
нубас, смари, кароч, первое чо те надо уяснить:
дефайны на стандартные вещи — удел полных *даков
statefull синглтоны — удел полных *даков
геттеры/сеттеры для полей, изменение которых не нарушает контракт интерфеса — удел полных *даков
использование в хидерах типов, которые подключаются неявно, как следствие важна очерёдность подключения хидеров в cpp — удел полных *даков
а я ведь только 2 минуты поглядел, больше не хочется, т.к. налицо ООП головного мозга и возраст автора < 20 лет.
нормально делай — нормально будет
Re[12]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Это не гипотетическая ситуация а реальная ситуация которую я вижу каждый день и кроме как вручную ее не исправить т.к. много кода и разные табы и код кругом поехавший. Так что тэбов лучше не иметь.
Это как раз та ситуация, где табы — это решение проблемы. На самом деле все зло у вас не из-за табов или пробелов, а из-за индентации, идиотской попытки выравнивать строчки. Если отказаться от индентации, все становится легко и просто. А после некоторого привыкания, еще и красиво.
ОК>Или иметь соглашение о том каким должен быть выставлен таб но как инфорсить его я не представляю. Все равно код перекосится вопреки всем стараниям; я это постоянно вижу.
Для C# есть StyleCop, который прекрасно энфорсит это дело.
ОК>Нет, это не мои предпочтения. Это просто понимание что табы большее зло. Потом, представь такой фрагмент кода: ОК>
ОК>Название функции индентированно тэбом а вот аргументы 2 — 4 не получается индентировать табами. Поэтому люди еще добавят спейсов и код поплывет. Только не говори что такого стиля не бывает!
За такой стиль нужно бить по рукам. Код должен выглядеть так:
ОК>
A>>>А почему вы все пишете "хидер"? A>>>"Header" разве так звучит?
P>>Во-первых, чтобы написать "header", надо переключить раскладку. P>>Во-вторых, "заголовок" — длиннее. P>> A>Да не, я чисто к фонетике попридираться. A>"Header" должен транслитерироваться в "хедер". A>В "head" и "heat" разные гласные. A>Ну да бог с ним.
Безграмотные потому что. Мне тоже это режет по глазам/ушам.
Он думает, что пишет качественный код. Скоро его мнение изменится
В этом проекте я старался писать код, на который было бы приятно смотреть. Приятность кода состоит из множества параметров к тому же здесь должна присутствовать некая неописуемая магия. Приятность начинается на уровне отдельных модулей и простирается вплоть до локальных переменных. Хотелось, чтобы код можно было всунуть в рамочку и повесить в музее.
В общем, что вы думаете об этом проекте? Акцентируя внимание на его восприятии. И учтите, что я пытаюсь прокатить не за зеленого новичка, поэтому отнеситесь критично и за каждый промах валите меня гнилым помидором. Этот код должен стать идеальным. Ответственность за это лежит на вас (драматизирую).
Здравствуйте, Alexéy Sudachén, Вы писали: AS>Шоб былО мясо, нужно такое в священные войны постить )))
по странному недоразумению "О работе" досихпор находится не в разделе СВ. Хотя группа состоит из холиварских тем чуть менее чем полностью.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
On 30.04.2013 16:58, Геннадий Васильев wrote:
> Зато кататься по тексту — дольше. В прочем, это не особо важный момент.
На мышке есть нынче очень приятное колесико.
> Иногда using namespace std приносит пользу, но лучше не смешивать в > одном блоке std:: и using namespace std.
А потом какой "самородок" внезапно совтсвенный велосипед строк
присобачит, или такой велосипед уже с незапамятных времен, где
паралельно в проекте живет и с ним ты просто не пересекся. Зато баги
потом после ловить очень весело.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
CB>Я переместил тему потому что в форуме cpp глухо а мне нужно мясо. Поскольку мне этот код демонстрировать в придачу к резюме, раздел форума выбрал правильный, надеюсь
Я в тот форум не заглядываю по одной простой причине. Люди которые там бывают программировать не умеют. Фишки языка знают? Да. Писать нормальный, поддерживаемый код умеют? Нет. Наискучнейший форум!
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
ГВ>>>Табуляции в форматировании — зло. IT>>А за пробелы повбывав бы.
CC>Вот за шо надо вбывать так это за микс табов и пробелов в одном и том же отступе.
Табов вообще лучше не иметь.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
ОК>Табов вообще в коде не должно быть. Пробелы — the lowest common denominator и код с пробелами будет выглядет везде одинакого независимо от такого сколько спейсов выставили автор и остальные программисты.
Везде одинаково выглядеть не может. Есть мониторы размеров 12", а есть 30".
ОК>Есть извращенцы которые по два спейса на таб ставят. Можешь представить какая муть получается у тех у кого восемь спейсов.
Вот вот. Если я использую табы, то как хочу так и регулирую этот размер. А если извращенец отбивает код двумя пробелами, потому что у него 12" монитор, то на моём мониторе это выглядит как полный отстой.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Парень, не тушуйся и не особо прислушивайся тут к некоторым. Код не без странностей (те же дефайны для стандартных операторов) но он далеко не так плох чтобы орать "код — гавно!" Ты просто не видел какие "сеньйоры" бывают с кучей лет экспириенса. А твой код при желании легко будет понять и тебе очень большой плюс что ты не стал тащить все фишки языка в проект как тут тебе уже наговорили. Прислушайся к советам на счет дефайнов, ненужности этих синглтонов и со временем ты точно будешь иметь право называть себя software engineer а не c++ developer какими себя считают покусанные Александреску.
P.S. По мелочи. Посмотри как объявлены HINSTANCE и HWND и не передавай их по константной ссылке.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>Походил по папкам, почитал исходники. Этот код smells. ОК>Жестко ты. Да этот код (минус странности в виде дефайнов для логических операторов плюс еще что-то) даст фору тем "сеньйорам" с которыми мне довелось поработать.
Ощущение того, что код smells не зависит от того, написан он начинающим или сеньйором, а зависит исключительно от самого кода. Конкретно этот код не прошел бы code review в моей команде по куче причин, которые я не буду здесь расписывать, потому что многое уже сказали, да и не имеет смысла. Ну а то, что ваши сеньйоры пишут код еще хуже, говорит об уровне команды/проекта/руководителя, да и об общем обесценивании всякого рода титулов.
Re[10]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Это ты не понял. Код по разному смотрится на разных мониторах. Если ты мне прижал свой код к краю МОЕГО экрана ТВОИМИ двумя пробелами индентации, то нафиг мне такой твой код. ОК>Нет, это ты не понимаешь и забудь ты про разные размеры мониторов. Допустим у нас мониторы одного размера.
Не-не-не. Допустим у нас разные мониторы. В отличиие от твоей гипотетической ситуации ниже это реально произошедший факт. Немерлисты, особенно при поездках на дачу, очень сильно любят использовать два пробела для отступов на своих микроскопических мониторах лаптопов. Я с таким кодом на моём мониторе работать не смог.
ОК>Ты выставил табы в четыре спейса и сделал индентацию в два тэба, т.е. ты у себя видишь восемь спейсов. А мне нравятся табы в 8 спейсов. То есть получается у меня уровень индентации будет 16 спейсов и в зависимости от того сколько у тебя уровней вложенности, то у меня код начнет "уплывать" вправо в то время как у тебя он будет смотреться нормально. Я, конечно, могу уменьшить табы до четырех спейсов чтобы у меня смотрелось как у тебя, но почему я это должен делать? Так что получается палка о двух концах. А если еще представить другого программиста который выставляет табы в два спейса, то это вообще ужас начинается...
Это всё какой-то высосанный из пальца пример. Зачем мне выставлять у себя табуляцию на 4 пробела и использовать их две вместо того, чтобы сразу поставить одну табуляцию на 8 пробелов? Что за чушь?
ОК>Так что самое лучше решение это делать так, чтобы код выглядел как задумал начальный автор, т.е. иметь везде спейсы. Или иметь соглашение о том каким должен быть выставлен таб но как инфорсить его я не представляю. Все равно код перекосится вопреки всем стараниям; я это постоянно вижу.
Включи у себя в редакторе Visible White Spaces, покрась их в ненавязчивый цвет, заставь это сделать своих коллег и эта проблема исчезнет навсегда. Проверено.
ОК>Так что все зло от табов.
Всё зло от попыток доказать, что твои предпочтения самые лучшие.
IT>>Так в том то и дело, что если отбивать код табами, то каждый сам сможет настроить свой размер табов. Даже сможет его настроить для себя на разных компьютеровх, например, на лаптопе с экраном 14" и на десктопе с экраном 30". А размер пробелов не настроишь.
ОК>Настраиваешь не размер пробелов а их количество.
Ты их не настраиваешь, а гвоздями вбиваешь в каждую строчку своего кода. И другие потом с этим поделать ничего не смогут. В отличие от табуляций.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, alexsmirnoff, Вы писали:
A>Да не, я чисто к фонетике попридираться.
От таких слов требуется ровно одно — чтобы собеседникам было понятно, о чём идёт речь. Корректно оно транскрибировано или не совсем — какая разница? На мой взгляд, "хидер" благозвучнее, чем "хедер" и "хеадер". Может быть, из-за того, что "хидер" созвучно слову "хихикать", а "хедер"... Ну, вы поняли — одному широко известному ругательству.
P.S.: Меня, например, коробит, когда носители русского языка название "C++" произносят как "сиплАсплАс" (корректная транскрипция английского: "C plus plus"), на фига это пижонство? Симайнасмайнас, блин.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>Итак, налетай народ, валим нуба!
Если проект будет приаттачен к резюме шута, то может и прокатит, в противном случае твои шутки юмора выглядят как минимум глупо, а как максимум сразу отворачивают от желания работать с таким умником.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
CB>Итак, налетай народ, валим нуба!
вопрос -- зачем передавать windowHandler как аргумент в Input.cpp? храните это внутри экземпляра класса, а присваивайте при инициализации.
это ужос. делайте #if 0 или #ifdef (_something_).
в этом случае IDE посвечивает "выключенный" код, а ifdef легко "включить" одним движением. а ваши комментарии -- после того как вы их раскоментируете, вы забудете как и что закомментировать обратно.
ЗЫ. тренируйтесь в написании кода на бумаге. в несложных задачках, которые влезают в полсотни строк. так быстрее добиться "просветления".
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>Что-то не то. Вы все к деталям придираетесь, к в вопросам касательно вкусов, как будто там не нет более существенных косяков. Короче никакое не мясо, а так, щеночки сосиску покусали. И да, очень недостает аргументов на конкретных примерах. Вас что, никто критике не учил?
лично мне откровенно лень объяснять, не потому что долго или что-то, а потому что бесполезно. Чтобы тебе начать понимать некоторые простые вещи ( типа *удацких дефайнов ) тебе необходимо хоть раз поработать в команде С++ разработчиков хотя бы месяц, более сложные вещи ( вроде ненужности геттеров/сеттеров, синглтонов и прочего ) нужно поработать более продолжительное время, написать для начала тысяч сто строк на С++, и тогда придёт понимание. Пока же тебе что-либо объяснять бессмысленно, как бессмысленно объяснять новичку зачем нужно программу разбивать на функции, а не писать всё сразу в main. И да, не нужно отвечать "ну вы ответьте всё равно, я пойму", я вижу как и что ты отвечаешь на уже существующие замечания, и это лишний раз подтверждает что не в коня корм.
нормально делай — нормально будет
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, ioj, Вы писали:
ioj>Здравствуйте, CompleteBrains, Вы писали:
CB>>Что-то не то. Вы все к деталям придираетесь, к в вопросам касательно вкусов, как будто там не нет более существенных косяков. Короче никакое не мясо, а так, щеночки сосиску покусали. И да, очень недостает аргументов на конкретных примерах. Вас что, никто критике не учил?
ioj>лично мне откровенно лень объяснять, не потому что долго или что-то, а потому что бесполезно. Чтобы тебе начать понимать некоторые простые вещи ( типа *удацких дефайнов ) тебе необходимо хоть раз поработать в команде С++ разработчиков хотя бы месяц, более сложные вещи ( вроде ненужности геттеров/сеттеров, синглтонов и прочего ) нужно поработать более продолжительное время, написать для начала тысяч сто строк на С++, и тогда придёт понимание. Пока же тебе что-либо объяснять бессмысленно, как бессмысленно объяснять новичку зачем нужно программу разбивать на функции, а не писать всё сразу в main. И да, не нужно отвечать "ну вы ответьте всё равно, я пойму", я вижу как и что ты отвечаешь на уже существующие замечания, и это лишний раз подтверждает что не в коня корм.
Ну да конечно, тебе лень объяснять, зато писать «отстой» и отмазки на полстраницы тебе не лень. Все эта туфта про бессмысленно и бесполезно – классический съезд когда сказал что-то не подумав а тебя подловили на этом. Ты кое в чем прав, но всем на это положить пока не докажешь свою правоту. Короче, школьник и то, выкрутился бы посолидней.
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>В хидерах что-то мрачное, намекающее на необходимость отлучения автора от клавиатуры (мои комментарии в: /* */):
ГВ>
ГВ>/* За такие вещи полагается месяц читать Страуструпа вслух по пять часов в день. */
ГВ>// Logic symbols
ГВ>#define equals ==
ГВ>#define not !
ГВ>#define notequal !=
ГВ>#define and &&
ГВ>#define or ||
ГВ>
Здравствуйте, CompleteBrains, Вы писали:
CB>Да, блин, вы меня размазали, мокрого места не оставили и моя самооценка теперь в несколько раз ниже. Но я вас все равно обожаю и не забуду, так что не парьтесь.
CB>В смысле я не врубаюсь в ООП совсем? Что совсем, совсем? И да, мне 12 лет
Слушай, если тебе действительно 12 лет, тебе нужно в футбол играть и математику учить.
Программирование — это для мальчиков постарше. Лет с 14 можно начинать.
Когда мне было 12 лет, компьютерами были ЕС-ки и основным языком Фортран-4.
Вот как ты думаешь, пригодилось бы оно мне?
Течёт вода Кубань-реки куда велят большевики.
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>Ну да конечно, тебе лень объяснять, зато писать «отстой» и отмазки на полстраницы тебе не лень.
Это тебя абсолютно не касается. Критик сказал "лень" — значит, ему лень. Скажи спасибо, что тебе вообще ответили — будешь много выступать, будут вообще игнорировать.
CB>Все эта туфта про бессмысленно и бесполезно – классический съезд когда сказал что-то не подумав а тебя подловили на этом.
Это ты про себя?
Короче никакое не мясо, а так, щеночки сосиску покусали.
CB>Ты кое в чем прав, но всем на это положить пока не докажешь свою правоту. Короче, школьник и то, выкрутился бы посолидней.
Трудно сказать, психологию школьников мы тут уже, как-то, подзабыли.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>Да, блин, вы меня размазали, мокрого места не оставили и моя самооценка теперь в несколько раз ниже. Но я вас все равно обожаю и не забуду, так что не парьтесь.
Ты гей, что ль? Фразы как-то обтекаемо строишь. Гнильцо какое-то чувствуется.
Душа обязана трудиться! (с) Н.Заболоцкий.
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Табов вообще в коде не должно быть. Пробелы — the lowest common denominator и код с пробелами будет выглядет везде одинакого независимо от такого сколько спейсов выставили автор и остальные программисты.
IT>Везде одинаково выглядеть не может. Есть мониторы размеров 12", а есть 30".
Ты не понял. Я имел в виду индентацию кода а не размер мониторов. А может быть и понял но ушел от ответа таким образом.
ОК>>Есть извращенцы которые по два спейса на таб ставят. Можешь представить какая муть получается у тех у кого восемь спейсов.
IT>Вот вот. Если я использую табы, то как хочу так и регулирую этот размер. А если извращенец отбивает код двумя пробелами, потому что у него 12" монитор, то на моём мониторе это выглядит как полный отстой.
Опять речь не о мониторах и не о тебе одном. Ты, допустим, выставишь один размер табов потому что тебе так удобно и нравится. Без проблем тут но мне нравится другой размер табов. Как у меня будет смотреться твой код? Поэтому я и говорю что в коде должны быть только спейсы.
Re[8]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Везде одинаково выглядеть не может. Есть мониторы размеров 12", а есть 30". ОК>Ты не понял. Я имел в виду индентацию кода а не размер мониторов. А может быть и понял но ушел от ответа таким образом.
Это ты не понял. Код по разному смотрится на разных мониторах. Если ты мне прижал свой код к краю МОЕГО экрана ТВОИМИ двумя пробелами индентации, то нафиг мне такой твой код.
IT>>Вот вот. Если я использую табы, то как хочу так и регулирую этот размер. А если извращенец отбивает код двумя пробелами, потому что у него 12" монитор, то на моём мониторе это выглядит как полный отстой. ОК>Опять речь не о мониторах и не о тебе одном. Ты, допустим, выставишь один размер табов потому что тебе так удобно и нравится. Без проблем тут но мне нравится другой размер табов. Как у меня будет смотреться твой код? Поэтому я и говорю что в коде должны быть только спейсы.
Так в том то и дело, что если отбивать код табами, то каждый сам сможет настроить свой размер табов. Даже сможет его настроить для себя на разных компьютеровх, например, на лаптопе с экраном 14" и на десктопе с экраном 30". А размер пробелов не настроишь.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>>Походил по папкам, почитал исходники. Этот код smells. ОК>>Жестко ты. Да этот код (минус странности в виде дефайнов для логических операторов плюс еще что-то) даст фору тем "сеньйорам" с которыми мне довелось поработать.
A>Ощущение того, что код smells не зависит от того, написан он начинающим или сеньйором, а зависит исключительно от самого кода. Конкретно этот код не прошел бы code review в моей команде по куче причин, которые я не буду здесь расписывать, потому что многое уже сказали, да и не имеет смысла. Ну а то, что ваши сеньйоры пишут код еще хуже, говорит об уровне команды/проекта/руководителя, да и об общем обесценивании всякого рода титулов.
Я никогда не поверю что вы там мыслите все одинакого и не поверю что все сразу же в команде бросаются переписывать свой код только потому что кому-то что-то не нравится. В коде тс есть странности но он не настолько плох. Он приемлим (минус странности) и его можно понять, а это уже хорошо и, имхо, это ошибка считать что все должны программировать в том стиле как ты.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>Или может Вам нравятся A> табы длиной 8 пробелов, особенно когда A>есть ограничение в ширину?
Ну мне нравятся табы в 8 спейсов и они должны быть такой длины как минимум по исторической причине. И потом, что значит ограничение в ширину? Если в коде небольшая вложенность, то код с индентацией в восемь спейсов будет посередине экрана. Как раз нормально читать такой код потому что 1) нет нагромождения слева и 2) такая индентация контролирует уровень вложенности, т.е. заставляет думать как разбить код на функции.
А вот чуваки которые не умеют писать код, которые пишут большие уровни вложенности борются с "уплыванием" кода вправо посредством уменьшения табов.
Да, еще Линукс и FreeBSD написаны с такими табами.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Abyx, Вы писали:
IT>>А за пробелы повбывав бы.
A>Вы что, A> никогда не видели A> свой код в нарисованный A> чем-то что не умеет A>настраивать длину таба? A>Всякие веб-интерфейсы к VCS, pastebin'ы, форумы A>и т.п.? A>Или может Вам нравятся A> табы длиной 8 пробелов, особенно когда A>есть ограничение в ширину?
Я свой код вижу прежде всего по мильёну раз в день в моём повседневном иструменте. Это меня волнует прежде всего. Вожность остальных случаев по сравнению с этим трудно разглядеть даже в микроскоп.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
ОК>Ты вообще призадумайся. Ты утверждаешь что табы призваны решить данную проблему на разных мониторах, но на деле табы только усиливают ее! И над разными мониторами и над одинаковыми. Подумай над этим.
Ну так и призадумайся. Пробелы — это разметка кода прибитая гвоздями к предпочтениям разработчика. И это хорошо заметно на разных мониторах. Табы эту проблему решают как два пальца. Подумай над этим.
ОК>Это реальный пример! Я вижу в проекте табы в два, четыре, пять и восемь спейсов. Код везде поплывший. Ты, видимо, просто не представляешь о чем тебе говорят и поэтому продолжаешь утверждать на счет табов.
Я не понимаю как на одной машине в одном проекте табы могут быть одновременно в два, четыре, пыть и восемь пробелов.
ОК>Нет, это не мои предпочтения. Это просто понимание что табы большее зло. Потом, представь такой фрагмент кода:
Ну есть такая мелкая проблемка. Для её решения можно использовать другой стиль, только и всего.
IT>>Ты их не настраиваешь, а гвоздями вбиваешь в каждую строчку своего кода. И другие потом с этим поделать ничего не смогут. В отличие от табуляций. ОК>Другие потом мучаются из-за табов разных размеров.
Ещё раз предлагаю включить Visible White Space и больше не выключать и все муки сразу прекратятся.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[13]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Это не гипотетическая ситуация а реальная ситуация которую я вижу каждый день и кроме как вручную ее не исправить т.к. много кода и разные табы и код кругом поехавший. Так что тэбов лучше не иметь.
A>Это как раз та ситуация, где табы — это решение проблемы. На самом деле все зло у вас не из-за табов или пробелов, а из-за индентации, идиотской попытки выравнивать строчки. Если отказаться от индентации, все становится легко и просто. А после некоторого привыкания, еще и красиво.
Я не согласен в первопричине о которой ты говоришь но также замечу что имеем то что имеем и это не впервой вижу.
ОК>>Или иметь соглашение о том каким должен быть выставлен таб но как инфорсить его я не представляю. Все равно код перекосится вопреки всем стараниям; я это постоянно вижу.
A>Для C# есть StyleCop, который прекрасно энфорсит это дело.
И что? Кому-то нравится два спейса, кому-то четыре, кому-то восемь. Каждый будет настраивать полицая как ему угодно. Что дальше?
ОК>>Нет, это не мои предпочтения. Это просто понимание что табы большее зло. Потом, представь такой фрагмент кода: ОК>>
ОК>>Название функции индентированно тэбом а вот аргументы 2 — 4 не получается индентировать табами. Поэтому люди еще добавят спейсов и код поплывет. Только не говори что такого стиля не бывает!
A>За такой стиль нужно бить по рукам.
Кто сказал?
A>Пробелы после лидирующих табов должны рассматриваться как build error.
А еще проще делать билд эрроры по наличию тэбов.
Кстати, ты выше написал слово тэб и предлагаешь использовать инструменты чтобы их увидеть. Так что, повторюсь, что-то не то в датском королевстве. Даже если ты прав на сто процентов (а я не согласен что ты прав), то, согласись, проблему/путаницу тэбы добавляют. С одними спейсами таких проблем нет.
Re[15]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Да я давно над этим подумал и вот что тебе скажу. Ты боишься "разметки кода прибитой гвоздями к предпочтениям разработчика" но не боишься самого кода? Что-то тут не то. Считай что эта прибитая разметка и есть часть самого кода/стиля.
A>Не надо смешивать код и оформление. Корявый код может быть отлично оформлен, но речь не о нем.
И что бы ты не говорил, это все часть кода. Ты не читаешь код в отдельности от оформления и наоборот.
ОК>>Что тут непонятного? Писали разные люди в разное время разные файлы с разными установками, потом же правили эти файлы и о том что происходило — ну в общем имеем то что имеем. И это не впервой так!
A>Если бы команда позаботилась об автоматическом энфорсменте coding style во время билда, такого не случилось бы. В противном случае я не вижу разницы между "каждый выбирает себе размер отступа в пробелах, и наплевав на остальные сабмитит такие файлы" и "каждый выбирает свой собственный стиль во всем — скобках, пробелах, именовании, комментариях и т.д."
Читай мои ответы выше.
ОК>>Мелкая? Я тебе привел еще одну причину по которой стоит от табов отказаться!
A>Этой проблемы не существует, она надуманна и искусственна. Более того, использование пробелов здесь только мешает делу, потому что при изменении названия функции (что может произойти при автоматическом рефакторинге), все поплывет и придется вручную переформатировать. Отфильтровывать подобные изменения в репозитории от нормальных правок — то еще удовольствие.
Ты опять приплетаешь сюда инструменты... Ну раз так, пусть инструменты умеют также и переформатировать код при автоматическом рефакторинге!
Re[20]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Я умышленно утрировал чтобы донести до тебя мысль.
Не надо утрировать, лучше говорите конкретно и по делу.
ОК>Ты не понимаешь что код и оформление этого кода и есть одно целое!
Откуда взялся такой вывод? Большинство исходников хранится в виде текстовых файлов, где оформление делается пробелами, табами и переносами строк. Раздельное хранение форматирования и контента — это экзотика, я такого не встречал, и годится скорее для Word-а.
С другой стороны, вы всерьез считаете, что использование именно двух пробелов в этом месте и именно пяти вон в том, необходимы для правильной работы кода? Компилятор в курсе?
Или вы утверждаете, что количество пробелов — это отображение личности писавшего и трогать такой код нельзя, чтобы не оскорбить человека? А о названиях переменных и классов вы долго спорите? Я бы не хотел в такую команду.
A>>Ну нужно повторяться, нужно всего один раз внятно объяснить свою позицицю. Пока я вижу только эмоции и отсутствие логических аргументов/рассуждений. ОК>Сто раз объяснил.
Можно ссылку на окончательный и наиболее полный вариант ответа? А, к черту полноту, просто хоть на какой-нибудь внятный ответ?
ОК>А почему только вначале можно а в середине нельзя?
Потому что тогда ничего не расползается и у всех выглядит одинаково хорошо, при любых настройках табов и при любых изменениях файла, включая использование инструменов рефакторинга. Это простое правило, которое легко запомнить и которому легко следовать. Кроме того, это облегчает сравнение файлов и отслеживание истории изменений.
A>>А для чего вам табы в середине? Для индентации? Вот.
ОК>Мне они вообще не нужны но если что-то можно сделать, то это будет сделанно! Только не приплетай сюда тулзы для борьбы с этой возможностью. Было бы очень хорошо если бы этой возможности не было в первую очередь! Это мой посыл.
И что изменится, если вместо табов в середине будут пробелы в середине?
Re[18]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Если бы изначально не было табов, то и не было бы таких проблем и этих дискуссий (которые просто экономически невыгодны).
Каких проблем бы не было? Дикой смеси 2, 4 и 8 пробелов в разных файлах одного проекта?
Для тех, кто способен объективно и без эмоций воспринимать логические доводы, эта дискуссия длилась бы 15 минут — описание плюсов и минусов каждого подхода, естественный выбор, обсуждение средств энфорсмента на уровне команды. Но если важнее доказать, что кто-то в интернете не прав, то можно часами повторять одно и то же.
Re[21]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>>Все остальные варианты = build error, в том числе два пробела подряд или пробел после таба. IT>>А как же табличное форматирование?
A>Что это такое и зачем оно нужно? На комментарии правила оформления кода не действуют, там можно и выравнивать, и табличку нарисовать.
Я думаю тут имелось в виду то что я имел в виду когда сказал как форматирует код Петцольд.
З.Ы. О! В вашем стане начались разногласия?
Re[20]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>Каких проблем бы не было? Дикой смеси 2, 4 и 8 пробелов в разных файлах одного проекта? A>>Для тех, кто способен объективно и без эмоций воспринимать логические доводы, эта дискуссия длилась бы 15 минут — описание плюсов и минусов каждого подхода, естественный выбор, обсуждение средств энфорсмента на уровне команды.
ОК>То же самое могу сказать и о тебе!
Аргументы? В моих словах нет эмоций, только логика и выводы на основании объективного сравнения. У вас — "а мне нравится так, потому что просто вот, а вы не согласны, значит злые". Детский сад. Представьте себе, что вам нужно изложить свою позицию на суде. Повторяться и отвечать возможности не будет, поэтому все должно быть сказано в одном сообщении, максимально аргументированно и полно. Слабо?
Проблема "этого" поколения программистов в отрывочности мышления. Однократно ответить на чужое высказывание способны, а выстраивать длительную линию рассуждений — уже нет.
Re[21]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
A>>>Все остальные варианты = build error, в том числе два пробела подряд или пробел после таба. IT>>А как же табличное форматирование?
A>Что это такое и зачем оно нужно?
Табличное форматирование это то, что позволяет во втором примере практически мгновенно обнаружить ошибки по аномалиям в форматировании.
var n1 = new[]
{
new { Text="five", Number=5 },
new { Text="fifteen", Number=15 },
new { Text="two handres and fiveteen", Number=225 },
new { Text="six thousabd two handreds and fifteen", Number=6215 },
};
var n2 = new[]
{
new { Text = "five", Number = 5 },
new { Text = "fifteen", Number = 15 },
new { Text = "two handreds and fiveteen", Number = 225 },
new { Text = "six thousand two handreds and fifteen", Number = 6215 },
};
Первый пример нужно тщательно просмотреть и мысленно оттранслировать, чтобы понять его логику и найти ошибки. Во втором это делается слёту ещё до того как будет понятен смысл.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
A>Есть стиль как оформление и стиль как способ выразить идею на языке программирования. С недостатками первого можно мириться, но если код написан коряво (функционально коряво, а не пробелы-скобочки), его трудно понимать и поддерживать в будущем, то он должен быть выброшен и переписан.
Сомневаюсь, что у тебя нашлось время вникать в функциональный смысл этого кода. Но все же если ты сделал это, ткни пальцем, дело нескольких секунд, не так ли?
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
IT>Всё зло от пробелов! Tabs rock, spaces suck!
Вот у меня щас на "новом" проекте по "истерическим причинам" в гигаLOC кода уже имеется микс табов и пробелов, при этом таб 8 пробелов а выравнивать надо на 3 (три!) пробела. При этом максимальная длина строки 80 символов.
При этом тотально у всех если не ретиновый макбук то хотя бы два (у некоторых 3 или 4) 24" моника.
Ну вот нахрена?
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Его проект мы видели. Теперь ты поставь свой.
A>С какой стати? Я где-то просил оценивать мои исходники? Ах у вас обострение синдрома "сначала добейся"? Я ни с кем меряться не собираюсь.
Ты тут продолжаешь толкать свое экспертное мнение в массы. Я хочу убедиться насколько оно экспертное.
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Жора Корнев, Вы писали:
ЖК>если к пробелам, то тыкаешь в 4 раза больше кнопок, если привык к табуляциям то покрайней мере пальцы не так болят)
открой для себя автоотступ + автозамену табуляций пробелами...
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Я переместил тему потому что в форуме cpp глухо а мне нужно мясо. Поскольку мне этот код демонстрировать в придачу к резюме, раздел форума выбрал правильный, надеюсь
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>В этом проекте я старался писать код, на который было бы приятно смотреть. Приятность кода состоит из множества параметров к тому же здесь должна присутствовать некая неописуемая магия. Приятность начинается на уровне отдельных модулей и простирается вплоть до локальных переменных. Хотелось, чтобы код можно было всунуть в рамочку и повесить в музее.
Да, с подписью: "Первое впечатление бывает обманчивым!"
Ещё убери пустые комментарии "Description:", зачем они? Или заполни их содержательным текстом.
CB>В общем, что вы думаете об этом проекте? Акцентируя внимание на его восприятии. И учтите, что я пытаюсь прокатить не за зеленого новичка, поэтому отнеситесь критично и за каждый промах валите меня гнилым помидором. Этот код должен стать идеальным. Ответственность за это лежит на вас (драматизирую).
Не надо пытаться ни за кого прокатывать. Сама идея симпатичного кода, спору нет — хороша, но лучше продемонстрируй более серьёзный подход на более компактном проекте. Я понимаю, много сил ушло на сугубо эстетические моменты, но тем не менее.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
CB>В этом проекте я старался писать код, на который было бы приятно смотреть. Приятность кода состоит из множества параметров к тому же здесь должна присутствовать некая неописуемая магия. Приятность начинается на уровне отдельных модулей и простирается вплоть до локальных переменных. Хотелось, чтобы код можно было всунуть в рамочку и повесить в музее.
А смысл ? Код должен решать задачу, допускать расширение в разумных пределах и его можно было бы саппортить. Зачем его в рамочку ставить ?
Душа обязана трудиться! (с) Н.Заболоцкий.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Панда, Вы писали:
ГВ>>В хидерах что-то мрачное, намекающее на необходимость отлучения автора от клавиатуры (мои комментарии в: /* */):
П>Не хватает еще П>
П>#define begin {
П>#define end }
П>
Тогда можно было бы смело принять автора за тролля.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
ГВ>>Табуляции в форматировании — зло. IT>А за пробелы повбывав бы.
За какие именно?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, ioj, Вы писали: ioj>т.к. налицо ООП головного мозга и возраст автора < 20 лет.
где ты там ООП увидел? Там типичный структурный подход, но функции хаотично обьеденены в несколько классов. Возможно он перепутал кейворды namespace и class и хотел лишь по неймспесам разбить их.
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
On 29.04.2013 21:20, Геннадий Васильев wrote:
> Так... Пустые методы — зачем растаскивать скобки на несколько строк?
Что за фантазии. Наоборот читать легче.
> using namespace std — то есть, то нет.
Лучше вообще не использовать это.
> Табуляции в форматировании — зло.
Пробелы в форматировании — зло.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, _Obelisk_, Вы писали:
_O_>А смысл ? Код должен решать задачу, допускать расширение в разумных пределах и его можно было бы саппортить. Зачем его в рамочку ставить ?
Задачи бывают разные. Например — обучение. Как надо и как не надо делать.
Течёт вода Кубань-реки куда велят большевики.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, tpascal, Вы писали:
T> Забей, "идеальный код" — понятие очень субьективное. T> Как бы тут его не вылизывали, интервьювер всеравно найдет кчему докапаться.
давайте определим "идеальный код" как "код, который нельзя улучшить", т.е. к нему ни прибавить, ни отнять. а субъективность в стиле "табуляция вместо пробелов" легко устраняется гайдлайнами по стилю. кстати, если смесь табуляций с пробелам сохраняет форматирование и структура не разваливается при любом значении табуляции от 1 до ... (ну пускай будет до 79), то проблемы нету.
ЗЫ. тут другая собака повалялась. а именно -- длина строк. сейчас практически у всех широкоугольные мониторы и потому ограничение в 80 символов на строку (а оно есть во многих гайдлайнах по стилю) выглядит издевательством. с другой стороны, если ему следовать, то на широкоугольном мониторе можно открыть три листинга по вертикали.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, мыщъх, Вы писали:
М>Здравствуйте, tpascal, Вы писали:
T>> Забей, "идеальный код" — понятие очень субьективное. T>> Как бы тут его не вылизывали, интервьювер всеравно найдет кчему докапаться. М>давайте определим "идеальный код" как "код, который нельзя улучшить", т.е. к нему ни прибавить, ни отнять.
Вне контекста задачи это определение бессмысленно.
М>ЗЫ. тут другая собака повалялась. а именно -- длина строк. сейчас практически у всех широкоугольные мониторы и потому ограничение в 80 символов на строку (а оно есть во многих гайдлайнах по стилю) выглядит издевательством. с другой стороны, если ему следовать, то на широкоугольном мониторе можно открыть три листинга по вертикали.
длинные строки в программах плохи по той же причине, по какой плохи длинные строки в тексте.
Плюс иногда приходится еще на терминале просматривать/патчить сорцы, а распахивать терминал на весь экран — это извращение.
Да, блин, вы меня размазали, мокрого места не оставили и моя самооценка теперь в несколько раз ниже. Но я вас все равно обожаю и не забуду, так что не парьтесь.
А теперь переходим к сути:
ГВ>Зачем нужна struct Pointer?
Я ненавижу нижнее подчеркивание
ГВ>/* За такие вещи полагается месяц читать Страуструпа вслух по пять часов в день. */
Это потому что везде где встречается например not (DontKillMe()) будет замена символов? А еще причины есть?
ГВ>Ещё убери пустые комментарии "Description:", зачем они? Или заполни их содержательным текстом.
Чтобы методы визуально отделять друг от друга иначе они сливаю в сплошное мессиво
A>С++ там и рядом не лежал, ни С++11, ни вообще С++
Я как-то не врубаюсь. Что значит «С++ там и рядом не лежал»? То есть что нужно сделать чтобы он там появился? В двух словах, мне хватит
A>синглтоны глаза режут
Хреновые конкретно мои синглтоны или вообще?
A>Syntax.h это вообще жесть, я думал так только индусы могут
Why? А то действительно, не понимаю
TSP>А во вторых голая баба в комментах только время сборки увеличивает.
Я думал на комменты компилятору положить, ошибся?
8>а еще полно тупых комментов, типа:
Отмазка: иногда такие нужны чтобы быстро понять, что тут делается не вникая в код
ioj>дефайны на стандартные вещи — удел полных *даков
Why? Why? Oh God WHY?
ioj>геттеры/сеттеры для полей, изменение которых не нарушает контракт интерфеса — удел полных *даков
Я нихрена не понял. Зачем проектировать интерфейс а потом его нарушать своими же методами?
ioj>использование в хидерах типов, которые подключаются неявно
Да, это отстой. Но у меня возникла проблема когда я попытался найти это в коде. Требуется помощь
ioj> т.к. налицо ООП головного мозга и возраст автора < 20 лет.
В смысле я не врубаюсь в ООП совсем? Что совсем, совсем? И да, мне 12 лет
A>Походил по папкам, почитал исходники. Этот код smells.
Конкретика. Конкретика, блин. Конкретика это одно из величайший изобретений человечества, пользуйтесь им.
T>где ты там ООП увидел? Там типичный структурный подход, но функции хаотично обьеденены в несколько классов
Конкретные примеры, пару штук, я ведь прошу так мало
Что-то не то. Вы все к деталям придираетесь, к в вопросам касательно вкусов, как будто там не нет более существенных косяков. Короче никакое не мясо, а так, щеночки сосиску покусали. И да, очень недостает аргументов на конкретных примерах. Вас что, никто критике не учил?
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, ioj, Вы писали:
ioj>нубас, смари, кароч, первое чо те надо уяснить:
RTFM — правила форума
ioj>дефайны на стандартные вещи — удел полных *даков
+1 ioj>statefull синглтоны — удел полных *даков
Тут вопрос. Скажем стандартный ввод/вывод сделан на глобальных переменных, причем не только в С++, но и в том же питоне. Аналогичная ситуация с логированием.
ioj>геттеры/сеттеры для полей, изменение которых не нарушает контракт интерфеса — удел полных *даков
тут тоже вопрос. Лично я обычно или делаю структуру, в которой все поля открыты (и возможно есть несколько методов для удобства) или класс, в котором все поля закрыты...
ioj>использование в хидерах типов, которые подключаются неявно, как следствие важна очерёдность подключения хидеров в cpp — удел полных *даков
+1
ioj>а я ведь только 2 минуты поглядел
а я вообще не глядел, лениво
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Vzhyk, Вы писали:
>> Так... Пустые методы — зачем растаскивать скобки на несколько строк? V>Что за фантазии. Наоборот читать легче.
Зато кататься по тексту — дольше. В прочем, это не особо важный момент.
>> using namespace std — то есть, то нет. V>Лучше вообще не использовать это.
Иногда using namespace std приносит пользу, но лучше не смешивать в одном блоке std:: и using namespace std.
>> Табуляции в форматировании — зло. V>Пробелы в форматировании — зло.
Хорошо, хорошо, уговорили. В конце концов, пробелы и табуляции — наименьшее из зол.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
CB>Да, блин, вы меня размазали, мокрого места не оставили и моя самооценка теперь в несколько раз ниже. Но я вас все равно обожаю и не забуду, так что не парьтесь.
Чувак, по одному твоему посту видно что ты новичок, но я тебя успокою. Видел бы ты код многих сеньйоров. Бейсбольной битой надо бить.
CB>А теперь переходим к сути:
ГВ>>Зачем нужна struct Pointer? CB>Я ненавижу нижнее подчеркивание
О чем речь?
A>>С++ там и рядом не лежал, ни С++11, ни вообще С++ CB>Я как-то не врубаюсь. Что значит «С++ там и рядом не лежал»? То есть что нужно сделать чтобы он там появился? В двух словах, мне хватит
Этих не слушай. Это чуваки из серии что позапихают в проект все фичи плюсов потому что "реальные пацаны так пишут!"
A>>синглтоны глаза режут CB>Хреновые конкретно мои синглтоны или вообще?
Вообще можно обойтись без синглтонов.
A>>Syntax.h это вообще жесть, я думал так только индусы могут CB>Why? А то действительно, не понимаю
Да, несколько станно было видеть дефайны для стандартных логических операторов.
TSP>>А во вторых голая баба в комментах только время сборки увеличивает. CB>Я думал на комменты компилятору положить, ошибся?
Ты прав. Положить. Это тоже какой-то странный коммент был.
8>>а еще полно тупых комментов, типа: CB>Отмазка: иногда такие нужны чтобы быстро понять, что тут делается не вникая в код
ioj>>дефайны на стандартные вещи — удел полных *даков CB>Why? Why? Oh God WHY?
Согласен на счет дефайнов. Не надо так делать.
ioj>>геттеры/сеттеры для полей, изменение которых не нарушает контракт интерфеса — удел полных *даков CB>Я нихрена не понял. Зачем проектировать интерфейс а потом его нарушать своими же методами?
ioj>>использование в хидерах типов, которые подключаются неявно CB>Да, это отстой. Но у меня возникла проблема когда я попытался найти это в коде. Требуется помощь
ioj>> т.к. налицо ООП головного мозга и возраст автора < 20 лет. CB>В смысле я не врубаюсь в ООП совсем? Что совсем, совсем? И да, мне 12 лет
A>>Походил по папкам, почитал исходники. Этот код smells. CB>Конкретика. Конкретика, блин. Конкретика это одно из величайший изобретений человечества, пользуйтесь им.
T>>где ты там ООП увидел? Там типичный структурный подход, но функции хаотично обьеденены в несколько классов CB>Конкретные примеры, пару штук, я ведь прошу так мало
CB>Что-то не то. Вы все к деталям придираетесь, к в вопросам касательно вкусов, как будто там не нет более существенных косяков. Короче никакое не мясо, а так, щеночки сосиску покусали. И да, очень недостает аргументов на конкретных примерах. Вас что, никто критике не учил?
Даже если ты классно решил задачи, то будут придираться к таким мелочам. Сам подумай, кому охота вникать в логику чужого проекта? По одной твоей просьбе и видно что ты новичок.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>Походил по папкам, почитал исходники. Этот код smells.
Жестко ты. Да этот код (минус странности в виде дефайнов для логических операторов плюс еще что-то) даст фору тем "сеньйорам" с которыми мне довелось поработать.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, alpha21264, Вы писали:
_O_>>А смысл ? Код должен решать задачу, допускать расширение в разумных пределах и его можно было бы саппортить. Зачем его в рамочку ставить ?
A>Задачи бывают разные. Например — обучение. Как надо и как не надо делать.
Обучаться надо на решении задач, а не построении кода для рамочки.
Душа обязана трудиться! (с) Н.Заболоцкий.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
>>> Табуляции в форматировании — зло. V>>Пробелы в форматировании — зло.
ОК>Это еще почему?
забанили в поиске? в СВ это стопицот раз обсуждалось уже.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, мыщъх, Вы писали:
T>> Забей, "идеальный код" — понятие очень субьективное. T>> Как бы тут его не вылизывали, интервьювер всеравно найдет кчему докапаться. М>давайте определим "идеальный код" как "код, который нельзя улучшить", т.е. к нему ни прибавить, ни отнять.
+1
по этому если в код можно добавить фичу языка, или код содержит что-то лишнее, типа if (x != 0), этот код не идеален.
In Zen We Trust
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
>>>> Табуляции в форматировании — зло. V>>>Пробелы в форматировании — зло.
ОК>>Это еще почему? T>забанили в поиске? в СВ это стопицот раз обсуждалось уже.
И? Там что ли пришли к единому правильному мнению?
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
ГВ>>Табуляции в форматировании — зло.
IT>А за пробелы повбывав бы.
Вы что,
никогда не видели
свой код в нарисованный
чем-то что не умеет
настраивать длину таба?
Всякие веб-интерфейсы к VCS, pastebin'ы, форумы
и т.п.?
Или может Вам нравятся
табы длиной 8 пробелов, особенно когда
есть ограничение в ширину?
In Zen We Trust
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
T>>> Забей, "идеальный код" — понятие очень субьективное. T>>> Как бы тут его не вылизывали, интервьювер всеравно найдет кчему докапаться. М>>давайте определим "идеальный код" как "код, который нельзя улучшить", т.е. к нему ни прибавить, ни отнять. A>+1 A>
A>по этому если в код можно добавить фичу языка, или код содержит что-то лишнее, типа if (x != 0), этот код не идеален.
Ну так ты ты и есть упомянутый интервьюер. Смотри здесь.
IT>>>Это ты не понял. Код по разному смотрится на разных мониторах. Если ты мне прижал свой код к краю МОЕГО экрана ТВОИМИ двумя пробелами индентации, то нафиг мне такой твой код. ОК>>Нет, это ты не понимаешь и забудь ты про разные размеры мониторов. Допустим у нас мониторы одного размера.
IT>Не-не-не. Допустим у нас разные мониторы. В отличиие от твоей гипотетической ситуации ниже это реально произошедший факт. Немерлисты, особенно при поездках на дачу, очень сильно любят использовать два пробела для отступов на своих микроскопических мониторах лаптопов. Я с таким кодом на моём мониторе работать не смог.
Это не гипотетическая ситуация а реальная ситуация которую я вижу каждый день и кроме как вручную ее не исправить т.к. много кода и разные табы и код кругом поехавший. Так что тэбов лучше не иметь.
Ну не смог так не смог. Это их проблемы что к их проекту не смог из-за этой причины подключиться толковый разработчик. Либо пусть делают приемлимый уровень индентации либо пусть сами делают свой проект.
Ты вообще призадумайся. Ты утверждаешь что табы призваны решить данную проблему на разных мониторах, но на деле табы только усиливают ее! И над разными мониторами и над одинаковыми. Подумай над этим.
ОК>>Ты выставил табы в четыре спейса и сделал индентацию в два тэба, т.е. ты у себя видишь восемь спейсов. А мне нравятся табы в 8 спейсов. То есть получается у меня уровень индентации будет 16 спейсов и в зависимости от того сколько у тебя уровней вложенности, то у меня код начнет "уплывать" вправо в то время как у тебя он будет смотреться нормально. Я, конечно, могу уменьшить табы до четырех спейсов чтобы у меня смотрелось как у тебя, но почему я это должен делать? Так что получается палка о двух концах. А если еще представить другого программиста который выставляет табы в два спейса, то это вообще ужас начинается...
IT>Это всё какой-то высосанный из пальца пример. Зачем мне выставлять у себя табуляцию на 4 пробела и использовать их две вместо того, чтобы сразу поставить одну табуляцию на 8 пробелов? Что за чушь?
Это реальный пример! Я вижу в проекте табы в два, четыре, пять и восемь спейсов. Код везде поплывший. Ты, видимо, просто не представляешь о чем тебе говорят и поэтому продолжаешь утверждать на счет табов.
ОК>>Так что самое лучше решение это делать так, чтобы код выглядел как задумал начальный автор, т.е. иметь везде спейсы. Или иметь соглашение о том каким должен быть выставлен таб но как инфорсить его я не представляю. Все равно код перекосится вопреки всем стараниям; я это постоянно вижу.
IT>Включи у себя в редакторе Visible White Spaces, покрась их в ненавязчивый цвет, заставь это сделать своих коллег и эта проблема исчезнет навсегда. Проверено.
А зачем лишний раз напрягаться по поводу табов? Сохраняй спейсы вместо табов и будет тебе счастье. Только сделай приемлимый уровень индентации чтобы было видно что чему подчиняется.
ОК>>Так что все зло от табов.
IT>Всё зло от попыток доказать, что твои предпочтения самые лучшие.
Нет, это не мои предпочтения. Это просто понимание что табы большее зло. Потом, представь такой фрагмент кода:
DoSomething(arg1,
arg2,
arg3,
arg4);
Название функции индентированно тэбом а вот аргументы 2 — 4 не получается индентировать табами. Поэтому люди еще добавят спейсов и код поплывет. Только не говори что такого стиля не бывает!
IT>>>Так в том то и дело, что если отбивать код табами, то каждый сам сможет настроить свой размер табов. Даже сможет его настроить для себя на разных компьютеровх, например, на лаптопе с экраном 14" и на десктопе с экраном 30". А размер пробелов не настроишь.
ОК>>Настраиваешь не размер пробелов а их количество.
IT>Ты их не настраиваешь, а гвоздями вбиваешь в каждую строчку своего кода. И другие потом с этим поделать ничего не смогут. В отличие от табуляций.
Другие потом мучаются из-за табов разных размеров.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Abyx, Вы писали:
IT>>Я свой код вижу прежде всего по мильёну раз в день в моём повседневном иструменте. A>тогда не приставай к людям которые используют другие инструменты
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>Я свой код вижу прежде всего по мильёну раз в день в моём повседневном иструменте. Это меня волнует прежде всего. Вожность остальных случаев по сравнению с этим трудно разглядеть даже в микроскоп.
Какой у тебя размер табов и какой у тебя максимальный уровень вложенности от начала функции? Если пишешь на Си шарпе, то добавь сюда еще как минимум два — один уровень вложенности для класса, другой для неймспейса. Так ведь?
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Я свой код вижу прежде всего по мильёну раз в день в моём повседневном иструменте. Это меня волнует прежде всего. Вожность остальных случаев по сравнению с этим трудно разглядеть даже в микроскоп.
ОК>Какой у тебя размер табов и какой у тебя максимальный уровень вложенности от начала функции?
4 и фиг его знает.
ОК>Если пишешь на Си шарпе, то добавь сюда еще как минимум два — один уровень вложенности для класса, другой для неймспейса. Так ведь?
И ещё у меня всегда включена нумерация строк и при этом куча места справа, а код всё равно выглядит немного смещённым влево. И теперь если какой-нибудь умник решит, что раз он работает над Немерле, то ему всё можно и захерачит отступы из двух пробелов, то на моём мониторе код сольётся в одну сплошную полосу у левой части экрана.
Всё зло от пробелов! Tabs rock, spaces suck!
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Я никогда не поверю что вы там мыслите все одинакого и не поверю что все сразу же в команде бросаются переписывать свой код только потому что кому-то что-то не нравится. В коде тс есть странности но он не настолько плох.
Не обязательно мыслить одинаково, чтобы писать хороший код. Код ревью не проходит до тех пор, пока есть неисправленные замечания. Если замечаний будет слишком много, автору предложат переписать все заново и приходить за ревью позже. Ревью, которые игнорируются членами команды, и которые не блокируют чекин, — это и есть культ карго.
ОК>Он приемлим (минус странности) и его можно понять, а это уже хорошо и, имхо, это ошибка считать что все должны программировать в том стиле как ты.
Есть стиль как оформление и стиль как способ выразить идею на языке программирования. С недостатками первого можно мириться, но если код написан коряво (функционально коряво, а не пробелы-скобочки), его трудно понимать и поддерживать в будущем, то он должен быть выброшен и переписан.
Re[13]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Ты вообще призадумайся. Ты утверждаешь что табы призваны решить данную проблему на разных мониторах, но на деле табы только усиливают ее! И над разными мониторами и над одинаковыми. Подумай над этим.
IT>Ну так и призадумайся. Пробелы — это разметка кода прибитая гвоздями к предпочтениям разработчика. И это хорошо заметно на разных мониторах. Табы эту проблему решают как два пальца. Подумай над этим.
Да я давно над этим подумал и вот что тебе скажу. Ты боишься "разметки кода прибитой гвоздями к предпочтениям разработчика" но не боишься самого кода? Что-то тут не то. Считай что эта прибитая разметка и есть часть самого кода/стиля.
ОК>>Это реальный пример! Я вижу в проекте табы в два, четыре, пять и восемь спейсов. Код везде поплывший. Ты, видимо, просто не представляешь о чем тебе говорят и поэтому продолжаешь утверждать на счет табов.
IT>Я не понимаю как на одной машине в одном проекте табы могут быть одновременно в два, четыре, пыть и восемь пробелов.
Что тут непонятного? Писали разные люди в разное время разные файлы с разными установками, потом же правили эти файлы и о том что происходило — ну в общем имеем то что имеем. И это не впервой так!
ОК>>Нет, это не мои предпочтения. Это просто понимание что табы большее зло. Потом, представь такой фрагмент кода:
IT>Ну есть такая мелкая проблемка. Для её решения можно использовать другой стиль, только и всего.
Мелкая? Я тебе привел еще одну причину по которой стоит от табов отказаться!
IT>>>Ты их не настраиваешь, а гвоздями вбиваешь в каждую строчку своего кода. И другие потом с этим поделать ничего не смогут. В отличие от табуляций. ОК>>Другие потом мучаются из-за табов разных размеров.
IT>Ещё раз предлагаю включить Visible White Space и больше не выключать и все муки сразу прекратятся.
Это ничего не даст существующему коду! Да и новому тоже если каждый будет ставить табы как ему нравится. Пример я уже привел.
Re[14]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Ну так и призадумайся. Пробелы — это разметка кода прибитая гвоздями к предпочтениям разработчика. И это хорошо заметно на разных мониторах. Табы эту проблему решают как два пальца. Подумай над этим. ОК>Да я давно над этим подумал и вот что тебе скажу. Ты боишься "разметки кода прибитой гвоздями к предпочтениям разработчика" но не боишься самого кода? Что-то тут не то.
Не понял логики.
ОК>Считай что эта прибитая разметка и есть часть самого кода/стиля.
В случае с пробелами всё обстоит именно так. Табуляции оставляют свободу выбора разработчику.
ОК>>>Это реальный пример! Я вижу в проекте табы в два, четыре, пять и восемь спейсов. Код везде поплывший. Ты, видимо, просто не представляешь о чем тебе говорят и поэтому продолжаешь утверждать на счет табов. IT>>Я не понимаю как на одной машине в одном проекте табы могут быть одновременно в два, четыре, пыть и восемь пробелов. ОК>Что тут непонятного? Писали разные люди в разное время разные файлы с разными установками, потом же правили эти файлы и о том что происходило — ну в общем имеем то что имеем. И это не впервой так!
Подождика. В одном проекте нельзя задать разный размер табуляции в один и тот же момент. Или в твоём случае это не так
IT>>Ну есть такая мелкая проблемка. Для её решения можно использовать другой стиль, только и всего. ОК>Мелкая? Я тебе привел еще одну причину по которой стоит от табов отказаться!
Да это полная фигня. К тому же показатель плохого стиля.
IT>>Ещё раз предлагаю включить Visible White Space и больше не выключать и все муки сразу прекратятся. ОК>Это ничего не даст существующему коду! Да и новому тоже если каждый будет ставить табы как ему нравится. Пример я уже привел.
Ты привёл плохой пример.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>Ну так и призадумайся. Пробелы — это разметка кода прибитая гвоздями к предпочтениям разработчика. И это хорошо заметно на разных мониторах. Табы эту проблему решают как два пальца. Подумай над этим. ОК>>Да я давно над этим подумал и вот что тебе скажу. Ты боишься "разметки кода прибитой гвоздями к предпочтениям разработчика" но не боишься самого кода? Что-то тут не то.
IT>Не понял логики.
Что тут непонятного? Я всего лишь сказал что наличие спейсов, тэбов и тэбов и спейсов это предпочтения разработчика точно также как и предпочтения разработчика называть идентификаторы, писать сложные выражения и т.д. Это все часть стиля. В случае тэбов, ты говоришь, что ты можешь что-то поделать. Во втором случае ты уже просто не сможешь поменять весь код так как тебе нравится. Так понятнее?
ОК>>Считай что эта прибитая разметка и есть часть самого кода/стиля.
IT>В случае с пробелами всё обстоит именно так. Табуляции оставляют свободу выбора разработчику.
Это современный костыль придуманный пропонентами табов.
ОК>>>>Это реальный пример! Я вижу в проекте табы в два, четыре, пять и восемь спейсов. Код везде поплывший. Ты, видимо, просто не представляешь о чем тебе говорят и поэтому продолжаешь утверждать на счет табов. IT>>>Я не понимаю как на одной машине в одном проекте табы могут быть одновременно в два, четыре, пыть и восемь пробелов. ОК>>Что тут непонятного? Писали разные люди в разное время разные файлы с разными установками, потом же правили эти файлы и о том что происходило — ну в общем имеем то что имеем. И это не впервой так!
IT>Подождика. В одном проекте нельзя задать разный размер табуляции в один и тот же момент. Или в твоём случае это не так
Проектам не первый десяток лет. Писались разными людьми с разными стилями и наворотами. Перекошенный код — да, неудобно, но это меньшая из всех проблем.
IT>>>Ну есть такая мелкая проблемка. Для её решения можно использовать другой стиль, только и всего. ОК>>Мелкая? Я тебе привел еще одну причину по которой стоит от табов отказаться!
IT>Да это полная фигня. К тому же показатель плохого стиля.
Кто сказал про плохой стиль?
IT>>>Ещё раз предлагаю включить Visible White Space и больше не выключать и все муки сразу прекратятся. ОК>>Это ничего не даст существующему коду! Да и новому тоже если каждый будет ставить табы как ему нравится. Пример я уже привел.
IT>Ты привёл плохой пример.
Кто сказал? Или тебе нужен "хороший" пример который бы был удобен тебе?
Re[14]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Я не согласен в первопричине о которой ты говоришь но также замечу что имеем то что имеем и это не впервой вижу.
Именно этой первопричиной обусловлено то, что вы видите. С чем конкретно вы не согласны?
A>>Для C# есть StyleCop, который прекрасно энфорсит это дело. ОК>И что? Кому-то нравится два спейса, кому-то четыре, кому-то восемь. Каждый будет настраивать полицая как ему угодно. Что дальше?
Правила StyleCop выбираются один раз, применяются для всех проектов, и изменяются только по особым поводам. Весь смысл StyleCop — это иметь единый и общий стандарт.
Если там будет сказано "все используем только табы" или "только 4 пробела", то никаких проблем не будет. Хотя табы и в этом случае предпочтительнее.
ОК>Кто сказал?
Опыт работы на проектах с большим количеством людей и исходников, а также большим количеством бранчей и параллельной разработке в них.
A>>Пробелы после лидирующих табов должны рассматриваться как build error. ОК>А еще проще делать билд эрроры по наличию тэбов.
И то, и другое делается элементарно — включением соответствующего правила. Это не имеет отношения к предмету обсуждения.
ОК>Кстати, ты выше написал слово тэб и предлагаешь использовать инструменты чтобы их увидеть.
Если бы редактор сообщений RSDN позволял наглядно отобразить таб, я бы использовал эту фичу. В Visual Studio и других редакторах такой проблемы нет.
ОК>Даже если ты прав на сто процентов (а я не согласен что ты прав), то, согласись, проблему/путаницу тэбы добавляют. С одними спейсами таких проблем нет.
Какую путаницу? Наоборот, все становится исключительно просто, вплоть до того, что пишет автоматический реформаттер для StyleCop/Resharper, и о поддержке пробелов забывается навсегда. Где здесь добавленная путаница?
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, _Obelisk_, Вы писали:
_O_>Здравствуйте, alpha21264, Вы писали:
_O_>>>А смысл ? Код должен решать задачу, допускать расширение в разумных пределах и его можно было бы саппортить. Зачем его в рамочку ставить ?
A>>Задачи бывают разные. Например — обучение. Как надо и как не надо делать.
_O_>Обучаться надо на решении задач, а не построении кода для рамочки.
Не-а.
Решать задачи конечно надо.
Но наисание кода — это тоже отдельное умение. И ему тоже нужно учиться.
Причем, когда учишься кодированию, шибко сложная задача не должна этому мешать.
Течёт вода Кубань-реки куда велят большевики.
Re[16]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>В случае тэбов, ты говоришь, что ты можешь что-то поделать. Во втором случае ты уже просто не сможешь поменять весь код так как тебе нравится. Так понятнее?
Вот здесь описано то, что можно энфорсить StyleCop-ом: http://www.stylecop.com/docs/StyleCop%20Rules.html
Там есть и про идентификаторы, и про скобки, и про оформление сложных выражений.
ОК>Проектам не первый десяток лет. Писались разными людьми с разными стилями и наворотами. Перекошенный код — да, неудобно, но это меньшая из всех проблем.
В случае табов это не было бы проблемой, все отступы отображались бы одинаково. А так сами себе создали сложности, и продолжаете упорствовать.
Re[16]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>Не надо смешивать код и оформление. Корявый код может быть отлично оформлен, но речь не о нем. ОК>И что бы ты не говорил, это все часть кода. Ты не читаешь код в отдельности от оформления и наоборот.
Поплывшее оформление мешает чтению кода, и при этом не является кодом (ну если это не brainfuck или питон).
A>>Если бы команда позаботилась об автоматическом энфорсменте coding style во время билда, такого не случилось бы. В противном случае я не вижу разницы между "каждый выбирает себе размер отступа в пробелах, и наплевав на остальные сабмитит такие файлы" и "каждый выбирает свой собственный стиль во всем — скобках, пробелах, именовании, комментариях и т.д." ОК>Читай мои ответы выше.
А по существу ответить? Выше я вижу повторение одного и того же, без желания выслушать другую точку зрения, и с нарушением элементарной логики.
A>>Этой проблемы не существует, она надуманна и искусственна. Более того, использование пробелов здесь только мешает делу, потому что при изменении названия функции (что может произойти при автоматическом рефакторинге), все поплывет и придется вручную переформатировать. Отфильтровывать подобные изменения в репозитории от нормальных правок — то еще удовольствие. ОК>Ты опять приплетаешь сюда инструменты... Ну раз так, пусть инструменты умеют также и переформатировать код при автоматическом рефакторинге!
Речь не об инструментах, а об использовании пробелов/табов для индентации. Если бы от индентации отказались, то проблемы не было бы. Читабельность кода при этом не страдает.
Re[16]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
ОК>Так понятнее?
Так ещё запутаннее.
IT>>В случае с пробелами всё обстоит именно так. Табуляции оставляют свободу выбора разработчику. ОК>Это современный костыль придуманный пропонентами табов.
Этому современному "костылю" больше лет, чем нам с тобой вместе взятым. К тому же костыль это вовсе не табы, а пробелы. Когда ты это уже поймёшь?
IT>>Подождика. В одном проекте нельзя задать разный размер табуляции в один и тот же момент. Или в твоём случае это не так ОК>Проектам не первый десяток лет. Писались разными людьми с разными стилями и наворотами. Перекошенный код — да, неудобно, но это меньшая из всех проблем.
И при чём здесь табы или пробелы? Ну всё перекошено, ну никто никогда не энфорсил единый стиль. В этом табы виноваты? А почему тогда не пробелы? С табами у вас как раз были хоть какие-то шансы. А спробелами никаких, потому что у каждого разработчика свои предпочтения и вам, пробелистам, нужно ещё сначала друг с другом научится договариваться.
IT>>Да это полная фигня. К тому же показатель плохого стиля. ОК>Кто сказал про плохой стиль?
А кто сказал, что хороший?
IT>>Ты привёл плохой пример. ОК>Кто сказал? Или тебе нужен "хороший" пример который бы был удобен тебе?
Т.е. ты считаешь, что твои предпочтения самы предпочтительные предпочтения?
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Я не согласен в первопричине о которой ты говоришь но также замечу что имеем то что имеем и это не впервой вижу. A>Именно этой первопричиной обусловлено то, что вы видите. С чем конкретно вы не согласны?
Меня ломает уже повторяться. Пора закругляться.
A>>>Для C# есть StyleCop, который прекрасно энфорсит это дело. ОК>>И что? Кому-то нравится два спейса, кому-то четыре, кому-то восемь. Каждый будет настраивать полицая как ему угодно. Что дальше?
A>Правила StyleCop выбираются один раз, применяются для всех проектов, и изменяются только по особым поводам. Весь смысл StyleCop — это иметь единый и общий стандарт.
Когда писались те проекты, полицая не было. И потом, повторюсь еще раз, если тебе приходится подключать полицая для этих целей, то это только показывает что проблема с табами существует!
A>Если там будет сказано "все используем только табы" или "только 4 пробела", то никаких проблем не будет. Хотя табы и в этом случае предпочтительнее.
ОК>>Кто сказал? A>Опыт работы на проектах с большим количеством людей и исходников, а также большим количеством бранчей и параллельной разработке в них.
Я могу тебе сказать аналогичное. Кто из нас будет прав? Так что не убедил.
A>>>Пробелы после лидирующих табов должны рассматриваться как build error. ОК>>А еще проще делать билд эрроры по наличию тэбов.
A>И то, и другое делается элементарно — включением соответствующего правила. Это не имеет отношения к предмету обсуждения.
Вот именно! Я тебе говорю что табы только внесли дополнительные проблемы.
ОК>>Кстати, ты выше написал слово тэб и предлагаешь использовать инструменты чтобы их увидеть.
A>Если бы редактор сообщений RSDN позволял наглядно отобразить таб, я бы использовал эту фичу. В Visual Studio и других редакторах такой проблемы нет.
Ты не понял о чем я. Я о том что приходится полагаться на дополнительные тулзы чтобы их увидеть/инфорсить.
ОК>>Даже если ты прав на сто процентов (а я не согласен что ты прав), то, согласись, проблему/путаницу тэбы добавляют. С одними спейсами таких проблем нет.
A>Какую путаницу? Наоборот, все становится исключительно просто, вплоть до того, что пишет автоматический реформаттер для StyleCop/Resharper, и о поддержке пробелов забывается навсегда. Где здесь добавленная путаница?
Пойду от обратного. Согласись, жизнь была бы проще если бы не было этих табов вообще? И потом, табы всегда были восемь спейсов. Это современные пропоненты придумали какой-то костыль в виде табов разных размеров.
Re[17]: Он думает, что пишет качественный код. Скоро его мнение изменится
Ну напрягись что ли. Или это ты так уходишь от аргумента?
IT>>>В случае с пробелами всё обстоит именно так. Табуляции оставляют свободу выбора разработчику. ОК>>Это современный костыль придуманный пропонентами табов.
IT>Этому современному "костылю" больше лет, чем нам с тобой вместе взятым. К тому же костыль это вовсе не табы, а пробелы. Когда ты это уже поймёшь?
Ну так давай вообще избавимся от пробелов и будем в качестве спейсов использовать табы!
IT>>>Подождика. В одном проекте нельзя задать разный размер табуляции в один и тот же момент. Или в твоём случае это не так ОК>>Проектам не первый десяток лет. Писались разными людьми с разными стилями и наворотами. Перекошенный код — да, неудобно, но это меньшая из всех проблем.
IT>И при чём здесь табы или пробелы? Ну всё перекошено, ну никто никогда не энфорсил единый стиль. В этом табы виноваты? А почему тогда не пробелы? С табами у вас как раз были хоть какие-то шансы. А спробелами никаких, потому что у каждого разработчика свои предпочтения и вам, пробелистам, нужно ещё сначала друг с другом научится договариваться.
Нелегко договориться с людьми которые работали десять-двадцать лет назад.
IT>>>Да это полная фигня. К тому же показатель плохого стиля. ОК>>Кто сказал про плохой стиль?
IT>А кто сказал, что хороший?
А я и не говорю что он хороший. Все что я сказал что такой стиль есть! Про плохой стиль это ты начал.
IT>>>Ты привёл плохой пример. ОК>>Кто сказал? Или тебе нужен "хороший" пример который бы был удобен тебе?
IT>Т.е. ты считаешь, что твои предпочтения самы предпочтительные предпочтения?
Нет, я не считаю. Если я пишу что-то для себя, я делаю так как мне нравится. На работе стараюсь придерживаться стиля в котором написан "данный кусок."
Re[17]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>>Не надо смешивать код и оформление. Корявый код может быть отлично оформлен, но речь не о нем. ОК>>И что бы ты не говорил, это все часть кода. Ты не читаешь код в отдельности от оформления и наоборот.
A>Поплывшее оформление мешает чтению кода, и при этом не является кодом (ну если это не brainfuck или питон).
А-а-а. Ну я понял. Ты сейчас еще скажешь что само оформление хранится в другом файле отдельно от кода?
A>>>Если бы команда позаботилась об автоматическом энфорсменте coding style во время билда, такого не случилось бы. В противном случае я не вижу разницы между "каждый выбирает себе размер отступа в пробелах, и наплевав на остальные сабмитит такие файлы" и "каждый выбирает свой собственный стиль во всем — скобках, пробелах, именовании, комментариях и т.д." ОК>>Читай мои ответы выше.
A>А по существу ответить? Выше я вижу повторение одного и того же, без желания выслушать другую точку зрения, и с нарушением элементарной логики.
Я привел один пример существующего стиля. Ты его забраковал лишь только потому что инструменты не смогут правильно отформатировать код при автоматическом рефакторинге. То есть ты сказал что ты пишешь код для тулзов а не для людей. И потом, мне не хочется повторяться больше.
A>>>Этой проблемы не существует, она надуманна и искусственна. Более того, использование пробелов здесь только мешает делу, потому что при изменении названия функции (что может произойти при автоматическом рефакторинге), все поплывет и придется вручную переформатировать. Отфильтровывать подобные изменения в репозитории от нормальных правок — то еще удовольствие. ОК>>Ты опять приплетаешь сюда инструменты... Ну раз так, пусть инструменты умеют также и переформатировать код при автоматическом рефакторинге!
A>Речь не об инструментах, а об использовании пробелов/табов для индентации. Если бы от индентации отказались, то проблемы не было бы. Читабельность кода при этом не страдает.
Скажи, а в середине кода можно использовать табы? Ничего не поплывет при разных размерах таба у разных людей?
Re[16]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Меня ломает уже повторяться. Пора закругляться.
Я так понимаю аргументы закончились? Внятного описания проблемы и логичного обоснования табов как ее причины я не увидел.
ОК>Когда писались те проекты, полицая не было.
Если бы изначально использовались табы, то для ровного и одинакового отображения разных исходников не потребовалось бы делать ничего. И это не зависит от инструментов или времени.
ОК>И потом, повторюсь еще раз, если тебе приходится подключать полицая для этих целей, то это только показывает что проблема с табами существует!
Я чувствую, что разговариваю с капризным ребенком. StyleCop нужен, чтобы поддерживать единый стиль, не важно табы это или пробелы, и который включает в себя куда больше, чем выбор символов для отступа. Каким образом подключение StyleCop "показывает, что проблема с табами существует" я не вижу.
A>>Опыт работы на проектах с большим количеством людей и исходников, а также большим количеством бранчей и параллельной разработке в них. ОК>Я могу тебе сказать аналогичное. Кто из нас будет прав? Так что не убедил.
Ну расскажите нам про свой опыт, а именно о том, как команда страдала от табов, а потом перешли на пробелы и все стали счастливы. И немножко статистики, чтобы представить себе масштабы бедствия.
ОК>Вот именно! Я тебе говорю что табы только внесли дополнительные проблемы.
Какие именно дополнительные проблемы внесли табы?
ОК>Ты не понял о чем я. Я о том что приходится полагаться на дополнительные тулзы чтобы их увидеть/инфорсить.
А с пробелами иначе? И какое отношение команда show whitespace в редакторе имеет к поплывшему форматированию? A>>Какую путаницу? Наоборот, все становится исключительно просто, вплоть до того, что пишет автоматический реформаттер для StyleCop/Resharper, и о поддержке пробелов забывается навсегда. Где здесь добавленная путаница?
ОК>Пойду от обратного. Согласись, жизнь была бы проще если бы не было этих табов вообще?
Не соглашусь, потому что для меня это не очевидно. Разжуйте подробнее почем без табов было бы проще? Пока я вижу, что проще было бы как раз без пробелов.
ОК>И потом, табы всегда были восемь спейсов.
На печатных машинках может быть и были фиксированные табы на 8 позиций. Во всех компьютерных программах размер таба настраиваем. Более того, "стандартным" де-факто является размер в 4 позиции, а не 2 и не 8.
Re[18]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Ну так давай вообще избавимся от пробелов и будем в качестве спейсов использовать табы!
Пробел — это разделитель слов. Таб — отступ в начале строки. Все остальные варианты = build error, в том числе два пробела подряд или пробел после таба.
ОК>Нелегко договориться с людьми которые работали десять-двадцать лет назад.
А используй они табы, не нужно было бы и договариваться. Кроме того, наличие legacy кода не оправдывает продолжение написания в том же стиле, вызывающего проблемы при поддержке в будущем.
ОК>Нет, я не считаю. Если я пишу что-то для себя, я делаю так как мне нравится. На работе стараюсь придерживаться стиля в котором написан "данный кусок."
Вместо того, чтобы придерживаться общего стиля. А так получается, что шмонящий код расползается от старых частей к новым.
Re[18]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Так ещё запутаннее. ОК>Ну напрягись что ли. Или это ты так уходишь от аргумента?
От чего!?! Ты случайно не забыл чем мы тут меряемся? Напоминаю, мы меряемся своими предпочтениями. Какие аргументы? Ты ещё про логику вспомни.
IT>>Этому современному "костылю" больше лет, чем нам с тобой вместе взятым. К тому же костыль это вовсе не табы, а пробелы. Когда ты это уже поймёшь? ОК>Ну так давай вообще избавимся от пробелов и будем в качестве спейсов использовать табы!
Давай. От ведущих.
ОК>Нелегко договориться с людьми которые работали десять-двадцать лет назад.
Так всё дело в этом, а не в табах.
IT>>А кто сказал, что хороший? ОК>А я и не говорю что он хороший. Все что я сказал что такой стиль есть! Про плохой стиль это ты начал.
Мне он не нравится. Значит для меня плохой.
IT>>Т.е. ты считаешь, что твои предпочтения самы предпочтительные предпочтения? ОК>Нет, я не считаю. Если я пишу что-то для себя, я делаю так как мне нравится. На работе стараюсь придерживаться стиля в котором написан "данный кусок."
Стиль — это всего лишь предпочтения. Ни на работе, ни дома они не перестают быть предпочтениями. Если ты на работе следуешь чужим предпочтениям пятнадцатилетней давности, которые к тому же ещё и плохие, и при этом есть возможность их изменить, то я не вижу проблем, чтобы это сделать.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>Я свой код вижу прежде всего по мильёну раз в день в моём повседневном иструменте. Это меня волнует прежде всего. Вожность остальных случаев по сравнению с этим трудно разглядеть даже в микроскоп.
ОК>>Какой у тебя размер табов и какой у тебя максимальный уровень вложенности от начала функции?
IT>4 и фиг его знает.
У меня восемь. Вложенностей от начала строки 3-4, максимум пять. Весь код посередине экрана. Нет нагромождения слева и нет кучи свободного места справа и, как бонус, сразу виднее что чему подчиняется.
ОК>>Если пишешь на Си шарпе, то добавь сюда еще как минимум два — один уровень вложенности для класса, другой для неймспейса. Так ведь?
IT>И ещё у меня всегда включена нумерация строк и при этом куча места справа, а код всё равно выглядит немного смещённым влево. И теперь если какой-нибудь умник решит, что раз он работает над Немерле, то ему всё можно и захерачит отступы из двух пробелов, то на моём мониторе код сольётся в одну сплошную полосу у левой части экрана.
У меня тоже нумерация строк включена и смотри выше. На счет умника — обычно все-таки люди придерживаются стиля начального разработчика. Ну и попросить можно всегда. В чужой монастырь, сам понимаешь...
IT>Всё зло от пробелов! Tabs rock, spaces suck!
Пробелы по этой причине предлагаю отменить! Используй только табы! Вообще, вырви ты эту клавишу из клавиатуры.
Re[18]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>А-а-а. Ну я понял. Ты сейчас еще скажешь что само оформление хранится в другом файле отдельно от кода?
Не стоит приписывать мне свои фантазии. Я такого не говорил и говорить не собираюсь.
ОК>Я привел один пример существующего стиля. Ты его забраковал лишь только потому что инструменты не смогут правильно отформатировать код при автоматическом рефакторинге. То есть ты сказал что ты пишешь код для тулзов а не для людей. И потом, мне не хочется повторяться больше.
Инструменты смогут отформатировать, им все равно как там строчки выровнены. А у людей будет buttheart, потому что все расползлось и снова нужно вручную править. Так что забота как раз о людях, а не тулзах.
ОК>И потом, мне не хочется повторяться больше.
Ну нужно повторяться, нужно всего один раз внятно объяснить свою позицицю. Пока я вижу только эмоции и отсутствие логических аргументов/рассуждений.
ОК>Скажи, а в середине кода можно использовать табы? Ничего не поплывет при разных размерах таба у разных людей?
Нет, в середине кода табы использовать нельзя. Можно только в начале строки. Несколько пробелов подряд тоже использовать нельзя.
А для чего вам табы в середине? Для индентации? Вот.
Re[19]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>Так ещё запутаннее. ОК>>Ну напрягись что ли. Или это ты так уходишь от аргумента?
IT>От чего!?! Ты случайно не забыл чем мы тут меряемся? Напоминаю, мы меряемся своими предпочтениями. Какие аргументы? Ты ещё про логику вспомни.
Ну может это ты меряешься. Я — нет.
IT>>>Этому современному "костылю" больше лет, чем нам с тобой вместе взятым. К тому же костыль это вовсе не табы, а пробелы. Когда ты это уже поймёшь? ОК>>Ну так давай вообще избавимся от пробелов и будем в качестве спейсов использовать табы!
IT>Давай. От ведущих.
Все или ничего!
ОК>>Нелегко договориться с людьми которые работали десять-двадцать лет назад.
IT>Так всё дело в этом, а не в табах.
Повторюсь, табы создали только лишние проблемы.
IT>>>А кто сказал, что хороший? ОК>>А я и не говорю что он хороший. Все что я сказал что такой стиль есть! Про плохой стиль это ты начал.
IT>Мне он не нравится. Значит для меня плохой.
Ну а кому-то нравится. Кто из вас прав?
Мне лично все равно до стиля.
IT>>>Т.е. ты считаешь, что твои предпочтения самы предпочтительные предпочтения? ОК>>Нет, я не считаю. Если я пишу что-то для себя, я делаю так как мне нравится. На работе стараюсь придерживаться стиля в котором написан "данный кусок."
IT>Стиль — это всего лишь предпочтения. Ни на работе, ни дома они не перестают быть предпочтениями. Если ты на работе следуешь чужим предпочтениям пятнадцатилетней давности, которые к тому же ещё и плохие, и при этом есть возможность их изменить, то я не вижу проблем, чтобы это сделать.
Ну разумеется мы все следуем чему-то "свыше." Дома мне нравится делать по-своему, на работе я отключаюсь от этого. Пойнт тут в том что я могу следовать чужим "предпочтениям" а не просто кричать код г, кругом табы а не спейсы и не наоборот.
Re[19]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>А-а-а. Ну я понял. Ты сейчас еще скажешь что само оформление хранится в другом файле отдельно от кода?
A>Не стоит приписывать мне свои фантазии. Я такого не говорил и говорить не собираюсь.
Я умышленно утрировал чтобы донести до тебя мысль. Ты не понимаешь что код и оформление этого кода и есть одно целое!
ОК>>Я привел один пример существующего стиля. Ты его забраковал лишь только потому что инструменты не смогут правильно отформатировать код при автоматическом рефакторинге. То есть ты сказал что ты пишешь код для тулзов а не для людей. И потом, мне не хочется повторяться больше.
A>Инструменты смогут отформатировать, им все равно как там строчки выровнены. А у людей будет buttheart, потому что все расползлось и снова нужно вручную править. Так что забота как раз о людях, а не тулзах.
ОК>>И потом, мне не хочется повторяться больше.
A>Ну нужно повторяться, нужно всего один раз внятно объяснить свою позицицю. Пока я вижу только эмоции и отсутствие логических аргументов/рассуждений.
Сто раз объяснил.
ОК>>Скажи, а в середине кода можно использовать табы? Ничего не поплывет при разных размерах таба у разных людей?
A>Нет, в середине кода табы использовать нельзя. Можно только в начале строки. Несколько пробелов подряд тоже использовать нельзя.
А почему только вначале можно а в середине нельзя?
A>А для чего вам табы в середине? Для индентации? Вот.
Мне они вообще не нужны но если что-то можно сделать, то это будет сделанно! Только не приплетай сюда тулзы для борьбы с этой возможностью. Было бы очень хорошо если бы этой возможности не было в первую очередь! Это мой посыл.
Re[17]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Когда писались те проекты, полицая не было.
A>Если бы изначально использовались табы, то для ровного и одинакового отображения разных исходников не потребовалось бы делать ничего. И это не зависит от инструментов или времени.
Если бы изначально не было табов, то и не было бы таких проблем и этих дискуссий (которые просто экономически невыгодны).
Re[19]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>От чего!?! Ты случайно не забыл чем мы тут меряемся? Напоминаю, мы меряемся своими предпочтениями. Какие аргументы? Ты ещё про логику вспомни. ОК>Ну может это ты меряешься. Я — нет.
И ты — да. В этом смысл предпочтений. Ими можно только меряться.
IT>>Давай. От ведущих. ОК>Все или ничего!
Тогда предложи отменить то или иное прямо в OS или даже в железе.
IT>>Так всё дело в этом, а не в табах. ОК>Повторюсь, табы создали только лишние проблемы.
Никаких проблем они не создают. В отличие от пробелов.
IT>>Мне он не нравится. Значит для меня плохой. ОК>Ну а кому-то нравится. Кто из вас прав?
Никто или оба. Потому что мы говорим о предпочтениях.
ОК>Мне лично все равно до стиля.
А зачем ты его тут тогда привёл в качестве аргумента.
ОК>Ну разумеется мы все следуем чему-то "свыше." Дома мне нравится делать по-своему, на работе я отключаюсь от этого. Пойнт тут в том что я могу следовать чужим "предпочтениям" а не просто кричать код г, кругом табы а не спейсы и не наоборот.
Следовать за стадом — дело как раз не хитрое. Убеждать людей и ломать устаревшие предпочтения гораздо трудней и интересней.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[21]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Я умышленно утрировал чтобы донести до тебя мысль.
A>Не надо утрировать, лучше говорите конкретно и по делу.
Так я и говорю. Ты отказываешся понимать.
ОК>>Ты не понимаешь что код и оформление этого кода и есть одно целое!
A>Откуда взялся такой вывод? Большинство исходников хранится в виде текстовых файлов, где оформление делается пробелами, табами и переносами строк. Раздельное хранение форматирования и контента — это экзотика, я такого не встречал, и годится скорее для Word-а.
Так я тебе об этом и говорю. Все комменты, табы, пробелы и лексеммы языка и есть код.
A>С другой стороны, вы всерьез считаете, что использование именно двух пробелов в этом месте и именно пяти вон в том, необходимы для правильной работы кода? Компилятор в курсе? A>Или вы утверждаете, что количество пробелов — это отображение личности писавшего и трогать такой код нельзя, чтобы не оскорбить человека? А о названиях переменных и классов вы долго спорите? Я бы не хотел в такую команду.
Не спорим.
A>>>Ну нужно повторяться, нужно всего один раз внятно объяснить свою позицицю. Пока я вижу только эмоции и отсутствие логических аргументов/рассуждений. ОК>>Сто раз объяснил.
A>Можно ссылку на окончательный и наиболее полный вариант ответа? А, к черту полноту, просто хоть на какой-нибудь внятный ответ?
Сто раз был.
ОК>>А почему только вначале можно а в середине нельзя?
A>Потому что тогда ничего не расползается и у всех выглядит одинаково хорошо, при любых настройках табов и при любых изменениях файла, включая использование инструменов рефакторинга. Это простое правило, которое легко запомнить и которому легко следовать. Кроме того, это облегчает сравнение файлов и отслеживание истории изменений.
Не убедил. А при отслеживании истории можно игнорировать пробелы/табы.
A>>>А для чего вам табы в середине? Для индентации? Вот.
ОК>>Мне они вообще не нужны но если что-то можно сделать, то это будет сделанно! Только не приплетай сюда тулзы для борьбы с этой возможностью. Было бы очень хорошо если бы этой возможности не было в первую очередь! Это мой посыл.
A>И что изменится, если вместо табов в середине будут пробелы в середине?
Ты видел код Петцольда? Мне нравится как он форматирует код. По крайней мере тот что про ВинАПИ. Там у него кучи пробелов в середине. Читаемость хорошая но боюсь ты бы зарубил его со своим полицаем.
Re[19]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Если бы изначально не было табов, то и не было бы таких проблем и этих дискуссий (которые просто экономически невыгодны).
A>Каких проблем бы не было? Дикой смеси 2, 4 и 8 пробелов в разных файлах одного проекта? A>Для тех, кто способен объективно и без эмоций воспринимать логические доводы, эта дискуссия длилась бы 15 минут — описание плюсов и минусов каждого подхода, естественный выбор, обсуждение средств энфорсмента на уровне команды.
То же самое могу сказать и о тебе!
A>Но если важнее доказать, что кто-то в интернете не прав, то можно часами повторять одно и то же.
Ну так чего полез в "драку?"
Re[22]: Он думает, что пишет качественный код. Скоро его мнение изменится
Говорить по делу — значит отстаивать свою позицию, приводя разумные аргументы, и проводя логические рассуждения.
Фразы "а я говорю, а он не понимает" — это не по делу.
ОК>Так я тебе об этом и говорю. Все комменты, табы, пробелы и лексеммы языка и есть код.
При этом лексемы языка читаются как человеком, там и компилятором. А пробелы нужно исключительно человеку для облегчения чтения. Компилятор их игнорирует. Поэтому пробелы — это чистое оформление, а не код, хотя и находятся с кодом в одном файле.
A>>Можно ссылку на окончательный и наиболее полный вариант ответа? А, к черту полноту, просто хоть на какой-нибудь внятный ответ? ОК>Сто раз был.
Ссылку.
ОК>>>А почему только вначале можно а в середине нельзя?
A>>Потому что тогда ничего не расползается и у всех выглядит одинаково хорошо, при любых настройках табов и при любых изменениях файла, включая использование инструменов рефакторинга. Это простое правило, которое легко запомнить и которому легко следовать. Кроме того, это облегчает сравнение файлов и отслеживание истории изменений.
ОК>Не убедил.
Т.е. когда расплывается — это лучше, чем когда у всех выглядит одинаково хорошо?
ОК>А при отслеживании истории можно игнорировать пробелы/табы.
А если ногу натер, то можно ходить, не наступая на нее. Зачем создавать проблемы, чтобы потом с ними бороться или игнорировать?
A>>>>А для чего вам табы в середине? Для индентации? Вот.
A>>И что изменится, если вместо табов в середине будут пробелы в середине? ОК>Ты видел код Петцольда? Мне нравится как он форматирует код. По крайней мере тот что про ВинАПИ. Там у него кучи пробелов в середине. Читаемость хорошая но боюсь ты бы зарубил его со своим полицаем.
Повторяю вопрос: что изменится, если вместо табов в середине будут пробелы? Как это решит проблему расползания форматирования?
Re[22]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>Табличное форматирование это то, что позволяет во втором примере практически мгновенно обнаружить ошибки по аномалиям в форматировании.
Такой код часто приводят в пример сторонники индентации. Как показывает практика, если использовать первый вариант (где не так хорошо все видно), то проблем с читаемостью это не вызывает. Исключение когда в файле много раз встречается такое, тогда можно сделать rule suppression.
У всего есть плюсы и минусы, такие моменты можно считать минусом отказа от индентации, но плюсы перевешивают.
Re[23]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
A>У всего есть плюсы и минусы, такие моменты можно считать минусом отказа от индентации, но плюсы перевешивают.
Причём тут индентация? Ты блоки кода пробельными строками отбиваешь для удобства восприятия или оформляешь всё одной сплошной полосой? Табличное форматирование — это отбивка кода по вертикали, чтобы отделить логические участки кода. Как в предыдущем примере участки инициализации или, ещё в качестве примера, блок объявления переменных от их инициализации. Смысл этого такой же как и пробельные строк, которые используются для разделения кода по вертикали.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>4 и фиг его знает. ОК>У меня восемь. Вложенностей от начала строки 3-4, максимум пять. Весь код посередине экрана. Нет нагромождения слева и нет кучи свободного места справа и, как бонус, сразу виднее что чему подчиняется.
Восемь для меня не удобно.
IT>>Всё зло от пробелов! Tabs rock, spaces suck! ОК>Пробелы по этой причине предлагаю отменить! Используй только табы! Вообще, вырви ты эту клавишу из клавиатуры.
Вырви лучше себе таб. А пробелы мне нужны, например, для табличного форматирования.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[24]: Он думает, что пишет качественный код. Скоро его мнение изменится
Выравнивание кода внутри строки имеет те же самые недостатки, что и выравнивание начала строки, добивая лидирующие табы пробелами.
IT>Ты блоки кода пробельными строками отбиваешь для удобства восприятия или оформляешь всё одной сплошной полосой?
Пустые строки между блоками кода — это другое. Их можно использовать, и для них есть свои правила. Пустая строка обычно всего одна и она не превратится в несколько, если мы поменяем настройки таба.
IT>Табличное форматирование — это отбивка кода по вертикали, чтобы отделить логические участки кода. Как в предыдущем примере участки инициализации или, ещё в качестве примера, блок объявления переменных от их инициализации. Смысл этого такой же как и пробельные строк, которые используются для разделения кода по вертикали.
Я понимаю. И все же считаю, что любое выравнивание — зло.
Re[9]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
A>Выравнивание кода внутри строки имеет те же самые недостатки, что и выравнивание начала строки, добивая лидирующие табы пробелами.
Какие именно?
IT>>Ты блоки кода пробельными строками отбиваешь для удобства восприятия или оформляешь всё одной сплошной полосой? A>Пустые строки между блоками кода — это другое. Их можно использовать, и для них есть свои правила. Пустая строка обычно всего одна и она не превратится в несколько, если мы поменяем настройки таба.
А табличное форматирование и не делается табами. Только пробелами.
IT>>Табличное форматирование — это отбивка кода по вертикали, чтобы отделить логические участки кода. Как в предыдущем примере участки инициализации или, ещё в качестве примера, блок объявления переменных от их инициализации. Смысл этого такой же как и пробельные строк, которые используются для разделения кода по вертикали.
A>Я понимаю. И все же считаю, что любое выравнивание — зло.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[26]: Он думает, что пишет качественный код. Скоро его мнение изменится
A>>Выравнивание кода внутри строки имеет те же самые недостатки, что и выравнивание начала строки, добивая лидирующие табы пробелами. IT>Какие именно?
Когда такой код редактируется (или добавляются новые строки) другими людьми, он быстро превращается в смесь табов и пробелов. Проще договориться не выравнивать вообще, чем обеспечить выполнение "в начале строки только табы, в середине только пробелы".
Re[27]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
A>>>Выравнивание кода внутри строки имеет те же самые недостатки, что и выравнивание начала строки, добивая лидирующие табы пробелами. IT>>Какие именно?
A>Когда такой код редактируется (или добавляются новые строки) другими людьми, он быстро превращается в смесь табов и пробелов. Проще договориться не выравнивать вообще, чем обеспечить выполнение "в начале строки только табы, в середине только пробелы".
Никогда не испытывал с этим никаких проблем. А у тебя Visible White Space включены? Там же сразу всё видно как на ладони.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, abibok, Вы писали:
IT>>Никогда не испытывал с этим никаких проблем. А у тебя Visible White Space включены? Там же сразу всё видно как на ладони. A>Нет, обычно не включены. У меня StyleCop.
Да хоть просто cop. Включи VWS, покрась их в серое, чтобы сильно не выделялись и скоро ты про проблему табуляций/пробелов забудешь навсегда.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[29]: Он думает, что пишет качественный код. Скоро его мнение изменится
Извините, все не читал, слишком много. Потом просмотрю
>И фиг бы с ним, но ты же ещё раскидал копии этой структуры по разным хидерам — это-то нафига делать
Это я ступил. Кто спешит тот людей ... заставляет писать об этом на форумах
>Это потому, что когда C++-программист будет читать твой код и увидит "and", "not", "or"
Спасибо за подробный ответ. Но есть замечания. Вспомним еретический <ciso646>, даже заглянем в него. И опа, кажется индусы завелись в стандарте. В общем теперь, все эти вопли и сморщенные носики касательно синтаксиса кажутся немного преувеличенными. Хотя не буду спорить, херить стандартный синтаксис не хорошо, но блин, он ведь иногда такой уродливый.
По поводу страданий кодера который увидит в коде and or not — макросы от остального отличаются цветом шрифта (не в notepad ведь код пишем) и всегда есть подсказки плюс хоткей чтобы за секунду ознакомиться с макросом.
>И на сладкое. Например, в boost встречаются методы null(). Догадываешься, какой будет эффект, если попытаться совместить boost с Syntax.h?
Согласен, не знал. Но у меня уже были подобные конфликты имен, тут все сразу понятно. Жмем Rename в VAX и все ссылки в коде исправлены. Ерунда
>А просто разделители без текстов поставить — нет?
Я пробовал. Нет, все равно сливается в кашу
>Потому что не надо пытаться делать из C++ другой язык программирования с другим синтаксисом
Синтаксический сахар не делает из C++ другой язык
>Что это за not? Будет ли здесь вызвано неявное приведение типа, возвращаемого Foo к bool? Или к int? Или есть какой-нибудь MySuperBoolean?
Возможно, но маловероятно. Серьезно, как надо обкуриться чтобы принять not за класс или еще что-то?
>Ты в курсе о погрешностях вычислений с плавающей точкой?
Да конечно в курсе и мне еще предстоит детально в этом разобраться, а то немного мутновато. Ну а пока, тот код относился к вращению камеры в пространстве, если б было фатально, я б сразу заметил .
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
>Чувак, по одному твоему посту видно что ты новичок, но я тебя успокою. Видел бы ты код многих сеньйоров. Бейсбольной битой надо бить.
Понимаю, но самое плохое в этом то что не полный новичок, жуниор с опытом командной работы. Фиксил код сеньйоров, знаю, видел, полностью согласен
>Этих не слушай. Это чуваки из серии что позапихают в проект все фичи плюсов потому что "реальные пацаны так пишут!"
Я так и подумал, но все равно спасибо что успокоили
>Вообще можно обойтись без синглтонов.
Как именно? Просто скажите по какому слову гуглить
>Да, несколько станно было видеть дефайны для стандартных логических операторов.
Но ведь есть <ciso646> — это не я придумал. Зато теперь буду знать, что многих напрягает
>Даже если ты классно решил задачи, то будут придираться к таким мелочам. Сам подумай, кому охота вникать в логику чужого проекта? По одной твоей просьбе и видно что ты новичок.
Этот момент я упустил. Я хотел услышать что-то вроде: да твой код понятно смотреть, имена, структура, блоки — все четко и просто. Или наоборот — твой код труднее переварить чем внутреннее устройство STL. А получилось все только по мелочам и синтаксису. В общем, много людей потратил немного своего времени, а толку мало.
>Парень, не тушуйся и не особо прислушивайся тут к некоторым.
Не то что я особо парюсь из-за этого но спасибо за утешение. Но все равно кто-то теперь на собеседовании будет косо смотреть, вдруг тему читал?
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, _Obelisk_, Вы писали:
_O_>Ты гей, что ль? Фразы как-то обтекаемо строишь. Гнильцо какое-то чувствуется.
Судя по твоим фразам ты себе дружка ищешь и с чего-то решил со мной подружиться. Я тебе на знакомство отвечу примерно следующее: иди на ***** муди*******
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
ГВ>>Зачем нужна struct Pointer? CB>Я ненавижу нижнее подчеркивание
Так сильно что даже кющать не могёшь?
ГВ>>Ещё убери пустые комментарии "Description:", зачем они? Или заполни их содержательным текстом. CB>Чтобы методы визуально отделять друг от друга иначе они сливаю в сплошное мессиво
Вставь просто пустую строку
A>>Syntax.h это вообще жесть, я думал так только индусы могут CB>Why? А то действительно, не понимаю
Это лютый пц, за такое сразу no hire.
Пока поверь на слово — за такое принято бить канделябром.
ioj>>дефайны на стандартные вещи — удел полных *даков CB>Why? Why? Oh God WHY?
Да потому что ты плодишь лишние сущности. Ты ещё for, while, if передефайни. А после этого дай кому нибудь этот "код" почитать и посчитай 'WTF per minute' factor.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А что, наконец, делать с битовыми операциями? Они тоже — and/or/xor. Как будешь обозначать? bitand, bitor, bitxor?
and and, or or, xor xor
ГВ>И на сладкое. Например, в boost встречаются методы null(). Догадываешься, какой будет эффект, если попытаться совместить boost с Syntax.h?
Вспоминается #define true false // happy debugging!!!
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
>>Чувак, по одному твоему посту видно что ты новичок, но я тебя успокою. Видел бы ты код многих сеньйоров. Бейсбольной битой надо бить. CB>Понимаю, но самое плохое в этом то что не полный новичок, жуниор с опытом командной работы. Фиксил код сеньйоров, знаю, видел, полностью согласен
Ну, тогда у тебя всё ещё "спереди". Тебя ещё укусит Александреску, и тебе будет хотеться выть на луну писать ВСЁ на шаблонах и ВСЁ делать параметризуемым ВСЕМ.
Потом ещё помечешься между языками, то один то другой боготворя а затем топя в помоях. Не ты первый, не ты последний в общем.
>>Да, несколько станно было видеть дефайны для стандартных логических операторов. CB>Но ведь есть <ciso646> — это не я придумал. Зато теперь буду знать, что многих напрягает
The tokens were added to the standard in a 1995 amendment to the C90 standard.
Это как диграфы — для совсем бедных.
>>Даже если ты классно решил задачи, то будут придираться к таким мелочам. Сам подумай, кому охота вникать в логику чужого проекта? По одной твоей просьбе и видно что ты новичок. CB>Этот момент я упустил. Я хотел услышать что-то вроде: да твой код понятно смотреть, имена, структура, блоки — все четко и просто. Или наоборот — твой код труднее переварить чем внутреннее устройство STL. А получилось все только по мелочам и синтаксису.
Просто взгляд спотыкается на этих "мелочах" и дальше просто читать не хочется.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
ОК>Ты не понял. Я имел в виду индентацию кода а не размер мониторов. А может быть и понял но ушел от ответа таким образом.
Ну вот он и говорит что индентация кода слева должна выполняться строго табами.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
>>Что это за not? Будет ли здесь вызвано неявное приведение типа, возвращаемого Foo к bool? Или к int? Или есть какой-нибудь MySuperBoolean? CB>Возможно, но маловероятно. Серьезно, как надо обкуриться чтобы принять not за класс или еще что-то?
Тебе сказали уже, что в C/C++ существуют 2 операции not — логическая и побитовая.
Вот работал я над проектом, в котором исполняемые модули собирались из исходников на C и Фортране. Причем большую часть времени я возился с Фортраном. У него побитовых операций нет (по крайней мере, тогда не было). Отрицание в нем определено так: .NOT. И хорошо, что в С оно выглядело иначе. Потому что иначе мне пришлось бы каждый раз вспоминать, что это за операция, отвлекаясь, таким образом, от решения основной задачи. Или я пропускал бы эту not автоматом. В последнем случае я мог бы огрести кучу неприятностей.
Или еще вариант: реализуешь ты, к примеру, какой-нибудь функционал для Java с помощью JNI. Синтаксис у C и Java весьма похожи. А если все делаешь в одной и той же среде, скажем, в Eclipse, легко запутаться и начать писать not в Java-коде. А потом недоумевать, почему Eclipse в одних местах на эту not ругается, а в других — нет.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Vzhyk, Вы писали:
>> Табуляции в форматировании — зло. V>Пробелы в форматировании — зло.
Кстати, как человеку из мира С#, мне интересно, как обстоят дела в С/С++ стане в этом отношении?
Какие настройки использую по умолчанию:
1) Основная среда разработки
2) Тулзы работы с кодом вроде решарпера, которые так и норовят переформатировать код по своему
3) Поставщики генераторов кода для доступа к БД, поставщики контролов и т.п.
Поясню. В С#, к примеру, это
1) VS от 2005 до 2012 — пробелы
2) Resharper — пробелы
3) Внезапно тоже пробелы
Перенастраивать весь этот зоопарк — то еще удовольствие, да и вообще на уровне сизифова труда.
Все равно вылезут потом то тут, то там пробелы посреди табов и получится бардак.
Приходится диагностировать некоторым архитекторам заказчиков неопасный симптом "табуляции головного мозга". Как правило для дотнетчика это признак более серьезных заболеваний вроде "серебряная пуля головного мозга" и "не барское это дело — код писать".
Re[30]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, CompleteBrains, Вы писали:
>>Это потому, что когда C++-программист будет читать твой код и увидит "and", "not", "or" CB>Спасибо за подробный ответ. Но есть замечания. Вспомним еретический <ciso646>, даже заглянем в него. И опа, кажется индусы завелись в стандарте.
Да нет, это не индусы завелись в стандарте. Это в стародавние времена были некоторые сложности с кодировкой и ради совместимости пришлось вводить такие переобозначения, CreatorCray как раз правильно вспомнил про диграфы (кстати, ещё есть и триграфы). То есть это не украшение синтаксиса, а решение насущной проблемы.
CB>В общем теперь, все эти вопли и сморщенные носики касательно синтаксиса кажутся немного преувеличенными.
Отнюдь. Если бы ты включил iso646.h и сказал, что программа предназначена для компиляции разными компиляторами, в том числе каким-нибудь древнейшим C++, а просматривать ты её собираешься на терминале с 7-битным знакогенератором — отношение было бы совсем другое. А когда отовсюду торчат уши DirectX и C++11...
CB>Хотя не буду спорить, херить стандартный синтаксис не хорошо, но блин, он ведь иногда такой уродливый.
Дело вот в чём. Как правило, кодом не любуются — его читают ради того, чтобы в нём что-то поправить или разобраться, как он работает. В другое время код попросту никому не нужен — работает, и славно. Представь, что ты работаешь с проектом, ну, скажем, всего в 2-3 МБ исходников. Будешь ты им любоваться? Если да, то всем кодом сразу или по частям?
Поэтому главная задача, которой должно быть подчинено эстетическое оформление — помочь читать код. Поэтому чем он проще, чем меньше в нём отсылок во все стороны (в том числе и по F12) — тем лучше.
CB>По поводу страданий кодера который увидит в коде and or not — макросы от остального отличаются цветом шрифта (не в notepad ведь код пишем) и всегда есть подсказки плюс хоткей чтобы за секунду ознакомиться с макросом.
Любопытная смесь рассуждений XXI века и отсылок к iso646 Ну то есть, да, конечно, можно всегда нажать F12 — только чем меньше приходится это делать, тем лучше.
>>И на сладкое. Например, в boost встречаются методы null(). Догадываешься, какой будет эффект, если попытаться совместить boost с Syntax.h? CB>Согласен, не знал. Но у меня уже были подобные конфликты имен, тут все сразу понятно. Жмем Rename в VAX и все ссылки в коде исправлены. Ерунда
Ты собираешься исправлять boost по такому пустяковому поводу?
>>А просто разделители без текстов поставить — нет? CB>Я пробовал. Нет, все равно сливается в кашу
Ну OK, спишем на эстетство автора. В конце концов, это можно обозвать placeholder-ами. Вообще, по поводу комментариев я бы тебе посоветовал посмотреть на Doxygen. Не то, чтобы это было требованием, но кое-какая реальная польза от него случается.
>>Потому что не надо пытаться делать из C++ другой язык программирования с другим синтаксисом CB>Синтаксический сахар не делает из C++ другой язык
Чтобы не впадать в очередную серию холиваров — да, согласен. Но всё равно такие изыски смотрятся, уж извини, наивно. Такой стиль свойственен новичкам не только по отношению к C++. Приведу аналогию из мира Lisp: чуть не каждый новый лиспер первым делом бросается изобретать Lisp без скобок.
>>Что это за not? Будет ли здесь вызвано неявное приведение типа, возвращаемого Foo к bool? Или к int? Или есть какой-нибудь MySuperBoolean? CB>Возможно, но маловероятно. Серьезно, как надо обкуриться чтобы принять not за класс или еще что-то?
Ха!
class Invertor
{
public:
Invertor(){}
template<typename T>
inline bool operator &= (T val) const
{
Log("Inversion operator");
return !val;
}
};
#define not Invertor() &=
bool value = not otherValue;
Макросы — они такие макросы...
>>Ты в курсе о погрешностях вычислений с плавающей точкой? CB>Да конечно в курсе и мне еще предстоит детально в этом разобраться, а то немного мутновато. Ну а пока, тот код относился к вращению камеры в пространстве, если б было фатально, я б сразу заметил.
Ну, хорошо.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[8]: Он думает, что пишет качественный код. Скоро его мнение изменится
>>>Чувак, по одному твоему посту видно что ты новичок, но я тебя успокою. Видел бы ты код многих сеньйоров. Бейсбольной битой надо бить. CB>>Понимаю, но самое плохое в этом то что не полный новичок, жуниор с опытом командной работы. Фиксил код сеньйоров, знаю, видел, полностью согласен CC>Ну, тогда у тебя всё ещё "спереди". Тебя ещё укусит Александреску, и тебе будет хотеться выть на луну писать ВСЁ на шаблонах и ВСЁ делать параметризуемым ВСЕМ.
Скорее всего не будет. Видно ведь что понимает что не нужно это!
>>>Даже если ты классно решил задачи, то будут придираться к таким мелочам. Сам подумай, кому охота вникать в логику чужого проекта? По одной твоей просьбе и видно что ты новичок. CB>>Этот момент я упустил. Я хотел услышать что-то вроде: да твой код понятно смотреть, имена, структура, блоки — все четко и просто. Или наоборот — твой код труднее переварить чем внутреннее устройство STL. А получилось все только по мелочам и синтаксису. CC>Просто взгляд спотыкается на этих "мелочах" и дальше просто читать не хочется.
Да даже если бы мелочей таких не было, никто бы не стал вникать в логику или как все классно разбито на модули/классы/функции. Поэтому только и остаются такие придирки к мелочам.
Re[9]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Ты не понял. Я имел в виду индентацию кода а не размер мониторов. А может быть и понял но ушел от ответа таким образом. CC>Ну вот он и говорит что индентация кода слева должна выполняться строго табами.
Должна, должна... Кому она что должна?
З.Ы. Чтобы тут не говорилось, но факт остается фактом. Везде где я был видел дикую смесь табов и пробелов.
Re[9]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>4 и фиг его знает. ОК>>У меня восемь. Вложенностей от начала строки 3-4, максимум пять. Весь код посередине экрана. Нет нагромождения слева и нет кучи свободного места справа и, как бонус, сразу виднее что чему подчиняется.
IT>Восемь для меня не удобно.
Для меня было тоже вначале непривычно а потом понял что это классно. Плюсы я уже перечислил.
IT>>>Всё зло от пробелов! Tabs rock, spaces suck! ОК>>Пробелы по этой причине предлагаю отменить! Используй только табы! Вообще, вырви ты эту клавишу из клавиатуры.
IT>Вырви лучше себе таб. А пробелы мне нужны, например, для табличного форматирования.
А я почему должен вырывать? Я табы заменяю при сохранении на спейсы и тебе который раз говорю что без табов ты прожить сможешь, а вот без спейсов нет.
Re[10]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>Восемь для меня не удобно.
A>Восемь превращается в тряпки на экране уже при минимальной вложенности. Неудобно.
A>
A>class ForEachTest
A>{
A> static void Main(string[] args)
A> {
A> int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };
A> foreach (int i in fibarray)
A> {
A> if (i % 2 === )
A> {
A> Console.WriteLine("a");
A> }
A> else
A> {
A> Console.WriteLine("b");
A> }
A> }
A> }
A>}
A>
Не вижу тряпок но советую посмотреть где у тебя в основном код концентрируется на экране. Скорее всего в левой части в то время как в правой части куча свободного пространства.
Но таки да, я с тобой согласен что потому что методы в Шарпе должны быть определены в классе, это создает дополнительный уровень индентации. Оберни это в неймспейс — еще один уровень. Таков язык и именно из-за самого языка люди ставят табы в четыре спейса.
Но есть ведь еще Си, Ассемблер, Сиквел, Перл и шеллы. Для них тэб в восемь спейсов просто идеален.
Re[21]: Он думает, что пишет качественный код. Скоро его мнение изменится
IT>>>Давай. От ведущих. ОК>>Все или ничего!
IT>Тогда предложи отменить то или иное прямо в OS или даже в железе.
Предложил тебе ниже вырвать пробел из клавиатуры. Дело за тобой.
IT>>>Так всё дело в этом, а не в табах. ОК>>Повторюсь, табы создали только лишние проблемы.
IT>Никаких проблем они не создают. В отличие от пробелов.
Повторюсь еще раз. Без тэбов ты проживешь, без пробелов — нет.
IT>>>Мне он не нравится. Значит для меня плохой. ОК>>Ну а кому-то нравится. Кто из вас прав?
IT>Никто или оба. Потому что мы говорим о предпочтениях.
ОК>>Мне лично все равно до стиля.
IT>А зачем ты его тут тогда привёл в качестве аргумента.
Мы начинаем повторяться. Я тебе выше уже говорил что привел пример стиля который существует и который ломает твою догму с табами.
ОК>>Ну разумеется мы все следуем чему-то "свыше." Дома мне нравится делать по-своему, на работе я отключаюсь от этого. Пойнт тут в том что я могу следовать чужим "предпочтениям" а не просто кричать код г, кругом табы а не спейсы и не наоборот.
IT>Следовать за стадом — дело как раз не хитрое. Убеждать людей и ломать устаревшие предпочтения гораздо трудней и интересней.
Тут не следование за стадом а умение отключить свои предпочтения а работать в рамках существующего кода.
Re[10]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
ОК>А я почему должен вырывать? Я табы заменяю при сохранении на спейсы и тебе который раз говорю что без табов ты прожить сможешь, а вот без спейсов нет.
С чего ты взял, что я стою перед такой альтернативой? Либо-либо — это твоё предложение. Мне нравится и то и другое, каждое для своей цели.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[22]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Олег К., Вы писали:
IT>>Тогда предложи отменить то или иное прямо в OS или даже в железе. ОК>Предложил тебе ниже вырвать пробел из клавиатуры. Дело за тобой.
Ага. Я тебе там перепредложил.
IT>>Никаких проблем они не создают. В отличие от пробелов. ОК>Повторюсь еще раз. Без тэбов ты проживешь, без пробелов — нет.
Это какое-то дурацкое противопоставление. Ты бы ещё сказал, что я и без рук и без ног проживу и мне нужно их все повырывать.
IT>>А зачем ты его тут тогда привёл в качестве аргумента. ОК>Мы начинаем повторяться. Я тебе выше уже говорил что привел пример стиля который существует и который ломает твою догму с табами.
Догма — это как раз твой стиль как ты его преподносишь. Мне этот стиль не подходит и не нравится. И тебе уже привели проблемы, к которым он приводит. Поэтому такие стили мы отметаем с негодованием.
IT>>Следовать за стадом — дело как раз не хитрое. Убеждать людей и ломать устаревшие предпочтения гораздо трудней и интересней. ОК>Тут не следование за стадом а умение отключить свои предпочтения а работать в рамках существующего кода.
Предпочтения не надо отключать. Так ожно в конце концов и мозг вообще отключить. Нужно уметь следовать общим соглашениям, а не вдавливать в себя по капле раба. Соглашения — это условности, и если они не нравятся большинству, то их можно и нужно менять.
... << RSDN@Home 1.2.0 alpha 5 rev. 69>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
>>Чувак, по одному твоему посту видно что ты новичок, но я тебя успокою. Видел бы ты код многих сеньйоров. Бейсбольной битой надо бить. CB>Понимаю, но самое плохое в этом то что не полный новичок, жуниор с опытом командной работы. Фиксил код сеньйоров, знаю, видел, полностью согласен
А ты откуда? Команда команде рознь. Ну и проекты тоже разные бывают.
>>Этих не слушай. Это чуваки из серии что позапихают в проект все фичи плюсов потому что "реальные пацаны так пишут!" CB>Я так и подумал, но все равно спасибо что успокоили
>>Вообще можно обойтись без синглтонов. CB>Как именно? Просто скажите по какому слову гуглить
Да даже не знаю. Просто со временем стиль вырабатывается и у тебя он уже есть. Надо только отшлифовать немного. Подумай просто как бы ты переписал код чтобы обойтись без синглтонов. Один раз найдешь решение — потом будешь его и использовать.
>>Да, несколько станно было видеть дефайны для стандартных логических операторов. CB>Но ведь есть <ciso646> — это не я придумал. Зато теперь буду знать, что многих напрягает
>>Даже если ты классно решил задачи, то будут придираться к таким мелочам. Сам подумай, кому охота вникать в логику чужого проекта? По одной твоей просьбе и видно что ты новичок. CB>Этот момент я упустил. Я хотел услышать что-то вроде: да твой код понятно смотреть, имена, структура, блоки — все четко и просто. Или наоборот — твой код труднее переварить чем внутреннее устройство STL. А получилось все только по мелочам и синтаксису. В общем, много людей потратил немного своего времени, а толку мало.
Что есть то есть.
>>Парень, не тушуйся и не особо прислушивайся тут к некоторым. CB>Не то что я особо парюсь из-за этого но спасибо за утешение. Но все равно кто-то теперь на собеседовании будет косо смотреть, вдруг тему читал?
С людьми вообще сложно работать, а тут еще и эго зашкаливает. Ты не думай об этом и знай что кто-то тебя оценит. Я, вот, не сомневаюсь что с тобой было бы легко работать и найти общий язык относительно software engineering-а. Да и вообще тоже.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, SE, Вы писали:
SE>Кстати, как человеку из мира С#, мне интересно, как обстоят дела в С/С++ стане в этом отношении?
Смотря в какой IDE писать, допустим в студии всегда табуляции стояли, вполне все ок. Как-то писал с линукса, там IDE лепила пробелы, чуть себе логти не откгрыз, потом поменял на табуляции и . Вообще кто как привык, так и форматирует, если к пробелам, то тыкаешь в 4 раза больше кнопок, если привык к табуляциям то покрайней мере пальцы не так болят)
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>Да даже не знаю. Просто со временем стиль вырабатывается и у тебя он уже есть. Надо только отшлифовать немного.
Вместо закрепления стиля "какой есть" стоило бы поучиться и перенять хороший стиль. Причем речь идет не столько об оформлении, сколько о том, как написан код. Это и понятность идеи, и легкость модификации/поддержки, и тестируемость, ну и не в последнюю очередь эффективность, включая разного рода best practices.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
да есть такое, в таких ситуациях помогает вспомнить историю: во времена динозавров, когда люди писали программы на ассемблерах, никто даже не думал о форматирование пробелами или табуляциями, потому как это не являлось приоритетной проблемой на фоне всего хард-кодинга Так что программисты C# и С++ еще легко отделались
Re[9]: Он думает, что пишет качественный код. Скоро его мнение изменится
ОК>>Да даже не знаю. Просто со временем стиль вырабатывается и у тебя он уже есть. Надо только отшлифовать немного.
A>Вместо закрепления стиля "какой есть" стоило бы поучиться и перенять хороший стиль. Причем речь идет не столько об оформлении, сколько о том, как написан код. Это и понятность идеи, и легкость модификации/поддержки, и тестируемость, ну и не в последнюю очередь эффективность, включая разного рода best practices.
Его проект мы видели. Теперь ты поставь свой.
Re[10]: Он думает, что пишет качественный код. Скоро его мнение изменится
ГВ>/* За такие вещи полагается месяц читать Страуструпа вслух по пять часов в день. */
ГВ>// Logic symbols
ГВ>#define equals ==
ГВ>#define not !
ГВ>#define notequal !=
ГВ>#define and &&
ГВ>#define or ||
and, bitor, or, xor, compl, bitand and_eq, or_eq, xor_eq, not, not_eq — ключевые слова в C++. Смотреть [lex.digraph].
MSVC++ их не поддерживает, но можно включить <ciso646>, после чего они становятся определены.
Re: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, alexsmirnoff, Вы писали:
A>Ребята, я дико извиняюсь. A>А почему вы все пишете "хидер"? A>"Header" разве так звучит?
ты все еще удивляешься рунглишу?
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, alexsmirnoff, Вы писали:
A>>А почему вы все пишете "хидер"? A>>"Header" разве так звучит?
P>Во-первых, чтобы написать "header", надо переключить раскладку. P>Во-вторых, "заголовок" — длиннее. P>
Да не, я чисто к фонетике попридираться.
"Header" должен транслитерироваться в "хедер".
В "head" и "heat" разные гласные.
Ну да бог с ним.
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
On 01.05.2013 15:52, SE wrote:
> Приходится диагностировать некоторым архитекторам заказчиков неопасный > симптом "табуляции головного мозга". Как правило для дотнетчика это > признак более серьезных заболеваний вроде "серебряная пуля головного > мозга" и "не барское это дело — код писать".
Сначала подумал было ответить конструктивно, но это предложение остановило.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Vzhyk, Вы писали:
V>On 01.05.2013 15:52, SE wrote:
>> Приходится диагностировать некоторым архитекторам заказчиков неопасный >> симптом "табуляции головного мозга". Как правило для дотнетчика это >> признак более серьезных заболеваний вроде "серебряная пуля головного >> мозга" и "не барское это дело — код писать". V>Сначала подумал было ответить конструктивно, но это предложение остановило.
В С++ как я понял IDE и большинство девелоперов за табы. Так что про С++ можешь писать конструктивно
А я про дотнет писал.
Из моих последних пяти проектов два с табами, включая текущий. Архитекторы и лиды упорно находят все грабли на которые можно наступить. И наступают, невзирая на предупреждения. Каждый раз мне требовалось около года работы, что мое мнение начинало иметь вес больший, чем "мегаидеи" этих гореархитекторов.
Но ущерб как правило уже нанесен существенный и банально жаль своего времени.
Приходится вырабатывать совершенно дурацкие фильтры вроде этих пресловутых "табов против пробелов" и отсеивать проекты, включая отсев проектов и годных тоже
Re[15]: Он думает, что пишет качественный код. Скоро его мнение изменится
Уважаемый Абибок, пожалуйста, не могли бы Вы прислать мне копию своего стандарта кода? Дело в том, что уже несколько лет я нападаю на те же грабли — стараюсь писAть понятно и красиво, читаю книжки типа Code Complete, но все равно находятся противники именно моего стиля!
А мне так хочется сделать хорошо. Скорее всего одному тут не справиться — наверное фишка в том, что у вас оговорен стиль. Но мне все равно поможет кусочек вашего стандарта — я хотя-бы посмотрю что такое хороший стиль и перестану бояться своего. Спасибо заранее.
Re[3]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, uncommon, Вы писали:
U>and, bitor, or, xor, compl, bitand and_eq, or_eq, xor_eq, not, not_eq — ключевые слова в C++. Смотреть [lex.digraph].
U>MSVC++ их не поддерживает, но можно включить <ciso646>, после чего они становятся определены.
Правильно, правильно — есть такие зарезервированные слова в C++. Только эти слова добавлены в язык ради совместимости с не-ASCII терминалами, то есть ради решения весьма специфической проблемы. Об этом сказано, например, в D&E 6.5.3.1:
Чтобы помочь программистам, работающим на старом оборудовании, а значит, и продвигать C++, комитет по стандартизации решил предоставить более удобную нотацию.
В случае, который мы обсуждаем, код явно заточен под Windows и нынче у нас 2013-й, а не 1985-й. Какие ещё диграфы и альтернативные лексемы, о чём вы?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[13]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
IT>>>Да это полная фигня. К тому же показатель плохого стиля. ОК>>Кто сказал про плохой стиль?
Это хороший стиль. Код выровненный в таблицы читается намного быстрее и легче, чем тот, где за этим не следят. Проверено на коллегах. Проверено временем.
И каждый день — без права на ошибку...
Re[14]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, B0FEE664, Вы писали:
IT>>Ну есть такая мелкая проблемка. Для её решения можно использовать другой стиль, только и всего. BFE>это не мелкая проблем.
Фигня полная.
Если нам не помогут, то мы тоже никого не пощадим.
Re[18]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, B0FEE664, Вы писали:
BFE>Это хороший стиль. Код выровненный в таблицы читается намного быстрее и легче, чем тот, где за этим не следят. Проверено на коллегах. Проверено временем.
Кто мешает выравнивать начиная со следующей строки?
Если нам не помогут, то мы тоже никого не пощадим.
Re[19]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
BFE>>Это хороший стиль. Код выровненный в таблицы читается намного быстрее и легче, чем тот, где за этим не следят. Проверено на коллегах. Проверено временем. IT>Кто мешает выравнивать начиная со следующей строки?
Я обычно так и делаю, но тогда, вот такой код:
result = DecodeIrisStatus(
pValue1,
a < b ? c : d,
"some "
);
превращается вот в такой:
result = DecodeIrisStatus
(
pValue1,
a < b ? c : d,
"some "
);
И тогда открывающая скобка оторвана от функции, что, в свою очередь, приводит к тому, что имя функции воспринимается как переменная.
И каждый день — без права на ошибку...
Re[20]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, B0FEE664, Вы писали:
BFE>И тогда открывающая скобка оторвана от функции, что, в свою очередь, приводит к тому, что имя функции воспринимается как переменная.
Тут уже показали как это делать правильно.
result = DecodeIrisStatus(
pValue1,
a < b ? c : d,
"some ");
Или, например, посмотри здесь как сделано выравнивание. Кстати, автоматическим тулом.
Если нам не помогут, то мы тоже никого не пощадим.
Re[21]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, IT, Вы писали:
BFE>>И тогда открывающая скобка оторвана от функции, что, в свою очередь, приводит к тому, что имя функции воспринимается как переменная. IT>Тут уже показали как это делать правильно.
IT>
IT>result = DecodeIrisStatus(
IT> pValue1,
IT> a < b ? c : d,
IT> "some ");
IT>
Да, так многие пишут, но мне не нравится, что закрывающая и открывающая скобки в разных колонках.
И каждый день — без права на ошибку...
Re[4]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, tpascal, Вы писали:
T>по странному недоразумению "О работе" досихпор находится не в разделе СВ. Хотя группа состоит из холиварских тем чуть менее чем полностью.
О, подпишусь-ка я тогда.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
On 03.05.2013 13:45, SE wrote:
> Приходится вырабатывать совершенно дурацкие фильтры вроде этих > пресловутых "табов против пробелов" и отсеивать проекты, включая отсев > проектов и годных тоже
Если это так напрягает, "писать как принято в конкретном проекте", то
все IDE могут поправить твое форматирование.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, Vzhyk, Вы писали:
>> Приходится вырабатывать совершенно дурацкие фильтры вроде этих пресловутых "табов против пробелов" и отсеивать проекты, включая отсев проектов и годных тоже V>Если это так напрягает, "писать как принято в конкретном проекте", то все IDE могут поправить твое форматирование.
Увы. Заветная Ctrl-K-D студии пасует перед пробелами. И даже могучая команда Tabify не понимает, что два пробела после нескольких табов — это таки тоже надо в таб превратить. Т.е. возвращаемся к картинке, там где двое бьют ногами третьего, который выкрикнул: "Both".
Но, как я уже сказал, проблема не в самих табах, в том, кто решение использовать табы принимал.
Re[6]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, enji, Вы писали:
E>Здравствуйте, Жора Корнев, Вы писали:
ЖК>>если к пробелам, то тыкаешь в 4 раза больше кнопок, если привык к табуляциям то покрайней мере пальцы не так болят)
E>открой для себя автоотступ + автозамену табуляций пробелами...
Зачем его открывать если он и так во всех маломальски используемых IDE есть, даже в блокнотах. Просто иногда бывают ситуации когда необходимо не поставить отступ, а убрать. Мне, т.е. человеку у которого руки заточены под табуляции, процесс стирания 4 символов вместо 1 не доставляет удовольствия. Но тогда рождается вопрос: зачем использовать средства эмуляции отступа пробелами, если табуляция это делает эффективнее?
Re[7]: Он думает, что пишет качественный код. Скоро его мнение изменится
Здравствуйте, enji, Вы писали:
ЖК>>процесс стирания 4 символов вместо 1 не доставляет удовольствия.
E>ты не поверишь. shift+tab убирает нужное число пробелов...
М... скажу только, что студия убирает самые левые табы (или блоки пробелов). Т.е. толку — ноль. Особенно с парой лишних "висячих" пробелов.
Но при форматировании пробелами такие висячие пробелы не так глаза бросаются.
Re[2]: Он думает, что пишет качественный код. Скоро его мнение изменится