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

    +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
    .server-config
      .component
        .title(translate) protsessor
        .value(ng-if="!server.custom")
          | {{ server.cpu || '—' }}
        .value(ng-if="server.custom")
          span(ng-if="server.custom.cpu && server.custom.cpu.length && server.custom.cpu[0].count > 1")
            | {{ server.custom.cpu[0].count + ' x ' }}
          span(ng-if="server.custom.cpu && server.custom.cpu.length")
            | {{ server.custom.cpu[0].name }}
          span(ng-if="!server.custom.cpu || !server.custom.cpu.length")
            | —
    
      .component
        .title(translate) pamyat
        .value(ng-if="!server.custom")
          | {{ server.memory || '—' }}
        .value(ng-if="server.custom")
          span(ng-if="server.custom.ram && server.custom.ram.length")
            span(ng-if="server.custom.ram[0].count > 1")
              | {{ +server.custom.ram[0].name.split(' ')[0].replace('GB', '') * server.custom.ram[0].count + ' GB — ' }}
            span(ng-if="server.custom.ram[0].count > 1")
              | {{ server.custom.ram[0].count + ' x ' }}
            span
              | {{ server.custom.ram[0].name }}
          span(ng-if="!server.custom.ram || !server.custom.ram.length")
            | —
    
      .component
        .title(translate) disk
        .value(ng-if="!server.custom")
          | {{ server.hdd || '—' }}
        .value(ng-if="server.custom.disk && server.custom.disk.length")
          .line(ng-repeat="hdd in server.custom.disk")
            span(ng-if="hdd.count > 1") {{ hdd.count + ' x ' }}
            span {{ hdd.name }}
        .value(ng-if="server.custom && (!server.custom.disk || !server.custom.disk.length)")
          | —
    
      .component(ng-if="server.custom")
        .title(translate) Platform
        .value(ng-if="server.custom.case && server.custom.case.length")
          | {{ server.custom.case[0].name }}
        .value(ng-if="server.custom && (!server.custom.case || !server.custom.case.length)")
          | —
    
      .component(ng-if="server.custom")
        .title(translate) Motherboard
        .value(ng-if="server.custom.motherboard && server.custom.motherboard.length")
          | {{ server.custom.motherboard[0].name }}
        .value(ng-if="server.custom && (!server.custom.motherboard || !server.custom.motherboard.length)")
          | —
    
      .component(ng-if="server.custom.pcie && server.custom.pcie.length")
        .title(translate) pcie
        .value
          .line(ng-repeat="pcie in server.custom.pcie")
            span(ng-if="pcie.count > 1") {{ pcie.count + ' x ' }}
            span {{ pcie.name }}

    Код написан на Pug, представляет из себя фрагмент шаблона AngularJS, предназначенный для отображения конфигурации сервера. Данный код, через копирование-вставку, был заботливо размещен в нескольких файлах, иногда претерпевая незначительные изменения. Здесь публикую отчищенный от всего лишнего и сильно отформатированный вариант, дабы проще было насладиться полетом фантазии автора, в исходном виде весь этот код - одно сплошное месиво.

    Запостил: maksim_ovcharik, 21 Ноября 2019

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

    • >protsessor
      это эстонский?

      Какой чудесный язык Pug, всем нам не хватало еще одного шаблонизатора, тем более с таким простым и пнятным синтаксисом

      Легкая смесь бизнес-логики на джаваскрипте (я же верно понимаю, что выражения написанны именно на нем, и pug это такой как бы препроцессор?) с построением UI наверняка удобно тестируется и легко поддерживается

      Кажется, по удобству посрамлён даже PHP

      Особо радуют куски кода
      line(ng-repeat="hdd in server.custom.disk")
              span(ng-if="hdd.count > 1") {{ hdd.count + ' x ' }}

      .line(ng-repeat="pcie in server.custom.pcie")
              span(ng-if="pcie.count > 1") {{ pcie.count + ' x ' }}


      нужно еще добавить
      .line(ng-repeat="mouse in server.custom.mouse")
              span(ng-if="pcie.mouse > 1") {{ mouse.count + ' x ' }}


      .line(ng-repeat="keyboard in server.keyboard.mouse")
              span(ng-if="keyboard.mouse > 1") {{keyboard.count + ' x ' }}
      Ответить
      • Ничего не понял. Переведи на «Парсер».
        Ответить
        • <hr/>
          <? foreach $mouse in $server->custom->mouse {
            if ($mouse->count > 0) {echo $mouse->count." x "} 
          }
          Ответить
          • Мысль понятна. Я почему-то вспомнил этот ужас:
            https://www.parser.ru/docs/lang/?lesson2.htm
            Ответить
            • @body_main[]
              $now[^date::now[]]
              <b><h1>НОВОСТИ</h1></b>
              $day(^if(def $form:day){
                 $form:day
              }{
                 $now.day
              })
              ^connect[$connect_string]{
                 $news[^table::sql{select
                     date, header, body 
                 from
                    news 
                 where
                    date='${now.year}-${now.month}-$day'
                 }]
                 ^if($news){
                    ^news.menu{
                       <b>$news.date - $news.header</b><br />
                       ^untaint{$news.body}<br />
                    }[<br />]
                 }{
                    За указанный период новостей не найдено.
                 }
              }


              язык моей мечты
              Ответить
      • Причём энджи - это вообще атрибуты от angular'а... Да и фигурные скобочки - тоже.
        Ответить
    • Напоминает попытки использования шаблонизатора вместо языка программирования.
      Ответить
    • Ой, вы меня наPugали.
      Ответить
    • Это что за диалект «PHP»?
      Ответить
      • Кому-то треугольные скобки не понравились. И он сделал принципиально новый язык разметки.
        Ответить
        • Так это всегда так. Если ты используешь треугольные скобки то ты -- тормознутое говно из 2000х. А если фигурные, то ты молодой, динамично развивающийся хипстер на современных технологиях.

          В пиздончике, например, шаблонизаторы с треугольных скобочек переделали на фигурные именно по этой причине.
          Ответить
          • cat {{{html}}}{{{body}}}В ПЗД ПРГРМРВОНЕ{{{/body}}}{{{/html}}} | sed s/{{{\(.*\)}}}/<\1>/g
            Ответить
        • Напоминает haml. Только там больше всяких разных закорюк.
          Ответить

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