1. Куча / Говнокод #26492

    −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
    impl<'a, F, S, D, W, O, L, Of, G, DB> BoxedDsl<'a, DB>
        for SelectStatement<F, SelectClause<S>, D, W, O, L, Of, G>
    where
        Self: AsQuery,
        DB: Backend,
        S: QueryFragment<DB> + SelectableExpression<F> + Send + 'a,
        D: QueryFragment<DB> + Send + 'a,
        W: Into<BoxedWhereClause<'a, DB>>,
        O: Into<Option<Box<dyn QueryFragment<DB> + Send + 'a>>>,
        L: QueryFragment<DB> + Send + 'a,
        Of: QueryFragment<DB> + Send + 'a,
        G: QueryFragment<DB> + Send + 'a,
    {
        type Output = BoxedSelectStatement<'a, S::SqlType, F, DB>;
    
        fn internal_into_boxed(self) -> Self::Output {
            BoxedSelectStatement::new(
                Box::new(self.select.0),
                self.from,
                Box::new(self.distinct),
                self.where_clause.into(),
                self.order.into(),
                Box::new(self.limit),
                Box::new(self.offset),
                Box::new(self.group_by),
            )
        }
    }

    https://github.com/diesel-rs/diesel/blob/master/diesel/src/query_builder/select_statement/dsl_impls.rs#L342

    Запостил: gost, 12 Марта 2020

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

    • По-моему, это какая-то хуйня, которая выглядит ничуть не лучше крестовых шаблонов.
      Ответить
      • Ну авторы явно вдохновлялись наглядностью и удобством чтения крестошаблонов... А что эта хуйня делает?
        Ответить
        • А хуй его знает, какие-то кишки ORM. Судя по папке и содержимому «internal_into_boxed» — видимо, собирает какой-то вид запроса.
          Ответить
        • Этот синтаксический мусор - это генереций бойлерплейта вида:

          SELECT TOP 1 pituh
          FROM bagor
          WHERE koko
          ORDER BY asc

          Так же, этот мусор генерирует ещё множество побочного мусора вызванного нелепостью данного недоязычка для плебеев.

          Данный мусор нельзя, в отличии от нормально языка. Если бы там было что сложнее, то пришлось бы писать Box(musor::govno(bla-bla)), когда как нормальный язык всё это может сделать сам.

          >impl<'a, F, S, D, W, O, L, Of, G, DB> BoxedDsl<'a, DB>
          Так же нужно все сигнатуры засирать этим мусором.
          В сишке никаких параметров нету. А в говнорасте дристня эта разрастётся на километры.
          В нормальном же языке это всё выводится само.
          Ответить
      • Мне вообще сначала показалось, что это «Haskell».
        Ответить
      • Как видим проблемы очевидны. Синтаксический мусор + оверхед + проблемы с кучей разных типов.
        Ответить
    • стрелочные функции в перемешку с псевдо ооп
      Именно поэтому я за РНР
      Ответить
    • > S, D, W, O, L

      Кр. - с.т.
      Ответить
    • не нравится обобщенное программирование белых людей -- пиздуйте не джаву, и пишите копипаст или ансейф каст
      Ответить
      • Животное научили очередному трюку и оно везде это пихает. Опять же ситуация в том, что это не обобщённое программирование. Тип должен быть снабжен информацией об ошибке - здесь же никакой информации нет. Любая попытка её добавить ломается, т.к. это говно не может в С++ templates, а даже если бы могло - это никак не поможет.

        Если проще. Данный синтаксический мусор - это моча в рожи сектантов. Т.е. сектанты блеяли, что у них там супер-женерики. Но как всегда обделались.
        Ответить
    • Опять мы приходим к тому о чём я уже говорил

      Что же анскильная мразь в конечном итоге родила? Она родила кода больше, чем в си, при этом в си эта мразь не использует даже define нормально, а в своём говне обмазывается.
      Так же, говно на расте состоит из тонн синтаксического мусора. Любой, кто будет такой писать/читать - идиот по определению.
      Ответить

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