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

    +134

    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
    35. 35
    36. 36
    String r_count = "";
                String r_cat = "";
                String r_pansion = "";
                for (Int32 ii = 0; ii < rows.Count; ii++)
                {
                    Int32 j = rows[ii].NNight;
                    DateTime d = rows[ii].DateBeg;
                    DateTime d_e = rows[ii].DateEnd;
                    Int32 type = rows[ii].MinLength > 0 ? 3 : 2;
                    j = (type == 3) ? -1 : j;
    
                    Int32 lengthMin = rows[ii].MinLength;
                    if (((d < date1 || d > date2) && type != 3))
                        continue;
                    else
                        if (!(d <= date1 && d_e >= date1 || d <= date2 && d_e >= date2) && date1 != DateTime.MinValue && date2 != DateTime.MaxValue && type == 3)
                            continue;
                    String _r_count = _Rooms[rows[ii].RoomId];
                    String _r_cat = _RoomCat[rows[ii].RoomCatId];
                    String _r_pansion = _Pansions[rows[ii].PansionId];
                    List<String> a = new List<string>();
                    if (_r_count != r_count || _r_cat != r_cat || _r_pansion != r_pansion)
                    {
                        if (!String.IsNullOrEmpty(r_count) && !String.IsNullOrEmpty(r_cat))
                        {
                            Pricing.RoomCat cat = new Pricing.RoomCat();
                            cat.RoomCount = r_count;
                            cat.RoomName = r_cat;
                            cat.PansionName = r_pansion;
    
                            p.rooms.Add(cat);
                        }
                        r_count = _r_count;
                        r_cat = _r_cat;
                        r_pansion = _r_pansion;
                    }

    Краху туроператоров способствовали также и собственные инженеры.

    Запостил: tablecell, 20 Августа 2014

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

    • Наличие:
      List<String> a = new List<string>();

      как-бы намекает...
      Хотя в таком коде, компилятору стоило-бы ругнуться warning'ом.
      Ответить
      • Да там не только a, там ещё несколько неиспользуемых переменных есть, с такими же говно-названиями.
        Видимо все это ещё и внутри другого говно-цикла находится, судя по Int32 ii.
        Но меня больше интересует если софт для тур-агенств, что содержится в RoomCat ?)) Кошкин дом?
        Ответить
        • О наболевшем:
          Как объяснить человеку (человек хороший. Во всех смыслах этого слова), что писать переменные кодировками inclid, rfid, cadid, rnid и т.п. - не очень хорошо?
          У человека опыт подобного написания - уже больше 15 лет...
          Ответить
          • >>писать переменные кодировками inclid, rfid, cadid, rnid

            Это как? Че за кодировки?
            RFID? если ни че не путаю это такая фигня на товарах в супермаркетах квадратная. радио чето АйДи

            не, не путаю,
            Radio Frequency IDentification
            Ответить
            • >Radio Frequency IDentification
              Размечтался... RecordFlowId...
              Ответить
              • >Че за кодировки?
                inclid - InlineClientId
                cadid - Catalog[Дальше не помню]
                rnid - RowNumberId

                Смысл - сокращение по первым буквам.
                Проблемы начинаются, когда кончаются первые буквы. Тогда появляются всякие inlid->inclid...
                Ответить
            • Товарах? Мсье, ви только что таки оскорбили дело всей жизни аццкой сотоны по внедрению чипов-печатейогромный пласт бесконтактной технологии. Это - бесконтактные карты для оплаты транспорта, это - стандарты бесконтактных платежей через paypass/paywave, это чипы с информацией о животных, прививках, паспорта, идентификационные карты, прочие бесконтактные носители, домофонные ключи, nfc, наконец.
              Товары - крайне скромный и не сильно популярный сегмент использования таких технологий.
              Ответить
          • Мне как раз на днях достался проект в наследство от "программиста", где везде только одни сокращения, блять как меня это бесит.
            Например login и pass. Ну нахуя так писать? Что так трудно написать PASSWORD? spd вместо Speed, ign вместо Ignore и так далее, хочется взять автомат и сделать в дрк, то есть ДЫРОЧКИ в нем понаделовать
            Ответить
            • >>spd

              этож дельфия болезнь

              frm1.btn3.clk
              Ответить
              • сишная же. Это в Си по стандарту длина идентификаторов была ограничена.
                Ответить
                • > по стандарту
                  По стандарту она как раз не ограничена. Это достандартные компиляторы такой хуйней страдали.

                  А O_CREAT и umount вообще просто так, сдуру, придумали. Ибо рядом были и более длинные идентификаторы...
                  Ответить
                  • У кернигана и ритчи написано "Стандарт ANSI ограничивает длину идентификаторов. Ограничение зависит от платформы, но не больше 32-х символов". В новом стандарте наверняка не ограничено, но новый стандарт много где не поддерживается\не используется.
                    Ответить
                    • > не больше
                      наоборот
                      в анси: платформа должна поддерживать внутренние идентификаторы с длиной минимум 31 символ, и внешние - минимум 6
                      в более поздних стандартах стали минимальные требования 63/31
                      при этом Implementations should avoid imposing fixed translation limits whenever possible.

                      > новый стандарт много где не поддерживается
                      если речь о m$, то у нее единоутробный компилятор с/с++, и поэтому таких мелких ограничений тем более нет
                      Ответить
                      • >если речь о m$, то у нее единоутробный компилятор с/с++, и поэтому таких мелких ограничений тем более нет
                        нет, речь не о мс.

                        > внешние - минимум 6
                        Ну вот и ясно откуда короткие идентификаторы.
                        Ответить
          • Ты имел в виду акронимами? Ну тут уж извиняйте, старую собаку новым фокусам не научишь
            Ответить
            • Да-да, ими самыми.
              Ответить
              • говорить напрямую пробовал? Мол так и так, надоело это дело - сил моих нет
                Ответить
                • Пробовал. Коллеги тоже не в восторге, но политикой приходится мне заниматься.
                  Он, вроде как даже соглашается, а потом опять за старое...

                  И, блин, нет-бы только код так писал - отгородился абстракцией и забыл.
                  Так даже на святое, на документацию замахнулся, что именования не соответсвуют...
                  Ответить
                  • можно еще раз поговорить, может он автоматически уже так пишет. Можно попробовать показать как вас это раздражает - общаться с ним в том стиле, в котором он пишет переменные.

                    Првт! ГдКом?
                    Ответить
                    • >может он автоматически уже так пишет
                      Если-бы...
                      Один коллега попытался писать нормально в его епархии, так быстро по ушам получил.
                      Правда коллега новичок, всего пару лет работает...

                      >общаться с ним в том стиле, в котором он пишет переменные
                      Не, на троллинг он не реагирует. Проверено.
                      У него мантия: +100 к защите от троллей...
                      Ответить
                      • Как не посмотри - мелкий тиран. Идеальное испытание для война. У любого человека есть слабые места - найди их и надави. В любом случае хуже имена он писать не станет - так почему не попробовать?
                        Ответить
                        • Андройд война, любителя выйгрывать!
                          Ответить
          • оооо.... у нас работал один, у которого был загрузчик данных по шаблонам из CSV на оракле, но он был немного статичен, в смысле того, что максимум, что ты определял, это в какое поле какие данные грузить, и когда в последний его рабочий день, нужно было добавить новые поля в результирующую таблицу, то к полям
            ID_DATA
            ID_LOCALITY
            ID_STR
            ...
            он добавляет V_12 и V_13, а почему он их так назвал - загадка.
            мне вообще непонятно, чем он руководствуется, когда ID вначале ставит, а не в конце
            Ответить
    • >>_RoomCat

      Тур для котовъ?

      Int32 type = rows[ii].MinLength > 0 ? 3 : 2;
      j = (type == 3) ? -1 : j;

      дальше так и просится
      hui = j==-1? "hui":"pizda";

      for (Int32 ii = 0; ii < rows.Count; ii++)
      есть подозрение, что мы уже в цикле по i...
      Ответить

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