All streams
Search
Write a publication
Pull to refresh
-3
0
Send message

Ну хорошо, а в каком из рассмотренных модулей должна быть объявлена эта абстракция? Или вы предлагаете сделать 3-ий модуль в котором лежит только эта абстракция и оба других модуля зависят от этого третьего?

Тут я хочу тогда спросить, а какую проблему решаем? Если правильно помню то модуль А зависит от Б и якобы это проблема ну ладно, но решение получается модуль А и модуль Б зависит от Ц? По-моему проблема не решена (да её и не было) так ещё и сущностей наплодили по дороге.

У меня на работе 2 китаянки на плюсах пишут. Одна тим лид по статусу, но где-то между мидлом и сеньором, со второй работал мало она недавно пришла ну как минимум мидл или выше. 10 мест работы в 3 странах других плюсисток видел только в виде аватарок в этих ваших интернатах. Шарписток видел, пхписток видел (в том числе жена). Девчонки программисты в целом 1 к 10, а плюсистки как единороги 1 к 100 я думаю.

Я не автор поста, но делал примерно похожие оптимизации для расчета вэйвформ аудио трэков. Компилятор умеет векторизовывать код автоматически, но делает это весьма консервативно - не всегда, не самые последние инструкции и не всегда самые оптимальные, но тем не менее делает. У меня в коде стоит выбор как обрабатывать данные я использую энум вида Vectorization { Auto, Manual } как раз подчеркнуть тот факт что если вы в коде интрисики руками не пишите то код все равно может содержать симд инструкции.

Вот эта разбивка обработки на 2 части это вообще классика любой симд оптимизации, забавно что иногда умные люди забывают про хвост и там потом УБ вылезает. Вторая классическая оптимизация это ручная развертка цикла, но ее в примере нету. Компиляторы стали хороши в этом плане и ручная развертка работает быстрее чем сделанная компилятором реже чем 10 лет назад. Вероятно ее попробовали сделать она ничего не дала и ее отменили т.к. код получается ещё более трудно читаемым и с ещё одним хвостом, а выхлопа нету.

Совсем похожий код я делал симд поиск строк / оптимизацию в таглибе что бы тэги в мпзшках искать очень очень быстро. Главная сложность ссе довольно сильно отличается от неона и один и тот же алгоритм надо писать 2 раза.

Расскажите в следующих статьях о софтовом стэке технологий. Какая ОС, какой язык программирования, библиотеки. Уверен софт для авто имеет ряд требований которые вы обязаны соблюдать. Какие требования и самое интересное как вы доказываете, что требования соблюдены. Само собой интересно узнать про тестирование, как у вас оно организованно какие типы тестов сколько времени они занимают когда и в каком объеме запускаются. Как собирается софт и доставляется на железо, т.е. по простому сиай/сиди. Секурити, бинарники подписываете? Сборка воспроизводимая? Где лежат ваши зависимости не на гитхабе случаем? Как защищаетесь от попыток взлома, пароли то хоть (если есть) не 0000? Загрузчик секурный?

Вы опять теряете из виду главное, предсказания ваших именитых учёных сделанные 30-40 лет назад о сегодняшнем состоянии климата не сбылись, вот вообще не попали в их же доверительные интервалы.

Первична реальность, а не научный консенсус, научный метод и прочая атрибутика. Если предсказания не сходятся то теория фуфло и аргументы авторитета меня не впечатляют, обзывание всех на лево и направо параноиками и верующими в заговоры тоже достойный аргумент. Чевы уж сразу с козырей не заходите - есть главный аргумент в любом споре, с него и начинайте.

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

А теперь вторичный вывод, по существу вопроса какая практическая разница какогово распределение долей в потеплении от человеческой деятельности и от других факторов? Я понимаю научный интерес, но на практике это знание ничего не даёт и по факту там одни упражнения в мат статистику которые вообще никак не проверить.

Какая разница как устранять последствия потепления от человеской деятельности или от других факторов? Если главная причина углекислота то какая разница как с ней бороться? Неважно люди все сожгли или от других источников. И даже это не факт, а результат упражнений в математику.

Скептиков не останется сразу как только научные предсказания начнут попадать в реальность,а до этого климатология это пока упражнения в вычислительную математику + накопление данных. Т.е. не бесполезная деятельность, но и не настоящая наука где модели работают.

Последний прием про лямбду вообще не является проблемой, а лишь явное субъективное выражение одобрения одного стиля и осуждение другого.

