За последние 24 часа нас посетили 20345 программистов и 1006 роботов. Сейчас ищут 370 программистов ...

Где в PHP логика?

Тема в разделе "PHP для новичков", создана пользователем NerdRage, 15 фев 2017.

  1. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Если у вас в коде есть места, где "что-то" "куда-то" приходит, нечего удивляться, что оно будет "как-то" работать. Как вообще такое может быть, что у вас "что-то" приходит? Что значит "что-то"? Вы не в курсе, что это может быть? У вас не определен круг входящих типов? Да, в php имеет место такое явление как mixed $param, но при этом составляющие этого mixed нам заранее известны. Мы знаем, как их обрабатывать. Мы точно знаем, что к нам может придти и знаем, что с этим делать. Как в функцию может придти "что-то"? Кто-то злой пришел и передал это в нее? Вы не контролируете, что у вас творится в коде? Стохастически нестабильные алгоритмы? "Итааааксойдет-driven development"?
     
  2. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Да конечно много таких мест.
    Например, у вас задание написать функцию, которая будет использоваться другими людьми. Что они в нее пошлют - вы не знаете. Вам нужно проверять на входе. И использовать новые фичи PHP7 вам никто не даст :) Даже в Pascal со строгой типизацией зачастую нужно проверять.. посмотрите WinAPI там сплошные проверки на входе, хоть и строгая типизация.. это правильный стиль для публичных функций, которые вызываются не только вами.. что говорить о нечетких интерпретаторах.
    Очень часто вам вообще нужно тупо внедриться в какую-нибудь самописную cms и юзать глобальные переменные. Откуда они, что они, какой гений их создавал - вы не знаете. Вы можете ругать всех подряд за то, что все так устроено, но написать работоспособный код вы обязаны :)

    Конечно, когда вы архитектор системы, то всех этих проблем нет. Вернее может не быть, если вы об этом заранее подумаете.
    Я же предпочитаю не типизировать параметры (без презерватива как-то интереснее :)), а в особо критичных местах приводить к определенному типу на месте, например случай со switch самый яркий пример.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ой, всё
    --- Добавлено ---
    дружище, ну я тя просил, про себя - пиши от себя. Харош проецировать на других свой жизненный опыт.
     
  4. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Все, что я пишу - пишу про себя, дружище :)
    --- Добавлено ---
    в смысле от себя ) Не нужно додумывать и воспринимать это как документацию на все случаи жизни для всех
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Ну фиг знает:
    против:
    итого 7:1 в пользу вам
     
  6. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Когда меня спрашивают - как ТЫ делаешь или как бы ТЫ сделал, то я пишу с оборотом на "я".
    На любой абстрактный вопрос в пустоту, я ставлю задающего в центр вселенной и пытаюсь воспроизвести его поведение, используя "вы". Он главный, ему решать.

    сколько я должен за такой подробный психоанализ? :)
     
  7. NerdRage

    NerdRage Активный пользователь

    С нами с:
    6 июл 2016
    Сообщения:
    439
    Симпатии:
    42
    А эти функции делают не тоже самое?
    PHP:
    1. switch((string)$str)
    2. switch((string)$int)
     
  8. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Тоже самое, дело вкуса.
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Я где-то слышал, что именно для таких случаев была придумана эта, как ее...а, да, документация. И если в ней написано, что параметром должно быть число, то, тот факт, что какой-то дебил пихает туда массив - это проблема дебила.

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

    То, что вы описали, это какое-то "Я привык месить говнокод, постоянно приходилось это делать, вонища такая стояла, что слезы текли, а что делать? Свой говнокод, чужой, потом уже и не разбираешь, где да что, главное, что оно работает." Это, конечно, вызывает сочувствие, но практики, начерпанные в таких условиях, лучше не выносить оттуда.
    --- Добавлено ---
    Крайне неудачный пример. Код вообще винды как таковой - это кладбище костылей, хаков и индусских песен. WinAPI не исключение.
     
    #34 Fell-x27, 23 фев 2017
    Последнее редактирование: 23 фев 2017
    Zuldek и machetero нравится это.
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Самую суть ухватил.
     
  12. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Еще не хватало, чтобы блондинки садились в наш интеллектуальный автомобиль.. Именно так мыслит АвтоВАЗ выпуская жигули :)

    Сразу видно, что вы всего лишь пользователь "винды".
    Успехов :)
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А я сразу вижу зажатого в угол демагога.
     
  14. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    )) ок. зажали в угол документацией и костылями. Давайте так и оставим )
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Снова демагогия. Зачем? Почему просто не промолчать или не признать свою неправоту за отсутствием аргументов? Зачем это вот кривляние?