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

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

    +55

    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
    //--------------------------------------------------------------------------
    
    	#define DEF_P(X, Y, N) X##N
    	#define DEF_D(X, Y, N) X##N Y##N
    	#define DP1(DT, X, Y) DT(X, Y, 0)
    
    	//--------------------------------------------------------------------------
    
    	#define DP2(DT, X, Y) DP1(DT, X, Y), DT(X, Y, 1)
    	#define DP3(DT, X, Y) DP2(DT, X, Y), DT(X, Y, 2)
    	#define DP4(DT, X, Y) DP3(DT, X, Y), DT(X, Y, 3)
    	#define DP5(DT, X, Y) DP4(DT, X, Y), DT(X, Y, 4)
    	#define DP6(DT, X, Y) DP5(DT, X, Y), DT(X, Y, 5)
    	#define DP7(DT, X, Y) DP6(DT, X, Y), DT(X, Y, 6)
    	#define DP8(DT, X, Y) DP7(DT, X, Y), DT(X, Y, 7)
    	#define DP9(DT, X, Y) DP8(DT, X, Y), DT(X, Y, 8)
    	#define DP10(DT, X, Y) DP9(DT, X, Y), DT(X, Y, 9)
    	#define DP11(DT, X, Y) DP10(DT, X, Y), DT(X, Y, 10)
    	#define DP12(DT, X, Y) DP11(DT, X, Y), DT(X, Y, 11)
    	#define DP13(DT, X, Y) DP12(DT, X, Y), DT(X, Y, 12)
    	#define DP14(DT, X, Y) DP13(DT, X, Y), DT(X, Y, 13)
    	#define DP15(DT, X, Y) DP14(DT, X, Y), DT(X, Y, 14)
    
    	//--------------------------------------------------------------------------
    	// define functor for params count 0
    	//--------------------------------------------------------------------------
    
    	#define TEMP_DEF_PARAM(N)
    	#define TEMP_SPC_PARAM(N)
    	#define FUNC_PTR_PARAM(N)
    	#define FUNC_INV_PARAM(N)
    	#define FUNC_DEF_PARAM(N)
    	DEFINE_FUNCTOR(0);
    
    	#undef TEMP_DEF_PARAM
    	#undef TEMP_SPC_PARAM
    	#undef FUNC_PTR_PARAM
    	#undef FUNC_INV_PARAM
    	#undef FUNC_DEF_PARAM
    
    	//--------------------------------------------------------------------------
    	// define functor for other params counts
    	//--------------------------------------------------------------------------
    
    	#define TEMP_DEF_PARAM(N) 	,DP##N(DEF_P, typename T,)
    	#define TEMP_SPC_PARAM(N)	,DP##N(DEF_P, T,)
    	#define FUNC_PTR_PARAM(N)	DP##N(DEF_P, T,)
    	#define FUNC_INV_PARAM(N)	DP##N(DEF_P, p,)
    	#define FUNC_DEF_PARAM(N)	DP##N(DEF_D, T, p)
    
    	DEFINE_FUNCTOR(1);
    	DEFINE_FUNCTOR(2);
    	DEFINE_FUNCTOR(3);
    	DEFINE_FUNCTOR(4);
    	DEFINE_FUNCTOR(5);
    	DEFINE_FUNCTOR(6);
    	DEFINE_FUNCTOR(7);
    	DEFINE_FUNCTOR(8);
    	DEFINE_FUNCTOR(9);
    	DEFINE_FUNCTOR(10);
    	DEFINE_FUNCTOR(11);
    	DEFINE_FUNCTOR(12);
    	DEFINE_FUNCTOR(13);
    	DEFINE_FUNCTOR(14);
    	DEFINE_FUNCTOR(15);

    Весь пиздец https://github.com/Evil-Spirit/Nutmeg/blob/master/CoreSrc/Common/Functor.h
    Дети, не программируйте на C++

    FadeToBlack, 15 Августа 2014

    Комментарии (1)
  3. Python / Говнокод #16528

    −88

    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
    class DataModel(dict):
        _SCHEME_VERSION = 0
        _transform = dict()
        _additional = dict()
        _migration = None
    
        def __init__(self, data=None, network=None, conf=None):
            if network and conf:
                _scheme = map(lambda x: x.strip(), conf.get(network).keys())
                _map =  map(lambda x: x.strip(), conf.get(network).values())
    
                self._scheme = int(conf._scheme)
    
                map(lambda x: setattr(self, x[0], data.get(x[1], None)),
                    [(_scheme[i], _map[i]) for i in xrange(0,len(_map))])
    
                if self._transform.get(network, False):
                    map(lambda x: setattr(self, x, getattr(self._transform[network], x)(getattr(self, x))),
                        [k for k in self._transform[network].__dict__.keys() if not k.startswith('__')])
            else:
                dict.__init__(self, data)
    
            if self.get('_scheme', 0)<self._SCHEME_VERSION and self._migration is not None:
                k = [int(k.split('_')[1]) for k in self._migration.__dict__.keys() if not k.startswith('__')]
                k.sort()
                [k.remove(x) for x in k if x<=self.get('_scheme', 0)]
                map(lambda x: getattr(self._migration, 'scheme_%s' % x)(self), k)
                self._scheme = self._SCHEME_VERSION
    
            map(lambda x: setattr(self, x, getattr(self._additional, x)(self)),
                [k for k in self._additional.__dict__.keys() if not k.startswith('__')])
    
        def __setattr__(self, name, val):
            if name in self.__dict__:
                self.__dict__[name]= val
            else:
                self[name] = val
    
        def __getattr__(self, name):
            if name in self.__dict__:
                return self.__dict__[name]
            else:
                return self[name]

    Mongo migration, written in Python, for human beings.

    vaxxxa, 14 Августа 2014

    Комментарии (1)
  4. PHP / Говнокод #16461

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $date=date(Ymd);
    $day=substr($date,6,2);
    $month=substr($date,4,2);
    $year=substr($date,0,4);      
    list($date,$month,$year) = explode("/",date("D/M/Y"));

    Webius, 01 Августа 2014

    Комментарии (1)
  5. JavaScript / Говнокод #16453

    +157

    1. 1
    var put = $(this).attr("href") + "&sort=" + $(this).parent().parent().children().eq(0).children().val();

    It's called inception.

    vocal_hydra, 31 Июля 2014

    Комментарии (1)
  6. Ruby / Говнокод #16324

    −151

    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
    def get_team_choices_with_index
        school_ids = params[:school_id].split(",")
        @index = params[:index]
    
        @teams_array = Array.new
        school_ids.each do |s|
          next if s.eql? "0"
          School.find(s).teams.each do |t|
            @teams_array << t
          end
        end
    
        @teams_array.flatten!
        @teams_array
      end

    А должно быть что-то вроде
    @teams_array = Team.where(school_id: school_ids)

    dj_Andreus, 14 Июля 2014

    Комментарии (1)
  7. JavaScript / Говнокод #16311

    +155

    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
    function createDataStringFromArray(data){
        dataName = "outputSyntax=plain"
        data.each(function(value, index){
            if(value.name == "register_first_name"){
                dataName = dataName + "&register_first_name=" + value.value;
            }else if(value.name == "register_last_name"){
                dataName = dataName + "&register_last_name=" + value.value;
            }else if(value.name == "etablishment"){
                dataName = dataName + "&etablishment=" + value.value;
            }else if(value.name == "function"){
                dataName = dataName + "&fonction=" + value.value;
            }else if(value.name == "element_id"){
                dataName = dataName + "&id=" + value.value;
            }else if(value.name == "mail"){
                dataName = dataName + "&register_email=" + value.value;
            }else if(value.name == "phone"){
                dataName = dataName + "&register_phone=" + value.value;
            }else if(value.name == "mobile"){
                dataName = dataName + "&register_mobile=" + value.value;
            }else if(value.name == "access"){
                dataName = dataName + "&access=" + value.value;
            }else if(value.name == "mail_alerts"){
                dataName = dataName + "&mail_alerts=" + value.value;
            }
        })
        return dataName;
    }

    iofjuupasli, 11 Июля 2014

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

    +156

    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
    while ($this->tariffs_model->getCarsCheckedByTariff($user_id, $tariff_info[0]['id']) > $tariff_info[0]['cars_count'])
    {
    	$cars = $this->tariffs_model->getCarsChecked($tariff_info[0]['id'], $user_id);
    	if ($cars)
    	{
    		//удаляем одну объяву
    		$this->tariffs_model->delCarChecked($cars[0]);
    		$this->sms_model->removeSmsByCarId($cars[0]);
    	}
    }
    
    /*-=-=-=-=-=-=-=-=-=-=-=-=- реализация ф-ций -=-=-=-=-=-=-=-=-=-=-=-=-*/
    
    /**
     * Получаем кол-во реально отмеченых объявлений
     * @param int $user_id
     * @param int $tariff_id
     */
    function getCarsCheckedByTariff($user_id, $tariff_id)
    {
    	$query = "SELECT COUNT(*) as count FROM tariffs_cars_checked WHERE car_id IN
    		(SELECT id FROM a2_cars WHERE user = ? AND expire_date >= ?) AND tariff_id = ?";
    	$result = $this->db->query($query, array($user_id, MYSQL_CURDATE, $tariff_id));
    
    	//echo $this->db->last_query();
    
    	if ($result && $result->num_rows() == 1)
    	{
    		return $result->row()->count;
    	}
    	else
    	{
    		return null;
    	}
    }
    
    /**
     * Список ID отмеченных объявлений по тарифу пользователя
     *
     * @param Int $tariff_id
     * @return Array[]
     * @author КОЕ-КТО 21.12.2009 12:35
     * @uses Controller::Profile
     */
    function getCarsChecked($tariff_id, $user_id)
    {
    	$this->db->select('tariffs_cars_checked.car_id')->from('tariffs_cars_checked')
    	->join('a2_cars', 'a2_cars.id = tariffs_cars_checked.car_id', 'inner')
    	->where(array('tariffs_cars_checked.tariff_id' => intval($tariff_id), 'a2_cars.user' => intval($user_id)));
    
    	$result = $this->db->get();
    	if ($result && $result->num_rows() > 0)
    	{
    		$cars = array();
    		foreach ($result->result_array() as $row)
    		{
    			$cars[] = $row['car_id'];
    		}
    		return $cars;
    	}
    	else
    	{
    		return null;
    	}
    }

    Удаляем объявления скопом!

    smail01, 10 Июля 2014

    Комментарии (1)
  9. JavaScript / Говнокод #16291

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    с сохранением авторского форматирования:
    
    <script type="text/javascript">
                    $(function() {
                       
                        if (<%= (orderedPartnerOffer != null).ToString().ToLower() %>) {
                            $('p','#idProjectStepContent<%= stepGuid %>').text('Ваша заявка успешно отправлена.');
             }
    
    </script>

    В джаваскрипте на онлоад проверить, есть ли значение у серверной переменной, чтобы с помощью жЭкУэээри обновить текст элемента. Ояебу. Кажется мы наняли сатану.

    adoconnection, 09 Июля 2014

    Комментарии (1)
  10. PHP / Говнокод #16290

    +156

    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
    <?
    $res = CIBlockSection::GetList(array(), array('IBLOCK_ID'=>'3', 'ACTIVE'=>'Y'));
    $res1 = CIBlockSection::GetList(array(), array('IBLOCK_ID'=>'3', 'ACTIVE'=>'Y'));
    ?>
    <table class="tableObjects">
        <tr>
            <?while($v = $res->GetNext()){
                ?><td><a href="/projects/list.php?SECTION_ID=<?=$v['ID']?>">
                    <?=CFile::ShowImage(CFile::GetPath($v['PICTURE']), 180, 160)?>
                </a></td><?
            }?>
        </tr>
        <tr>
            <?while($v = $res1->GetNext()){
                ?><td><b><a href="/projects/list.php?SECTION_ID=<?=$v['ID']?>"><?=$v['NAME']?></a></b></td><?
            }?>
        </tr>
    </table>

    Как минимум 2 раза обращаться к базе данных, чтобы разбить данные на 2 строки! Гениально!

    dimagyzeev, 09 Июля 2014

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

    +154

    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
    <script type="text/javascript">
        if (parent && parent != window && (browser.msie || browser.opera || browser.mozilla || browser.chrome || browser.safari || browser.iphone)) {
          document.getElementsByTagName('body')[0].innerHTML = '';
        } else {
          domReady();
          updateMoney(0);
    gSearch.init();
    if (window.qArr && qArr[5]) qArr[5] = [5, "by item", "", "goods", 0x00000100];
    if (browser.iphone || browser.ipad || browser.ipod) {
      setStyle(bodyNode, {webkitTextSizeAdjust: 'none'});
    }
    if (0) {
      hide('support_link_td');
    }
    var ts_input = ge('ts_input'), oldFF = browser.mozilla && parseInt(browser.version) < 8;
    if (browser.mozilla && !oldFF) {
      setStyle(ts_input, {padding: (vk.rtl ? '3px 20px 6px 40px' : '3px 41px 6px 20px')});
    }
    placeholderSetup(ts_input, {back: false, reload: true});
    if (browser.opera || browser.msie || browser.mozilla) {
      setStyle(ts_input, {padding: (vk.rtl ? '4px 20px 5px 40px' : '4px 41px 5px 20px')});
    } else if (browser.chrome || browser.safari) {
      setStyle(ts_input, {padding: (vk.rtl ? '4px 21px 5px 40px' : '4px 40px 5px 21px')});
    }
    
    ...
    
    window.tsHintsEnabled = 1;;setTimeout(function() {  try {    var elem = ge(String.fromCharCode.apply(null,[118,107,98,95,97,100,118]));    if (elem) {      ajax.post('/al_profile.php', {act: 'pro', section: 1, hash: '3f8471898e6269d08b'}, {onDone: function() {}, onFail: function() { return true; }});    }  } catch (e) {}}, 5000);
    __adsLoaded = false;
    
    ...
    
    cur.lang = extend(cur.lang || {}, {
      wall_link_label: 'Link',
      wall_my_friends_only: 'Only your friends can see this post',

    Перестала грузиться понятно какая соцсеточка, от нечего делать опять полез в сорцы html. Вперемешку инициализация поиска, битмаски и какой-то qArr[5], уконтрапупивание всего body по непонятному условию, стилизация, if(0), табуляция в соответствии с каким-то особым стандартом, локализация, вторая половина которой зачем-то подтягивается отдельным файлом. Про установку всех переменных прямо в window явно и неявно молчу.

    Fike, 08 Июля 2014

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