1. PHP / Говнокод #26390

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public function update_balance()
    	{
    		$this->balance = $this->balance_at_end_of_day(time());
    	}
        
           public function balance_at_end_of_day($time)
    	{
    		return $this->balance_at_beginning_of_day($time + 24*60*60);
    	}

    когда окунулся в легаси

    Запостил: alucas, 28 Января 2020

    Комментарии (10) RSS

    • А что не так? Я бы так же сделал, только без питушарского "ООП".
      Ответить
      • Гипотезы:

        1. time() + 24*60*60 вернёт завтрашнее время. Оно ещё не наступило.
        2. Баланс обычно пересчитывают не в произвольное время, а в определённый час (конец смены или типа того).
        Ответить
        • баланс на начало завтра = баланс на конец сегодня
          Ответить
      • Смотря, что там в balance_at_beginning_of_day().
        Возможно, вызов update_balance() в неожиданное время может поломать данные.
        Ответить
        • Я вспомнил классику. Как вернуть завтрашнюю дату? sleep на сутки и вернуть текущую.
          Ответить
        • Warning: function called at wrong time.
          Ответить
          • Зачем функция в неожиданное время вызывается?
            Зачем такое сообщение об ошибке возвращается?
            Ответить
    • Окунул тебя в прорубь на питерском вокзале, проверь.
      Ответить
    • Главное, чтобы в balance_at_beginning_of_day не было balance_at_end_of_day($time - 24*60*60)
      И вдруг високосная секунда.
      Ответить
      • Это ещё что. Вот когда они наткнутся на летнее/зимнее время — вот тогда у них будет багорище.
        Ответить

    Добавить комментарий