Мне такие лямбды читаются легко, редактируются легко, но я бы предпочел обычный цикл если код получится короче/проще. Однако я бы ни за что не стал бы переписывать на предложенный вариант, т.к. размазывание бизнес логики на несколько методов ухудшает чтение и понимание во много раз больше чем любой синтаксис лямбд.

Простые независимые от бизнес логики методы уже есть : фильтр, сум, уверен есть в каком нибудь крэйте и прочие авередж медиан и что вам только не надо. Так вот именно бизнес логику НЕ надо переиспользовать. Просто нет одинаковой бизнес логики, даже каких-то частей, она уникальна и разбивка на отдельные методы/блоки/классы че угодно делает только хуже.

Опять же это всего лишь мое мнение/философия/стиль. Разбитый на функции код работает, а значит обьективных проблем с ним нет, но имхо лямбда лучше.

Я рискну предположить, что вы ещё не достаточно долго наблюдаете за научным миром. Иногда учёные в своих исследованиях ошибаются по разным причинам. Так было уже много раз и конец ошибкам в научных исследованиях пока не предвидится.

По-моему никто не оспаривает сам факт потепления, остальное не факт. Исследование это НЕ факты. Выводы/предсказания этих исследований не предопределеное будущее, примеров когда экологические предсказания вот вообще не сходились с фактами чуть менее чем 100% за последние 5 десятков лет. Это и есть причина обоснованных сомнений в любых выводах от экологов.

Возьмите старые исследования ну хотя бы 30-40 летней давности и сами сверьте их выводы/предсказания с сегодняшней реальностью. Точно также 30 лет назад с пеной у рта доказывали ссылаясь на исследования что мы сегодня уже должна были вымерерть все и везде. Но мы все ещё тут, а деньги на гранты тех исследований никто возвращать не должен.

С возрастом вера в западную науку, не всю, а скажем так гуманитарную науку уходит и заменяется на нормальный скепсис. Вам стоит пожить в тех местах где люди принимали урбанистические решения на основе современных на тот момент научных теорий и прочувствовать на себе последствия этих решений. Не все гуманитарные теории одинаково полезны хоть какими исследованиями они были подтверждены в свое время. Кризис не репрезентативности в науке никто не заборол ещё.

Теория вторична, если она противоречит наблюдаемой первичной реальности, то ну ее нахер эту реальность, пилить гранты она не поможет.

В смысле набежали? Там комитет пилет нетворкинг уже который год, как блокер сделали экзекуторы. Может наконец их примут, следом нетворкинг приедет.

Но вообще вы странный конечно, стримы вам в стандарте не мешают хотя обычного файлового си апи хватает, дальше можете сами 100500 оберток сделать. В той же логике стэк и очередь - зачем это ж адаптеры, сами пишите.

Говорить что что не нужно в стандарте только потому что оно вам не нужно сегодня это очень странно.

Скажите ещё юникод не нужен, нормальное файловое апи мне бы тоже пригодилось бы вместо стримов. Не надобность логирование обосновать можете? Стэктрэйсы наконец завезли, но вам конечно это не нужно. Кто б ещё жисон бы пропихнул это уже давно индустриальный стандарт, но не для с++ очевидно. Хрен с ним хттп, хотя бы юриков бы ещё подвезли, но вам не нужно вы уже говорили что сеть вам не нужна. Почему вы тогда не против путей? 13 лет жили без трэдов и тут на тебе подвезли, зачем?

Я вот на днях попробовал экспектед, разочаровался. Мне кажется мертворожденная абстракция. Тип ошибки всего один - это значит что туда либо инт пихать а потом свичиком его проверять либо вариант, но тогда нифига не удобно вариант в качестве ерора у экспектед как то коряво выходит и бойлерплэйт кода становиться больше чем толку от этого экспектед. Я тестил на простом патерне обрабатывать один тип ошибки по месту остальные сконвертировать в эксепцию, получается примерно так же плохо как и с кодами ошибок. Обрабатывать все ошибки я могу и без экспектед на кодах, преобразовать все в эксепцию я тоже могу без него, а вот то зачем оно нужно как раз и не особо хорошо получилось. Это я к тому что я не все части библиотеки считаю полезными вот привел на мой взгляд неудачный пример.

Я вот правда соглашусь что прибивать гвоздями конкретные реализации, а не как в исконном значение стандарта - интерфейсы это плохо. Например вместо

