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

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

    +171

    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
    public abstract class BaseDateTime
            extends AbstractDateTime
            implements ReadableDateTime, Serializable {
    
        /** The millis from 1970-01-01T00:00:00Z */
        private volatile long iMillis;
        /** The chronology to use */
        private volatile Chronology iChronology;
    
    /////////////////////////////////////////////////////////////////	
    /*	
     * DateTime is thread-safe and immutable, provided that the Chronology is as well.
     * All standard Chronology classes supplied are thread-safe and immutable.
     *
     * @see MutableDateTime
     */
    public final class DateTime
            extends BaseDateTime

    Любителям joda-time.
    Cмущает меня этот volatile, который приходит в немутабельный класс от родителя.

    3.14159265, 14 Октября 2013

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

    +142

    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
    private static string AddStr(string s1, string s2)
    		{
    			string result;
    			if (s1 == string.Empty)
    			{
    				result = s2;
    			}
    			else
    			{
    				if (s2 == string.Empty)
    				{
    					result = s1;
    				}
    				else
    				{
    					result = s1 + " " + s2;
    				}
    			}
    			return result;
    		}

    Код - бессмысленный и беспощадный

    leon_mz, 06 Сентября 2013

    Комментарии (73)
  4. Си / Говнокод #13358

    +131

    1. 1
    2. 2
    3. 3
    int rotate(int a, int k) {
        return (a << k) | (a >> (32-k));
    }

    Вращение на k бит влево.

    bormand, 10 Июля 2013

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

    +24

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    void sleep_in_qt_ms(unsigned millisec) {
        QMutex foo;
        foo.lock();
        foo.try_lock(millisec);
        foo.unlock();
    }

    sleep в Qt - что, серьезно, чтоли?

    особенно порадовало: Warning: Destroying a locked mutex may result in undefined behavior.
    действительно, накой нам деструкторы?

    defecate-plusplus, 29 Марта 2013

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

    +66

    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
    // генрация паролей
    function generatePassword($l = 8) {
    	function make_seed() {
    		list($usec, $sec) = explode(' ', microtime());
    		return (float) $sec + ((float) $usec * 100000);
    	}
    	$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
    	$password = '';
    	while (strlen($password)<$l) {
    		srand(make_seed());
    		$rnd = rand(0, count($le)-1);
    		$password.=$le[$rnd];
    	}
    	return $password;
    }

    Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!

    SunnyMagadan, 15 Января 2013

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

    +998

    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
    private static int[] p = {
            151,160,137,91,90,15,
            131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,
            190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,
            88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166,
            77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,
            102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196,
            135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123,
            5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,
            223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9,
            129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228,
            251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107,
            49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254,
            138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180};

    Заполнение массива случайными числами от 0 до 360

    Torvald, 17 Ноября 2011

    Комментарии (73)
  8. ActionScript / Говнокод #8486

    −113

    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
    var _str = ""
    	var _a_=""
    	_a_ = KID_DANGER_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_DANGER_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_EAT_pos.toString(16);	if (_a_.length < 2) { _str += "0" };_str += _a_;_a_ = KID_EAT_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_PLAY_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_PLAY_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_WASH_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_;	_a_ = KID_WASH_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_SLEEP_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_SLEEP_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_EDU_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_EDU_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_STREET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_STREET_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_CLEAN_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_;	_a_ = KID_CLEAN_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_GARBAGE_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_GARBAGE_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_TOILET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_TOILET_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_HEALTH_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = KID_HEALTH_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KAT_event_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = KAT_event_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = DOG_event_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = DOG_event_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = FISH_event_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = FISH_event_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = BIRD_event_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = BIRD_event_cnt.toString(16);if (_a_.length <2) { _str+="0" };	_str += _a_

    Эмм, работа со строками...

    kyzi007, 11 Ноября 2011

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

    +146

    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
    я придумал отличную идею для нового языка программирования.
    это будут смешанные присваивания.
    можно будет писать например так:
    x <- y (тоже самое что и x = y)
    или
    x -> y ( y = x)
    также обмен значений:
    x <-> y
    паралельное присваивание (для обоих видов):
    a,b,c -> x,y,z (x = a,y =b, z =c)
    множественное присваивание:
    a -> b -> c ( b = a, c = a)
    a <- b <- c ( a = b, b = c)
    и их комбинации
    x, y, z <- a,b,c <- i,j,k <- 1,2,3 -> d,e,f
    правда круто?

    Последняя строчка кода как мне кажется будет пользоваться бешеной популярностью.
    Постоянно похожий код приходится писать.

    Fai, 02 Сентября 2011

    Комментарии (73)
  10. Куча / Говнокод #6666

    +67

    Адский пони

    Corpus edimus, sanguis bibumus!

    Lure Of Chaos, 14 Мая 2011

    Комментарии (73)
  11. JavaScript / Говнокод #4992

    +153

    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
    function checkTags(object, numberOfTags) {
        var tags = object.value.split(",");
        var k = tags.length;
        var tmp = new Array();
        for (var i = 0; i < k; ++i) {
            var temp = tags[i].replace(/(^\s+)|(\s+$)/g, '');
            temp = temp.replace(/[\s]{2,}/g, ' ');
            if (temp != '') { // отсеиваем пустые
                temp = temp.toLowerCase(); // переводим в нижний регистр
                // Первую букву в верхний регистр(захотелось мне так!!!)
                temp = temp.match(/(.{1})/g);
                temp[0] = temp[0].toUpperCase();
                temp = temp.join("");
                if (tmp.length > 0 && in_array(temp, tmp)) { // отсеиваем повторяющиеся
                    continue;
                }
                tmp.push(temp);
                if (tmp.length == numberOfTags) { // отсеиваем те что превышат лимит
                    break;
                }
            }
        }
        tags = tmp;
        $('entryTagsLeft').innerHTML = numberOfTags - tags.length;
        object.value = tags.join(', ');
    }

    Функция для проверки меток вводимых пользователем. Убираем лишние пробелы, переводить все символы в нижний регистр, переводит первую букву в верхний, удаляет повторы, отсеивает лишние метки(лимит на количество меток нужен так как они добавляются в цикле) в случае использования

    komprenda, 20 Декабря 2010

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