За последние 24 часа нас посетили 16739 программистов и 1621 робот. Сейчас ищут 1710 программистов ...

Профессиональная оценка кода

Тема в разделе "Прочие вопросы по PHP", создана пользователем Newto, 3 июл 2018.

?

Это нормальный код?

  1. Хороший код

    0 голосов
    0,0%
  2. Нормальный код

    1 голосов
    12,5%
  3. Сойдет, главное что бы работало

    3 голосов
    37,5%
  4. Плохой код

    2 голосов
    25,0%
  5. Ужасный код

    2 голосов
    25,0%
  1. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Приветствую, дамы и господа. Собственно вопрос мой звучит так: известны ли вам какие-то проверенные, авторитетные люди/сервисы, с помощью которых можно было бы осуществить платный/бесплатный анализ кода на предмет его качества(читабельность, стандарты и т.п.). Дело в том, что сейчас я работаю в компании, в которой ведущий программист пишет вот так(код одного метода из класса, просто ради примера, в прикрепленном файле. Не пытайтесь понять что делает этот метод, просто посмотрите КАК он написан).

    По моему мнению так писать, мягко говоря, недопустимо. Но у "ведущего" программиста такие мысли отсутствуют. Вот мне бы хотелось найти таких людей, о которых я писал выше, что сказали бы мне: это я такой "придирчивый" и все с таким кодом в порядке или, все таки, я прав и это пипец полный? Человек я в компании новый, поэтому подобное мнение высказать основываясь лишь на собственном мнении пока было бы не слишком разумно.
     

    Вложения:

    • func.txt
      Размер файла:
      12 КБ
      Просмотров:
      19
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну вообще есть такие сервисы
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
  4. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Такие ссылочки тут не помогут. Т.к. не важно что я сам думаю и/или знаю по этому поводу, а программисту, написавшему то, что я скинул в файле, это показывать просто смысла не имеет.
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Что значит хорошо или плохо? Если тебя интересуют стандарты ссылки на них я скинул. Лично я использую стандарты которые предлагает phpstorm. А код вне mvc вообще не признаю.
     
  6. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Меня не интересуют. Я сам им следую. Меня интересует мнение о коде приведенном в файле, а так же советы и ссылки к кому обратиться за тем, о чем я писал выше. Я тоже не признаю код вне MVC. Но работать приходится с человеком(в его подчинении), который пишет вот ТАК как есть в файле. Мне нужно как-то донести до моего руководства, не имеющего отношения к программированию, суть этой ситуации.
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Что именно тебе не нравится? Ну прояви инициативу. Возьми какой то фрейморк и перепиши все следуя его стандартам. Придешь покажешь может печеньку дадут.
     
  8. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Простите, но вы не вникли в суть моего вопроса и мы отдаляемся от темы. Переписывать что либо "так как надо" не имеет смысла, т.к. для руководства "так как надо" эквивалентно "работает и хорошо". Мне же, я повторюсь, нужны профессиональные оценки приведенного выше кода. Считаете себя профессионалом — оцените, покритикуйте или похвалите. Не считаете, но знаете к кому обратиться — подскажите.
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Что именно тебя в коде не устраивает? Работает и хорошо. На все есть свои причины. У всего своя история.
     
  10. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Спасибо, пункт "Сойдет, главное что бы работало" есть в голосовании к этой теме.
     
  11. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    @Newto на этом форуме сложно получить норм ответ, много любителей пофлудить)
    1.
    PHP:
    1.         if ($this->currency == 0)
    2.         {
    3.             $currency = " ₽";
    4.             $nn = 0;
    5.         }
    6.         if ($this->currency == 1)
    7.         {
    8.             $currency = " €";
    9.             $nn = 0;
    10.         }
    11.         if ($this->currency == 2)
    12.         {
    13.             $currency = " $";
    14.             $nn = 0;
    15.         }
    16.         if ($this->currency == 3)
    17.         {
    18.             $currency = " £";
    19.             $nn = 0;
    20.         }
    Есть switch/case для этих целей.
    2.
    PHP:
    1. if (0 && $this->shop_version == 2)
    Что тут делает 0?

    3. Код от html не отделен. Так на взгляд сложно сказать где еще косяки.
     
  12. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Этот код говно.
    Хотелось бы объяснить свою позицию, но с каждой строчкой пропадает желание.
    В целом, этот код не совсем конченая параша, но автор недавно поднял уровень из неё.
    И в принципе, бывают моменты когда такой код оправдываем (на скорую руку, заказчик обезьяна, и т.д. и т.п.), истребуйте ещё исходничков.
     
  13. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @smitt Там еще много всего за комментировано. Следовательно это этап разработки. Каким был код до этого и есть ли целесообразность все переписывать никто не знает. Это не ответы ни о чем а вопрос ни о чем.
     
  14. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    Да что тут сказать. Код говно, код нечитаем, код простой, разобраться можно будет любому последователю, но глаза он вырвет. Про свичи не слышал, шаблоны в коде - это капец. Да и хтмл-комментарии не есть гуд. Названия переменных жопа (отчасти. Так, полжопки).
    Вердикт один, если это "ведущий" программист и он реально написал этот код, а не достался чисто по наследству, то до джуниора это не дотягивает 9это из того, что я увидел. Ситуация в общем может оказаться другой в корне, разумеется)
     
  15. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Благодарю за попытку разбора этого кода. Но, правда, не стоит. Я же не зверь какой-нибудь, поберегите свои глаза :)
     
  16. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    @nospiou просьба была дать оценку, а не начать фантазировать. Ты с 3 часов мозг паришь вместо того что бы посмотреть 5 минут и сказать что то полезное. Без обид, тут многие грешат.
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Полезное это ссылка на стандарты и mvc подход об этом я написал еще в первом сообщении.
     
  18. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Код там весь такой. Человек его пишет спокойно, размеренно и не торопясь. Не видя ничего в нем... отталкивающего.
     
  19. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    AlexProg нравится это.
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    function cat_list_draw_v1()
    название говно

    PHP:
    1. if ($this->currency == 0)
    2.         {
    3.             $currency = " ₽";
    4.             $nn = 0;
    5.         }
    6.         if ($this->currency == 1)
    7.         {
    8.             $currency = " €";
    9.             $nn = 0;
    10.         }
    11.         if ($this->currency == 2)
    12.         {
    13.             $currency = " $";
    14.             $nn = 0;
    15.         }
    16.         if ($this->currency == 3)
    17.         {
    18.             $currency = " £";
    19.             $nn = 0;
    20.         }
    заменить на switch или на массив вообще
    пример с массивом
    PHP:
    1. $currency = $arr[$this->currency] ?? 0;
    тем самым в одну строчку сразу весь код ужимается и читается хорошо, позволяя задать все значения где угодно, хоть в конфиге, хоть строчкой выше.


    PHP:
    1.   $nn = 0;
    нн везде равна нулю - выносить ДО ифов
    будет одна строка, а не четыре



    PHP:
    1. $currency .= $this->price_add_text;
    обращение к неопределённой переменной в случае, если ни одно значение в ифах не сработало (например если в $this->currency сидит 4)
    задавать дефолтные значения нужно заранее


    PHP:
    1. $empty_pic = "<img class='product__img_table' src='" . NO_FOTO_SMALL_URL . "' />";
    константа видна глобально
    есть ли в этом смысл? как часто и где ещё используется эта константа? Может лучше заменить на обращение к конфигу?


    PHP:
    1.         $no_pic_prop1 = $no_pic_prop2 = $no_pic_prop3 = $no_pic_prop4 = "";
    2.         $no_pic_price1 = $no_pic_href = "";
    я так не люблю


    PHP:
    1. foreach ($this->products as $row)
    такой ебанистически длинный цикл, что пипец
    такое тело цикло нужно пихать в функцию, а уже функцию вставлять в цикл. Тогда читаться будет легко и изменения вносить легко будет.


    PHP:
    1.             /*
    2.               if ($this->shop_version == 1)
    3.               $cart = ($row['in_shop'] == 1 && $row['show_price'] > 0 && $row['price_usd'] > 0 ) ? "<a title='В корзину' class='cart' href='/cart.php?type=add&id=$product_id'>В корзину</a>" : "";
    4.               if ($this->shop_version == 2)
    5.               {
    6.               $cart = "<div class='add_to_cart_line'><p class='descr'>Кол-во:</p>
    7.               <input class='count' id='c_{$row['id']}' name='c_$product_id' value='1' type='text'>
    8.               <input onclick='add_to_cart($product_id);'type='button' value='Добавить'>
    9.               </div>
    10.               ";
    11.               //$cart = ($row['in_shop'] == 1 ) ? "<a title='В корзину' class='cart' href='/cart.php?type=add&id=$product_id'>В корзину</a>" : "";
    12.               }
    13.              */
    научись использовать систему управления версиями
    не придется сохранять полэкрана старого кода, про который ты не вспомнишь через месяц зачем он тут и страшно его удалять.
    удаляй, если что - откатишься или найдешь в истории версий


    PHP:
    1.                 if ($price != "" && $cl == "cost-1")
    2.                     $price = "Цена с НДС: $price";
    3.                 if ($price != "")
    4.                     $price = "<p class='price_table" . $no_pic_price1 . "'>$price</p>";
    5.                 if ($price_opt != "")
    6.                     $price_opt = "<p class='price_table" . $no_pic_price1 . "'>$price_opt</p>";
    7.                 if ($price_sm_opt != "")
    8.                     $price_sm_opt = "<p class='price_table" . $no_pic_price1 . "'>$price_sm_opt</p>";
    не дай божэ тебе в четыре часа ночи добавить тут вторую строчку в какой-то из этих ифов, или удалить одну из них
    не делай так
    юзай скобочки ВСЕГДА

    пока всё.
     
    AlexProg нравится это.
  21. Newto

    Newto Новичок

    С нами с:
    3 июл 2018
    Сообщения:
    8
    Симпатии:
    0
    Вы это кому? Слаба Богу, это не мой код :))
     
  22. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @igordata Ты когда свой сайт поправишь? Он у меня все еще не запускается.
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  24. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    С рефератами. Я же писал. Проблема с сертификатами для поддоменов. На маке все браузеры кроме оперы.
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну тогда я к тому, чей это код.
    тянет на подмастерье джуниора
    --- Добавлено ---
    можешь плс в личку ещё раз отписать
    я не понимаю, что там конкретно и какой домен