1. Список говнокодов пользователя roman-kashitsyn

    Всего: 101

  2. C++ / Говнокод #12587

    +24

    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
    template <typename IdType, class Tag>
    class id {
    public:
        typedef IdType value_type;
    
        explicit id(value_type val)
            : value(val)
        {}
    
        bool operator==(id rhs)
        {
            return rhs.value == value;
        }
    
        bool operator!=(id rhs)
        {
            return rhs.value != value;
        }
    
        value_type value;
    };
    
    #define HASKELL_NEWTYPE(type_name, value_type) struct __##type_name##_tag__ {}; \
        typedef ::id<value_type, __##type_name##_tag__> type_name

    Когда newtype нет, но очень хочется.
    http://ideone.com/VRu56j
    Простите за синтетику

    roman-kashitsyn, 14 Февраля 2013

    Комментарии (21)
  3. C# / Говнокод #12486

    +113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private int GenerateRandom(int MaxValue)
    {
        var mas = Guid.NewGuid().ToByteArray();
        return BitConverter.ToInt32(mas, 4) % MaxValue;
    }

    ....

    roman-kashitsyn, 28 Января 2013

    Комментарии (28)
  4. C++ / Говнокод #12465

    +15

    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
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    /**
     * @brief Serializer generic interface.
     */
    template<typename ValueType>
    struct serializer
    {
        /**
         * @brief Parses value from raw bytes.
         * @param  from byte buffer parse value from
         */
        static ValueType parse(uint8_t *from);
    
        /**
         * @brief Writes value to raw byte buffer.
         * @param  value value to write
         * @param  dest destination buffer
         */
        static void write(ValueType value, uint8_t *dest);
    };
    
    template<>
    struct serializer<uint8_t>
    {
        static uint8_t parse(uint8_t *from)
        {
            return *from;
        }
        static void write(const uint8_t value, uint8_t *to)
        {
            *to = value;
        }
    };
    
    template<>
    struct serializer<uint16_t>
    {
        static uint16_t parse(uint8_t *from)
        {
            return (uint16_t)from[0] << 8 | from[1];
        }
        static void write(const uint16_t value, uint8_t *to)
        {
            to[0] = (value >> 8);
            to[1] = value & 0xff;
        }
    };
    
    template<>
    struct serializer<uint32_t>
    {
        static uint32_t parse(uint8_t *from)
        {
            return from[0] << 24 | from[1] << 16 | from[2] << 8 | from[3];
        }
        static void write(const uint32_t value, uint8_t *to)
        {
            serializer<uint16_t>::write(value >> 16, to);
            serializer<uint16_t>::write(value & 0xffff, to + 2);
        }
    };
    
    template<>
    struct serializer<uint64_t>
    {
        static uint64_t parse(uint8_t *from)
        {
            const uint32_t high = serializer<uint32_t>::parse(from);
            const uint32_t low = serializer<uint32_t>::parse(from + 4);
            return ((uint64_t) high << 32) | low;
        }
        static void write(const uint64_t value, uint8_t *to)
        {
            serializer<uint32_t>::write(value >> 32, to);
            serializer<uint32_t>::write(value & 0xffffffff, to + 4);
        }
    };

    Тут поднялась тема неуместного битолюбства... Решил поделиться одним из моих первых крестОпусов.
    "кроссплатформенный hton(sl)".

    roman-kashitsyn, 22 Января 2013

    Комментарии (21)
  5. C# / Говнокод #12433

    +116

    1. 1
    2. 2
    public const string Checked = "☑";
    public const string Unchecked = "☐";

    Чекбокс

    roman-kashitsyn, 16 Января 2013

    Комментарии (34)
  6. Си / Говнокод #12204

    +130

    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
    #include <stdlib.h>
     
    struct no_matter
    {
        int some_field;
    };
     
    struct matter *do_stuff(void)
    {
        struct no_matter *m = calloc(1, sizeof *m);
        return m;
    }
     
    int main(void)
    {
        struct no_matter *m = do_stuff();
        free(m);
        return 0;
    }

    Сегодня выполняю роль гумна. В сишке можно возвращать указатель на непонятно откуда взявшуюся необъявленную ранее структуру и код будет компиляться (ладно хоть пишет невнятные ворнинги, только благодаря им нашёл опечатку в одной букве в имени структуры в рабочем коде). Понятно, что все указатели одинаково числа, но всё равно как-то некрасиво. Хацкелисты негодуэ, даёшь монаду Ptr

    http://ideone.com/3SABHW

    roman-kashitsyn, 27 Ноября 2012

    Комментарии (39)
  7. C# / Говнокод #12174

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private static readonly SortedDictionary<Type, ModelConvertor> ModelTypes = new SortedDictionary<Type, ModelConvertor>
    {
        { typeof(ObjectType),           в           => Convert((ObjectType)в) },
        { typeof(ObjectBodyFormat),     пятницу     => Convert((ObjectBodyFormat)пятницу) },
        { typeof(PropertyId),           набухаюсь   => Convert((PropertyId)набухаюсь) },
        { typeof(PropertyCategory),     нафиг       => Convert((PropertyCategory)нафиг) }
    };

    Сегодня случайно заметил этот крик души в мониторе одного коллеги. Всё-таки, в юникодных идентификаторах есть свой неуловимый шарм...

    roman-kashitsyn, 22 Ноября 2012

    Комментарии (0)
  8. Java / Говнокод #12063

    +76

    1. 1
    2. 2
    3. 3
    if (true == args[argInx++].equals("request")) {
      // ...
    }

    Бульшит Йода-стайл

    roman-kashitsyn, 06 Ноября 2012

    Комментарии (7)
  9. Java / Говнокод #12027

    +70

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    protected SocketChannel getSockById(int id)
    {
              Iterator<SocketChannel> i = clientSock.iterator();
              while(i.hasNext())
              {
              	SocketChannel s = i.next();
              	if(s.hashCode() == id)
               		return s;
         
              }
              return null;
    }

    Инетесно, о чём думал автор в момент создания этого шедевра

    roman-kashitsyn, 30 Октября 2012

    Комментарии (20)
  10. Java / Говнокод #11973

    +73

    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
    public String getText()
    {
            // don't ask me what these charset tricks mean :)
            String str = null;
            try
            {
                str = new String(doc.getText(0, doc.getLength()).getBytes("Cp1252"), "Cp1251");
            }
            catch(Exception e)
            {
                // Leave str as null
            }
            
            return str;
    }

    ...

    roman-kashitsyn, 22 Октября 2012

    Комментарии (27)
  11. C# / Говнокод #11676

    +107

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (_appliesTo.Contains("CH"))
    {
        depElig &= true;
    }
    else
    {
        depElig &= false;
    }

    Вроде такого boolshit тут ещё не было.

    roman-kashitsyn, 30 Августа 2012

    Комментарии (14)