| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > статический анализ кода |
| Автор: dipsy 30.10.2006, 08:47 |
| Используете ли вы какие-то программы статического анализа кода? Если да - посоветуйте, пожалуйста. |
| Автор: Opik 30.10.2006, 12:45 |
| dipsy, нет |
| Автор: dipsy 30.10.2006, 13:15 |
Хм.. на RSDN сказали, что называется это именно так "статический анализ кода". В-общем, на сайте IBM видел статью, в которой рассказывалось, что есть такие утилиты, которые позволяют выявлять ошибки, слабые места кода в разных языках программирования, а в частности, - Java, С++. на rsdn я интересовался, есть ли что-то для тестирования кодов PHP. мне ответили, что есть, но ничего конкретного посоветовать не могут. |
| Автор: -=Ustas=- 30.10.2006, 14:04 | ||||
А, это.... Добавлено @ 14:14 Из ответа на rsdn
У меня на зенд студио есть этот самый анализатор, но я его ни разу не пользовал, т.к. не вижу необходимости. |
| Автор: dipsy 30.10.2006, 21:08 |
| -=Ustas=-, всё так, но только нужен не "софт предназначеный кажется для этого", а нормальный рабочий инструмент, которым кто-то уже пользуется и может дать дельный совет. прошу прощения, что пишу off topic, но это не есть мой путь - быть первооткрывателем. Потому и спрашиваю тут снова, а не довольствуюсь ответом на форуме rsdn. |
| Автор: -=Ustas=- 31.10.2006, 09:23 |
Ты зенд студио смотрел?! Там вполне рабочий инструмент. |
| Автор: dipsy 31.10.2006, 10:34 |
| У меня нет Zend Studio. (он платный, на сколько я в курсе) |
| Автор: skalex 31.10.2006, 12:31 |
| dipsy, ну так купи его! И действительно, необходимость "статистического анализа кода", в частности для PHP, не совсем понятна. |
| Автор: -=Ustas=- 31.10.2006, 13:27 |
На нашем форуме запрещено обсуждать возможности бесплатного использования платных продуктов, поэтому спроси у гугла, как использовать бесплатно платный зенд |
| Автор: IZ@TOP 31.10.2006, 15:17 |
| dipsy, акромя ZendStudio, я не видел ни одной программы для анализа PHP кода. Так что качай демо версию и гляди на возможности. Если понравится можешь купить или... офф: -=Ustas=-, эк завернул, не придерешься |
| Автор: dipsy 31.10.2006, 18:38 | ||||
Имел в виду, что стараюсь подыскивать бесплатные программы. зачем издеваться-то?
Думаю, что надо сначала посмотреть, какие рекомендации дают эти программы. Люди используют подобный софт для других языков, и мне наоборот не понятно, - чем PHP так принципиально отличается, что для него такой необходимости нет. По мне - так она точно есть. Потому как писать модули, тестировать и настраивать стили приходится одному. Потому и хочется часть работы хоть как-то автоматизировать. |
| Автор: IZ@TOP 1.11.2006, 12:41 | ||
Полнолстью поддерживаю. РНР отличается лишь тем что на нем иногда пишут люди ленивые или несведущие. Советую почитать еще про разработку по методологии TDD http://phpclub.ru/faq/wakka.php?wakka=TDD. |
| Автор: dipsy 5.11.2006, 10:54 |
читал кое-что по этой теме в книге: http://www.williamspublishing.com/Books/5-8459-0925-2.html Джордж Шлосснейгл Такой способ работы должен увеличить срок написания проекта; раз качество улучшается, значит придётся увеличивать время. |
| Автор: CyClon 5.11.2006, 18:10 |
| Анализатор кода? Выявить ошибки - это может и сам PHP, а вот найти слабые места... Думая лучше прочитать несколько серьезных книжек и не допускать понятия "слабые места" с своем код ;) Компьютер пока что не обладает IQ и полностью положиться на него нельзя, он делаешь лишь все по шаблону. |
| Автор: xolod 5.11.2006, 18:47 |
| Zend Studio — ужасно тихий ужас (мнение мое, никого переубеждать не хочу). За свои же деньги, если забыть о «бесплатном». Профайлера, отладчика и анализатора в одном лице будет вполне достаточно. Лучший (на мой взгляд) и бесплатный — xDebug (http://www.xdebug.org/). |
| Автор: dipsy 5.11.2006, 19:35 | ||
| ...ну вот, а я-то думал, что код и с ошибками будет работать. в рамках данного топика предлагаю считать: слабое место = ошибка (в логике) наверняка, какие-то ещё подобные ошибки могут быть в коде... столь же очевидные, но мне пока ещё не известные. 1) CyClon, вы знаете все всевозможные слабые места которые могут возникнуть при работе с PHP? 2) почему именно в своём коде? а если я захочу взять чужой, из-за нехватки времени, то мне и при этом не пользоваться анализатором, а разбирать самому? - так легче с нуля всё написать.
а кроме, CyClon, мысль такая: если комп показывает ошибку, значит стоит обратить внимание на это; думаю, что после того, как раза три поправишь ошибку, то больше не будет желания её допускать. и в результате качество создаваемого кода должно улучшится. полностью согласен, что книги читать необходимо, но не соглашусь с тем, что дополнительные методы диагности кода будут излишни, тем более что диагностика проводится двумя кликами мыши. вижу, что у вас другое мнение, - так я не против. Только стоит или не стоит использовать, я для себя уже решил. |
| Автор: CyClon 5.11.2006, 20:51 | ||||||
Я врятли в небольшом куске кода забуду проэкранировать полученную от юзера инфу, например. То же самое сделает Zend. Но если я напишу логически неправильный код (Пусть даже какие-то операции попутаю местами), то имхо, детище Zend и подавну не найдет это "слабое место".
Поэтому я всегда ставлю error_reporting(E_ALL), чтобы видеть все ошибки, исправлять их и более не допускать.
Ты все мои фразе прековеркиваешь, я пишу о книжках, которые, допустим, помогают избавится от дурной привычки оставлять слабые места в коде, а не по поиску последних. Для начала "Профессиональное программирование на PHP, 2 издание" все-таки имеет немало отличий от книги "PHP для чайников". |
| Автор: dipsy 5.11.2006, 21:46 | ||||
охотно верю, касаясь конкретно этого; но важно другое:
не знаю, что он найдёт, а что нет. думаю, что вы тоже не знаете. о чём тогда речь? тем более, что кроме Zend есть другие анализаторы. я предпочитаю проверить, может быть, позже отпишу о результатах.
честно, - не вижу принципиальных отличий. это сильно отличается от error_reporting(E_ALL ^ E_NOTICE) ? прошу прощения... есть у меня такое свойство... мнительность называется. |
| Автор: CyClon 6.11.2006, 14:35 | ||
Может я и ошибаюсь, но помоему эта функцию устанавливает вывод всех ошибок кроме NOTICE. Так вот, необъявленная переменная - это NOTICE. Если ты проигнорируешь сообщение (а так и будет, ты его даже не увидишь), то можно прописать /?var=value и все (При вклеченных register_globals, а они включены почти везде, если не брать в счет localhost). |
| Автор: IZ@TOP 7.11.2006, 22:32 | ||
| CyClon, ты не ошибаешься. А register_globals отключен на всяком сервере уважающего себя хостера, ну, и у опытных программистов, разумеется. А зенда, к примеру, метит все что можно отнести к багам. К примеру такие труднообнаружаемые вещи как присвоение в условии:
Разумеется я буду всегда один, ибо не внимательный. |