• Насколько хорошая практика передавать в метод имя класса, который его вызывает?

    @Akela_wolf
    Extreme Programmer
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
    С. Макконнелл


    Первый вариант понятен. Вы поиском сможете найти откуда каждый метод вызывается. Имя метода четко указывает что он делает.

    Второй вариант - непонятен. Во-первых, имя метода ни о чем не говорит. Чтобы понять что он делает - придется читать сам метод. Во-вторых при поиске мест вызова нужно будет постоянно проверять контекст - что за параметр передан в этот метод? А если он будет вызываться из класса-наследника одного из контроллеров? А если будут использовать трейты? А если код будет вынесен в делегат? Очень много сложностей для решения настолько простой задачи.
    Ответ написан
    1 комментарий
  • Webview можно ли убрать или как то скрыть хедер и футер сайта в самом приложении?

    @Akela_wolf
    Extreme Programmer
    Лучше всего если это будет делать сайт (судя по контексту вопроса - вы же контролируете и код сайта). Добавьте параметр в запрос/cookie/HTTP-заголовок, который будет указывать что необходимо отдавать страницу без header/footer и посылайте параметр из вашего приложения.

    А браузер этот параметр посылать не будет и для него все останется как прежде.
    Ответ написан
    2 комментария
  • Как прибавить к текущей дате дни?

    @Akela_wolf
    Extreme Programmer
    Во-первых, никогда, не собирайте SQL-запрос по кускам с помощью конкатенации строк. Это очень, очень, ОЧЕНЬ, плохой способ, за который тысячи разработчиков поплатились взломом сайтов через SQL-injection. Используйте параметры запроса.

    Во-вторых, у вас в запросе ошибка: INSERT и SET не могут использоваться совместно.

    В-третьих, проще всего воспользоваться функцией DATE_ADD, передавая ей количество дней как параметр, например так:
    $pdo->prepare("INSERT INTO `order`(user_id, date, date_end) VALUES(:userId, :date, DATE_ADD(:date, INTERVAL :days DAY))")
    	->execute(["userId" => 100,
    			   "date" => date("Y-m-d"),
    			   "days" => 10
    			  ]);


    Полный пример

    Обратите внимание: phpize.online предоставляет объект $pdo. Вам в вашем коде придется его инициализировать вручную, либо понять как использовать параметры вместе с тем объектом $db, который у вас есть. Если это Laravel - то он тоже умеет аналогичным образом подставлять параметры.
    Ответ написан
    4 комментария
  • Какой Exception лучше использовать в данном случае?

    @Akela_wolf
    Extreme Programmer
    java.lang.IllegalStateException
    Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю принцип контейнера в docker?

    @Akela_wolf
    Extreme Programmer
    Да. Но соль в том, что если кто-то внесет изменения эту БД, а затем перезапустит контейнер - изменения потеряются.

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

    Если же речь идет о том, чтобы кто-то мог вносить изменения в БД, то есть использовать её именно как БД - то храниться файлы БД должны не в контейнере, а снаружи от него (например на docker volume). А это означает что в передаваемом контейнере их не будет.

    Как вариант решения этой проблемы - выполнять скрипты, заполняющие БД нужными таблицами и данными при старте контейнера.
    Ответ написан
    Комментировать
  • Почему ArrayList пустой?

    @Akela_wolf
    Extreme Programmer
    Так запрос же асинхронный. То есть вы его запускаете и говорите "вот когда данные придут - запиши их в список". И не дожидаясь пока запрос выполнится - возвращаете список (который, разумеется, пустой - запрос же еще в процессе выполнения).

    Поэтому, если уж вы начали использовать асинхронные запросы - надо жить в асинхронном мире дальше, везде протаскивая Mono и Flux.

    Либо переходить на Kotlin с его корутинами (которые прекрасно интегрируются с Mono/Flux)
    Ответ написан
    Комментировать
  • Можно ли давать людям сервера на docker?

    @Akela_wolf
    Extreme Programmer
    Docker != VPS

    Главное отличие: VPS - это сервер к которому пользователь имеет полный доступ и может устанавливать и запускать любые программы. Docker - это инструмент для запуска единственного процесса в определенном окружении.

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

    @Akela_wolf
    Extreme Programmer
    Во-первымх, вы бы хоть модели процессоров написали. Эти слова, без понимания какая микроархитектура за ними стоит - ни о чем.
    Во-вторых, фуллстек - это вообще что за зверь? Какие конкретные задачи должен решать компьютер?

    Если поиграть в телепата, то для программирования - особой разницы нет. Лично я бы взял шестиядерник, под запуск разных контейнеров (докер, вагрант и т.п.), в однопотоке у него неплохой турбобуст.
    Ответ написан
    Комментировать
  • Майнинг криптовалюты?

    @Akela_wolf
    Extreme Programmer
    Да. Но нужно понимать что минимальные/рекомендуемые требования указывают объем оперативной памяти, обеспечивающий (по оценке разработчика) нормальную производительность.

    Использование файла подкачки (особенно если он на HDD, а не SSD) будет значительно медленнее, то есть можно ожидать что производительность упадет. Насколько значительно - зависит от многого, в частности от того как программа работает с памятью.
    Ответ написан
    Комментировать
  • Каким образом можно увеличить выходное напряжение без превышения уровня напряжения двоичного кода на ЦАП с резисторной матрицей R-2R?

    @Akela_wolf
    Extreme Programmer
    Поставьте на выход R2R операционный усилитель и получите совершенно произвольное напряжение на выходе (в пределах выходного диапазона ОУ). Операционный усилитель имеет еще такой немаловажный плюс, что R2R чувствителен к сопротивлению нагрузки, чем меньше сопротивление, тем больше напряжение на выходе будет "плавать". ОУ обладает очень высоким входным сопротивлением, поэтому в паре с R2R будет работать просто замечательно.

    Статья на хабре

    Я так полагаю, вам подойдет самая простая схема - неинвертирующий усилитель.
    Ответ написан
  • Существует ли программа для Ubuntu, чтобы перенести систему с диска на диск не вникая в нюансы и тонкости устройства Linux?

    @Akela_wolf
    Extreme Programmer
    Неужели нет нормальной программы для такого часто выполняющегося действия?

    Оу... Часто - это раз в год?

    Вообще, такая операция как перенос с одного диска на другой требует понимания что и как в системе работает. В линуксе есть такая универсальная штука - называется dd. Но это не то что вы ищете.
    Ответ написан
  • Postgresql как преобразовать пустую строку в "Не отправлено"?

    @Akela_wolf
    Extreme Programmer
    Если под пустой строкой подразумевается NULL - то COALESCE
    Если под пустой строкой подразумевается "" - то CASE
    Ответ написан
    Комментировать
  • Проектирование БД, какую СУБД выбрать?

    @Akela_wolf
    Extreme Programmer
    Ваши нагрузки легко выдержит любая SQL СУБД - MySQL, PostgreSQL.

    Преждевременная оптимизация - зло. Начните с простых, давно уже известных вещей. А затем уже, по мере выявления узких мест - оптимизируйте.
    Ответ написан
    1 комментарий
  • Как спарсить json?

    @Akela_wolf
    Extreme Programmer
    Насколько я вижу по структуре JSON у вас здесь List<Map<String, RegisterRequest>>
    Ответ написан
    Комментировать
  • Как составить sql запрос на получение одинаковых данных?

    @Akela_wolf
    Extreme Programmer
    Можно через JOIN:
    SELECT t2.* FROM t t1 JOIN t t2 ON t1.input_id = t2.input_id
    WHERE t1.id=1


    Пример
    Ответ написан
    Комментировать
  • Почему PL/SQL не популярен?

    @Akela_wolf
    Extreme Programmer
    Потому что это язык привязанный к БД Oracle. На нем, конечно, можно многое делать, но нет Oracle - нет и приложения на PL/SQL. А Oracle дорог (а сейчас еще и в "зоне риска"). Поэтому PL/SQL - это достаточно специфичный язык программирования, ориентированный на обработку данных в БД.
    Скажем, написать на PL/SQL сайт, наверное, можно. Но зачем, если есть более подходящие для этой цели инструменты?

    В отличие от него, C++/Java/C#/Javascript/Typescript/Python и пр. имеют значительно более широкое применение.
    Ответ написан
  • На чем писать/поднимать каталог недвижимости?

    @Akela_wolf
    Extreme Programmer
    Есть бюджет - берите Spring (Java)
    Нет бюджета - Laravel (PHP)

    Оба варианта имеют более чем приличное сообщество разработчиков, найти специалистов не будет проблемой.
    Ответ написан
  • Существует более мощный, чем nano текстовый редактор из командной строки?

    @Akela_wolf
    Extreme Programmer
    Для использования в терминале - vim (или vi, который часто идет "искаропки", то есть даже ставить отдельно не нужно). Кривая обучения высоковата, но зато возможностей хватит "с головой". На данный момент для меня вообще основной редактор (в виде плагина к IDEA).

    Вечный соперник вима - emacs. Но его не использовал, ничего сказать не могу. Вимом же пользуюсь постоянно
    Ответ написан
    4 комментария
  • Поддержка таймингов оперативной памяти материнской платой?

    @Akela_wolf
    Extreme Programmer
    Тайминги - это сколько тактов данный модуль потратит на выполнение определенной операции чтения или записи в память. Материнская плата ничего не знает про тайминги, она просто обеспечивает шину по которой от процессора к модулю памяти и обратно несется поток команд и данных. Частота модуля памяти (частота на которой передаются данные по шине памяти) - это характеристика модуля памяти, процессора и материнской платы.
    Тайминги - это задержки выполнения команд процессора. Они могут быть, вообще говоря, любыми (меньше - разумеется лучше, процессор будет меньше ждать ответа от памяти)
    Ответ написан
    Комментировать
  • Как запустить php проект?

    @Akela_wolf
    Extreme Programmer
    Комментировать