История изменений
Исправление 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()`` начинает возвращать непонятную почти-безсистемную ерунду..
:-( :-(