1. PHP / Говнокод #5578

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public function getUserDeliveryList($deliverySettings) {
    	$obligatoryFieldsList = array('type', 'periods', 'freq');
    	foreach ($obligatoryFieldsList as $v){
    		if (!isset($deliverySettings[$v])){
    			return false;
    		} else {
    			$$v = $deliverySettings[$v];
    		}
    	}
    //	...
    }

    Обратил внимание после того, как в тексте метода обнаружил некоторое количество undefined (по мнению IDE) переменных.

    quall, 08 Февраля 2011

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

    +180

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    #define EXT12 	//Не комментировать эту директиву. Иначе не работает.
    ...
    #define EXT34 	//Эта директива почти не используется. Может перерефакторим без неё?
    		//Ну убирай.
    		//Давай ты.
    		//Там есть пару мест, где она используется. Поэтому я не хочу.
    		//Но ведь нужно. Эти директивы можно заменить на полиморфизм классов.
    		//Ну займись. Я не хочу. Вдруг сломается.
    ...

    У нас 2 человека работают над одной веткой проекта на С++. Люди работают в отделах на разных этажах (один на этаж выше другого). Им лень сходить друг к другу или поговорить по жаберу. Я уже как полгода наблюдаю за картиной: они переговариваются через комментарии в коде через систему контроля версий. Я не против переговоров в системе контроля версий, но они уже месяц осбуждают EXT34, а так ничего с ним и не сделали. Хоть бы комментарии удалили, если делать ничего не собираюются. Может с них 0.125 премии снять?
    Как-нибудь ещё переговоры повеселее выложу.

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

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

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if ($arResult["CurrentStep"] == 1)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step1.php");
    elseif ($arResult["CurrentStep"] == 2)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step2.php");
    elseif ($arResult["CurrentStep"] == 3)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step3.php");
    elseif ($arResult["CurrentStep"] == 4)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step4.php");
    elseif ($arResult["CurrentStep"] == 5)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step5.php");
    elseif ($arResult["CurrentStep"] >= 6)
    	include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/step6.php");

    Из проекта на битриксе.

    hdkeeper, 08 Февраля 2011

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

    +160

    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
    QString convToHex( unsigned char *bytes, int size )
    {
    	if( size > 16 )
    		size = 16;
    	QString ret;
    	for( int i = 0; i < size; i++ )
    	{
    		char buf[64];
    		::snprintf( buf, sizeof(buf), "%02x", (unsigned int) bytes[i] );
    		ret += buf;
    	}	
    	return ret;
    }
    
    QString TarCreator::generateGuid( const std::string &tDeviceSerial,
    		const std::string &nDatetime, unsigned long long int id )
    {
    	std::ostringstream s;
    	s << tDeviceSerial;
    	s << nDatetime;
    	s << id;
    	
    	QCryptographicHash hash( QCryptographicHash::Md5 );
    	hash.addData( QByteArray( s.str().c_str() ) );
    	QByteArray result = hash.result();
    	return convToHex( (unsigned char*)result.data(), result.size() );
    }

    panter_dsd, 08 Февраля 2011

    Комментарии (1)
  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. Куча / Говнокод #5573

    +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
    17. 17
    В шапке:
    
      <script type="text/javascript">
        thisIsIE7 = false;
      </script>
      <!--[if IE 7]>
      <script type="text/javascript">
        thisIsIE7 = true;
      </script>
      <![endif]-->
      
    В JS-файле:
    
              $("#popup_hint")
                .show()
                .css("top", ev.pageY + 20)
                .css("left", ev.pageX + 20 + (thisIsIE7 ? 483 : 0))

    Что ж, пришёл и мой черёд...

    Проблема: в IE7 и только в нём некоторые абсолютно спозиционированные элементы съезжают влево почти на полэкрана.

    Ещё проблема: люто надоевший заказчик ругается в трубку и требует, чтобы через 10 минут всё работало нормально.

    Решение: опытным путём выясняем, что смещение влево происходит на 483 пикселя вне зависимости от размера окна и разрешения монитора. Лабаем детектор IE7 на кондишенал-комменте, в JS хардкодим магическое смещение. Проблемы решены...

    telnet, 08 Февраля 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    void IRQHandler(void)
    {
    ...
    WaitSemaphore(semH);

    Из кода для встроенного устройства реального времени.

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

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

    +164

    1. 1
    i = j ? k : l = m;

    опять же с форума wasm.ru... пол дня объяснял почему с++ компилятор трактует это выражение как i = j ? k : (l = m), а никак по-другому... не пишите такую чушь никогда)

    ReL, 07 Февраля 2011

    Комментарии (26)
  9. PHP / Говнокод #5570

    +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
    <?php
    
    //////////....................................
    
    	static function Request($module="__global",$action='__global',$route=null){
    		if(!$route && !empty(self::$route)) $route=self::$route;
            else $route=self::setRoute(APP_ModuleContext::getContext());
            $action=strtolower($action);
    		$module=strtolower($module);
    
    		$ro=array();
            if(!empty($route['allow'][$module])){
    			$ro=$route['allow'][$module];
                $dis=!empty($route['disallow'][$module])?$route['disallow'][$module]:array();
    			if(!empty($dis) && $dis['__global']===true) return new throw APP_Exceptions_PluginBox("Плагины для модуля '$module' отключены");
    			 
    			 if(empty($ro['__global'])) $ro['__global']=array();
    			 if(empty($ro[$action])) $ro[$action]=array();
    			 $ro=array_merge($ro['__global'],$ro[$action]);
                 if(!empty($ro)){
    				 $ro=array_unique($ro);
                     if(!empty($dis)){
    					 if(empty($dis['__global'])) $dis['__global']=array();
    					 if(empty($dis[$action])) $dis[$action]=array();
    					 $dis=array_merge($dis['__global'],$dis[$action]);
    					 if(!empty($dis)){
                            $dis=array_unique($dis);
    						$ro=array_diff($ro,$dis);
    					 }
    				 }
    				 if(!empty($ro)){
                        $res=array();
    		 	        foreach($ro as $plugin){
                            $res[$plugin]=self::getContents($plugin);
    			        }
    			        return $res;
    				 }else return new throw APP_Exceptions_PluginBox("Все плагины были отключены для '$module - $action'");
    			 }else return new throw APP_Exceptions_PluginBox("Нет плагинов для запроса '$module - $action'");
    		}
    		
    		return false;
    	}
    
    /////////////..........................................
    ?>

    Роутеры роутят

    Zho, 07 Февраля 2011

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

    −99

    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 (((vo.metricId == 3) && ((columnName == "A/c Balance CCY & Amount") || (columnName == "No. of Trades Impacted") || 
          (columnName == "Value of Trades") || (columnName == "Facility CCY & Amount") || (columnName == "MTM/ Net Position") || 
          (columnName == "Utilisation CCY & Amt"))) || 
          ((vo.metricId == 5) && (columnName == "Amount")) ||
          ((vo.metricId == 5) && (columnName == "Balance in Local")) ||
          ((vo.metricId == 5) && (columnName == "Balance in EUR")) ||
          ((vo.metricId == 5) && (columnName == "Sub Balance EUR")) ||
          ((vo.metricId == 5) && (columnName == "Unsub Balance EUR")) ||
          ((vo.metricId == 5) && (columnName == "PFE EUR")) ||
          ((vo.metricId == 5) && (columnName == "Provision EUR")) ||
          ((vo.metricId == 13) && ((columnName == "EUR Net Cost") || (columnName == "Nominal/ Position"))) ||
          ((vo.metricId == 14) && ((columnName == "CCY Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 15) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          
          ((vo.metricId == 16) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 17) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 18) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 19) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 20) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 21) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 22) && ((columnName == "Value") || (columnName == "EUR Value")))

    Королевский IF!

    dimas_art, 07 Февраля 2011

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