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

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static readonly ConcurrentDictionary<Expression, object> CachedFunctions;
    
    public static Func<TEntity, bool> AsFunc<TEntity>(this object entity, Expression<Func<TEntity, bool>> expr)
        where TEntity : class, IEntity
    {
        //@see http://sergeyteplyakov.blogspot.ru/2015/06/lazy-trick-with-concurrentdictionary.html
        return (Func<TEntity, bool>)CachedFunctions.GetOrAdd(expr, id => new Lazy<object>(
            () => CachedFunctions.GetOrAdd(id, expr.Compile())));
    }

    Вот так хорошая идея ломается о кривую реализацию. Вместо того чтобы сохранить в кэш требуемый тип, сохраняем туда Lazy, возвращающий себя же :)

    leff, 11 Октября 2018

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

    +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
    private int SortWObyAD(WorkOrderShort wo1, WorkOrderShort wo2)
    {
    	if (wo1.AD == wo2.AD)
    	{
    		return 0;
    	}
    	else if (wo1.AD > wo2.AD)
    	{
    		return 1;
    	}
    	else
    	{
    		return -1;
    	}
    }

    Сразу 2 достоинства:
    1) абсолютно не понятно, что такое AD;
    2) ах да, все это можно было бы заменить одной строкой "return wo1.AD - wo2.AD", т.к. все это будет использоваться в одной из стандартных функций сортировки

    Moses, 11 Октября 2018

    Комментарии (4)
  4. Куча / Говнокод #24773

    −110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    https://sm-news.ru/mariya-zaxarova-prizvala-rossijskix-grazhdan-byt-ostorozhnymi-pri-poezdkax-v-kamerun/
    
    "Мария Захарова призвала российских граждан быть осторожными при поездках в Камерун".
    
    Что она имела в виду?

    tuberkulez, 16 Сентября 2018

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

    −6

    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace sortQuick                 {class quickSort{
            private int[] array = new int[20]; ;; private int len;
            public void QuickSort()         {sort(0, len - 1);}
     
            public void sort(int left, int right){int pivot, leftend, rightend;
    leftend = left;
                                                                           rightend = right;
                pivot = array[left];
                while (left < right){
                    while ((array[right] >= pivot) && (left < right)){right--;}if (left != right)                  {
                        array[left] = array[right];                                                                 left++;}
     
    while ((array[left] <= pivot) && (left < right)){
                        left++;}
     if (left != right){array[right] = array[left];right--;}}
     
                array[left] = pivot;pivot = left;
                                                                                                                                                        left = leftend;
                right = rightend;
     
    if (left < pivot)
                {sort(left, pivot - 1);}
     if (right > pivot){sort(pivot + 1, right);}}
     
            public static void Main(){
                quickSort q_Sort = new quickSort();
     
                int[] array = { 4, 3, 1, 4, 6, 7, 5, 4, 32, 5, 26, 187, 8 };
                q_Sort.array = array;
                q_Sort.len = q_Sort.array.Length;
                q_Sort.QuickSort();
     
                for (int j = 0; j < q_Sort.len; j++){Console.WriteLine(q_Sort.array[j]);}
                Console.ReadKey();}}}

    Мучайтесь си диезники хреновы

    Ksyrx, 16 Сентября 2018

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

    −1

    1. 1
    https://pikabu.ru/story/bez_lokha_i_zhizn_plokha_6096016

    minusinho, 16 Августа 2018

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

    0

    1. 1
    2. 2
    http://pdrs.dp.ua/pedia/
    http://pdrs.dp.ua/blogs/lenak/

    roskomgovno, 05 Августа 2018

    Комментарии (4)
  8. Куча / Говнокод #24580

    −1

    1. 1
    2. 2
    "Java", "Python" и "C/C++" - говно.
    Факт.

    HighVoltageDick, 04 Августа 2018

    Комментарии (4)
  9. Куча / Говнокод #24511

    −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
    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
    #lang racket
    (require (for-syntax racket/syntax syntax/to-string))
    (require ffi/unsafe)
    
    (define-for-syntax *method-names*
      ; Given I have hello, one and two methods in my shared lib
      (list "hello"
            "one"
            "two"
            ))
    
    (define-syntax (load-ffi-functions stx)
      (syntax-case stx ()
        [(_ name lib ffi-func)
        (let ([elem->fn-id 
                (λ (elem-str)
                  (display elem-str)
                  (format-id 
                   stx "~a" 
                   (datum->syntax stx (string->symbol elem-str))))]
                )
          (with-syntax ([(_) 
            (elem->fn-id "one")])
            #`(begin
              (define (name)
                  (printf (string->symbol name))
                  (ffi-func name lib (_fun -> _int))
                  )
                )
            )
        )]))
    
    (define rustlib (ffi-lib "./libffitest.dylib"))
    
    (define-syntax (define-ffi-func stx)
      (syntax-case stx ()
        [(_ lib ffi-func)
         (let ([elem->fn-id 
                (λ (elem-str)
                  (format-id 
                   stx "~a" 
                   (datum->syntax stx (string->symbol elem-str))))]
                )
           (with-syntax 
             ([((method name) ...)
               (map 
                (λ (elem)
                  (list (elem->fn-id elem) elem)
                )
                *method-names*)])
             #`(begin
                 (define method
                    (ffi-func name lib (_fun -> _int))
                  )
                 ...)))]))
    
    (define-ffi-func rustlib get-ffi-obj)
    (+ (one) (two) (one))

    Когда мне показали, как это правильно сделать, я немного ох#ел.

    Desktop, 17 Июля 2018

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

    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
    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
    static void MakeSubsets(char[] subset, int position = -1)
    {
    	/*if (position == subset.Length)
    	{
    		Console.WriteLine(new string(subset));
    		return;
    	}
    	subset[position] = 'a';
    	MakeSubsets(subset, position + 1);
    	subset[position] = 'b';
    	MakeSubsets(subset, position + 1);*/
    	
    	if(subset.Length == 0)
    	{
    		Console.WriteLine();
    		return;
    	}
    	
    	if(!(subset[0] >= 'a' && subset[0] <= 'z'))
    	{
    		for(int i = 0; i < subset.Length; ++i)
    			subset[i] = 'a';
    	}
    	
    	switch(subset.Length)
    	{
    		case 1:{ position = 0; }break;
    		default:{ position = position == -1 ? subset.Length - 2 : position; }break;
    	}
    	
    	Console.WriteLine(subset);
    	
    	//if(subset.Length <= 2)
    	//{
    	
    	if(subset[subset.Length - 1] + 1 != 'd')
    	{
    		++subset[subset.Length - 1];
    		MakeSubsets(subset,position);
    	}
    	else
    	{
    		switch(subset.Length)
    		{
    			case 1:
    				{
    					return;
    				}break;
    			default:
    				{
    					for(int i = position + 1; i < subset.Length; ++i)
    					{
    						subset[i] = 'a';
    					}
    					
    					if(subset[position] + 1 != 'd')
    					{
    						++subset[position];
    						MakeSubsets(subset,position);
    						return;
    					}
    					
    					bool bChange = false;
    					
    					while(true)
    					{
    						if(position < 0)
    						{
    							break;
    						}
    						if(subset[position] + 1 != 'd')
    						{
    							++subset[position];
    							bChange = true;
    							break;
    						}
    						subset[position] = 'a';
    						--position;
    					}
    					
    					if(bChange)
    					{
    						MakeSubsets(subset,-1);
    						return;
    					}
    					else
    						return;
    					
    				}break;
    		}
    	}
    	//}
    }
    //писал не индус

    Этот код выполняет ту же вещь(возвращает все комбинации с буквами a, b, c), что и этот код:


    static void MakeSubsets(char[] subset, int position = 0)
    {
    if (position == subset.Length)
    {
    Console.WriteLine(new string(subset));
    return;
    }
    for (char neww = 'a'; neww < 'd'; neww++)
    {
    subset[position] = neww;
    MakeSubsets(subset, position + 1);
    }
    }

    Verenick, 12 Июля 2018

    Комментарии (4)
  11. Куча / Говнокод #24475

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    До чего докатился интернет.
    Вместо того, чтобы сделать запрос к какому-то сайту с минимальным
    временем отклика, мы "связываемся" с неким компом, который физически
    находится где-то за океаном, тот в свою очередь через своего америкосского
    провайдера обращается к нашему сайту, и отправляем нам результат.
    Ну не пиздец ли?

    Какой багор )))

    guestinxo, 10 Июля 2018

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