1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #20403

    +4

    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    #include <IO/Stream.h>
    #include "Algorithms/Range.h"
    #include "Algorithms/RangeConstruct.h"
    #include "Algorithms/RangeIteration.h"
    #include "Algorithms/RangeMutation.h"
    
    using namespace IO;
    using namespace Range;
    
    int main()
    {
      Console.PrintLine("Есть нормальная поддержка Юникода в консоли, даже на винде.");
      Console.PrintLine("Тестируется текст с кириллицей, греческим алфавитом αβγδεζηθικλμνξο, а также с иероглифами ㈇㌤㈳㌛㉨.");
      Console.PrintLine("Иероглифы не отображаются в консоли, потому что консольный шрифт их не содержит, но копируются оттуда нормально.");
    
       StringView strs[] = {"hello", "world"};
      StringView strs1[]  = {"range", "testing", "program"};
      StringView strs2[] = {"C++", "крут"};
    
      Console.PrintLine("В тесте используются три массива:", endl, strs, endl, strs1, endl, strs2);
      Console.PrintLine(endl, "Пример вывода initializer list:", endl, AsRange<double>({4353.435, 3243.23, 21.421, 12355.5, 64532}));
    
      auto fib = Recurrence(Algo::Op::Add<int>, 1, 1);
    
      Array<int> fibArr;
      fibArr.SetCountUninitialized(15);
      auto copyResult = fib.Take(15).Copy(fibArr());
      Console.PrintLine(endl, "Последовательность Фибоначчи в массиве: ", endl, fibArr());
      Console.PrintLine(endl, "Вторая половина того же массива задом наперёд: ", endl, fibArr($/2, $).Retro());
    
      fib.Drop(5).Take(15).Copy(fibArr.Insert($));
      Console.PrintLine(endl, "Добавляем 15 чисел Фибоначчи, начиная с пятого, в конец. Новое содержимое массива: ");
      Console.PrintLine(fibArr());
    
      Console.PrintLine(endl, "Объединяем элементы различных диапазонов в диапазоне кортежей: ", endl, ToString(
        Zip(
          fib.Take(30),
          Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).Cycle().Take(20),
          Recurrence([](int a, int b){return a*2+b;}, 1, 1).Take(17).Cycle().Drop(3).Take(22),
          fib.Take(19).Cycle().Drop(5).Take(50).Stride(3),
          Recurrence(Algo::Op::Mul<ulong64>, 2ull, 3ull).Take(9)
        ), 
        ",\n  ", "[\n  ", "\n]"));
    
    
      static const StringView pattern[] = {"pattern", "fills", "range"};
      Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).FillPattern(AsRange(pattern));
    
      Console.PrintLine(endl, "Поменяли сразу три массива одним вызовом FillPattern: ");
      Console.PrintLine(strs, endl, strs1, endl, strs2, endl);
    
      Console.PrintLine("11-й элемент зацикленного массива строк: ", endl, AsRange(strs).Cycle().Take(11).Tail(1), endl);
      Console.PrintLine("Перевёрнутый массив строк: ", endl, AsRange(strs).Retro(), endl);
      Console.PrintLine("Зациклили первые два элемента массива и взяли 10 из них:");
      Console.PrintLine(AsRange(strs1).Take(2).Cycle().Take(10) );
      Console.PrintLine("Между массивом строк и 5 числами Фибоначчи выбрали второе в рантайме: ");
      Console.PrintLine(Choose(AsRange(strs1), fib.Take(5).Map([](int x){return ToString(x);}), true) );
    
      static const size_t indices[] = {1,1,1,2,2,0,2,1,0};
      Console.PrintLine(
          RoundRobin(
            AsRange(strs1).Indexed(AsRange(indices)),
            Repeat(StringView("Test"), 5),
            AsRange(strs1),
            AsRange(strs2)
          ));
      
    
      Console.PrintLine(endl, "Введите строки, которые войдут в диапазон строк. В конце введите \"end\".");
      Console.PrintLine("Вы ввели следующие строки:", endl, ToString(Console.ByLine("end")) );
    
      int arr[]={1, 4, 11, 6, 8};
      Console.PrintLine("max{1, 4, 11, 6, 8} = ", AsRange(arr).Reduce(Algo::Op::Max<int>));
    
      Console.PrintLine("Генерация 100 случайных чисел от 0 до 999 и вывод квадратов тех из них, которые делятся на 7: ", endl,
        Generate([](){return math::urandom()%1000;}).Take(100)
        .Filter([](uint x) {return x%7==0;})
        .Map(math::sqr<uint>)
      );
    
      return 0;
    }

    Давно здесь не было моих велосипедов. А они с тех пор сильно эволюционировали, я даже многие фичи из языка D смог перенести в C++.
    Вывод в консоль и обсуждение здесь: http://www.gamedev.ru/flame/forum/?id=216045&page=99#m1481

    gammaker, 20 Июля 2016

    Комментарии (7)
  3. Куча / Говнокод #20399

    +4

    1. 1
    https://www.reddit.com/r/ProgrammerHumor/comments/4to9vx/so_im_working_on_a_new_language/

    "So I'm working on a new language…"

    n1919, 20 Июля 2016

    Комментарии (6)
  4. Java / Говнокод #20369

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private TableColumnDisplayManager(JTable table) {
        this.table = table;
        table.removePropertyChangeListener(this);
        table.addPropertyChangeListener(this);
        reset();
    }

    Ну, а вдруг?

    george, 13 Июля 2016

    Комментарии (18)
  5. PHP / Говнокод #20361

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
      * @param int $day
      * @return bool
      */
    protected function isWorkingDay($day)
    {
        return $day % 8 <= 5;
    }

    Cпособ определить, является ли указанный день (передается номер дня в неделе от 1 до 7) рабочим. Чем автора не устроил return $day <= 5 - непонятно..

    feversocial, 11 Июля 2016

    Комментарии (23)
  6. C++ / Говнокод #20359

    +4

    1. 1
    2. 2
    auto highPriority = static_cast<bool>(features(w)[5]);
    // Тип features(w) - std::vector<bool>

    Скотт Майерс. Эффективный и современный С++.

    Antervis, 10 Июля 2016

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

    +4

    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
    enum SomeEnum
    {
        // ...
        SomeShit = 0xD6,
        // ...
    };
    
    // ....
    
        Byte opcode = ReadSomeShit<Byte>();  // функция читающая raw memory в нужном представлении
        // из raw memory считано значение эквивалентное 0xD6
        // ...
        if (opcode == SomeShit) // условие не выполнилось
        {
            // do stuff
        }
    
    // ...

    почему? а потому что кто додумался до
    typedef char Byte;
    который (хоть и не обязан быть, но) знаковый

    и даже сраного ворнинга не выдало
    причина правда обнаружилась достаточно быстро, ибо в дебагере в opcode красовалось -42 а в SomeShit 214

    https://ideone.com/02TpT7 на первый взгляд вызывает когнитивный диссонанс
    обожаю кресты

    meinf, 08 Июля 2016

    Комментарии (18)
  8. PHP / Говнокод #20336

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $aProductType     = [];
    $productName      = $conn->query("SELECT value FROM catalog_product_entity_varchar WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 71")->fetch();
    $productUrl       = $conn->query("SELECT value FROM catalog_product_entity_varchar WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 98")->fetch();
    $productImage     = $conn->query("SELECT value FROM catalog_product_entity_media_gallery WHERE entity_id = '" . $value['entity_id'] . "'")->fetchAll();
    $productPrice     = $conn->query("SELECT value FROM catalog_product_entity_decimal WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 75")->fetch();
    $productType      = $conn->query('SELECT category_id FROM catalog_category_product WHERE product_id = ' . $value['entity_id'])->fetchAll();
    $productAvailable = $conn->query('SELECT qty FROM cataloginventory_stock_item WHERE product_id = ' . $value['entity_id'])->fetch();
    $productDesc      = $conn->query('SELECT value FROM catalog_product_entity_text WHERE entity_id = "' . $value['entity_id'] . '"')->fetch();

    Magento, controller, indexAction, front

    Chel, 07 Июля 2016

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

    +4

    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
    <xsl:choose>
    	<xsl:when test="name = 'Палатка ALEXIKA RONDO 3 Plus'">
    	<h2>Палатки ALEXIKA – идеальный вариант для активного отдыха</h2></xsl:when>
    	<xsl:otherwise>
    	<xsl:choose>
    		<xsl:when test="name = 'Мешок спальный ALEXIKA SIBERIA Plus(правый)'">
    		<h2>Предпочитаете отдых в палатках? Купите спальный мешок ALEXIKA SIBERIA PLUS</h2></xsl:when>
    		<xsl:otherwise>
    		<xsl:choose>
    			<xsl:when test="name = ''"></xsl:when>
    			<xsl:otherwise>
    			<xsl:choose>
    				<xsl:when test="name = ''"></xsl:when>
    				<xsl:otherwise>
    				<xsl:choose>
    					<xsl:when test="name = ''"></xsl:when>
    					<xsl:otherwise>
    					<xsl:choose>
    						<xsl:when test="name = ''"></xsl:when>
    						<xsl:otherwise>
    						Полное описание товара "<xsl:value-of disable-output-escaping="yes" select="name"/>"
    						</xsl:otherwise>
    					</xsl:choose>
    					</xsl:otherwise>
    				</xsl:choose>
    				</xsl:otherwise>
    			</xsl:choose>
    			</xsl:otherwise>
    		</xsl:choose>
    		</xsl:otherwise>
    	</xsl:choose>
    	</xsl:otherwise>
    </xsl:choose>

    эмм... просто было лень

    arny, 28 Июня 2016

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

    +4

    1. 1
    data[idata].io_data[i % 4].data

    Когда процессишь данные данных для данных

    Starl1ght, 20 Июня 2016

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

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static void Test(__arglist)
    {
    
    }
    public static void Text2(ref string str)
    {
    	var reftype = __reftype(new TypedReference());
    	var refvalue =  __refvalue(new TypedReference(), string) = "string";
    	var makeref = __makeref(str);
    }

    Ты не поверишь, но это реально C#

    dm_fomenok, 15 Июня 2016

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