За последние 24 часа нас посетили 22611 программистов и 1016 роботов. Сейчас ищут 679 программистов ...

Сервис и алгоритм оценки качества кода.

Тема в разделе "Решения, алгоритмы", создана пользователем ExpJ, 6 июн 2011.

  1. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Всем привет!

    Прошу оценить "алгоритм оценки качества PHP кода". Статический анализатор вычисляет около сотни различных характеристик кода. На их основе вычисляется "индекс качества исходника".

    Работу алгоритма можно посмотреть здесь http://expertjournal.ru/source
    Добавить исходник можно здесь http://expertjournal.ru/source/new

    Т.е. добавляете исходник, получаете индекс его качества и комментарии анализатора кода. expertjournal.ru оформлен с виде социальной сети для программистов.
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Не смешите мои яйца.
     
  3. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Какие веселые у вас яйца. Веселее правому, или левому?

     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    ExpJ
    Хочешь всё знать о моих яйцах! Извращенец.
     
  5. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Модераторы, скорее стерайте все это!!!
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ладно, ладно... Ты бы описал чего там ваш супер-пупер алгоритм делает. А то дёшевенько так отрекламировался и всё. Пиши больше и интересней...
    Вот. Напиши какие.
    Вот ещё. Какой алгоритм вычисления этого индекса...

    Ну ты понял.
     
  7. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    Файл 'phpinfo.php' имеет недопустимое расширение

    Файл 'phpinfo.txt' имеет недопустимое расширение

    УПС, как я ошиблась...

    Произошла внутренняя ошибка системы.
    Администрации ExpertJournal.Ru автоматически отправлено письмо с сообщением ошибки и дампом состояния ...
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Аналогично, даже .phps не принял.
    Качество кода expertjournal определено - говнокод x)
     
  9. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Все правильно, можно закачивать только архивы. (zip, rar, tar.gz)

     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Это типа людишки оценивают качество, а не программа? :(
     
  11. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Вычисляются характеристики кода (примеры характеристик см http://expertjournal.ru/article/view/id/12, кроме них вычисляется: плотность классов, методов, исключений ...), они сравниваются с эталонными значениями. Чем ближе к эталону тем выше "индекс качества кода".

    Можно добавить и новую собственную собственную характеристику кода, она будет добавлена к анализатору.

    Со временем алгоритм будет совершенствоваться. Но пока на качественном уровне он вполне нормально работает.

    PS. При добавлении кодов просьба писать более осмысленные названия и описания.
     
  12. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Качества кода оценивает и внутренний механизм оценки и люди с помощью голосования. Если вы добавить код, то система сразу оценит его качества. Потом его индекс качества может быть подкорректировать экспертами.

     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Ппц.
    http://www.php.ru/forum/viewtopic.php?t ... ght=usbook (только engine.php)
    http://expertjournal.ru/source/response/id/738
    Оценка: 23 из 100.
    Я мог представить что угодно, но только не такой маразм.
    Два?
    ООП наш фетиш.
    Дальше особенно забавные замечания, ввиду того, ясно что ООП нет:
    Вот это перл, переменные (!!!). Про константы эксперты не в курсе.
    Возможно??? Потрясающий критерий.
    И эпик фэйл:
    Дальше уже хочется не смеяться, а плакать:
    а по-моему, микроскопические.
    Эксперт, у тебя склероз? Ты забыл, что там ООП вообще нет?
    Не склероз, маразм.
    Имеются ввиду чтоли пустые строки? Аффтар, отвечай за свои слова! Покажи две одинаковые строки!
    Склероз последней стадии. Только что сам писал же, что функции нормального размера.
    ГДЕ ХОТЬ ОДНА???

    Сервис доставил)) ТС, пеши исчо поржом.
     
  14. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Для интереса загрузил деревья.

    Так высокая или средняя? Средняя или нормальная?

    Один.

    Это хорошо или плохо?

    Один класс унаследован 3 раза.

    Для архива из четырех классов надо больше?

    Конечно часто, все переменные через нее берутся.

    Какие строки? Строки кода или строки как тип данных? Слишком длинные это сколько?

    Если я ничего не перепутал, то цепочки имеют вид типа:
    Код (Text):
    1. $this->DB->getVal();
    Даже не совсем цепочка.

    ЧО? Строки в основном потому и длинные что используются эти переменные:
    Код (Text):
    1. "select $this->leftField as lf, $this->rightField as rf, $this->levelField as lev from $this->table as tree
    2. where $pLeft<=tree.$this->leftField and $pRight>=tree.$this->rightField and $pLev=tree.$this->levelField-1 order by $this->leftField"
    Или имеются ввиду public свойства?

    А не приватных?

    Опять же какие строки? Если строки кода, то, мне кажется, что все что можно уже вынесено в отдельные методы.

    PS:
    [vs]
    У меня оценка больше - 38.
     
  15. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Надо загрузить чтото из "библиотеки" Попова. Чтото мне подсказывает, что там не менее 90-а баллов будет :) [​IMG]
    Все ж мы помним про "Рыбак рыбака..." )))

    По делу - нет в пхп единого стандарта, который бы с точностью в 100% определял бы когда нужно ооп юзать, а когда натив; когда одну функцию, когда другую; точно также и с различного рода конструкциями типа if|else VS switch|case. И поскольку в пхп автор кода может выбирать наиболее подходящий с ЕГО точки зрения подход - то и вот эти оцениватели кода - субьективное мнение. Не спорю, что оно, возможно, основано на наиболее общепринятых подходах и стилях, но это не орфографический словарь, который определяет четкие понятия и отклонение от них - это ошибка.
    Даже авторы "умных" книг, которые являются авторитетными (авторы) в своем промысле (пхп) иногда рекомендуют делать не так как быстрее, а так, чтобы было удобней в последующей поддержке того кода, чтобы код был человекопонятным и простым для восприятия, жертвуя 0.005 сек при генерации.
     
  16. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Я знал, что это будет эпик фейл!

    =)
     
  17. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    А что вы смеётесь? А если скажут, что от результата этого теста будет зависеть ваша ЗП в престижной компании? Может, постараетесь и напишите код "получше"? :)

    ИМХО: авторы не доделают алгоритм, уже запутались.
     
  18. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Смешные вещи - смешные.
    Такая престижная компания идёт на...
    И так говнокодим каждый день, куда уж лучше то.
     
  19. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    cys.ru и тот загнулся, хотя там алгоритм гораздо круче. Этот проект умрет не родившись.
     
  20. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Алгоритм действительно не совершенный. Вопрос его развития - это вопрос актуальности.

    От комментариев анализатора кода отказались, в некоторых случаях действительно выглядит глуповато.

    В данный момент, кроме анализатора кода есть еще и составляющая основанная на голосовании. Говнокоды получили 1 бал и справедливость восторжествовала. Так что система в целом вполне работает.
     
  21. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    Просьба исходникам давать внятные названия и описания. Исходники с названиями типа " loooool loooool " будут удаляться.
     
  22. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    И не будет НИКОГДА совершенным. Это ПСЕВДОАЛГОРИТМ. Наёбка, если хотите.
    Нет. Это вопрос глупости.

    Я, если денег дадут, за неделю сделаю сайт со своим анализатором кода. Поспамлю на форумах и получу тонну говнокода от детишек-говнокодеров... Только зачем всё это надо? Какой профит от говнокода?
     
  23. ExpJ

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

    С нами с:
    4 июн 2011
    Сообщения:
    12
    Симпатии:
    0
    От говна всегда мало толку. Ничего не мешает туда и хорошие коды добавлять. Все познается в сравнении.

    Немножко поподробнее напиши, почему ты считаешь его псевдоалгоритмом? Раз написал, что псевдоалгоритм, значит наверное сильно разберешься в разных алгоритмах и уж точно должен знать почему коды сранивать нельзя. К примеру тексты в поисковиках сравнивают, а коды почему то нельзя.
     
  24. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    ExpJ

    Идеального кода не существует.
    Просто никак.
    Вообще в природе.

    Код может быть хорош в конкретном месте в конкретной ситуации, да и то почти всегда его можно переписать по другому.

    Один и тот же код в разном контексте может быть и говнокодом, и хорошим решением.

    Так что подобный сервис бред чуть более чем полностью.
     
  25. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Задачки разные, код разный. Одну задачку можно решить множеством способов и все они будут правильными, за исключением "вырезания гланд через задний проход".

    Как я могу оценить качество кода в данном случае?! Только основываясь на собственном опыте. И это будет субъективная оценка. А если я доверяю оценивать код машине - это будет трижды субъективная оценка. Откуда мне знать насколько компетентен разработчик "программы-оценивателя"?! Откуда этой программе знать для чего предназначен код?! И так далее...

    Оценка качества кода очень субъективная вещь. Два специалиста об одном и том же коде могут отозваться абсолютно противоположно. И это нормально. Доказывать качество кода должен сам автор.

    Проблема настолько большая, что никогда вы не напишите объективный алгоритм оценки качества кода, никогда. Это, в принципе, возможно, но практически - не реально.