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

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    public void SetDirty()
    {
      ViewState.SetDirty(false);
    }

    Отличное название для функции ;-)

    guest, 15 Декабря 2008

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    //
    // true - success
    // false - value not found for given key
    //
    bool CATStorage::getValueForKey(const std::string &key, std::string &value) const
    {
              ...
              std::string().swap(value); 
              ...
    }

    Код очистки содержимого строки, C++, STL

    guest, 27 Ноября 2008

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

    +2.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    int a=0;
    if (a != 0)
    {
     a=0;
    }
    else a=0;

    guest, 15 Декабря 2008

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

    +2

    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
    <?php
    function hsum($a, $b, $p) {
        $hs = $a ^ $b;
        $hp = $a & $b;
        $p <<= 1;
        return [$hs ^ $p, $hp | ($hs & $p)];
    }
    
    function hsum_rec($a, $b, $p) {
        list($s, $newp) = hsum($a, $b, $p);
        if ($newp == $p) {
            return [$s, $newp];
        } else {
            return hsum_rec($a, $b, $newp);
        }
    }
    
    function sum2($a, $b) {
        list($s, $p) = hsum_rec($a, $b, 0);
        return $s;
    }
    
    for($i = 0; $i < 16; $i++) {
        for($j = 0; $j < 16; $j++) {
            if(sum2($i,$j) != $i + $j) {
                $k = sum2($i,$j);
                echo "Error: $i, $j, $k\n";
            }
        }
    }

    Программа складывает два целых числа.

    Myxa, 08 Августа 2025

    Комментарии (8)
  6. Куча / Говнокод #29067

    +2

    1. 1
    Итак, господа.

    ...В этом году послания от Шугар Плюм Файри-и не будет. Вместо нее вас поздравлю я.

    ...Зимандр будет умеренно суровый, от слова "умеренно".
    ...Войнах, как мы видим, в этом году не закончился, более того, нас уже осыпают поздравляшками с самолетиков. Похоже, поэтому и не пришла снегурочка - стало стыдно, что подпиздела, ну, или что уже не целка. Ладно. Не суть.

    Суть в том, что в этом году (и в последующих) многие семьи получат по украинской шкатулочке. А к тем, кто был не настолько глуп, чтобы идти на убой, морозя жопу и попутно разбазаривая боезапас на белок (а может, просто очко играло?), дедушка-мороз прилетит на дроне.

    В общем, с праздником. Пусть не последним он будет.

    3uMuCTOH, 26 Декабря 2024

    Комментарии (2)
  7. Go / Говнокод #28943

    +2

    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
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    package main
    
    import (
    	"io"
    	"fmt"
    	"log"
    	"bytes"
    	"strings"
    	"net/http"
    	"net/http/httputil"
    	"net/url"
    )
    
    func UpdateResponse(r *http.Response) error {
    	for k, v := range r.Header {
    		newValue := strings.Replace(v[0], "umnico.com", "umnico.*****.ru", -1)
    		r.Header[k][0] = newValue
    	}
    	b, err := io.ReadAll(r.Body)
    	if(err == nil) {
    		bodyText := strings.Replace(string(b), "://umnico.com", "://umnico.*****.ru", -1);
    		if(strings.Contains(bodyText, "</head><body>")) {
    			injectedStyle := `<style>
    			.nav-menu.hidden, .widget__preview-container--tech-support {
    				display: none !important;
    			}
    			</style>`
    			bodyText = strings.Replace(bodyText, "</head><body>", injectedStyle + "</head><body>", -1);
    		}
    		if(strings.Contains(bodyText, "</body></html>")) {
    			injectedScript := `<script>
    			fetch('/api/user').then((response) => { 
    				return response.json().then((data) => {
    					//alert(data.user.id);
    					if(data.user.id != 12345) {
    						const style = document.createElement('style');
    						style.textContent = '.im__chat-buttons{display:none!important;}';
    						document.head.appendChild(style);
    					}
    					return true;
    				}).catch((err) => {
    					console.log(err);
    				}) 
    			});
    			var currentDialogId = 0;
    			function checkDialogControls() {
    				if(location.pathname.indexOf('app/deals/inbox/details/') > 0 || location.pathname.indexOf('app/deals/active/details/') > 0) {
    					if(location.pathname.indexOf('app/deals/active/details/') > 0) {
    						var dialogId = location.pathname.split('app/deals/active/details/')[1];
    					} else {
    						var dialogId = location.pathname.split('app/deals/inbox/details/')[1];
    					}
    					var chatIndicator = document.querySelector('.im-aside-section.im-aside-section__toolbox');
    					if(chatIndicator != null) {
    						var injectedControls = document.querySelector('.im-aside-section.injected-controls');
    						if(injectedControls == null) {
    							chatIndicator.insertAdjacentHTML('afterend', '<div class="im-aside-section injected-controls"><div><button type="button" class="button" style="width:100%;" onclick="window.parent.postMessage(\'openBookingModalByUmnicoId('+dialogId+')\', \'*\');">Оформить бронь</button></div><div style="margin-top:5px;"><button type="button" class="button button_attention" style="width:100%;" onclick="window.parent.postMessage(\'openLeadTaskModalByUmnicoId('+dialogId+')\', \'*\');">Задача</button></div></div>');
    						} else {
    							if(currentDialogId != dialogId) {
    								injectedControls.remove();
    							}
    						}
    						currentDialogId = parseInt(dialogId);
    					}
    				}
    			}
    
    			setInterval(checkDialogControls, 100);
    			</script>`
    			bodyText = strings.Replace(bodyText, "</body></html>", injectedScript + "</body></html>", -1);
    		}
    		
    		if(strings.Contains(bodyText, "window.location.hostname != \"localhost\"")) {
    			bodyText = strings.Replace(bodyText, "window.location.hostname != \"localhost\"", "window.location.hostname != \"localhost\" && window.location.hostname != \"umnico.*****.ru\"", -1);
    		}
    		
    		buf := bytes.NewBufferString(bodyText)
    		r.Body = io.NopCloser(buf)
    		r.Header["Content-Length"] = []string{fmt.Sprint(buf.Len())}
    	}
    	return nil
    }
    
    func main() {
    	target, err := url.Parse("https://umnico.com:443")
    	if err != nil {
    		log.Fatal(err)
    	}
    	proxy := httputil.NewSingleHostReverseProxy(target)
    	proxy.ModifyResponse = UpdateResponse
    	http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
    		req.Host = req.URL.Host
    		proxy.ServeHTTP(w, req)
    	})
    	err = http.ListenAndServe("127.0.0.1:8803", nil)
    	if err != nil {
    		panic(err)
    	}
    }

    Мой код для проксирования одного из SaaS-сервисов, с целью встраивания в интерфейс последнего кастомных кнопок. Взглянул спустя пару месяцев и ужаснулся.

    rotoeb, 17 Мая 2024

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // В преддверии нового года на сайте PVS-Studio увеличилось количества C++ говнокода.
    // Во-первых, вышла подбора багов за год, а во-вторых, квиз на поиск багов.
    // Первый пример кода из квиза для разминки:
    
    void  UObject::setDeltaPitch(const UMatrix &gizmo) {
      ....
      if (_fpzero(amount, eps))
        return
      rotateAccum.setAnglesXYZ(axis);
      ....
    }

    Если заинтересовались, то приятного чтения и удачи в поисках говнокодистых багов. Вас ждёт говнокод первого сорта.
    Топ 10 ошибок в C и С++ проектах в 2023 году - https://pvs-studio.ru/ru/blog/posts/cpp/1092/
    С++ квиз от PVS-Studio и Сергея Кушниренко - https://pvs-studio.ru/ru/blog/quest/kushnirenko_quiz/
    А если что-то останется непонятным в квизе, то есть его разбор - https://pvs-studio.ru/ru/blog/posts/cpp/1091/
    С наступающим НГ!

    Andrey_Karpov, 22 Декабря 2023

    Комментарии (37)
  9. Lua / Говнокод #28828

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    -- add crafting exp
    function addCExp(amount)
    ...
    -- add cooking exp
    function addCexp(amount)

    если петух скопипастил твой код, и сделал две такие функции, то сколько раз за час интенсивного кодинга ты их перепутаешь?
    (язык изменён)

    kcalbCube, 28 Июля 2023

    Комментарии (28)
  10. JavaScript / Говнокод #28827

    +2

    1. 1
    const disabledConditions = [!element.isDraft].some((v) => Boolean(v) === true);

    Из серии String(true).length === 4

    akosenko, 27 Июля 2023

    Комментарии (1)
  11. Go / Говнокод #28821

    +2

    1. 1
    var color bool

    3_dar, 15 Июля 2023

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