Разработчики контрактов в новом стандарте как раз таки вдохновлялись идеей, что мы не в идеальном мире живем) Там возможность превратить срабатывания ассерта — в исключение — изначально задумана.
Выскажу свое мнение:
макрос VERIFY_RETURN сильно нарушает принцип «вызов макроса должен быть максимально приближен к вызову обычной функции». Очень сильно снижает понимание кода на мой взгляд. Опять же, переводить потом такой код на C++20 contracts будет тяжело.
ну я например, был абсолютно послушным ребенком: мне родители говорили, нельзя на улице гулять, там хулиганы, я не гулял. Точно так же с использованием компьютера. После лет 18-19, да, запрещать стало уже тяжело (своя голова на плечах появилась)
ты не используешь, а библиотека которую ты подключил, его требует. Например fmt какой-нибудь (я знаю, там сейчас C++11 вроде минимум, но представьте что это какая-то другая либа). И хоба, даже если вы либу в одном файле не включили, все равно его компиляция замедляется (извращенства вроде выставления набора флагов для каждого файла не предлагать)
Ну как сказать. Мне вот не понравилась вполне конкретная мелочь в языке, то что в chrono теперь есть типы и month и months и они значат совершенно разное)
я написал, предложил именование которое меня устроит, antoshka перевел и написал автору либы. Автор либы ответил что он лучше знает, и если у нас в голове что-то путается, это наши проблемы =) Дальше желание «улучшать стандарт С++» у меня пока отпало… если только сильно не припрет)
Я раньше был большим поклонником использования auto, но сейчас прихожу к мысли что все хорошо в меру.
Если в коде тип действительно вообще никак не влияет на понимание кода, если это какой-то там vector<string>, то auto может быть уместно. Если я только что сделал make_unique, то тоже тип и так очевиден. Во многих местах видеть тип реально сокращает время чтения кода. Многие пишут мол IDE, и так все видит, выводит типы, но я читаю код очень быстро, проматывая по странице в 2-3 секунды, и мне такие визуальные зацепки очень помогают.
Если нужно убрать когнитивную сложность из кода, скрыв «мусорный» тип, то auto вполне в тему)
Какой-то говнокод, как по мне, зачем там вообще auto? A a{};
auto годится только для всяких мутных типов которые совсем лень писать вроде итераторов и прочих map::value_type с которыми легко ошибиться при ручном написании.
Ну так а решение-то какое? Если учить в обратном порядке, получается Сишный код с кучей утечек, дурацких memset которые зануляют только первые 4 байта и т.д.
По-моему в обоих случаях преподаватель должен четко давать понять что мы учим новый язык с нуля.
Прочитал оригинал на всякий случай, нет, там все тож самое.
Бла-бла, «оч странно, но в топовых компаниях платят слишком дохрена программистам, может быть это пузырь?». FAANG это далеко не вся индустрия, чтобы по ним выводы глобальные делать.
Если проекту лет так дцать, то ситуация «писали вразнобой» более чем вероятна. Дело не в том что никто не соблюдал, а скорее что какие-то древние фрагменты писались просто до возникновения кодестайла.
" TLO играли значительно хуже обычного"
«TLO — зерг»
Я вообще первый раз его оффрейс увидел, вы о чем?
Люди в оффрейсе бывает вообще на элементарных вещах сыпятся.
MaNa — другое дело. В первых матчах были совершенно тупые косяки, позволить сопернику по рампе подняться, например.
Но в целом не было ощущения игры в поддавки все равно.
Хеш коммита поначалу действительно страшная вещь, если ты до этого только папочки копировал)
Для pfemidi предложение у меня такое:
начать использовать Git, создать в директории с вашим проектом рабочую копию через git init, закоммитить все текущие файлы с коммитом «initial»
Затем при внесении изменений, вместо создания копии папочки с
ProjectName.dd-mm-yyyy
вы просто делаете git commit с текстом «ProjectName.dd-mm-yyyy».
(меня сейчас закидают тухлыми яйцами уже поклонники Git)
т.е. в вашем привычном способе разработки не изменится, но вы сможете использовать некоторые плюшки, как только захотите.
Например, посмотреть diff между версиями ;)
ну а потом уже и нормальные имена коммитов, и ветки, и все остальное само подтянется. Сабмодули, cherry-pick, для индивидуальной разработки вам вряд ли понадобятся, tag — ну многие проекты их не используют, кстати говоря, revert — если не косячить с коммитами, то и откатывать не надо.
В общем я считаю, начинать осваивать гит с одной единственной команды -реально ;)
Ну лично у меня статья только раздражение вызвала из-за этого. Не знаю, может кому-то такая уловка и по душе.
макрос VERIFY_RETURN сильно нарушает принцип «вызов макроса должен быть максимально приближен к вызову обычной функции». Очень сильно снижает понимание кода на мой взгляд. Опять же, переводить потом такой код на C++20 contracts будет тяжело.
я написал, предложил именование которое меня устроит, antoshka перевел и написал автору либы. Автор либы ответил что он лучше знает, и если у нас в голове что-то путается, это наши проблемы =) Дальше желание «улучшать стандарт С++» у меня пока отпало… если только сильно не припрет)
Если в коде тип действительно вообще никак не влияет на понимание кода, если это какой-то там vector<string>, то auto может быть уместно. Если я только что сделал make_unique, то тоже тип и так очевиден. Во многих местах видеть тип реально сокращает время чтения кода. Многие пишут мол IDE, и так все видит, выводит типы, но я читаю код очень быстро, проматывая по странице в 2-3 секунды, и мне такие визуальные зацепки очень помогают.
Если нужно убрать когнитивную сложность из кода, скрыв «мусорный» тип, то auto вполне в тему)
A a{};auto годится только для всяких мутных типов которые совсем лень писать вроде итераторов и прочих map::value_type с которыми легко ошибиться при ручном написании.
По-моему в обоих случаях преподаватель должен четко давать понять что мы учим новый язык с нуля.
Бла-бла, «оч странно, но в топовых компаниях платят слишком дохрена программистам, может быть это пузырь?». FAANG это далеко не вся индустрия, чтобы по ним выводы глобальные делать.
«TLO — зерг»
Я вообще первый раз его оффрейс увидел, вы о чем?
Люди в оффрейсе бывает вообще на элементарных вещах сыпятся.
MaNa — другое дело. В первых матчах были совершенно тупые косяки, позволить сопернику по рампе подняться, например.
Но в целом не было ощущения игры в поддавки все равно.
Для pfemidi предложение у меня такое:
начать использовать Git, создать в директории с вашим проектом рабочую копию через git init, закоммитить все текущие файлы с коммитом «initial»
Затем при внесении изменений, вместо создания копии папочки с
ProjectName.dd-mm-yyyy
вы просто делаете git commit с текстом «ProjectName.dd-mm-yyyy».
(меня сейчас закидают тухлыми яйцами уже поклонники Git)
т.е. в вашем привычном способе разработки не изменится, но вы сможете использовать некоторые плюшки, как только захотите.
Например, посмотреть diff между версиями ;)
ну а потом уже и нормальные имена коммитов, и ветки, и все остальное само подтянется. Сабмодули, cherry-pick, для индивидуальной разработки вам вряд ли понадобятся, tag — ну многие проекты их не используют, кстати говоря, revert — если не косячить с коммитами, то и откатывать не надо.
В общем я считаю, начинать осваивать гит с одной единственной команды -реально ;)
ну вредные советы же, ирония, не?