void xxx(std::vector<int>)

Было бы намного правильнее стандартизировать

void xxx(std::vector<int> auto)

Т.е. концепты + интерфейсы для передачи между модулями, а конкретную реализацию можно вообще не требовать. Тогда ваш аргумент про библиотеки будет иметь смысл. Сколько бы проблем это порешало, как минимум большинство если не все связанные с аби.

Не переживайте до этого не дойдет, человеки успешно сделают массовое харакири с красочными фейрверками намного раньше, почти сразу как в штатах к власти снова придут левые, хотя они ещё не ушли и за 1.5 месяца вообщем то вполне могут и справиться.

Если я правильно понимаю зачем он нужен, то как раз в рантайме вообще никакого кода лондер не генерирует. Он нужен исключительно компилятору что бы он чего лишнего не оптимизировал.

Тут интереснее, если при использовании лондера ассм код не меняется то либо вы его используете там где он не нужен либо компилятору на него пофиг. С другой стороны если код поменялся значит именно этот компилятор таки что то попытался соптимизировать лишнего, а вы ему успешно сказали, что так было нельзя.

Есть какой-то один человек, который занимается поддержкой кучи IDE?

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

Симэйк он про сборку, а не про айдее, но т.к. в плюсах нету понятий из реального мира таких как исходный файл, проект, сборка, то и нет стандарта на метоиформацию, симэйк как бы кандидат, но нет у него свои задачи.

За ассемблерные вставки не скажу, я их делал всегото не больше чем пальцев на одной руке за 20 лет и то наверное все в первые 5. Например я делал реализацию не вытесняющей многопоточности / юзер мод трэды на мобильной платформе чье название я уже и не вспомню, т.к. апи их не предоставлял, а задача была перенести джэй2к игры с одного телефона на другой и как раз на Яве были потоки и самое быстрое простое и надёжное решение было из сделать там где их не было. Второй случай я смутно помню был как то связан с борьбой с оптимизациями компилятора при написании измерений для микробенчмарка. Если и делал ещё какие то вставки то уже и не помню. Т.е. это очень специфично в мире продуктовой разработки.

Но вероятно человек под асм вставками имел ввиду интринсики, которые встречаются намного чаще. Симд интринсики я применяю регулярно раз в 5 лет, уверен кто то и чаще. Число дробилка без симда как водка без пива - деньги на ветер. И если на вашем железе нет мощной видеокарты (да и это не панацея), но цпу поддерживает симд - то альтернативы интринсикам просто нет.

Если не секрет зачем требуется поддержка 4 IDE?

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

  • Студия

  • Х[рень]Код

  • Вс[е_подряд_но_так_себе]Код

  • МорскойКотик

  • КультяКреатор

  • И ещё небось то о чем я даже не подозреваю

Периодически то там то сям всплывают проблемы и у нас симэйк имеет айдэе специфичные вставки. Мы билдимся под винду, мак, десктоп и эмбед линукс, раньше ещё и иос был - не пригодился. Компилим 3 компиляторами (шланг, гцц, мсвц) под 3 платформы х64, арм32, кремневое яблоко. Недавно переехали на ц++20, вот как раз половины рэйнджей нет, стд формат нет. Наверное ещё чего то нет, но я не знаю. Причина проста, мы должны поддерживать не самые свежие яблоки (ограничение по рантайму/стд либа) и эмбед где компилятор обновляется не так чтобы часто. Поэтому используется нод от всех платформ/компиляторов т.е. только то что работает везде.

Софт енджин диджей от инмьюзика. Думаю в России вообще не известен, хотя я не диджей понятие не имею чем они в России пользуются.

Я не пытаюсь вас отговаривать делать этот курс, вы все равно будете делать. Я выразил лишь одну из версий претендующую на объяснение фенонмена, когда вы курс сделаете, а особого толку не ощутите. Не ну кто то конечно скажет спасибо и даже заслужено, но проблемы найти курс по плюсам на английском в Ютубе или бесплатный курс по-моему не стоит сейчас.

Опять же вы делаете упор на самом свежем стандарте с++23, но он просто не работает в крос платформе. С++ 20 уже вполне сносно, с небольшими ограничениями нормально. С+17 де-факто тот самый стандарт где работает почти везде в практически полном объеме. Так вот 23 не будет актуален ещё года 3-4, а вот что вы будете делать со своим курсом когда выйдет с++26? Это реально революция в плюсах, там рефлексия, я на нем смогу написать практически свою версию плюсов, там вероятно будут экзекьюторы и может даже контракты. Но это все будет в очень светлом отдаленном лет на 10 будущем.

