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

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

    +3

    1. 1
    [ '\uD83D\uDC14', '\uD83E\uDD5A' ].sort()

    Unicode порешал

    https://twitter.com/aBagorn/status/1051286652663025664

    Оригинал не влез, ибо:
    Application was halted by an exception.
    Debug-mode is off.

    Elvenfighter, 17 Октября 2018

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

    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
    class MyClass
    {
    public:
    	MyClass() {};
    	MyClass(const MyClass & M1) {
    		MyClass * T = this;
    		delete this; 
    		T = new MyClass(M1);
    	}
    	~MyClass() {};
    private:
    };
    
    int main(int argc, char *argv[])
    {
    	MyClass A1;
    	MyClass *B=new MyClass(A1);
    }

    ОНО РАБОТАЕТ!...вечно правда...НО ПОЧЕМУ ЭТА ТВАРЬ РАБОТАЕТ??? какого можно удалять память... ещё не выделенную... если кто мне объяснит, я буду счастлив (ах да код появился при решении одной забавной задачки, что произойдёт с конструктором копирования при удалении указателя на свой же экземпляр класса)

    cat_code, 13 Октября 2018

    Комментарии (4)
  4. 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)
  5. 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)
  6. Куча / Говнокод #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)
  7. 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)
  8. JavaScript / Говнокод #24629

    −1

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

    minusinho, 16 Августа 2018

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

    0

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

    roskomgovno, 05 Августа 2018

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

    −1

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

    HighVoltageDick, 04 Августа 2018

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