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

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

    −7

    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
    /*
    Newtoo — разработка полноценного браузерного движка с нуля в 2018?
    Так уж получилось, что в мире есть всего 4 популярных браузерных движка,
    которые настолько сложны, что сами разработчики не знают и половины их
    кодовой базы, и настолько продвинутые по технологиям, что начать их догонять —
    пустая трата времени. 
    
    А так ли это на самом деле? Мой проект создан, чтобы повторить подвиги
    современных браузерных движков и проверить, насколько ли реально создать
    достойную альтернативу крупным проектам, история которых начинается с
    девяностых годов. Мой новый движок создается с нуля, а значит его история
    начинается — сегодня.
    ...
    Те ошибки, которые были допущены на начальных стадиях разработки
    остаются в проекте до конца. Самый яркий пример этому — умные
    указатели в C++ — это еще более сложный синтаксис, большой оверхед
    при работе, создании и удалении умных указателей. Кроме того, есть
    очень много типов умных указателей и нужно знать, какой когда использовать,
    ведь у каждого есть свои сюрпризы ньюансы. Посмотрите на этот файл из
    WebKit. Когда видишь такой код, синтаксис умных указателей, пытаешься
    успокоится и дышать ровно, но такого рода код — это весь вебкит с ног до
    головы. В моем движке нет таких недостатков.
    */
    
    Node* NodeListControlled::insertAt(unsigned long index, Node* child)
    {
        // mControl == vector<Node*>
        mControl.insert(mControl.begin() + index, child);
    
        return child;
    }

    Дело Попова, Бабушкина и иже с ними живёт!

    У умных указателей оверхед большой, а вот List со вставкой за O(n) — это не недостаток, это фича.
    А ещё там NamedNodeMap с тем же линейным поиском и практически полное игнорирование
    передачи по ссылке — компилятор умный, авось, заоптимизирует как-нибудь.

    https://sohabr.net/habr/post/424881/
    https://github.com/FlightBlaze/Newtoo

    gost, 01 Октября 2018

    Комментарии (2)
  3. PHP / Говнокод #24835

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Страйкер удалил политоту, а какого хуя ты не удалил
    
    http://govnokod.ru/user/25102/codes
    http://govnokod.ru/user/21529
    http://govnokod.ru/user/21528/codes
    
    И другую гомосятину в разделе "VisualBasic"?

    Perevedi_na_PHP, 29 Сентября 2018

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

    −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
    Red [ needs: 'view ]
    
    empty: 4x4
    
    grid: random do [
        res: copy[]
        repeat i 15 [append res to string! i]
        res
    ]
    
    loop 15 [grid: next insert grid 't]
    
    grid: head grid
    
    loop 3 [grid: insert skip grid 8 'return]
    
    grid: head insert [empty-cell: base 50x50 silver ] head grid
    
    view head insert grid [
        title "15 game"
        backdrop silver
        style t: button 50x50 [
            tmp: face/offset
            i: tmp/y / face/size/y + 1
            j: tmp/x / face/size/x + 1
            if  (absolute empty/1 - i) + (absolute empty/2 - j) = 1 [
                face/offset: empty-cell/offset
                empty-cell/offset: tmp
                empty: as-pair i j
            ]
        ]
        across
    ]

    Пятнашки на RED.

    666_N33D135, 13 Августа 2018

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

    −2

    1. 1
    2. 2
    Однажды наступит день, когда очередную версию компилятора для "Java" напишут на "PHP".
    Факт.

    HighVoltageDick, 05 Августа 2018

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

    −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
    import Router from 'koa-router';
    import pmongo from 'promised-mongo';
    
    const router = new Router();
    const db = new pmongo('localhost/my-app');
    
    const dataRequired = function *(next) {
      if (typeof this.request.body['data'] === 'object') {
        yield next;
      } else {
        this.throw(400, 'Request data is required');
      }
    };

    Валидация, js-way

    https://github.com/axept/open-parse

    > Our developers have higher professional education and are experts in any of those technology

    Fike, 30 Июля 2018

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

    −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
    function inhify(guest, inho = 'inho') {
        guest = guest.replace(/[aeiou]$/ig, '');
        return guest + inho;
    }
    
    function test(guest, guestinho) {
        var res = inhify(guest);
        if (res !== guestinho) {
            console.error(`Expected ${res} to be ${guestinho}`);
        } else {
            console.log(`${guest} => ${guestinho}`);
        }
    }
    
    test('guest', 'guestinho');
    test('guesto', 'guestinho');
    test('bormand', 'bormandinho');
    test('barop', 'baropinho');
    test('anus', 'anusinho');
    test('viagra', 'viagrinho');
    test('pohui', 'pohuinho');

    guestinxo, 08 Июля 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    -define(MCGA, group_leader(whereis(user), self())). %% Makes CT great again
    
    test_foo(_Config) ->
      ?MCGA,
      ...
    
    test_bar(_Config) ->
      ?MCGA,
      ...

    Известный в узких кругах компонент-тест фреймворк "common test" (aka ct) предназначен для интерпрайза. Поэтому в нём нельзя просто взять и вывести логи в консоль, все аутпуты улетают в модные html файлы, но ни у кого не было времени читать их. Снаут прошерстила кучу форумов, где эту проблему предлагали решать чуть ли не патчингом beam файлов. Но решение куда проще.

    CHayT, 08 Июня 2018

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public function isDeleted($isDeleted = null)
    {
        $result = $this->_isDeleted;
        if ($isDeleted !== null) {
            $this->_isDeleted = $isDeleted;
        }
        return $result;
    }

    magento,core

    gasay, 07 Июня 2018

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

    −2

    1. 1
    2. 2
    https://hsto.org/webt/ho/0r/ms/ho0rms80hfva2hnwlptdhoz4ysy.png
    https://habr.com/company/rambler-co/blog/358762/

    Всё что можно, какие есть технологии и базы данных, захуярили в одну схему. Не хватает только "PHP" для полной картины.

    minusinho, 18 Мая 2018

    Комментарии (2)
  11. Python / Говнокод #24190

    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
    class Task:
    
        def set_activity( activity_method ):
            # проанализировать исходный код activity_method 
            # разделить цепочку команд на N частей
            pass
    
        def _get_parts_number():
            return N
    
        def _run_part( part_num ):
            # выполнить часть part_num
            pass
    
    
    def run(tasks):
    
        execution = True
        part_num = 0
        while execution:
            execution = False
            for task in tasks:
                if part_num < task._get_parts_number():
                    task._run_part( part_num )
                    execution = True
            part_num += 1

    Попросил коллегу реализовать concurrency многозадачность, он на питоне нагавнякал такое.

    ded_mazay, 21 Апреля 2018

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