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

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

    +1

    1. 1
    std::ranges::for_each(tasks, [](auto x) {x();});

    а ещё теперь не нужно писать std::begin(), std::end().
    c++ будущего.

    digitalEugene, 10 Мая 2021

    Комментарии (154)
  3. Go / Говнокод #27411

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    func getTransport(tt string) (iTransport, error) {
    	if tt == "scooter" {
    		return newElectricScooter(), nil
    	}
    	if tt == "quadcopter" {
    		return newQuadcopter(), nil
    	}
    	return nil, fmt.Errorf("Wrong type")
    }

    https://habr.com/ru/post/556512/
    > Factory Method Pattern
    > Привет, друзья. С вами Alex Versus.
    > Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
    > Сегодня расскажу про Фабричный метод.

    PolinaAksenova, 10 Мая 2021

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

    +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
    INTERRUPT_TABLE section:
    00> FF FF | . .
    02> 9F 00 | . .
    
    DATA section:
    32> 48 65 6C 6C 6F 20 77 6F | Hello.wo
    3A> 72 6C 64 21 00 00 00 00 | rld . . . . .
    42> 00 00 00 00 00 00 00 00 | . . . . . . . .
    4A> 00 00 00 00 00 00 00 00 | . . . . . . . .
    
    _START section:
    8F> 9B 00 32 00  PUSH 32
    93> 18 00 00 00      INT 0
    97> 18 00 01 00      INT 1
    9B> 94 40 01 00    ADD %B       1
    
    EXIT interrupt:
    9F> 81 40 16 E8   MOV %B       E816
    A3> 20 00 00 00     RET
    
    
    RUNFLOW:
    8F> 9B 00 32 00  PUSH 32
    93> 18 00 00 00      INT 0          DEBUG OUTPUT: Hello world!
    97> 18 00 01 00      INT 1
    9F> 81 40 16 E8   MOV %B       E816
    A3> 20 00 00 00     RET
    9B> 94 40 01 00    ADD %B       1
    HALT SEQUENCE REACHED: 0xE817

    Закодил свою виртуальную машину и ассемблер под неё.
    Заспидранил Hello world за неделю.
    https://pastebin.com/NmLEuGMU

    digitalEugene, 08 Мая 2021

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    vector<int> res;
    ...
    for (int i = 0; i < res.size(); i++) {
        printf("%d%c", res[i], " \n"[i + 1 == res.size()]);
    }

    Решил вспомнить как олимпиадные задачки решать.

    3_dar, 07 Мая 2021

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    %% Generates a Normal-distributed random variable using Box-Muller method
    %% from: https://github.com/basho/basho_stats/blob/develop/src/basho_stats_rv.erl
    -spec rnd_normal(integer(), integer()) -> non_neg_integer().
    rnd_normal(Mean, Sigma) ->
      Rv1 = random:uniform(),
      Rv2 = random:uniform(),
      Rho = math:sqrt(-2 * math:log(1-Rv2)),
      abs(trunc(Rho * math:cos(2 * math:pi() * Rv1) * Sigma + Mean)).

    Это норма.

    CHayT, 07 Мая 2021

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

    +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
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    // Define the module
    define(function(require) {
      // Require empty list error
      var EmptyListError = require('../errors/property_errors').EmptyListError;
    
      // Character-rank list class
      function WeightedList(/* ...keys */) {
        this._total = 0;
        this._generateList.apply(this, arguments);
      }
    
      WeightedList.prototype._generateList = function() {
        var collection;
        if (typeof arguments[0] == 'object') {
          collection = arguments[0];
        } else {
          collection = arguments;
        }
    
    
        for (var i = 0; i < collection.length; i++) {
          this[collection[i]] = this[collection[i]] === undefined ? 1 : this[collection[i]] + 1;
          this._total++;
        }
      }
    
      WeightedList.prototype.getRandomKey = function() {
        if (this._total < 1)
          throw new EmptyListError();
    
        var num = Math.random();
        var lowerBound = 0;
    
        var keys = Object.keys(this);
        for (var i = 0; i < keys.length; i++) {
          if (keys[i] != "_total") {
            if (num < lowerBound + this[keys[i]] / this._total) {
              return keys[i];
            }
            lowerBound += this[keys[i]] / this._total;
          }
        }
    
        return keys[keys.length - 1];
      };
    
      WeightedList.prototype.increaseRank = function(key) {
        if (key !== undefined && key != "_total") {
          if (this[key] !== undefined) {
            this[key]++;
          } else {
            this[key] = 1;
          }
    
          this._total++;
        }
      };
    
      WeightedList.prototype.clearRanks = function() {
        var keys = Object.keys(this);
        for (var i = 0; i < keys.length; i++) {
          if (keys[i] != "_total") {
            this._total -= this[keys[i]] - 1;
            this[keys[i]] = 1;
          }
        }
      };
    
      return WeightedList;
    });

    Вот почему я за четкое разделение объектов/структур и хэшей (ассоциативных массивов).

    JaneBurt, 07 Мая 2021

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

    +1

    1. 1
    2. 2
    3. 3
    if req.Lang != "" {
    	req.Lang = "EN"
    }

    Я сказал английский!

    [Поставленная задача: если пришёл запрос без поля, поставить значение по умолчанию]

    anon007, 06 Мая 2021

    Комментарии (20)
  9. Python / Говнокод #27387

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    def main():
        pipe(int(input('Введите неотрицательное целое число: ')),   
             lambda n: (n, reduce(lambda x, y: x * y, range(1, n + 1))),   
             lambda tup: print(f'Факториал числа {tup[0]} равняется {tup[1]}'))

    Из https://habr.com/ru/post/555370/ (Функциональное ядро на Python).

    PolinaAksenova, 01 Мая 2021

    Комментарии (13)
  10. JavaScript / Говнокод #27386

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function main() {    
    	(function () {
    		print("Hello World!");
    	})();
    }

    а ваш С компилятор может так говнокодить? а мой компилятор может :)

    ASD_77, 30 Апреля 2021

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

    +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
    var proto = $new(null);
    proto.foo = function() { 
      $print(this.msg) 
    }
    
    var o = $new(null);
    o.msg = "hello";
    $objsetproto(o,proto);
    o.foo(); // print "hello"
    
    $objsetproto(o,null); // remove proto
    o.foo(); // exception

    Давайте писать ня Neko!
    https://nekovm.org

    PolinaAksenova, 29 Апреля 2021

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