1. Java / Говнокод #2101

    +77.2

    1. 1
    2. 2
    3. 3
    4. 4
    public static long hash(URL url) {
    	FNV1 fnv; (fnv = new FNV1a32()).init(url.toExternalForm());
    	return fnv.getHash();
    }

    Какой читаемый код... :)

    Запостил: ShadowX, 05 Ноября 2009

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

    • Все читабельно, надо просто немного погуглить, чтобы понять что значит абревиатура FNV
      http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash
      Ответить
      • Вообще, код мой :) Но я 2-ю строку не назвал бы читабельной :)
        Не каждый сразу поймет последовательность действий.
        Ответить
        • а смысл был так писать ради одной сэкономленной строчки? :)
          Ответить
          • Вобще, если было бы возможно, написал бы в одну.
            Вся штука в том, что информационной нагрузки при чтении кода такие методы не несут, все в названии. В особенности это касается отлаженого кода :)
            Ответить
            • раз нагрузки при чтении нет, то к чему вопрос по поводу читабельности? :)
              значит, таки, нагрузка есть.
              Ответить
    • public static long hash(URL url) {
      FNV1 fnv = new FNV1a32();
      fnv.init(url.toExternalForm());
      return fnv.getHash();
      }

      По-моему так намного лучше
      Ответить
      • По правилам оформления K&R да :) Но, на мой вкус, читается всеравно плохо :) В таком виде у меня был код до того как я наговнокодил :)
        Спасибо, за не равнодушие :)
        Ответить
      • public static long hash(URL url)
        {
        FNV1 fnv = new FNV1a32();
        string someUrl = url.toExternalForm();
        fnv.init(someUrl);
        string hash = fnv.getHash()
        return hash ;
        }
        Ответить
        • Stop! Без фанатизма, это же не JavaScript, только там такие изыски дают пользу - скорость выполнения ;)
          Ответить
    • А нельзя было просто
      URL.toString.getHash() // ???
      и что такое FNV - не понятно. Так что как говнокод не засчитывается.
      Ответить
      • точнее
        return url.toString.getHash();
        или как в Java ME - там вообще хэши можно считать для любого класса.
        Ответить
        • Наверное хеш, особенный... Да и в коментах уже писали люди и пример уже был выше.
          Ответить
      • Глянь http://lmgtfy.com/?q=FNV1a32 - может поможет!
        Ответить
    • public static long hash(URL url) {
          return (new FNV1a32()).init(url.toExternalForm()).getHash();
      }
      Ответить
      • Гениально, только функция init(String) возвращате void :-p
        Ответить

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