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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <div th:replace="fragments/block/main/main_block1 :: block"></div>
    <div th:replace="fragments/block/main/main_block2 :: block"></div>
    <div th:replace="fragments/block/main/main_block3 :: block"></div>
    <div th:replace="fragments/block/main/main_block4 :: block"></div>
    <div th:replace="fragments/block/main/main_block5 :: block"></div>
    <div th:replace="fragments/block/main/main_block6 :: block"></div>
    <div th:replace="fragments/block/main/main_block7 :: block"></div>

    Влад "Антикоммит", ты надоел

    Запостил: RaZIeL, 03 Октября 2017

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

    • Сливаешь негатив на коллегу?
      Ответить
      • Ну а кто в здравом уме и твердой памяти будет так называть? Причем весь код такой
        Ответить
    • Неймспейсы в HTML?
      Ответить
    • <?php for ($i = 1; $i <= 7; $i++) { ?>
          <div th:replace="fragments/block/main/main_block<?php echo $i; ?> :: block"></div>
      <?php } ?>

      /fixed
      Ответить
      • Отлично, из большой кучи сделал маленькую кучку
        Ответить
        • Ты чо, for -- говнокод. fix:
          <?php
              $blocks = [1, 2, 3, 4, 5, 6, 7];
              foreach($blocks as $block) { ?>
                  <div th:replace="fragments/block/main/main_block<?= $block; ?> :: block"></div>
          <?php } ?>
          Ответить
          • Не PHP-way. Вот как надо:
            <?
            require_once 'init.php';
            
            ini_set('max_execution_time', '0');
            ini_set('memory_limit', '-1');
            
            realRenderBlocks();
            
            function realRenderBlocks()
            {
            	$min_block = @$_GET['min_block'];
            	$max_block = @$_GET['max_block'];
            	ob_start();
            	echo '$blocks = array(';
            	for ($i = $min_block; $i <= $max_block; $i++) {
            		echo $i;
            		if ($i != $max_block) {
            			echo ', ';
            		}
            	}
            	echo ');';
            	eval(@ob_get_clean());
            	renderBlocks($blocks);
            }
            
            function renderBlocks($blocks)
            {
            	foreach($blocks as $block) {
            		?><div th:replace="fragments/block/main/main_block<? echo @$block; ?> :: block"></div>
            <?
            	}
            }
            ?>
            Ответить
            • Молодец, красиво получилось.
              Ответить
            • Я тут немного перепесал
              function realRenderBlocks()
              {
              	$min_block = @$_GET['min_block'];
              	$max_block = @$_GET['max_block'];
              	$blocks = $min_block && $max_block ?  eval("range($min_block, $max_block)") : [];
              	renderBlocks($blocks);
              }
              Ответить
          • Проблема не в цикле. Проблема в названиях. Желаю рака всем тем, кто пишет не самодокументируемый код, а такое дерьмо. И если в шаблонах это еще хоть как-то терпимо (нет), то за высеры в css и js хочется убить (а уж про серверную часть вообще помолчим)
            Ответить
            • самодокументируемый код миф
              Ответить
              • Может и миф, но это не повод переменную, которую можно было хотя бы, например, price обозвать, называть x. Да и price дерьмовое название, но ты хоть чуть-чуть понимаешь, зачем она нужна. В отличии от х
                Ответить
                • Чувак, ты реально крэйзи.
                  Ответить
                  • Уточню, что речь идет не о примерах из книги, не об абстрактном коде от препода и не о персональной разработке. Я говорю о корпоративной. А разработка в компании подразумевает работу в команде. И писать нечитаемый код - это мерзость. Не надо так.

                    Давать нормальные имена переменным - это такой корпоративный этикет.

                    Да и попробуй сам вспомни через месяц, что такое page_3_block_7_row_14, который используется в 15 местах в различных страницах.
                    Ответить
                    • Ты так смешно и серьезно одновременно рассказываешь взрослым людям что улицу надо переходить на зеленый сигнал светофора, что я начинаю думать что тебе 13 лет
                      Ответить
                • То ли дело
                  public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor

                  https://github.com/eclipse/org.aspectj/blob/master/org.aspectj.matcher/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGene ricOrParameterizedTypePatternMatchingStu ffAnywhereVisitor.java
                  Коммерчески эффективно и энтерпрайзно, не то что какой-то ебучий price, хз вообще, что за он и нахуя.
                  Ответить
                  • имена вообще доставляют
                    boolean ohYesItHas = false;
                    public boolean wellHasItThen/*?*/() {
                       return ohYesItHas;
                    }
                    Ответить
                  • То ли дело
                    UndoRedoSubTabWrapperMicroRolrollerController
                    Ответить
                    • В AppKit была константа NSAccessibilityLayoutPointForScreenPoint ParameterizedAttribute
                      https://developer.apple.com/documentation/appkit/nsaccessibilitylayoutpointforscreenpoint parameterizedattribute?language=objc
                      Ответить
                      • BTW, зачем вы пробелы в ссылки вставляете?
                        Ответить
                        • Движок ГК сам вставляет, если слово длиннее 40 символов.
                          Ответить
                  • Хм, ну гиперболизация - тоже не найс. Но если выбирать между page_23_block_17_row_21 и MainPageWithVideoAutoPlayAndClientsListW ithPhotoGalleryContainer, то я предпочту 2-е
                    Ответить
    • Удивляюсь, неужели тут так много "труъ" разработчиков, которые не понимают проблему говенного названия переменных?

      Не понимают, что с названиями в стиле textbox1 забываешь их назначение через неделю, а для твоих коллег - это вообще дремучий лес. Что подобный бред затягивает любую разработку в разы, а читаемость кода снижается.

      Я думал это основы, которые многие понимают еще на первом курсе
      Ответить
      • И только разработку твоего ануса этот бред в разы не затянет...
        Ответить
      • Бля, что ты докопался? Тут кто-то утверждал обратное?
        Ответить
        • Ну вот я, например, считаю, что переменные надо называть a_1, а функции f, _f, __f и myFunction();
          Ответить
          • То ли дело Хацкель, там все просто используют
            x, x', x'', x''', ..., xs, xs', xs'', xs''', ..., s, t, a, b, ...
            самое смешное, что это правда
            Ответить
            • Толи дело WCT, там все просто используют
              A, B, C, D, E, F, G, H, I, J, K, L, M, N, P, O
              Ответить
              • Нужен WCT.Haskell
                A, B', C'', D''', E'''', F''''', G'''''', H''''''', I, Js, Ks', Ls'', Ms''', Ns'''', Ps''''', Os''''''
                Ответить
              • > там все

                Вот тут кроется основное отличие: про хаскель можно сказать, что он не особо популярен (десятки? тысяч? программистов хоть что-то пишут на нём, даже кто-то в прод рискует катить).
                WCT же нафиг никому не всрался кроме одного обдолбыша.
                Но формально всё верно, в WCT ВСЕ = {один укурыш} про используют какие-то там буквы.
                Ответить
                • # кроме одного обдолбыша

                  Раньше было два, теперь 0
                  Ответить
                  • > теперь 0
                    Отлично, теперь про пользователей WCT можно доказать любое утверждение. Например, "Все программисты, использующие WCT, являются обладателями Нобелевской премии."
                    Ответить
                    • "Все программисты, использующие WCT - это непустое множество."
                      Ответить
                      • Включи типизацию. Твоё утверждение не о пользователях WCT, а о множестве пользователей WCT.
                        Ответить
              • А мне нравится WCT.

                Я никогда не понимал как правильно называется число "0x10".
                Десять?
                Одинноль?
                Семнадцать?

                с WCT такой проблемы нет.
                Ответить
            • > x, xs, s, t
              Учёные, что с них взять. Как в формулах однобуквенные названия юзали, так и в программах продолжают.
              Ответить
              • > что с них взять
                Звучит как упрёк. А мне кажется, всё нормально. Одно дело, когда у тебя в обычной программе какая-то хитрая логика над объектами из чуждой тебе предметной области, и надо по-кэповски писать "длина" и "скоростьОркестра", и совершенно другое, когда предметная область тебе знакома, но хитрость не в логике, а в математике, и формулы уже написаны наглядным компактным языком. Ну и все эти x, s, t научно выверены в отличие от form1, i22, xxx.
                // стандартное программирование: пишем сочинение на английском языке
                car.move(city.center, Earth::get(10.2052432, 35.80004837));
                me.shift(-3.85, 4, 0);
                
                // наука: всё уже выверено в формулах, осталось сделать, чтобы они смотрелись
                x = r*t'*t' + z*x*b + 14*k*k;
                d = m*A.T()*m + B*x;

                А если в формулах именовать сущности словами, на одну строку влезет всего пара опереций. Так только школьную физику удастся описать.
                Ответить

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