1. JavaScript / Говнокод #21173

    −50

    1. 1
    False: function(){return false;},

    bitrix/js/main/utils.js:295

    Запостил: maxyc, 12 Сентября 2016

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

    • > битрикс
      Надо было постить в пэхапэ.
      Ответить
    • ☑ Добавить поддержку модной функциональной парадигмы
      Ответить
      • Неправильно, не по функциональному они добавили. Нужно так:
        If : function(cnd, _then, _else) {cnd(_then, _else);},
        False : function(_then, _else) {_else();},
        True : function(_then, _else) {_then();},
        Ответить
        • > Неправильно, не по функциональному они добавили

          Похапешники же, добавили как сумели. Добавлять нумералы Чёрча нерационально.
          Ответить
        • Низкий сорт, нечистая работа, надо чтоб гомоиконы point-free:
          fufufufu~~~fufu~~

          http://esolangs.org/wiki/QFL
          Ответить
          • О, ты таки оформил свой язык погромирования в репу, и даже статью написал.
            Nice work, k32.
            Ответить
            • Компилятор в JS осталось написать, тогда точно взлетит.
              Ответить
      • Как в гугле? На плюсах пишешь? Там одна большая аркадия, или все в отдельных репозиториях живут? Весь код такой же стремный, как grpc?
        Ответить
        • Хорошо. Да. Да. В кишки grpc особо не вглядывался, что именно там стрёмное?
          Ответить
          • > Да. Да.
            )) Ты специально на вопрос про репозиторий не ответил?

            > что именно там стрёмное
            Какие-то войдзвездочки и сырые указатели вперемешку с шаредпойнтерами. Неприятно выглядит.
            Ответить
            • > Ты специально на вопрос про репозиторий не ответил?
              Я ответил. Да, одна большая.

              > Какие-то войдзвездочки и сырые указатели вперемешку с шаредпойнтерами. Неприятно выглядит.

              Пф, ядро же сишное, сырые указатели -- вещь вполне ожидаемая. Опять же, если чем-то не владеешь, то использовать сырой указатель -- это вполне приемлимо, даже по последним плюсовым гайдлайнам.
              Ответить
              • По самым последним надо использовать observer_ptr.
                Ответить
                • > По самым последним надо использовать observer_ptr.

                  Эти гайдлайны настолько последние, что их ещё даже нет в GSL

                  The names are mostly ISO standard-library style (lower case and underscore):

                  - T* // The T* is not an owner, may be null; assumed to be pointing to a single element.
                  - T& // The T& is not an owner and can never be a "null reference"; references are always bound to objects.

                  The "raw-pointer" notation (e.g. int*) is assumed to have its most common meaning; that is, a pointer points to an object, but does not own it. Owners should be converted to resource handles (e.g., unique_ptr or vector<T>) or marked owner<T*>
                  https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Ownership%20pointers
                  Вероятно, реализация observer_ptr будет примерно такая:
                  template <class T>
                  using observer_ptr = T*;
                  Ответить
          • Собственно, всё это есть в интернете
            http://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext
            https://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/
            http://google-engtools.blogspot.ch/2011/08/build-in-cloud-how-build-system-works.html
            https://www.bazel.io/
            Ответить

    Добавить комментарий