Задать вопрос
  • Это оригинальный ESP32?

    Что такое "оригинальный"?
    Чипы/модули производит только espressif, так что они по определению не могут быть неоригинальными.
    Модуль - эта вон та мелкая штука сверху с металлической крышкой и антенной.

    Какие девкиты делает espressif можешь посмотреть тут:
    https://www.espressif.com/en/products/devkits
    Написано
  • Как передавать файлы текстом, или картинкой, или видео?

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

    Но это надо погуглить.
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

    K0TlK,

    Я говорю о том, что должна быть причина сделать поле приватным, ты говоришь о том, что должна быть причина сделать поле публичным. Это немножко противоположные вещи

    По сути мы говорим об одном и том же, но сдвиг "причина для приватности" и "причина для публичности" у нас возникает из-за разного опыта.

    Я никогда геймдева не касался, а был в ентерпрайзе / системщине - в 90% случаев тут поля - это либо какие-то зависимости, которые прокинуты через DI, либо какое-то хрупкое состояние. (тобишь и то и то должно быть private)

    С публичными полями разве что какие-нибудь DTO-шки и модельки для баз данных можно было бы сделать, но там либо по техническим причинам (из-за ORM или сериализаторов), либо по привычке всё делается через свойства.
    Тут ещё на помощь пришли record-ы, в которых даже не надо руками {get; set;} писать.
    + Прикольно всё можно сделать иммутабельным.
    Написано
  • Как отключить плашку о новом домене?

    Juchok, собственно об этом сообщение и говорит - домен очень новый. Через какое-то время пропадёт, если не будете рассылать спам.
    + ещё проверьте, что всякие dmarc/dkim/spf/fbl корректно настроены.
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

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

    Мне кажется, тут ситуация похожа на мой пример с хп - ситуация слишком простая, чтобы подход себя оправдал.

    Аргументация уровня дошкольника.

    Это не аргументация, а просто наблюдение ;)

    Когда я пишу про "безопасность и защиту", я имею ввиду ту мнимую безопасность которая появляется, когда кто-то просто везде пишет приватные поля и думает, что их никто не будет менять.

    В случае, если приватное поле было изменено за пределами класса, то причина поломки очевидная - кто-то запортачил с рефлексией и полез туда, куда не надо.

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

    Слава богу, я отписался от всех таких чатов)

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

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

    Juchok, ну скажи, сколько твой домен зарегистрирован?
    Написано
  • Как отключить плашку о новом домене?

    Просто ждать - написано же, что домен типа свежий.
    Написано
  • Как установить обновление Jetbrains?

    Сергей delphinpro, про это и говорю - toolbox и идешки у меня без vpn не обновляются
    Написано
  • Что за странные файлы с непонятным расширением на гугл диске?

    Некоторые приложения могут хранить свои данные в гуглдиске (whatsapp так делает, например).
    Что внутри этих файлов?
    Написано
  • Как установить обновление Jetbrains?

    Сергей delphinpro, а сейчас разве не должно быть 2024.2?
    UPD: глянул, действительно phpstorm сейчас самый новый - 2024.2.3 с 30 августа.
    Написано
  • Как установить обновление Jetbrains?

    Сергей delphinpro, вот про обновления плагинов не скажу, а вот сами идешки уже несколько недель как без vpn не обновляются у меня
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

    K0TlK,

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

    Ну вот увидел, что нужно вывести - добавил публичное read-only свойство для этого поля.

    И это не рефакторинг, ведь мы добавляем новый код, а не изменяем старый.


    Зачем поле, которое изначально было публичным, делать приватным?

    Я тебя так понял, будто мы должны по-умолчанию делать все поля публичными и переводить их в приватные, если поняли, что они должны быть приватными.


    Смотрю в книгу - вижу фигу. Лучше бы со свежей головой прочитал все мои сообщения в этой ветке

    А дальше разработчика порвало, несите нового.


    Как я и писал раньше, вся эта непомерная "защита и безопасность" - бред

    Если обратить внимание, лично я ни разу не аппелтровал к защите и безопасности, ни в комментах, ни в ответах.


    И, если публичные поля все ломают и делают плохо, почему же софт, написанный на С кучу лет назад, работает лучше(быстрее, меньше багов), чем тот ужас, что выпускают сейчас (можешь сравнить вижуал студию до того, как она перешла с плюсов на C# и после).


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

    А вот в C++ есть - сам же говоришь, что на C++ было лучше.

    Может тогда дело далеко не в модификаторах доступа, ООП и прочем?


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

    Реальная история?
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

    K0TlK, чистая архитектура у меня есть, но что-то я не помню там рекомендаций накидывать повсюду мелкие классы.

    Да и это больше про enterprise, а не про геймдев
    Написано
  • Как установить обновление Jetbrains?

    Попробуй другой vpn (не публичный)
    Написано
  • Как установить обновление Jetbrains?

    Сергей delphinpro, раньше они смотрели регион, но сейчас они по ip смотрят.
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

    K0TlK,

    Плохо гуглил

    Зачем использовать англицизм там, где вполне можно было использовать русское слово "неочевидность" / "надуманная сложность" итд?

    Мне кажется, что использование private / internal слабо коррелирует с (не)понятностью кода.


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

    К сожалению (или к счастью) у меня на полке таких книг нет. Пример будет?


    Удивительно сложный рефакторинг - нажать две кнопки в райдере или любом другом иде.

    Ага, рефакторинг очень простой, особенно если переходишь с классов на интерфейсы и уже невелосипедил валидацию и события после изменения поля во всех местах использования. И вообще поле должно быть read-only.


    В чем заключается ценность приватных полей, если они абсолютно везде? Каким образом понять, что поле следует сделать публичным?

    А зачем эта дополнительная ценность нужна для принятия решения о закрытии полей?
    Сделаем всё приватным.
    Потом пришёл к выводу, что это нужно снаружи и это можно безопасно открыть - открыл.
    Сделал сначала свойства, но они так и остались auto и захотелось сделать микрооптимизацию - стёр акцессоры и вот у тебя поле.

    Зачем задумываться о том, что делать приватным, если можно поступать наоборот? Сделать приватное поле публичным - безопасно.
    Сделать публичное поле приватным - breaking changes.
    Так зачем себе головную боль добавлять?


    В чем заключается хрупкость? То, что мододел сломал все, не почитав документацию, проблема исключительно мододела.

    Хрупкость в том, что у тебя таким образом вся игра становится публичным API и любое изменение становится ломающим => при обновлении игры непредсказуемо ломаются моды вплоть до состояния "невозможно починить".

    PS: я хорошо поспал и со свежей головой прочитал первый коммент

    К нечитабельному коду. Когда вместо публичного поля используется конструкция типа

    В обоих примерах разработчик вполне очевидно показал своё намерение - изменять поле извне нельзя.

    Как такое ограничения сделать при помощи публичных полей? Да никак.
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

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

    Гугл выдаёт мне именно тот индирекшн, про который я написал. Если ты говоришь про другой - это тебе нужно написать, про какой именно.

    Во-вторых, каким образом жит компилятор уберет тебе прыжки по указателям в случае с классами?

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

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

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

    В-четвертых, этому примеру с хп уже миллион лет. Если разработчику больше 12 лет (от роду), он прекрасно будет понимать, что должна быть какая-то функция/метод для нанесения урона и не будет менять хп напрямую.

    На то он и пример - он первым пришёл в голову и он легко понятен будет "разработчику больше 12 лет от роду".
    Более сложный пример нужно ещё придумать да и чтобы понять его придётся тоже голову включить.

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

    Это будет очень хрупкая система модов.
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

    Чтобы программисту не надо было думать как поведет себя код, если ВДРУГ кто то снаружи изменит то, что менять не надо вообще.

    Мне кажется, это сложно понять новичку.
    Вот кто тут "кто-то снаружи", если игру разрабатывает один человек?

    Ну и слово "безопасность" я бы лучше заменил на "надёжность"
    Написано
  • Почему рекомендуется использовать private а не просто ставить везде Public?

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

    Хз как там работает IL2CPP в юнити, но в обычном дотнете подобный индирекшен полностью убирается JIT-компилятором.

    В реальном мире бездумное использование приватных полей приводит:

    Ключевое слово "бездумное".

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

    Я далёк от геймдева, но вот пример с хп, который пришёл в голову:
    class Character {
      public double health;
      public void TakeDamage(double damage) {
        this.health -= damage;
        if this.health <= 0.0 {
           this.Die();
        }
        // ...
      }
      public void Die() {
        // ...
      }
    }


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

    Опять же с повсеместным использованием полей будет сложно реализовать удобную систему модов (почему - оставляю как загадку).
    Написано
  • Возможно ли использовать модель LLAMA-405B на обычном железе 64GB + 8GB?

    В теории часть весов можно хранить на диске, но тогда производительность очень сильно просядет
    Написано