• Уменьшается ли используемая память программы?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Не гарантированно, но в некоторых случаев компилятор действительно сможет переиспользовать место на стеке под переменную a для какой-то новой локальной переменной, когда a выйдет из зоны видимости. Но чаще это место просто будет пустым до конца функции и никакой экономии памяти вы не получите.

    Но вообще, делать так для экономии памяти никогда, категорически не рекомендуется. Код становится менее читаем а экономите вы на спичках. Это локальные переменные - они на стеке. Их много можно выделить только рекурсией или большими массивами (ну не объявите вы в коде миллион локальных переменных). В обоих случаях, если стека не хватает - надо или избавлятся от рекурсии/больших массивов изменением логики, или выносить их в кучу.

    Использование фигурных скобок для ограничения зоны видимости переменной действительно используется на практике, когда вам надо ограничить время жизни переменной и добиться вызова деструктора в определенное время. Так делают, например, когда захватывают мютекс в многопоточных программах - специальный класс-обертка в конструкторе его хватает, в деструкторе освобождает. И иногда не надо держать мютекс во всей функции, а только в определенном месте. Допустим, дальше идут долгие вычисления, не требующие мютекса. Тут логично мютекс освободить. Но это должно встречаться редко. Если вам в функции надо несколько раз такое проворачивать, то надо ее отрефакторить и разбить на части.
    Ответ написан
    Комментировать
  • Библиотеки для взаимодействия с DOCX?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если вы хотите сделать просто подстановку текста в шаблон, то можно выдернуть content.xml (помните, что xlsx - это просто ZIP), сделать подстановки и запаковать обратно.
    Ответ написан
    Комментировать
  • Как вызвать через рефлексию конструктор generic T класса наследника?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Как вызвать конструктор с параметром int класса B ???

    Никак. У него нет такого конструктора.

    Как вообще создать объект класса B???

    Вызвав конструктор по-умолчанию. Через рефлексию - через Activator. Без рефлексии - через обычный new.

    А генериков тут нет.
    Ответ написан
    Комментировать
  • Как исправить ошибку при git push?

    Stalker_RED
    @Stalker_RED
    HTTP Error 413 - Content Too Large

    Это не у гита косяк, а у вашего вебсервера у которого лимит на размер заливаемых файлов.
    Настройте параметр client_max_body_size в nginx, или LimitRequestBody если у вас apache.
    (не забудьте перезапустить вебсервер или перечитать конфиг на горячую).

    Либо переключите git с https на SSH, тогда вебсервер не повлияет.
    Ответ написан
    1 комментарий
  • Програма для синхронизации ГуглДрайв (Линукс), есть такое?

    @pfg21
    ex-турист
    р-клоун !! :) и синхронизация и монтирование по моему всех существующих видов облачных хранилищ.
    плюс куча других проектов.
    Ответ написан
    6 комментариев
  • Как реализовать запуск приложения через консольную команду?

    GavriKos
    @GavriKos
    Для первого - и в винде, и в линуксе для этого достаточно прописать путь к папке с исполняемым файлом в PATH - все терминалы (наверное все) именно там ищут "команды" (а точнее команда это и есть бинарь).
    Ответ написан
    1 комментарий
  • Разница между JavaScript и HTML5 игрой?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    На html игры не пишут. Их всегда пишут на javascript
    Просто так называют игры, которые для отображения используют холст (canvas)
    Такое название сложилось исторически, с тех времен, когда игры в основном писались на флеше. Вот чтобы их как-то обособить игры на js стали называть играми на html5 в противовес флешу.
    Ответ написан
    Комментировать
  • Как раздать git hook для всей команды?

    vabka
    @vabka
    Токсичный шарпист
    Например есть husky - очень удобно, если с фронтом работаете.

    Если без сторонних инструментов, то можно хуки сложить в папку, которая будет трекаться в репозитории и поправить git config:
    git config core.hooksPath .githooks
    - это нужно выполнять для каждого репозитория у каждого разработчика. Можно упростить жизнь, вставив это в какой-нибудь скриптовый файл, который все обязательно запускают.
    Ответ написан
    4 комментария
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • В каком виде, хранятся записи в БД, подобные постам в соц.сетях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Современная соц-сеть - это уникальная софтварная архитектура которая строилась индивидуально.
    Вряд-ли вы сможете ее просто повторить имея mysql/php/nginx.

    VK/Facebook имеют свои технологии кеширования контента в основном построенные на материализации
    страниц. Базы данных обычно - не-реляционные. Модель проектируется так чтобы не было joins между
    таблицами. И активно используются очереди сообщений. Вот в соц-сети Linked-In это было настолько
    важно что даже был создан отдельный программный продукт который сейчас называют Apache Kafka.

    Активно используются горизонтальное масштабирование. Сеть наращивает мощности просто путем подключения
    новых адресов в dns с балансом по географии, и запуска новых web-nodes и новых дисковых реплик хранилищ для картинок и текстов постов.

    Поэтому вопрос в каком виде хранятся записи - тут не важен. Тут важно чтоб кеши обновились синхронно с событием поста например.
    Ответ написан
    7 комментариев
  • Актуальны ли книги Александреску, Майерса и Саттера?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Да, книги Андрея Александреску, Скотта Майерса, Герба Саттера, Николая Джосаттиса, и, например, Девида Вандервуда имеют актуальность и по сей день вне зависимости от года издания или перевода.

    C++ развивается вот уже 38 лет. Новые стандарты сегодня приходят с достойной одобрения частотой, но начиная с C++11 изменения в стандартах до сих пор ничего кардинально не ломают. Даже новые возможности концептуально связаны с опытом прошлых стандартов.
    С другой стороны, трансляторы. Новые стандарты языка не приходят сразу, сперва требуется дождаться их поддержки в современных трансляторах. А это происходит не в одно время и не сразу по выходу нового стандарта. Да и когда появляется версия с поддержкой нового стандарта, эта поддержка не лишена ошибок, опознать которые способен только опытный инженер с экспертизой в новом стандарте.
    Разработка же и вовсе не поспевает за трендами. На собеседованиях я то и дело слышу как где-то кто-то еще только вчера и еще только решил перейти на C++11. В 23-м году.
    Самым широко используемым стандартом сейчас является C++17, большинство функций которого многими компаниями так до сих пор и не используется. Люди до сих пор еще только привыкают к нему.
    Книги представленных авторов в понятной форме передают читателю ценный базовый опыт, который можно применять вообще не привязываясь к стандарту языка. Главное - это не брать в рассмотрение книги до 2011 года.

    Чтобы быть на острие развития языка, нужно не книги читать, а быть сильным энтузиастом и иметь изначально глубокую экспертизу в стандартах языка. Авангард развивается за счет самостоятельных экспериментов и исследования пределов возможностей последних стандартов C++. Не за счет ожидания и чтения книг.
    Ответ написан
  • На сколько сложно утроиться джуном на позицию C++ dev?

    mayton2019
    @mayton2019
    Bigdata Engineer
    serhiops, скажу по себе что совмещать работу и учебу почти невозможно. Что-то одно ты потеряешь. Или сессию завалишь или на работе будешь уставать морально как чорт.

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

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

    UPD: Тема окороков удалена. :) Мало-ли. Вдруг кто-то обидется. Щас время такое. Все обидчивые стали.
    Ответ написан
    7 комментариев
  • Как называется этот фиджет в WPF?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    ComboBox?
    Ответ написан
    Комментировать
  • Как называются сервисы, предоставляющие аутентификацию?

    vabka
    @vabka
    Токсичный шарпист
    IAM или Idm называется.
    Identity and Access management system.

    Из опенсорсных:
    Keycloack
    Casdoor
    Zitadel

    Из популярных платных:
    Auth0
    Azure AD
    Ответ написан
    3 комментария
  • Зачем именно нужны связи в бд?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно поговорить об аномалиях. Например в твоей системе я могу (теоретически) добавить месседж
    который не принадлежит ни одному пользователю системы. Я просто сделаю

    insert into message(9999999, -1, "Mua-haha...");

    И у меня есть пост от анонимоса который не зарегистрирован как пользователь.

    Разумеется можно полагаться на логику твоего приложения и думать что такая ситуация невозможна
    но с точки зрения БД она вполне возможна потому как родственная связь User + Message нигде не объявлена.
    И SQL позволяет это сделать.

    Чтоб поправить ситуацию надо эту связь добавить и тогда я не смогу создать фейковые посты от анонимосов.
    ALTER TABLE Message
    ADD FOREIGN KEY (userid) REFERENCES users(id);

    По умолчанию констрейнт создается с опцией restict (это было в Оракле как в Майскл - не знаю)
    и это гарантирует что невозможно также удалять родительские записи пока есть дочки.
    Для скорости ссылочные ключи всегда - индексированы.

    Рассуждать на тему вреда от аномалий - это просто терять время. Каждый владелец БД сам решает
    какие уровни строгости ему вводить. Вообще любая теория касаемая БД - по сути просто развивает
    идею строгости НФ1,2,3,4,5,6 и ссылочных ограничений.

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

    По сути вопрос сводится к тому как не создавать мусор в БД.
    Ответ написан
    2 комментария
  • Нужно ль изучать математику параллельно изучению программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Как говорил Ломоносов, математика уж затем полезна, что ум в порядок приводит.

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

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    увязано ль программирования с математикой само по себе, иль нет?
    В некоторой мере. Большей частью нет, в специфических случаях нужно понимание некоторых аспектов алгебры и теории множеств, базовое понимание теорвера, дискретной математики и теории графов. Сказать что без этого нельзя изучать программирование будет преувеличением, но знание этих предметов сделает некоторые части обучения более простыми. Естественно, базовая математика в рамках школьной программы нужна практически в любом направлении.

    В остальном, хотелось бы обратить ваше внимание на пункты 3.2, 3.3,3.4 и 3.6 правил сервиса.
    Ответ написан
    Комментировать
  • Почему компилятор не предупреждает о преобразовании int в uint8_t?

    @serhiops
    Python/JavaScript/C++
    При unform инициализации проверяется тип, чего не происходить при инициализации копированием
    Ответ написан
    3 комментария
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Нет, оно того не стоит. Любая работа должна быть оплачена. Ибо сейчас напишешь за свой счет, а потом начальника скажет "о, отлично, молодец, можем теперь сэкономить на программистах и поддержке, у меня как раз знакомый ищет, ща его поставлю, а ты можешь быть свободен, заодно выпишу себе премию, во какой я молодец". Этот код решает задачи бизнеса. Если бизнес готов тратить на его поддержку и сопровождение деньги - то это проблемы этого бизнеса. Почему это наемный работник должен решать проблемы бизнеса за свой счет? Правильно сделать так: оформить все в виде какого-то документа с конкретными аргументами, цифрами, графиками и т.п. и выдать его начальству. Типа сейчас поддержка проекта стоит столько-то, приносит такие-то проблемы, переписать будет стоить столько-то, сопровождение нового будет столько-то, оно решает такие-то проблемы. И выдаете данный документ начальству. Можно даже в бумажном виде в нескольких экземплярах. А далее пусть у начальства голова болит.
    Ответ написан
    3 комментария