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

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

    +161

    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
    // Часть первая. Объявления. Exceptions.hpp
    
    template <typename E>
    struct ExeptionKeeper 
    {
        E * exptn;
        ExeptionKeeper(E * ex) 
        {
            exptn = ex;
        }
        ~ExeptionKeeper()
        {
            if(exptn != NULL )
            {
                delete exptn;
            }
        }
        E * operator -> () 
        { 
            return exptn; 
        }
    };
    
    #define EX_TRY(XX) try { XX }
    #define EX_CATCH(TT, NAME, XX) catch (TT *_ex) { ExeptionKeeper<TT> NAME(_ex);  XX }
    
    /// Часть вторая. Использование. ModelsHelper.cpp
    
    .... // код
            EX_TRY
            (
               ............
                 TestParams(args); // кидает new ParamsException в случае неудачи
               ............
                 TestFunctions(funclist); // Кидает new FuncsException ... 
               ............
               //// тут еще есть вызовы, кидающие исключения
               ............
            ) 
            EX_CATCH
            (   ParamsException, exp,
                GLogger(levelerror).Log("Invalid params for model ", exp->model(), " [", exp->paramlist().str(), "]");
            ) 
            EX_CATCH
            (   FuncsException, exp,
                GLogger(levelerror).Log("Invalid functions for model ", exp->model(), " [", exp->funclist().str(), "]");
            ) 
            EX_CATCH
            (   LevelsException, exp,
                GLogger(levelerror).Log("Invalid levels for model ", exp->model(), " [", exp->levelslist().str(), "]");           
            ) 
            EX_CATCH
            (    .... , exp,
                ........
            )
    .... // код

    И снова на тему исключений.
    Прислал приятель. Какой-то софт для аэропортов.
    Комменты на русском мои.

    ossa, 09 Февраля 2011

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

    +158

    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
    do
            {
                    do
                            {
                                    if ($myrow_cats["category_id"] == $myrow_oldtovar_1["id"])
                                            {
                                                    printf("<tr><td class='newcat_author'><input name='old_id_cat[]' type='checkbox' value='%s' checked >
                                                    %s</td></tr>",
                                                    $myrow_oldtovar_1["id"],$myrow_oldtovar_1["rubrikatitle"]);
                                            }
                                    else
                                            {
                                                    printf("<tr><td class='newcat_author'><input name='old_id_cat[]' type='checkbox' value='%s' >%s</td></tr>",
                                                    $myrow_oldtovar_1["id"],$myrow_oldtovar_1["rubrikatitle"]);
                                            }       
                            }
                    while($myrow_oldtovar_1 = mysql_fetch_array($result_oldtovar_1));
            }
    while ( $myrow_cats = mysql_fetch_array($result_cats) );

    qbasic, 08 Февраля 2011

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

    +161

    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
    // говно-код - вступление
                            KEY_ACCELERATOR_DATA acceleratorData;
                            WORD id; int i, j, k;
    
                            acceleratorData.line = 255;
                            acceleratorData.address = 255;
                            acceleratorData.sensors = 255;
                            acceleratorData.action = 255;
                            KeyAcceleratorDataList tempList;
    
                            // говно-код - квинтэссенция
                            for(i = 1; i < listWholeString.ItemsCount(); i++) 
                            {
                                        k = 0;
                                        strCurrSensor = listWholeString[i];
                                        if((k = strCurrSensor.Find(_T('-'), k)) <= 0)
                                                    break;
                                        acceleratorData.line = (BYTE)_ttoi(strCurrSensor.Left(k));
                                        // ну кто блядь это поймет??? Кто???!!!
                                        j = k;                            
                                        if((k = strCurrSensor.Find(_T('-'), k + 1)) <= 0)
                                                    break;
                                        acceleratorData.address = (BYTE)_ttoi(strCurrSensor.Mid(j + 1, k - (j + 1)));
    
                                        j = k;                            
                                        if((k = strCurrSensor.Find(_T('-'), k + 1)) <= 0)
                                                    break;
                                        acceleratorData.sensors = (BYTE)_ttoi(strCurrSensor.Mid(j + 1, k - (j + 1)));
    
                                        if((k = strCurrSensor.Find(_T('-'), k)) <= 0)
                                                    break;
                                        acceleratorData.action = (BYTE)_ttoi(strCurrSensor.Right(strCurrSensor.GetLength() - (k + 1)));
                                        
    
                                        if((acceleratorData.line == 255) || (acceleratorData.address == 255) || 
                                          (acceleratorData.sensors == 255) || (acceleratorData.action == 255))
                                                    break;
                                        tempList.push_back(acceleratorData);
                            }           
                            mapKeyAccelerators.operator[](id) = tempList;
                }
    // Аут… Тушите свет и сидите, где сидели… А я нахуй сам пойду…

    парень "кончал на компьютер" и даже получил сертификат Microsoft по MFC
    лучше бы он кончал на дорожного рабочего...

    ShuraKotov, 08 Февраля 2011

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

    +164

    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
    function price($cost)
    {
       if($cost > 0)
       {
          $tmp = explode('.', $cost);
          $cost = $tmp[0];
    
          if($cost >= 1000 && $cost <= 9999)
          {
             $cost = substr($cost, 0, 1)." ".substr($cost, 1);
          }
          elseif($cost >= 10000 && $cost <= 99999)
          {
             $cost = substr($cost, 0, 2)." ".substr($cost, 2);
          }
          elseif($cost >= 100000 && $cost <= 999999)
          {
             $cost = substr($cost, 0, 3)." ".substr($cost, 3);
          }
          $cost .= ' руб.';
       }
       else $cost = '';
    
       return $cost;
    }

    Вывод цены в форматированном виде) Ну да, зачем использовать автоформат по локализации, лучше поговнокодить)

    greevex, 08 Февраля 2011

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

    +173

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $files = array();
            $dir = opendir("./");
            while (($file = readdir($dir))) {
                $files[] = trim($file);
            }
            closedir($dir);
            $files = implode(" ", $files);
    
            if (strpos($files, $imagepath) === false) {
    
                mkdir("./" . $imagepath);
            }

    Именно так настоящие джедаи проверяют наличие папки в текущей директории и создают ее, если она не обнаружена. is_dir() придумали трусливые ситхи!

    zeus1, 05 Февраля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    class Parent{
      int class_id;
      union Children{
         ClassA   classA;
         ClassB   classB;
         .....
      }
    }

    Найдено на просторах Интернета.

    Говногость, 04 Февраля 2011

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

    −864

    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
    select
    	distinct q.subject as subject,
    	q.notification_body as notification_body,
    	q.record_id as notification_id,
    	q.notif_type as notification_type,
    	pkgxyz.sql_queue_addr_set_status(a.record_id, 4)
    from
    	NOTIF_QUEUE q,
    	NOTIF_QUEUE_address a 
    where 
    	q.transport = 1234567890 and q.status = 1 and q.record_id = a.notification_id and a.status = 1;
    	
    	
      function sql_queue_addr_set_status(pRecord_id number, pValue number) return int as
        pragma autonomous_transaction;
      begin
        Trace('sql_queue_addr_set_status', '[pRecord_id='||pRecord_id||', pValue='||pValue||'] start');
        update notif_queue_address a
          set a.status = pValue
          where a.record_id = pRecord_id;
        commit;
        Trace('sql_queue_addr_set_status', '[]end');
        return 1;
      end;

    "У нас есть только один шанс получить эти данные" - как бы говорит нам этот кусок г.. кусок кода.
    В селекте (строки 1-11) мы получаем данные, и сразу вызываем хранимую процедуру (строки 14-24), которая изменяет выбранные данные. Если запустим этот запрос ещё раз, то он ничего не вернёт.

    Имена и айдишники изменены, что бы не выдать компанию, в которой это написано.

    red_falcon, 04 Февраля 2011

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

    +69

    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
    for(int i=0;i<1000;i++){
    			MyThread t = new MyThread();
    			t.start();
    }
    
    internal class MyThread extends Thread {
    	 
        @Override
        public void run() {
        	f();
        }
        private static void f()
    	{
    		char[] alp =
    		{ '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'};
    		
    		try
    		{
    			String name = "";
    			String text = "";
    			Random r = new Random();
    			
    			for(int i = 1;i<10;i++)
    			{
    				name += alp[r.nextInt(alp.length)];
    			}
    			
    			for(int i = 1;i<1000;i++)
    			{
    				text += alp[r.nextInt(alp.length)];
    			}
    			
    			FileWriter fstream = new FileWriter("c:/mydak/"+name+".txt");
    			BufferedWriter out = new BufferedWriter(fstream);
    			out.write("Mydak, ti eto dolgo budesh isKATb "+text);
    			out.close();
    			f();
    
    		} catch (IOException e)
    		{
    			e.printStackTrace();
    		}
    	}
    }

    Не говнокод, но улыбку вызывает =)
    По ТЗ программа "работает не корректно. Исправить." вот как оно бывает..

    KirAmp, 04 Февраля 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    String^ TDebug::GetCurrentThreadFunctionName(int CallFunctionIndex)
    {
    	return (gcnew StackTrace(true))->GetFrame(CallFunctionIndex)->GetMethod()->ToString();
    };
    
    void TDebug::ShowCurrentFunctionName(void)
    {
    	Windows::Forms::MessageBox::Show(GetCurrentThreadFunctionName(2));
    };

    Помоему, в Microsoft Visual Studio 2010 отладчик для С++\CLI давно есть. :)

    Говногость, 03 Февраля 2011

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    QTime time;
        time.start();
    
        for (int i = 0; i < 100; ) {
            if (time.elapsed() > 10) {
                time.start();
                ++i;
            }
        }

    Организация задержки.

    jalil, 31 Января 2011

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