1. JavaScript / Говнокод #7483

    +165

    1. 1
    2. 2
    3. 3
    function p(x, y){
    	return new Point(x, y);
    }

    Боже мой!!

    Запостил: COCO, 07 Августа 2011

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

    • 8 символов экономии на каждом вызове! Начиная с 7-го вызова — выгода!
      Ответить
    • Хм... такое можно делать в языках, которые не могут вот так:
      new Point(x, y).foo();
      В таком случае можно сделать p().foo();
      А в JavaScript так можно делать. Наверное чувак просто сэкономил место себе, ничего плохого в этом не вижу, если от этого улучшилась читабельность кода.
      Ответить
    • ну и что тут такого. это яваскрипты - важен размер клиентской части.
      я сам, работая с ExtJS написал небольшую кучку функций, которые вместо
      new Ext.form.ComboBox() позволяют писать $Combo(), а вместо Ext.ComponentMgr.get() писать $c(). и ничего страшного, работает и место экономит
      Ответить
      • Оставьте это дело компрессорам.
        Ответить
        • компрессоры не идеальны. бывает, что их переименования отрицательно сказываются на работоспособности приложения. вплоть до краха.
          Ответить
          • во-первых, эффект от сокращения наз-ий переменных нивелирует даже gzip, не говоря уже о js компрессорах. во-вторых, компрессоры почти все открытые и можно под себя настроить, это к вопросу о сжатии ExtJS.
            Ответить
        • кроме того, я не нашел еще ни одного компрессора, который бы адекватно сжал ExtJS и весь связанный с ним код
          Ответить
          • а весь связанный код, как и сам экст-джс, находился в одном общем файле (при сжатии)?
            Ответить
            • сам ExtJS в двух (вроде бы) файлах, которые склеиваются в один и куча мелких файликов, которые собираются в один и дописываются в конец файла с Ext'ом в нужном порядке
              Ответить
              • тогда да, тогда молчу :)
                зы: google closure compiler пробовали?
                Ответить
              • та не помню я уже:)
                как всегда - подпёрли грабельками, взяли сжатый файл из коробки ExtJS'а и отдельным файлом идёт вся остальная петрушка, которая сама по себе сжимается неплохо, если только не пытаться сжимать имена переменных
                Ответить
          • http://marijnhaverbeke.nl/uglifyjs
            Ответить
    • Если я правильно понимаю, это используется для создания объекта через new.
      Ответить
    • Похоже на идиому фабрики объектов. Вещь хорошая и очень нужная, только объявлена, вероятно, не там, где нужно. Effective Java, Item 1: Consider static factory methods instead of constructors
      Ответить

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