LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

но ведь тогда если был бы такой язык программирования — то тогда был бы огромный риск возникновения следующей ситуации:

(пишу фрагмент кода на импровизированном гипотетическом языке)

допустим есть некоторая функция в библиотеке:

require 'low_level_some'

def do_super_some(v)
    if v => 1000
        do_big_some(v)
    else
        do_small_some(v)
    end
end

как видим — программист библиотеки здесь забыл указать ``nil`` перед концом функции ``do_super_some()``

но допустим — это не страшно, так как ``do_big_some()`` всегда возвращает ``nil``, и ``do_small_some()`` тоже всегда возвращает ``nil``.

а теперь представим что неожиданно ``do_big_some()`` начинает возвращать в случае успеха что-то другое [допустим это случается после — после pacman -Syu # :)]

....и в результате — функция ``do_super_some()`` начинает возвращать непонятную почти-безсистемную ерунду..

а другой программист — позже может подумать что ``do_super_some()`` возвращает не безсистемную ерунду, а вполне определённое «успех если != nil».. и вот он баг на ровном месте!

:-( :-(

Исправление user_id_68054, :

но ведь тогда будет огромный риск возникновения следующей ситуации:

(пишу фрагмент кода на импровизированном гипотетическом языке)

допустим есть некоторая функция в библиотеке:

require 'low_level_some'

def do_super_some(v)
    if v => 1000
        do_big_some(v)
    else
        do_small_some(v)
    end
end

как видим — программист библиотеки здесь забыл указать ``nil`` перед концом функции ``do_super_some()``

но допустим — это не страшно, так как ``do_big_some()`` всегда возвращает ``nil``, и ``do_small_some()`` тоже всегда возвращает ``nil``.

а теперь представим что неожиданно ``do_big_some()`` начинает возвращать в случае успеха что-то другое [допустим это случается после — после pacman -Syu # :)]

....и в результате — функция ``do_super_some()`` начинает возвращать непонятную почти-безсистемную ерунду..

а другой программист — позже может подумать что ``do_super_some()`` возвращает не безсистемную ерунду, а вполне определённое «успех если != nil».. и вот он баг на ровном месте!

:-( :-(

Исходная версия user_id_68054, :

но ведь тогда будет огромный риск возникновения следующей ситуации:

(пишу фрагмент кода на импровизированном гипотетическом языке)

допустим есть некоторая функция в библиотеке:

require 'low_level_some'

def do_super_some(v)
    if v => 1000
        do_big_some(v)
    else
        do_small_some(v)
    end
end

как видим — программист библиотеки здесь забыл указать ``nil`` перед концом функции ``do_super_some()``

но допустим — это не страшно, так как ``do_big_some()`` всегда возвращает ``nil``, и ``do_small_some()`` тоже всегда возвращает ``nil``.

а теперь представим что неожиданно ``do_big_some()`` начинает возвращать в случае успеха что-то другое [допустим это случается после — после pacman -Syu # :)]

....и в результате — функция ``do_super_some()`` начинает возвращать непонятную почти-безсистемную ерунду..

:-( :-(