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

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

    +1

    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
    public int GetWorkOrder(...)
    {
    	var wait = 0;
    	const int stepWait = 30;
    	var marker1 = false;
    
    	do
    	{
    		if (marker1 == true) wait = wait + stepWait;
    		...
    		do
    		{
    			marker1 = false;
    			...
    			if (ChoosenWO.Count == 0)
    			{
    				if (counter == postalAreas.Count)
    				{
    					marker1 = true;
    					break;
    				}
    				...
    				counter = counter + 1;
    			}
    			else
    			{
    				...
    			}
    		} while (ChoosenWO.Count == 0);
    
    	} while (wait < ((endDayTime.Hour - DateTime.UtcNow.Hour) * 60 + (endDayTime.Minute - DateTime.UtcNow.Minute)));
    
    	return -1;
    }

    Очень важный алгоритм, работающий на продакшене... Разработанный менеджером и написанный аналитиком...

    Moses, 11 Октября 2018

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // todo '+1' is temporary
    private string CorrectPhoneNumber(string phoneNumber, string countryCode = "+1")
    {
    	if (phoneNumber.Substring(0, 1) != "+")
    	{
    		return string.Format("{0}{1}", phoneNumber.Length == 10 ? countryCode : "+", phoneNumber);
    	}
    
    	return phoneNumber;
    }

    Genious!

    Moses, 11 Октября 2018

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

    +1

    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
    std::size_t fib(const std::size_t index) {
      if (index < 3)
        return !!index;
    
      std::size_t  f2 = 1; // f(n - 2)
      std::size_t  f1 = 1; // f(n - 1)
      std::size_t result = 0;
      for (std::size_t i = 2; i < index; ++i)
      {
        result = f1 + f2;
        f1 = f2;
        f2 = result;
      }
    
      return result;
    }

    Что Clang вытворяет с несчастной функцией Фибоначчи?
    https://godbolt.org/z/2SFUm0

    Elvenfighter, 10 Октября 2018

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

    +1

    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
    #! /usr/bin/perl
    
    use strict;
    use warnings;
    
    my %h1 = (one => 1, two => 2);
    my %h2 = (three =>3 , four => 4);
    
    sub h_uno { \%h1 }
    
    sub h_multi {
        my %all = (%h1, %h2);
    
        \%all;
    }
    
    while (my ($k, $v) = each %{h_uno()}) {
        print "k=$k, v=$v\n";
    }
    
    # следующий цикл не завершится никогда
    #while (my ($k, $v) = each %{h_multi()}) {
    #    print "k=$k, $v=$v\n";
    #}

    Один из традиционных подколов собеседований на Perl вакансию.

    https://www.linux.org.ru/forum/job/14518840

    Elvenfighter, 09 Октября 2018

    Комментарии (55)
  6. PHP / Говнокод #24811

    +1

    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
    /**
     * Cast an object into a different class.
     *
     * Currently this only supports casting DOWN the inheritance chain,
     * that is, an object may only be cast into a class if that class 
     * is a descendant of the object's current class.
     *
     * This is mostly to avoid potentially losing data by casting across
     * incompatable classes.
     *
     * @param object $object The object to cast.
     * @param string $class The class to cast the object into.
     * @return object
     */
    function cast($object, $class) {
    	if( !is_object($object) ) 
    		throw new InvalidArgumentException('$object must be an object.');
    	if( !is_string($class) )
    		throw new InvalidArgumentException('$class must be a string.');
    	if( !class_exists($class) )
    		throw new InvalidArgumentException(sprintf('Unknown class: %s.', $class));
    	if( !is_subclass_of($class, get_class($object)) ) 
    		throw new InvalidArgumentException(sprintf(
    			'%s is not a descendant of $object class: %s.',
    			$class, get_class($object)
    		));
    	/**
    	 * This is a beautifully ugly hack.
    	 *
    	 * First, we serialize our object, which turns it into a string, allowing
    	 * us to muck about with it using standard string manipulation methods.
    	 *
    	 * Then, we use preg_replace to change it's defined type to the class
    	 * we're casting it to, and then serialize the string back into an
    	 * object.
    	 */
    	return unserialize(
    		preg_replace(
    			'/^O:\d+:"[^"]++"/', 
    			'O:'.strlen($class).':"'.$class.'"',
    			serialize($object)
    		)
    	);
    }

    Это прекрасно.

    gost, 25 Сентября 2018

    Комментарии (7)
  7. Си / Говнокод #24807

    +1

    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
    #include <stdio.h>
    #include <inttypes.h>
    
    static const uint32_t pow2[511] ={
    0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256,
    289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156,
    1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401,
    2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096,
    4225, 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241,
    6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464, 8649, 8836,
    9025, 9216, 9409, 9604, 9801, 10000, 10201, 10404, 10609, 10816, 11025, 11236, 11449, 11664,
    11881, 12100, 12321, 12544, 12769, 12996, 13225, 13456, 13689, 13924, 14161, 14400, 14641,
    14884, 15129, 15376, 15625, 15876, 16129, 16384, 16641, 16900, 17161, 17424, 17689, 17956,
    18225, 18496, 18769, 19044, 19321, 19600, 19881, 20164, 20449, 20736, 21025, 21316, 21609,
    21904, 22201, 22500, 22801, 23104, 23409, 23716, 24025, 24336, 24649, 24964, 25281, 25600,
    25921, 26244, 26569, 26896, 27225, 27556, 27889, 28224, 28561, 28900, 29241, 29584, 29929,
    30276, 30625, 30976, 31329, 31684, 32041, 32400, 32761, 33124, 33489, 33856, 34225, 34596,
    34969, 35344, 35721, 36100, 36481, 36864, 37249, 37636, 38025, 38416, 38809, 39204, 39601,
    40000, 40401, 40804, 41209, 41616, 42025, 42436, 42849, 43264, 43681, 44100, 44521, 44944,
    45369, 45796, 46225, 46656, 47089, 47524, 47961, 48400, 48841, 49284, 49729, 50176, 50625,
    51076, 51529, 51984, 52441, 52900, 53361, 53824, 54289, 54756, 55225, 55696, 56169, 56644,
    57121, 57600, 58081, 58564, 59049, 59536, 60025, 60516, 61009, 61504, 62001, 62500, 63001,
    63504, 64009, 64516, 65025, 65536, 66049, 66564, 67081, 67600, 68121, 68644, 69169, 69696,
    70225, 70756, 71289, 71824, 72361, 72900, 73441, 73984, 74529, 75076, 75625, 76176, 76729,
    77284, 77841, 78400, 78961, 79524, 80089, 80656, 81225, 81796, 82369, 82944, 83521, 84100,
    84681, 85264, 85849, 86436, 87025, 87616, 88209, 88804, 89401, 90000, 90601, 91204, 91809,
    92416, 93025, 93636, 94249, 94864, 95481, 96100, 96721, 97344, 97969, 98596, 99225, 99856,
    100489, 101124, 101761, 102400, 103041, 103684, 104329, 104976, 105625, 106276, 106929,
    107584, 108241, 108900, 109561, 110224, 110889, 111556, 112225, 112896, 113569, 114244,
    114921, 115600, 116281, 116964, 117649, 118336, 119025, 119716, 120409, 121104, 121801,
    122500, 123201, 123904, 124609, 125316, 126025, 126736, 127449, 128164, 128881, 129600,
    130321, 131044, 131769, 132496, 133225, 133956, 134689, 135424, 136161, 136900, 137641,
    138384, 139129, 139876, 140625, 141376, 142129, 142884, 143641, 144400, 145161, 145924,
    146689, 147456, 148225, 148996, 149769, 150544, 151321, 152100, 152881, 153664, 154449,
    155236, 156025, 156816, 157609, 158404, 159201, 160000, 160801, 161604, 162409, 163216,
    164025, 164836, 165649, 166464, 167281, 168100, 168921, 169744, 170569, 171396, 172225,
    173056, 173889, 174724, 175561, 176400, 177241, 178084, 178929, 179776, 180625, 181476,
    182329, 183184, 184041, 184900, 185761, 186624, 187489, 188356, 189225, 190096, 190969,
    191844, 192721, 193600, 194481, 195364, 196249, 197136, 198025, 198916, 199809, 200704,
    201601, 202500, 203401, 204304, 205209, 206116, 207025, 207936, 208849, 209764, 210681,
    211600, 212521, 213444, 214369, 215296, 216225, 217156, 218089, 219024, 219961, 220900,
    221841, 222784, 223729, 224676, 225625, 226576, 227529, 228484, 229441, 230400, 231361,
    232324, 233289, 234256, 235225, 236196, 237169, 238144, 239121, 240100, 241081, 242064,
    243049, 244036, 245025, 246016, 247009, 248004, 249001, 250000, 251001, 252004, 253009,
    254016, 255025, 256036, 257049, 258064, 259081, 260100 };
    
    #define SQR(x) pow2[x]
    
    uint16_t mul8b(uint8_t a, uint8_t b)
    {
      return (SQR((uint16_t)a+(uint16_t)b) - (SQR(a) + SQR(b))) >> 1;
    }
    
    int main(void)
    {
      uint8_t a = 255, b = 255;
      printf("%" PRIu8 " * " "%"PRIu8 " = "  "%"PRIu16, a, b, mul8b(a, b));
      return 0;
    }

    Мегаинновационный алгоритм умножения двух чисел на основе таблицы поиска с предвычисленными квадратами.
    По формуле ab = ((a+b)^2 - (a^2+b^2))/2
    Можно упихать в какой-нибудь дохлый контроллер без инструкций умножения

    j123123, 24 Сентября 2018

    Комментарии (86)
  8. C++ / Говнокод #24802

    +1

    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
    #include <map>
    #include <stdio.h>
    #include <vector>
    using namespace std;
     
    int main() {
       map<string, int> karta;
       for (auto pituh : vector<string> {"foo", "bar", "foo"}) {
        	karta[pituh]++;
       }
       printf("foo: %d\nbar: %d\n", karta["foo"], karta["bar"]);
       return 0;
    }

    <?php

    $karta = [];
    foreach (["foo", "bar", "foo"] as $pituh) {
    if (!isset($karta[$pituh])) {
    $karta[$pituh] = 0;
    }
    $karta[$pituh]++;
    }
    echo "foo: {$karta['foo']}\nbar: {$karta['bar']}\n";


    Поэтому за что я?

    guestinxo, 24 Сентября 2018

    Комментарии (22)
  9. Си / Говнокод #24763

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #include <stdio.h>
    
    int main() {
    	switch (3) {
    		for (int i = 3; i > 0; --i) {
    			case 3: printf("%d ololo?\n", i);
    		}
    	}
        return 0;
    }

    О сколько нам открытий чудных
    Готовит просвящения духх...


    Угодайте, что там: https://ideone.com/zbOzGZ

    MasterJoda, 14 Сентября 2018

    Комментарии (98)
  10. Lua / Говнокод #24762

    +1

    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
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 1"), inputs.input1, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 2"), inputs.input2, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 3"), inputs.input3, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 4"), inputs.input4, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 5"), inputs.input5, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 6"), inputs.input6, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 7"), inputs.input7, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 8"), inputs.input8, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 9"), inputs.input9, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 10"), inputs.input10, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 11"), inputs.input11, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 12"), inputs.input12, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 13"), inputs.input13, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 14"), inputs.input14, 0, -1)
    imgui.InputInt(u8("Напиши сюда модель объекта которого ты хочешь найти -- 15"), inputs.input15, 0, -1)

    зачем цикл если есть ctrl+c и ctrl+v

    imring, 14 Сентября 2018

    Комментарии (15)
  11. Куча / Говнокод #24746

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Раз уж пошли багрепорты и их начали исправлять,
    
    https://www.govnokod.ru/24743
    
    Mixed Content: The page at 'https://www.govnokod.ru/24743' was loaded over HTTPS, but requested an insecure script 'http://platform.twitter.com/widgets.js'. This request has been blocked; the content must be served over HTTPS.
    24743:127 Mixed Content: The page at 'https://www.govnokod.ru/24743' was loaded over HTTPS, but requested an insecure resource 'http://www.facebook.com/plugins/like.php?app_id=262270407124304&href=https://www.govnokod.ru/24743&send=false&layout=button_count&width=130&show_faces=true&action=like&colorscheme=light&font=arial&height=20'. This request has been blocked; the content must be served over HTTPS.

    SwiftGovno, 12 Сентября 2018

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