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

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

    −97

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
    		|	РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) КАК РезультатРазность";
    Запрос.УстановитьПараметр("Дата1",СтрТЧ.ДатаНачала);
    Запрос.УстановитьПараметр("Дата2",СтрТЧ.ДатаОкончания);
    Результат = Запрос.Выполнить().Выгрузить();
    КолвоМесяцев = Результат[0].РезультатРазность+1;

    Классика жанра. Ходим на сервер, чтобы посчитать разность дат. Ну да, сервер же у нас целыми днями воздух гоняет, заняться ему больше нечем. Давайте 2+2 складывать начнем через сервак.
    Причем, б*ть, через сервер приложений, который в свою очередь погонит запрос на сервер MSSQL.

    mrbus, 08 Июня 2016

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

    −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
    namespace spine {
    
    static SkeletonBatch* instance = nullptr;
    
    void SkeletonBatch::setBufferSize (int vertexCount) {
    	if (instance) delete instance;
    	instance = new SkeletonBatch(vertexCount);
    }
    
    SkeletonBatch* SkeletonBatch::getInstance () {
    	if (!instance) instance = new SkeletonBatch(8192);
    	return instance;
    }
    
    SkeletonBatch::SkeletonBatch (int capacity) :
    	_capacity(capacity), _position(0)
    {
    	_buffer = new V3F_C4B_T2F[capacity];
    	_firstCommand = new Command();
    	_command = _firstCommand;
    
    	Director::getInstance()->getScheduler()->scheduleUpdate(this, -1, false);
    }
    
    SkeletonBatch::~SkeletonBatch () {
    	Director::getInstance()->getScheduler()->unscheduleUpdate(this);
    
    	Command* command = _firstCommand;
    	while (command) {
    		Command* next = command->next;
    		delete command;
    		command = next;
    	}
    
    	delete [] _buffer;
    }

    https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2dx/3/src/spine/SkeletonBatch.cpp
    Это просто шедевЕр! Течет как ссаные тряпки...

    MarkusD, 08 Июня 2016

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

    +11

    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
    XmlPullParser xpp = ...
    
    xpp.nextTag();
    
    switch (xpp.getName()) {
        case "airport":
            if (xpp.getName().equals("airport")) {
                parseAirport(xpp, place);
            }
        case "border":
            if (xpp.getName().equals("border")) {
                parsePlaceBorder(xpp, place);
            }
        case "trainStation":
            if (xpp.getName().equals("trainStation")) {
                parseTrainStation(xpp, place);
            }
        default:
            break;
    }

    "Блин, че-то свитч не работает, что за хрень, сделаю-ка я дополнительную проверку внутри для надежности"

    moonson, 02 Июня 2016

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    //g++  4.9.3
    
    #include <iostream>
    
    int main()
    {
        for(int ang = 0; ang < 360; ang++)
        {
            int test = ang * 5981849;
            std::cout << test << std::endl;
        }
    }

    http://rextester.com/IHBA32841

    LispGovno, 12 Апреля 2016

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

    +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
    void g()
    {
        int sum;
        auto rec = [&sum](int i) -> int
        {
            static int (*inner)(int&, int) = [](int& _sum, int i)->int 
            {
                _sum += i;
                return i>0 ? inner(_sum, i-1)*i : 1; 
            };
            return inner(sum, i);
        };
    }

    LispGovno, 15 Марта 2016

    Комментарии (25)
  7. PHP / Говнокод #19144

    +5

    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
    if ($template)             // BAD
    if (isset($template))      // GOOD
    if ($template !== NULL))   // GOOD
    if ($template !== ''))     // GOOD
    
    if (strlen($template) > 0) // BAD! strlen("-1") is greater than 0
    if (is_string($template) && strlen($template) > 0) // BETTER
    
    if ($foo == $bar)          // BAD, avoid truthy comparisons
    if ($foo != $bar)          // BAD, avoid falsy comparisons
    if ($foo === $bar))        // GOOD
    if ($foo !== $bar))        // GOOD
    
     // We only allow valid persons
    if (is_object($p) && strlen($p->lastN) > 0 && $p->hidden === FALSE && $this->environment->moonPhase === MOON_LIB::CRESCENT) {
     $xmM = $thd;
    }
    
    if ($this->isValidPerson($person) {
      $xmM = $thd;
    }

    Решил погуглить гайдлайны по PHP: http://flowframework.readthedocs.org/en/stable/TheDefinitiveGuide/PartV/CodingGuideLines/PHP.html

    HiNeX, 07 Декабря 2015

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

    +5

    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
    <?php 
    include('config.php');
    $pasword_switch = $_GET["pass"];
    $mail = $_GET["mail"];
    $nashelsypa = 0;
    $sql = mysql_query("SELECT `user_id`, `email` FROM `users` WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' LIMIT 1");
    while(mysql_fetch_array($sql))
    {
    	$nashelsypa = 1;
    }
    if($nashelsypa == 1)
    {
    	if(isset($_POST['submit']))
    	{
    		if($_POST['password'] == $_POST['password_re'])
    		{
    			mysql_query("UPDATE users SET password='".$_POST['password']."' WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' ");
    			echo '<br>';
    			echo "Пароль успешно изменен";
    			mail($mail, "VK-SPS", "Ваш пароль для входу був змінений\nДані для входу \nE-mail:'".$mail."'\n Пароль:'".$_POST['password']."'"); 
    			header("Refresh: 5; url=login.php"); exit();
    		}
    		else
    		{
    			echo "Пароли не совпадают";
    		}
    	}
    ?>

    Смена пароля

    kissarat, 29 Октября 2015

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

    +1000

    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
    int cutNCountLt3(char *in, char *out, long min) {
        int lt3 = 0;
        char *i = in, *j = in, *k = out;
    
        while (*j && *i) {
            j = i;
            while (*j != ' ' && *j)
                *k++ = *j++;
    
            *k++ = *j;
    
            int len = j - i;
            lt3 += len < 3;
    
            if (len < min)
                *(k -= len + 1) = '\0';
    
            i = j + 1;
        }
    
        return lt3;
    }

    К #9911
    А конкретнее http://govnokod.ru/9911#comment295215

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

    Elvenfighter, 03 Августа 2015

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

    +143

    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
    MyNumber(String n) {
           try {
               for (int i = 0; i < n.length(); i++) {  
                    numbers[i] = charToInt(n.charAt(i));
               }
           } catch (InvalidArgumentException e) {
               e.printStackTrace();
           }
        }
    
        public int charToInt(char c) throws InvalidArgumentException{
            char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    
            for (int i = 0; i < 10; i++) {
                if (digits[i] == c) return i;
            }
    
            throw new InvalidArgumentException(null);
        }

    Попросили быстро написать перевод числа, закодированного в строку, в массив его цифр.

    Govnocoder#0xFF, 01 Мая 2015

    Комментарии (25)
  11. PHP / Говнокод #17836

    +159

    1. 1
    $home = $jsClass = $benchmark = $showAtom = $mainJS = $author = $update = $nameError = $mailError = $msgError = $slugError = $spamError = $codeError = $codeTitleError = $titleError = $error = $author = $authorEmail = $authorURL = $ga = $embed = $noIndex = false;

    Зачем?

    Отсюда:
    https://github.com/mathiasbynens/jsperf.com/blob/master/index.php#L25

    volter9, 21 Марта 2015

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