1. C# / Говнокод #20454

    +8

    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
    public float Ratio
    {
          get { return ratio; }
          set
          {
              float newValue = value;
    
              if (value < 0.002f)
              {
                  newValue = 0.002f;
              }
              else if (value > 0.983f)
              {
                  newValue = 0.983f;
              }
    
              if (ratio != newValue)
              {
                  ratio = value;
                  InvalidateMeasure();
              }
        }
    }

    Мой "любимый" телерик опять пишет говно. Хорошо, что я скачал исходники и теперь сам могу править баги, не дожидаясь реакции этих слоупоков, которые после отправки бага с гифом (!), воспроизводящими исходниками (!!) и, блядь, патчем (!!!) исправляли два месяца сраный NRE.
    Догадайтесь, что здесь не так. Про magic numbers уже молчу.

    Запостил: kerman, 01 Августа 2016

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

    • - ratio = value
      + ratio = newValue
      Ответить
      • Молодец, возьми с полки пирожок. В следующий раз я тебя порекомендую телерикам на вакансию правки багов за еду. Они мне за каждый найденный баг делают скидку аж в целых 5 долларов за их продукт!

        Для начала, если уж про говнокод, то этим обизянам надо бы рассказать, что value в сеттере можно изменять, что исключает целый класс ошибок, включая эту.

        Далее про бессмысленный codestyle. Я решарпером вырезал все приставки "this.", получилось около полмегабайта с 25 мб исходников. И это только четыре библиотеки. И это только "this". К слову, 25 мб получилось из 29, путём смени начальных пробелов на табы (цыц, холивариоры!), что говорит о плотности символов на строку кода. Походу, им за строчки платят.
        Ответить
        • > Они мне за каждый найденный баг делают скидку аж в целых 5 долларов за их продукт!

          Хм. А сколько нужно найти багов чтобы им пришлось доплачивать за продукт?
          Ответить
          • 1200 лицензия на одного разраба. Я работаю с помощницей. Вот и считай )
            Ответить
            • Ну т.е. ~500 багов. Там столько найдётся?
              Ответить
              • Пфффф... Там гораздо больше. На первый взгляд там примерно 200 лёгких багов на мб исходников. Полный исходняк библиотеки будет весить 250мб, плюс деплой 56. И это только винформс.
                Ответить
                • А зачем такое говно юзают? Остальные альтернативы ещё хуже?
                  Ответить
                  • Хуй знает, но думаю, что не сильно лучше. Перепробованы xceed, devexpress, syncfusion. У тех просто функционала нужного нет, а если есть, то не то, и не допилить, т.к. исходников нет в доступе.
                    Ответить
            • 1200 USD?
              ЁБАНЫЙ ПИЗДЕЦ АХУЕТЬ
              Ответить
              • А о чём ты думал, guesto? Что доширак в индии сильно дешевле, если брать оптом?
                Ответить
                • Для чего их софт? Пишешь mobile app, и оно сразу умеет работать в ios, android, windows phone? Или как?
                  Ответить
                  • Хуй там. Как в обычном ынтырпрайзе. Покупаешь библиотеку и саппорт, не имеешь ни того, ни другого по факту. Какая нахуй портируемость? Окстись. Мелкомягким даже это не под силу. Да и вообще, все эти либы, которые и мобайл и десктоп настолько уёбищны, что не то что покупать - пробовать не стоит.
                    Ответить
                    • Не, я пытаюсь понять для чего их продукт нужен. Просто фреймворк на C# и его используеш для win phone, фреймворк на Java и используешь для андроид?

                      Или визуальная студия, и она генерит код для всех платформ?
                      Ответить
                      • Это гуй для десктопа под сишарп.
                        Ответить
                        • а если нужно для ондроида?
                          Ответить
                          • Если нужно для ондроеда, надо покупать гуй для ондроеда. Нехуй серебрянную пулю искать, которая нормально будет работать и на десктопе и на мобиле. Нет такой. И не будет.
                            Ответить
        • >Далее про бессмысленный codestyle. Я решарпером вырезал все приставки "this.", получилось около полмегабайта с 25 мб исходников. И это только четыре библиотеки. И это только "this". К слову, 25 мб получилось из 29, путём смени начальных пробелов на табы (цыц, холивариоры!), что говорит о плотности символов на строку кода. Походу, им за строчки платят.
          Объясни это питонистам теперь.
          Ответить
          • котором заебало self писать постоянно?
            Ответить
          • Дебилам могу объяснить, а вот питонистам - нет. Не настолько я крут.
            Ответить
            • Но они выполняют все условия из твоего поста.
              Ответить
        • >>Я решарпером вырезал все приставки "this."
          Судя по коду у них это специально было сделано, что бы отличать локальные переменные от полей класса. После твоей чистки решарпером, глядя на переменную нельзя будет визуально определить локальная она или нет, если метод чуть больше будет
          Ответить
          • Может быть и так. Просто я объявляю локальные переменные close to usage и методы у меня очень маленькие. Надобности никакой нет в этом this.
            Ответить
            • насколько я помню, при компиляции в CIL, он this везде ставит сам.
              да и вообще, чем плох this?
              или это при декомпиляции он сам ставит this.. но в любом случае, в этом нет ничего плохого.
              Ответить
              • Ну как же, экономия в целых полмегабайта с 25 МБ исходников! Да ещё и в глазах меньше рябит.
                Ответить
                • ой, да херня все это.
                  чего рябит? больше конкретики, код яснее
                  Ответить
                  • Правильные нейминги, а не бесконечные this. делают код яснее.
                    Ответить
                    • А ещё яснее код делают this-> !
                      Ответить
                    • > Правильные нейминги

                      К this можно привыкнуть. И это часть языка (которую временами приходится держать в голове в случае оптимизации производительность).

                      К тридцать-третьей вариации "правильных имен" - заябало уже давно. Не говоря о вечных нескончаемых спорах, чья вореция "правильных имен" даёт лучшую кобенацию читабельного кода.
                      Ответить
                  • Ну должно же быть какое-нибудь объяснение, почему автор вырезал this!
                    Ответить
              • this не нужен, потому что решарпер рекомендует его убрать
                Ответить
          • Для этого вообще-то outline есть. Любители читать код в браузере пусть страдают.
            Ответить
        • А чем поможет экономия, полученная заменой начальных пробелов на табы? Надеетесь снизить расход оперативки во время компиляции? Тогда почему бы сразу не перевести код в одну строку?
          Ответить
          • Это не экономия. Основной проект в табах, студия настроена под него. К сожалению, студию так и не научили держать разные настройки под разные проекты, поэтому однообразие удобнее.

            Да и вообще, мне табы удобнее. Бесит четыре раза стрелку нажимать, чтобы на один табстоп перейти.
            Ответить
            • А в студии нет хоткея "к началу индентации"? Во всех нормальных редакторах, о которых я знаю - есть. green
              Ответить
        • > вырезал все приставки "this."
          А если там было x = this.x или this.x = x?
          Ответить
          • Ну он же решарпером вырезал, а не седом.
            Ответить
          • this.x = this.x
            Ответить
          • вообще, если так разобраться, то когда у тебя код
            public class Employee {
                public string FirstName { get; set; }
                public string LastName { get; set; }
                public Employee(string FirstName, string LastName) {
                    FirstName = FirstName;
                    LastName = LastName;
                }
            }
            то студия мне выводит ворнинг:
            Assignment made to same variable; did you mean to assign something else?

            мне честно говоря как-то не очень нравится идея, писать в конструкторе firstName. как бы хуевый нейминг.
            да и вообще, когда тебе нужно вдруг обратиться к свойствам, или методам данного класса, то когда ты пишешь this., то студия сама тебе предложит вариант выбора.
            Ответить
            • > не очень нравится идея, писать в конструкторе firstName
              То ли дело C++...
              Ответить
            • >мне честно говоря как-то не очень нравится идея, писать в конструкторе firstName. как бы хуевый нейминг.

              https://msdn.microsoft.com/en-us/library/ab6a8y1b(v=vs.71).aspx
              Use camel case for parameter names.
              Да в чем твоя проблема?
              Ответить
            • По моему писать параметры функции с большой буквы и есть "хуевый нейминг".
              Ответить
              • Не уважаешь ты параметры, со строчной буквы к ним обращаешься...
                Ответить
                • так они же локальные, с маленькой, блеать, с маленькой!

                  А в ангуляре все с маленькой
                  Ответить
                  • А как же баксы у зависимостей?
                    Ответить
                    • А что, есть заглавные баксы?
                      Ответить
                      • Ну он по высоте как заглавная буква, да и набирается с шифтом.
                        Ответить
                        • Это не буква, это хуйня какая-то
                          Ответить
                          • Смотрим крайний стандарт Unicode:
                            0024          ; Sc #       DOLLAR SIGN

                            Источник: http://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedGeneralCategory.txt
                            Sc = Currency_Symbol.

                            Действительно, не буква.
                            Ответить
                • Лень лишний раз shift зажимать )
                  Ответить
                  • Тогда нужно набирать код на мобильном телефоне: он автоматически первую букву предложения делает заглавной.
                    Ответить
    • > magic numbers
      Причём числа то интересные, не банальные 0.002 и 0.998. Интересно, какое у них обоснование?
      Ответить
      • Это же magic numbers, какое тут может быть обоснование? По факту, здесь спокойно могли бы быть 0 и 1. Вот просто because I can, whats why.
        Ответить
      • еще один пришел нас учить, а про валидацию-то и не знает
        Ответить
    • Так а за что платить, если есть исходники?
      Ответить
      • За поддержку, видимо. Ну и чтобы не засудили за пизженные исходники, если вдруг найдут.
        Ответить
        • Да похуй. Пусть судят. Всё, что у них есть - мой емейл. Ну раз прокололся, в патче название организации слил, но это ещё нужно доказать ))
          Ответить
      • въебал плюс
        Ответить
      • Хуй его знает. Кто-то платит, раз контора N лет уже на плаву.
        Ответить
      • Ой, забыл... Чтобы получить исходники, надо заплатить за либы и поддержку. И по расширенному прайсу, нихуя не 1200 на разраба.
        Ответить
      • тебя не смущает, что они получены путем декомпиляции исходников?
        Ответить
    • эх помню время сравнивали мы флоаты
      Ответить

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