Если следовать вашей логике построения курса вам по факту придётся переписать структуру и вероятно много частей. По-моему в таком подходе что то не так если новый стандарт требует пересоздания курса.

Вы же сами делаете упор на практической части, а это значит что без подключения библиотек не обойтись, хоть какой симэйк используйте хоть послезавтряшний у половины либ вообще нет скрипта у другой половины он такой какой есть == радуйтесь что хоть что то есть. Так что бы просто подключил и оно просто работает не бывает никогда. Я к тому что учить плюсам и не учить симэйку это как учить использовать левую руку, но не учить пользоваться правой.

Вот опять же вы зачем разделяете с++, симэйк, библиотеки / экосистему друг от друга и говорите это все не проблема с++, а чья тогда? В расте это не разделяют и результаты на лицо. Почему у симэйка нет команды создать новый проект по всем бест гайдлайнам модерн пупер шмупер шаблонам вот там где мне надо. Что бы и гит репа и мэйн функция и юнит тест и сразу линтер закачать и стат анализ поставить и модули вместо инклудов и пакет менеджер и чтобы в каждой большой айдее этот проект открылся собрался запустился и на основных платформах билдился. Почему этого нету в плюсах, а в расте есть?

Вы же пишите что курс уже для программистов, а не полных нубов. Кокому программисту нужны голые знания плюсов без экосистемы? Что с ними делать?

Так им и пользуемся, в плане эргономики все плохо с симэйком, но лучше я не знаю что есть. Одни только генераторы сколько раз в ногу стреляли, а их синтаксис просто наркоманский. В стмэйкн банально не все работает как заявлено и приходиться изгаляться.

Блин, я на этой наркоте с 2000 года, слова сборка всегда вызывает только одну ассоциацию БОЛЬ. Я кросплатформер и сделать новый пустой проект хотя бы под 4 основных айдэе и 3 платформы без проверенного шаблона это день работы и то если у вас есть доступ ко всем этим платформам и айдэе.

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

Какой смысл учит как работать с современным вектором/хэш мапом/флат мапом и не рассказывать про память если любая мутирующая операция инвалидирует чуть менее чем все в этом контейнере и уб делают все вне зависимости от опыта.

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

Юнит тесты, ага вот вам с десяток опций, но так что бы просто взять и подключить в проект без боли нету.

Модули - все ещё просто не работают. Подождем.

Корутины - ни в коем случае нельзя учить корутинам - они не предназначены для прямого использования, это фича языка исключительно для библиотеко писателей с серьезным опытом. А в самом стандарте кроме генераторов ничего и нету, нечем пользоваться, так что подождем ещё лят пять. Корутины это точно не то чему нужно учить в начальном курсе с++.

Рэейнджи - та часть что рабатает почти вся нахер не нужна, только сложнее код получается, есть где стало лучше конечно, а там где рэнджи полезны (обработка пары контейнеров) они ещё не работают. Подождем пару лет.

Раст так популярен не из за комьюнити, а имеет такое развитое комьюнити потому что избавляет от огромного количества боли. Сделать проект элементарно, подключить библиотеку очень просто, юнит тесты пожалуйста, линтер нет проблем, анализатор тоже. Проблем с инвалидацией стэйта у вас просто нет (ну если вы не спец и сами пишите свой класс/контейнер) - код не компилируется.

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

Комьюнити у плюсов не менее развитое и куда более влиятельное чем у раста, но с++ получил ссаными тряпками от анб полностью за дело и комитет уже работает в правильном направлении. Без волшебного пендаля от АНБ до сих пор бы никто и не почухался.

использование системного хедера решает проблему на 100%

