Подписываюсь под каждым словом. Такие статьи вредны́. Замечу также, что не увидел контейнеров, которые в заголовок вынесены. Один только vector, без упоминания хотя бы array там, где он отлично бы вписался:
Если бы вы ещё и читали, а не только писали, да ещё внимательно, то видели бы, что это только малая начальная часть серии заметок, следующая из которых как раз и предназначалась постепенному и естественному переходу от индексов к итераторам.
(Но куда уж нам: чукча, он, как известно, писатель...)
Так что в следующий раз, «подписываюсь под каждым словом» очередного пустобрёха, читайте внимательно в адрес чего там вы подписываетесь.
Молодой человек (судя по манерности ваших публикаций я имею все основания так считать), я не учитель бальных танцев, чтобы преподавать хороший тон. Я готов обсуждать технические, инженерные предметы — и понимание этой разницы очень важно.
Демонстрировать хороший тон «без дидактических ошибок» — это я оставляю вам.
Вы слишком много начитались дурных книжек про «идеальный код», и приняли их слишком близко к сердцу.
вы не используете const, не демонстрируете учащимся хороший тон (const должен быть на всем, что не меняется!)
Вот тут у нас принципиальное расхождение: это у вас ученики, а у меня нет учеников, у меня есть коллеги — я никогда не был профессиональным преподавателем, Бог миловал!
А программный код — он никому и ничего не «должен». Он должен только одно единственное: корректно и безукоризненно работать.
Напоминаю про кодстайл:
Ну, тут вообще порадовал… Этого я так ждал…
Мой юный друг, мне ваш кодстайл, или то, что вы думаете, что под ним понимаете — искренне по-хер (это правда, а правда ведь не бывает грубой, так ведь?). Если написанное мной так глубоко ранит ваше нежное эстетическое чувство и клокочущее гражданское достоинство, то … я скорблю вместе с вами: потому как я писал, пишу и буду писать только так, как привык и как считаю удобным для себя, любимого.
Как там у Иосифа Бродского на этот счёт?
Презренье к ближнему у нюхающих розы
пускай не лучше, но честней гражданской позы.
А ваше ущемлённое достоинство может спасти теперь только одно — неукоснительное следование правилу «трёх не» … ну, в данном конкретном случае: плюнул — повернулся — и не читай.
P.S. Пыжиться отвечать на мои наблюдения не надо...
Не говори никому. Не надо.
Потому что я всё-равно не стану это читать, да и не буду я дебатировать о вещах, которые для меня давно уже очевидны.
проигнорировав даже элементарные проверки входных параметров
Нужно ли в иллюстрационных фрагментах кода включать проверку параметров, обработку ошибок вызовов и другие подобные прелести? Ни в кое случае! И никогда!
Иллюстрационный пример должен демонстрировать одну единственную мысль, которой он посвящён, не затемняя её никакими попутными действиями. (А вовсе не для демонстрации того, что вы настолько умны, что даже знаете как ошибки нужно обрабатывать.)
То, что ошибки нужно обрабатывать, ваши читатели знают и без вас, и как-то сами, поверьте, с этим разберутся.
путаница стилей C и C++ относится и к макросу INT_MAX. Для этого в C++ есть std::numeric_limits
А даже если путаница стилей … и есть std::numeric_limits? Ну и что из того? Для многих вещей есть множество способов выполнить одно и то же. А относительно смешения стилей, так вас никак не смущает то:
… что 20% или 30% заголовочных файлов C++ ( и мн.др.) — это только отсылка к заголовочным файлам C API (<stdlib.h> и т. д.);
… что большая часть библиотек C++ API — это всего лишь обёртки над POSIX API;
… что скомпилированный C++ код исполняется только совместно с библиотекой libc.so (стандартная библиотека C, по-народному), и что в отсутствии этой библиотеки, или если путь к ней не удастся найти, все приложения C++ просто окажутся неработоспособными (это я про нормальные операционные системы, не про Windows);
А в отношении стилей, путаницы и прочей шелупени, я могу, друг мой gbg, вот что вам сказать: в программной инженерии есть только 2 стиля: либо тяжело строгать работающий код под реальные внедрения, либо … «строть из себя целку»: кода не производя, но мечтательно рассуждая о тотальной индексации с size_t и о том, где скобочки элегантнее будут выглядеть.
Иначе как вы потом объясните людям, что их программа отваливается на 64 разрядной системе после второго гигабайта?
Ваше намерение объявить в программе вектор длиной больше 1 миллиарда — меня искренне повеселило… просто повергло в божественный трепет (вы кстати, думаете что пишете? Или просто пишете что думаете?).
Безумству храбрых поем мы славу!
Безумство храбрых — вот мудрость жизни
Я даже начал благодаря вам вновь обретать совсем уже, было, потерянную веру в человечество...
итерируя массив всякой ерундой вроде unsigned (хорошо еще не int), когда для этого есть size_t
Где-то там я оговорился, что пишу для «цифровиков», занимающихся обработкой сигналов. Мне очень любопытно было бы посмотреть, как бы вы их упорно наставляли везде для индексации массивов (буферов, окон сглаживания, импульсных характеристик фильтров..., весьма ограниченного, в общем, размера: 128, 512, 1024 …), использовать не любый им и привычный int, а size_t или, ещё лучше, container::size_type.
Но с куда ещё большим удовольствием я бы выслушал на (или в?) какой орган бы они вас послали за такие вот ваши советы.
Я уважаю вашу болезненно-маниакальную … «мечту идиота» (здесь ничего личного — это просто такое идиоматическое выражение русского языка) настаивать для индексации повсеместно и исключительно посредством size_t … но нужно же и лицо как-то беречь от грубой силы, когда такое советуешь?
До чего же сильно я люблю этих диванных стратегов!!!
(по преимуществу выползков из начинающих вузовских пЫдагогов).
Я, признаться, был узумлён таким потоком праведного гнева, речью пламенного трибуна… на нейтральные, в общем то, заметки. Сознаюсь, в пороке любопытства заинтересовался даже: что же это за титан духа, светоч мысли такой, что разразился столь праведным гневом? Посмотрел публикации автора — а что ж это за нетленный вклад внёс такой «матёрый человечище» в сокровищницу Хабрахабра?
Ба … да здесь рваные ошмётки от какого-то не удавшегося учебного курса по машиной графике от ещё одного гейм-мейкера. Беда просто…
Мне как-то недосуг обсуждать здесь все высказанные титаном мысли… «аргуенты», с позволения сказать, относящиеся больше к категории бла-бла-бла, и не более того…
Но в отношении некоторых этих озарений я таки … не могу себе отказать в удовольствии постебаться. (Тем более, что согласно интриге, я специально долго молчал, чтоб дать возможность всласть высказаться всем.)
Ну прежде всего, давным-давно известное: Feci quod potui, faciant meliora potentes
Вас, gbg, не устраивают эти скромные заметки ни по стилю ни по содержанию? Ну так это ж и есть самое что ни есть время выйти на арену силачам мысли и акробатам духа, и сделать то же самое, но гораздо лучше!
При чём здесь Майерс и его издания. Майерс — замечательная книжка…
Но господин высказал свою сокровенную мечту почитать Майерса, чего он не сделал тогда 14 лет назад, когда он только был издан… а всякая мечта заслуживает поощрения и поддержки, чего я ему от всей души и пожелал.
А если о Маерсе изволите, то — замечательная книжка, ещё раз, но для начального знакомства, понимания на качественном уровне, "на пальцах" — не годится.
Посмотрю обязательно для себя, спасибо.
Но никак это в статьи не может войти по нескольким причинам: в совершенно ознакомительной статье (что там есть в STL и чего нет) соверенно не место "предложениям на рассмотрение комитету в стандартную библиотеку", а во-вторых, последовательность этих заметок (даже статьями назвать неуместно) написана не сегодня, показана по случаю если кому интересно будет, и переписывать что-то в планы мои не входит.
Я тоже не ради холивара пишу: мне все книги Р.Стивенса (по 1000 стр.каждая) издательства «Питер» (того самого) с магазина «Символ-Плюс» (того самого, что на ссылке) прислали за 2 недели (это с учётом того, что шли они кругами через таможенный контроль в Киеве).
Утилита ifconfig используется во всех UNIX-like OS… и я привык её в них использовать на протяжении многих лет. Можно, я буду использовать то, что мне, любимому, ближе?
Мы обсуждать станем в комментариях предмет того, о чём пишется в статье… или о том, что вы хорошо знаете утилиту ip из iproute2?
Что?… опять будем подбрасывать говно не вентилятор?… в ожидании «эффекта»…
Что же так много ошибок в статьях делаете.
Нет… я слышал про дикие племена, у которых система счисления: один, два, много… но чтобы один — это и было «много»?… это уже что-то из области психиатрии…
__dev_get_by_name ничего не лочит, её нельзя использовать вот просто так. Как результат — получите кучу проблем.
А что?… прям так совсем и нельзя?
1. во-первых, там эта функция нужна только для чтения… не обязательно там что-то «лочить»…
2. во-вторых,… такой вот пыанэр как Jerry Cooperstein, давний участник команды разработчиков ядра… из числа основных, он вот использует… и не подозревает, сердешный, о куче поджидающих его проблем… — в примерах кодов вот к этой своей книжке и использует:
Не то, чтобы продолжение, но то же самое можно сделать другим, альтернативным способом на уровне L3 стека. По свободе опишу…
То, что нечто подобное можно сделать и с помощью iptables, интуитивно понятно… и ещё и другими средствами. Интересно было бы посмотреть как… в деталях.
Смешные люди…
Если бы я хотел сказать: «FreeBSD» — я бы написал FreeBSD. А если бы хотел Windows (свят-свят-свят...) — то написал бы Windows.
Но я написал — Linux.
Если бы вы ещё и читали, а не только писали, да ещё внимательно, то видели бы, что это только малая начальная часть серии заметок, следующая из которых как раз и предназначалась постепенному и естественному переходу от индексов к итераторам.
(Но куда уж нам: чукча, он, как известно, писатель...)
Так что в следующий раз, «подписываюсь под каждым словом» очередного пустобрёха, читайте внимательно в адрес чего там вы подписываетесь.
Молодой человек (судя по манерности ваших публикаций я имею все основания так считать), я не учитель бальных танцев, чтобы преподавать хороший тон. Я готов обсуждать технические, инженерные предметы — и понимание этой разницы очень важно.
Демонстрировать хороший тон «без дидактических ошибок» — это я оставляю вам.
Вы слишком много начитались дурных книжек про «идеальный код», и приняли их слишком близко к сердцу.
Вот тут у нас принципиальное расхождение: это у вас ученики, а у меня нет учеников, у меня есть коллеги — я никогда не был профессиональным преподавателем, Бог миловал!
А программный код — он никому и ничего не «должен». Он должен только одно единственное: корректно и безукоризненно работать.
Ну, тут вообще порадовал… Этого я так ждал…
Мой юный друг, мне ваш кодстайл, или то, что вы думаете, что под ним понимаете — искренне по-хер (это правда, а правда ведь не бывает грубой, так ведь?). Если написанное мной так глубоко ранит ваше нежное эстетическое чувство и клокочущее гражданское достоинство, то … я скорблю вместе с вами: потому как я писал, пишу и буду писать только так, как привык и как считаю удобным для себя, любимого.
Как там у Иосифа Бродского на этот счёт?
А ваше ущемлённое достоинство может спасти теперь только одно — неукоснительное следование правилу «трёх не» … ну, в данном конкретном случае: плюнул — повернулся — и не читай.
P.S. Пыжиться отвечать на мои наблюдения не надо...
Потому что я всё-равно не стану это читать, да и не буду я дебатировать о вещах, которые для меня давно уже очевидны.
Нужно ли в иллюстрационных фрагментах кода включать проверку параметров, обработку ошибок вызовов и другие подобные прелести?
Ни в кое случае! И никогда!
Иллюстрационный пример должен демонстрировать одну единственную мысль, которой он посвящён, не затемняя её никакими попутными действиями. (А вовсе не для демонстрации того, что вы настолько умны, что даже знаете как ошибки нужно обрабатывать.)
То, что ошибки нужно обрабатывать, ваши читатели знают и без вас, и как-то сами, поверьте, с этим разберутся.
А даже если путаница стилей … и есть std::numeric_limits? Ну и что из того? Для многих вещей есть множество способов выполнить одно и то же. А относительно смешения стилей, так вас никак не смущает то:
… что 20% или 30% заголовочных файлов C++ ( и мн.др.) — это только отсылка к заголовочным файлам C API (<stdlib.h> и т. д.);
… что большая часть библиотек C++ API — это всего лишь обёртки над POSIX API;
… что скомпилированный C++ код исполняется только совместно с библиотекой libc.so (стандартная библиотека C, по-народному), и что в отсутствии этой библиотеки, или если путь к ней не удастся найти, все приложения C++ просто окажутся неработоспособными (это я про нормальные операционные системы, не про Windows);
А в отношении стилей, путаницы и прочей шелупени, я могу, друг мой gbg, вот что вам сказать: в программной инженерии есть только 2 стиля: либо тяжело строгать работающий код под реальные внедрения, либо … «строть из себя целку»: кода не производя, но мечтательно рассуждая о тотальной индексации с size_t и о том, где скобочки элегантнее будут выглядеть.
Ну что? Поехали в стёб? ;-)
Ваше намерение объявить в программе вектор длиной больше 1 миллиарда — меня искренне повеселило… просто повергло в божественный трепет (вы кстати, думаете что пишете? Или просто пишете что думаете?).
Я даже начал благодаря вам вновь обретать совсем уже, было, потерянную веру в человечество...
Где-то там я оговорился, что пишу для «цифровиков», занимающихся обработкой сигналов. Мне очень любопытно было бы посмотреть, как бы вы их упорно наставляли везде для индексации массивов (буферов, окон сглаживания, импульсных характеристик фильтров..., весьма ограниченного, в общем, размера: 128, 512, 1024 …), использовать не любый им и привычный int, а size_t или, ещё лучше, container::size_type.
Но с куда ещё большим удовольствием я бы выслушал на (или в?) какой орган бы они вас послали за такие вот ваши советы.
Я уважаю вашу болезненно-маниакальную … «мечту идиота» (здесь ничего личного — это просто такое идиоматическое выражение русского языка) настаивать для индексации повсеместно и исключительно посредством size_t … но нужно же и лицо как-то беречь от грубой силы, когда такое советуешь?
До чего же сильно я люблю этих диванных стратегов!!!
(по преимуществу выползков из начинающих вузовских пЫдагогов).
Я, признаться, был узумлён таким потоком праведного гнева, речью пламенного трибуна… на нейтральные, в общем то, заметки. Сознаюсь, в пороке любопытства заинтересовался даже: что же это за титан духа, светоч мысли такой, что разразился столь праведным гневом? Посмотрел публикации автора — а что ж это за нетленный вклад внёс такой «матёрый человечище» в сокровищницу Хабрахабра?
Ба … да здесь рваные ошмётки от какого-то не удавшегося учебного курса по машиной графике от ещё одного гейм-мейкера. Беда просто…
Мне как-то недосуг обсуждать здесь все высказанные титаном мысли… «аргуенты», с позволения сказать, относящиеся больше к категории бла-бла-бла, и не более того…
Но в отношении некоторых этих озарений я таки … не могу себе отказать в удовольствии постебаться. (Тем более, что согласно интриге, я специально долго молчал, чтоб дать возможность всласть высказаться всем.)
Ну прежде всего, давным-давно известное: Feci quod potui, faciant meliora potentes
Вас, gbg, не устраивают эти скромные заметки ни по стилю ни по содержанию? Ну так это ж и есть самое что ни есть время выйти на арену силачам мысли и акробатам духа, и сделать то же самое, но гораздо лучше!
Но господин высказал свою сокровенную мечту почитать Майерса, чего он не сделал тогда 14 лет назад, когда он только был издан… а всякая мечта заслуживает поощрения и поддержки, чего я ему от всей души и пожелал.
А если о Маерсе изволите, то — замечательная книжка, ещё раз, но для начального знакомства, понимания на качественном уровне, "на пальцах" — не годится.
Но никак это в статьи не может войти по нескольким причинам: в совершенно ознакомительной статье (что там есть в STL и чего нет) соверенно не место "предложениям на рассмотрение комитету в стандартную библиотеку", а во-вторых, последовательность этих заметок (даже статьями назвать неуместно) написана не сегодня, показана по случаю если кому интересно будет, и переписывать что-то в планы мои не входит.
;-)
Конечно лучше!
Если вы это не сделаи 14 лет назад, то сейчас — самое время почитать.
Куда так торопитесь? ;-) Будет вам и STL… жизнь длинная...
Только цена кусачая — 599 руб.… по моему мнению (IMHO) не адекватная.
Утилита ifconfig используется во всех UNIX-like OS… и я привык её в них использовать на протяжении многих лет. Можно, я буду использовать то, что мне, любимому, ближе?
Мы обсуждать станем в комментариях предмет того, о чём пишется в статье… или о том, что вы хорошо знаете утилиту ip из iproute2?
…
(с) Сергей Михалков
Нет… я слышал про дикие племена, у которых система счисления: один, два, много… но чтобы один — это и было «много»?… это уже что-то из области психиатрии…
А что?… прям так совсем и нельзя?
1. во-первых, там эта функция нужна только для чтения… не обязательно там что-то «лочить»…
2. во-вторых,… такой вот пыанэр как Jerry Cooperstein, давний участник команды разработчиков ядра… из числа основных, он вот использует… и не подозревает, сердешный, о куче поджидающих его проблем… — в примерах кодов вот к этой своей книжке и использует:
Не то, чтобы продолжение, но то же самое можно сделать другим, альтернативным способом на уровне L3 стека. По свободе опишу…
То, что нечто подобное можно сделать и с помощью iptables, интуитивно понятно… и ещё и другими средствами. Интересно было бы посмотреть как… в деталях.
Смешные люди…
Если бы я хотел сказать: «FreeBSD» — я бы написал FreeBSD. А если бы хотел Windows (свят-свят-свят...) — то написал бы Windows.
Но я написал — Linux.