| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Зло живет в функциях сравнения.
			 
			
			Обсудим тему ? 
		
		
		
		
		
		
		
	https://habrahabr.ru/company/pvs-studio/blog/329090/ Статья заинтересовала интересной подборкой типичных багов. Второй вопрос - что Аксапта нам предоставляет в помощь для поиска таких ошибок. В Visual Studio по идее, возможностей должно быть больше, т.е. в Ax7 все станет проще при проверке ? Еще впечатлило, какие смешные баги бывают во всем известных продуктах (и почему они не исправляются подолгу).  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2), Raven Melancholic (1). | |
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если посмотреть статистику моих ошибок (которая у меня в голове), то вырисовывается такая картинка: 
		
		
		
		
		
		
		
	На первом месте, конечно, идут ошибки копипаста. Это безусловный лидер. Скопировал, отвлекся, забыл поправить. На втором месте - логические ошибки, как верно замечено в обсуждаемой статье. Все кажется настолько простым и тривиальным, что часто мысли уже скачут где-то далеко и руки чисто на автомате набирают код. В ошибках этого типа безусловный лидер - сравнение = или !=. Ну и замыкают хитпарад - ошибки обработки объектов. Часто вместо одной переменной случайно начинаешь подсовывать для обработки другую переменную. Вместо текущего курсора на форме - пришедший курсор из параметров или наоборот. Или источник данных другой цепляю на элемент интерфейса, рука дрогнула типа...  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Как сказано в статье (а еще более подробно об этом в той, статье, на которую есть ссылка - про "ошибку последней строки"), основная проблема в том, что, как правило, сами условия простые и при просмотре кода взгляд их просто пропускает. Типа: что там смотреть и так все вроде правильно. 
		
		
		
		
		
		
		
	Если условие сложное, то его как-то анализируешь, часто разбиваешь на части (мне переменных не жалко), а вот простые условия ускользают от внимания. Моей типичной ошибкой, почему-то, бывает не использование сравнения на неравенство, а сравнение равенством инвертированной переменной: вместо a != b, часто пишу !a == b. Ошибка совершенно идиотская, сложно сделать её, находясь в здравом уме, то делаю часто (как правило скопипастив другой вариант и изменив в новом месте). Нередко ошибаюсь на объединении нескольких условий по && и || в одной проверке, особенно, если есть перенос условия на несколько строк.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я начитавшись про pvs studio сделал свою поделку (http://axcoder.blogspot.ru/2014/11/s...-xlnt.html?m=1) в нагребло порядка трех десятков ошибок по всему продукту. Часть поправили часть не появляется (просто мертвый код), в 7 проверка свитча производиться самим компилятором
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (1), mazzy (2), macklakov (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В 7 есть car https://ax.help.dynamics.com/en/wiki/car-2/ на движке Bp.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (3). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Чтобы решить какие проверки реализовать в первую очередь, а на какие забить ? Я думаю основную группу проверок на копипаст и связанные с ним ошибки, а также на ошибки в логических выражениях можно смело было реализовывать. Такие ошибки допускают все.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Есть, например, ошибка с использованием невыбранного поля для него даже рантайм проверку на сервере сделали.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
|
| За это сообщение автора поблагодарили: Raven Melancholic (2). | |