Расчехляйте вашу магию, готов посмотреть какой вы Гудини - что насчёт так сказать кросс компиляции. В данном случае платформа таже, а вот ос другая. Если вы собирете бинарь на одной оси и запустите его на другой то будет то же самое оно будет "работать" и кораптить память. Это как раз зоопарк сишных хидеров и есть суть проблемы. Я не знаю где живёт и есть ли вообще центральная репа этой сишной утилиты, но очевидно различия в структуре полей нужно описать в этом центральном хидере и заифдефить их. А так получается в каждой оси свой клон, т.е. по факту другое приложение и то что в сишешчке конкретно в этом месте работает замена хидера на правильный это просто везение. Это как я щас возьму напишу свою прекрасную ось реализую какой нить метод не так как все, но совместимо по АБИ, а потом приду к вам с претензией чей-то ваша утилита у меня не работает, я ж ей даже правильные хидеры указал и даже пересобрал у себя, странно будет не правда ли? Я к тому что правильные хидеры тоже ничего не гарантирует если семантика не верная, а не верная она потому что я свой клон сделал зависимостей, а предьявляю претензии вам.

Я прекрасно понимаю почему чел впарил ифдефы и забыл про проблему - генерация ффи не бесплатная и в общем случае не гарантирует тоже ничего. Если у него все и так работало без генерации то ради одной странной ОС добавлять ее не разумно. Вылезут ещё одни такие альтернативно одаренные со своим видением прекрасного ну вкатит ещё один ифдеф после нового бага делов то. Я бы сказал это вообще совершенно нормальный процесс портирования, точно такой же как и в сишечке.

Я у себя делал генерацию там много граблей и подводных камней.

Такого я ещё не слышал, но, раз вы так говорите... :)

Я тоже раньше такого не знал, вот выучил новое модное молодежное слово применяю по возможности :)

Это прекрасно, вы уже давно записались в хейтеры раста - это ни для кого не секрет. Я так и не понял в чем конкретно вы обвиняете Раст в этом случае? Вы хотите сказать, что использование не правильного хидера в православной сишечке по щучьему велению внезапно не приведет к проездам по памяти? Это конечно же смешно. Да щас вы начнёте крутить свою шарманку по 100500 кругу Раст придумали квадроеберы и он не нужен. Ну раз вам не нужен то проходите мимо не задерживайтесь. Вам то вообще какое дело до того что там в пендостане эти убогие говорят? Вам лично кто запрещает пользоваться чем хотите?

Раст великолепен, у него много своих проблем, но заявленные проблемы безопасности памяти он решает прекрасно это не значит, что это вершина мысли и нельзя лучше или без тех ограничений что в расте. Подобные заявления пендоских силовиков важны т.к. очень серьезно стимулирует правильных людей в правильном направлении.

Оставьте хаджей с баринами скрепной России это там такая традиция, а у этих после прошлой подобной стимуляции уже в це++26 таки приняли бан на неинициализированные переменные. Дебаты на эту тему я помню ещё 10 лет назад смотрел на Ютубе и пока их конкретно так не вжучили надежд на эти изменения просто не было. Одним уб меньше и на этом никто не собирается остановливаться, на очереди сабскрипт и т.д. Это и есть причина почему переход с копролитов на современный стандарт зачастую автоматом фиксит то, что раньше было уб ценой небольшого замедления.

Без изменений не бывает улучшений, ваша позиция - надо просто писать правильно, а не правильно не писать - не работает и никаких изменений не предполагает поэтому в принципе ничего улучшить не способна. Ананизаторы что статические, что рантаймовые бесполезны для выявления проблем. Статические просто несут чушь в 99% случаев поэтому надо либо отдельного товарища который сможет это фильтровать либо как у большинства всем пофигу на это. Я тыщу раз видел как вносятся изменения что бы тупо заткнуть глотку компилятору что бы он не ругался БЕЗ решения самой проблемы на которую он жалуется. Рантайм хоть полезен когда уже проблема вылезла, но не помогает предотвращать новые проблемы. Другими словами все другие способы уже перепробовали - не работает.

А я поддерживаю, они не говорят что использовать, а говорят что НЕ использовать и почему. Ничто не мешает, в теории конечно, собраться комитету по стандартизации це и це++ и принять измения в языке которые сделают их хотя бы безопасней чем сейчас, а в идеале достаточно безопасными. И внезапно, тогда никто не будет против использования этих языков. Это прекрасный анальный зонд в головы представителей комитета который показывает чем именно им нужно заняться на следующих митингах и самое прекрасное в этой истории они уже начали этим заниматься.

Изменения в стандартах вокруг безопасности памяти + жёсткие требования по дорожным картам заставят вендоров наконец то перейти с це++11 сразу на какой нибудь це++29, а иначе тюрьма. Это ли не благо?

Я лысая обезьяна, вы чё то имеете против?

Information

Rating
Does not participate
Registered
Activity