• Где здесь можно применить наследование в Java?

    @Vitsliputsli
    Негде его применять. Примененное в примере - это логическая ошибка. Создать потомков по типам можно, но конкретно в этом примере не нужно, т. к. это ничего не даст.
  • Как спроектировать БД для обслуживания запросов пользователей?

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

    @Vitsliputsli
    Богдан Герасименко, если у вас тысячи записей, а вы выбираете 10 штук для работы. Если значения конфигов ваших api изменяются приложениями. В подобных случаях использование БД удобно, в вашем случае не очень понимаю причины переноса их в БД.
  • Создать несколько таблиц или попробовать унифицировать?

    @Vitsliputsli
    Сколько этих API? Это к тому, а зачем их хранить в БД?
  • Как правильно отключить часть кода?

    @Vitsliputsli
    zaart, да, лучше. Ну еще, если есть деление на продакшен и тестовое окружение, то secret вынести в конфиг продакшена.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев,
    различных класификаций систем типов много, каждая из них ставит одни системы типов в сильную позицию, а другие в слабую

    А все дело в том, что явная типизация будет более сильной чем неявная, статическая более сильная чем динамическая, soundness более сильная чем completeness, и т.д.

    Я реально не сразу понял, о чем вы, просто потому, что не делает так никто, кроме вас. Сильная/слабая всюду идет как отдельная классификация, кто-то говорит о безопасности использования памяти (о чем я писал на примере Си), кто-то считает "слабым" и автоматическое преобразование типов (не знаю почему, потому и пытаюсь выведать), но никто не использует их просто как слова сравнения.
    И приведенные цитаты совсем не об этом, там где-то используется сравнение? Нет. Про соответствие типов написано, про data area даже, stronger than - нет. Любая классификация, которую можно встретить, говорит, что язык имеет сильную, либо слабую типизацию. Да, можно сказать, что у этого более слабая чем у другого, но никто не говорит, что у Си сильная типизация, потому как он статически и явно типизирован.
    В общем, как уже было сказано, в эти слова каждый вкладывает свое значение, что приводит к бессмысленности их употребления.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, так вы и не спорите, бросаетесь ничего незначащими фразами, с намёками, что постигли все тайны, а аргументировать не можете. У вас что-то профессиональное? Нужно пускать пыль в глаза, стараться не говорить конкретики, чтобы не поймали на незнании?
    Разумеется, в 70х про динамическую речи не шло, но это и не про это, это про безопасность типов в памяти, уже в который раз пишу об этом. Если вы не понимаете, что это значит, так спросите: "о чем ты, вообще?". Но нет, "цитаты, которые лишь подтверждают то что я пишу", что именно подтверждает? Конкретно, можно? Пока вы заявили только, что Лисков со товарищи не фига не понимают, и путают статическую и сильную типизацию. Ну-ну... Куда уж ей...
  • Как правильно отключить часть кода?

    @Vitsliputsli
    zaart, $_POST['g-recaptcha-response'] вы напрямую вставляете в GET запрос, вероятно стоит валидировать эти данные перед вставкой. Или лучше использовать post запрос, для таких действий логически он больше подходит, да и secret светить в строке запроса тоже не очень хорошо.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, о том и речь, что когда говорим слабая/сильная, уже неизвестно, что конкретно имеется ввиду, а когда заявляем, что это "комплекс классификаций", очевидно, что это уже совсем какие-то субъективные измышления.
    Неявная типизация здесь совсем не при чем, т.к. проверки типов при операциях и выбор типа исходя из значений - это разные вещи. Разница принципиальная, неявная - это когда что-то делается неявно, а здесь наоборот отсутствуют дополнительные проверки, что ослабляет контроль над типами со стороны языка. Т.е. речь про безопасность типов в памяти.
    Исторически:
    In 1974, Liskov and S. Zilles defined a strongly-typed language as one in which "whenever an object is passed from a calling function to a called function, its type must be compatible with the type declared in the called function."[3] In 1977, K. Jackson wrote, "In a strongly typed language each data area will have a distinct type and each process will state its communication requirements in terms of these types."

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

    @Vitsliputsli
    Дмитрий Беляев, собственно, выше уже написал, могу процитировать Вики:
    Languages are often colloquially referred to as strongly typed or weakly typed. In fact, there is no universally accepted definition of what these terms mean. In general, there are more precise terms to represent the differences between type systems that lead people to call them "strong" or "weak".

    Поэтому "на самом деле" всеми признанного определения этой классификации нет. На мой взгляд, самое адекватное определение для сильной/слабой - это насколько сильно/слабо выражены типы в языке, т.е. насколько много проверок этих типов существует при осуществлении операций. Если вы можете обратиться к переменной одного типа, как к переменной другого типа, и компилятор/интерпретатор на это никак не прореагирует - это слабая типизация (здесь речь не про неявные преобразование типов, а именно про отсутствие контроля типов при обращении к памяти со стороны языка). Называть неявное преобразование типов слабой типизацией на мой взгляд странно, даже семантически причем здесь слово "слабая" неизвестно.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    zaart, может я не понимаю, в чем проблема... Напишите перед вашим
    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) (isset, кстати, здесь не нужен)
    что-то вроде:
    if ($config->get('recaptcha.enable') === true) {
    $config - это объект Конфигурация, если его нет, то нужно создать соответствующий класс, который будет парсить конфиг-файл, и обеспечивать доступ к его свойствам по get-методу.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    Антон Р., это неявное поведение, потом пойди догадайся как приложение будет себя вести исходя из ip или других факторов.

    zaart, зачем 2 формы? Одна, но с условием, опираясь на конфиг.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, динамическая/статическая это одно, явная/не явная другое, а сильная/слабая третье. К примеру, Си имеет статическую слабую типизацию. Слабая она не потому что явная или статическая, а потому, что контроль типов слабый, и программист сам должен отслеживать отдельные моменты: где строка, а где число.
  • Как преобразовать "[a,b,c]" в [a,b,c]?

    @Vitsliputsli
    nnikolyaa, тем, что позволяет выполнять любой код, и если выполняемая строка приходит извне, нужно жёстко её контролировать.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    Ну вот решил я на локалке потестить код и поставил в файле конфига recaptcha = 0

    Так и сделайте, в чем сложность?
  • С чего начать изучение языка?

    @Vitsliputsli
    А еще, есть два типа людей - те, которые думают, что в TypeScript/Java/C# сильная система типов, и те, кто понимает, что они в разы слабее чем в ML языках.

    Понятие слабой/сильной типизации уже давно потеряло всякий смысл, из-за людей, которые думают, что неявное преобразование типов - это слабая типизация. Поэтому лучше писать, что подразумевается под этой фразой. Не говоря уже о том, что слабую типизацию в Си, некотрые воспринимают как возможность и дополнительную гибкость языка, превышающую опасность ошибок вызванных подобной реализацией.
  • Как преобразовать "[a,b,c]" в [a,b,c]?

    @Vitsliputsli
    MinTnt, nnikolyaa, ну вы же понимаете, что exec это опасная команда? И использовать ее нужно только в крайнем случае, здесь вполне можно без нее обойтись.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    DevMan,
    многое. прост сравните хотя бы стандартную либу питона и слоника. не говоря уже о сторонних решениях.
    но в разрезе веб–дева – это особо не роялит.

    О том и речь, не то чтобы нельзя сделать, просто на python гораздо проще и удобнее из-за богатой библиотеки.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Александр, вы описываете потоки (говоря про python), но сравниваете их с процессами (говоря про php). В PHP тоже есть возможность использовать потоки.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Yupiter7575,
    Ну как пример, нейронки намного удобнее на пайтоне писать


    сделать можно и там, и там, но для каких-то вещей удобней использовать python.