1. Ruby / Говнокод #1255

    −326.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    def properties_file2hash(_property_file, _link_hash=nil)
        r_hash = Hash.new
        if _property_file &&  FileTest::exist?(_property_file)
          f = File::open(_property_file,'r')
          begin
            _lines = f.readlines
            _lines.each{|_line|
              _strip_line = _line.strip
              if (_strip_line.length > 0)&&(_strip_line[0,1]!='#')
                var_plat = _line.split('::')
                if var_plat.length > 1
                  if (RUBY_PLATFORM.include?(var_plat[0]))
                    _line = var_plat[1]
                    var_plat[2..-1].collect{|x| _line=_line+'::'+x} if var_plat.length > 2
                  else
                    _line = ''
                  end
                end
                var = _line.split('=')
                if var.length > 1
                  _value = var[1].strip
                  var[2..-1].collect{|x| _value=_value+'='+x} if var.length > 2
                  if _link_hash 
                    _value = resolve_link(_value, _link_hash)
                  end
                  r_hash[var[0].strip]=_value
                end
              end
            }
          ensure
            f.close unless f.nil?
          end
          return r_hash      
        end

    Реальный кусок... Весь код проги(не моей)... ТАКОЙ.

    Запостил: guest, 25 Июня 2009

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

    • а по моему вполне приличный код. если нет, то весь код на перле можно говнокодом называть
      Ответить
      • имхо весь код на перле — hardcoded говнокод
        Ответить
      • ты дурак?
        Ответить
      • > весь код на перле можно говнокодом называть
        1
        Ответить
        • один дома
          Ответить
        • Кстати, единица в перле и правда бывает нужна.


          Рассмотим типичный package.
          #!/usr/bin/perl
          
          package Steror;
          sub ebat_kozu { 
            #...
          }
          
          sub ebat_13_letnego_malchinka { 
            #...
          }
          1;


          Тут мы видим класс с двумя методами. Или, точнее говоря, модуль с двумя функциями, которые могут стать классом, если некоторый хеш с полями этого метода освятить (bless) и привязать к этому модулю-пакету. Такие модули-пакеты можно объяединить в пакет-пакет.
          Я понятно объясняю, я надеюсь?

          Так вот единица в конце позволяет при загрузке этого файла заэвалиуроваться в TRUE, и таким образом не упасть, потому что если при загрузке модуля-пакета вы получаете FALSe, то происходит ошибка.

          Как видите, код на перл всегда выглядит логично
          Ответить
    • zajobuvajut __ v nachale peremennuh - vidno chyvak s Perl peresel :)
      Ответить
    • Это не ruby-way.
      Этот метод следует разбить на 2-3 более мелких, убрать _ из названий переменных и избавиться от трети ненужных переменных
      Ответить
    • Да это просто AntiRuby пример! Где же элегантность и краткость(сестра таланта :)) заявленная в Ruby?
      Ответить
      • Выходит, что не язык определяет, как будет выглядеть код...
        Ответить
    • Судя по всему автор этого кода знаком с Питоном ;)
      Ответить
    • Так писать на руби могут только ярык любители перла и петона :)
      Ответить
    • Для интереса просто, Где на ruby пишут?
      Ответить
    • Частенько встречаются те, кто все программы пишут одними if и for
      Ответить
    • Великое княжество багорское ))
      Ответить
    • public boolean supportsNormalTermination() {
              throw new UnsupportedOperationException(this.getClass()
                      + ".supportsNormalTermination() not supported" );
          }
      Ответить

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