Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. http://www.refactoring.com/ мог бы помочь Вам. У них есть длинный список методов здесь:
Статья Rub Joel называние называет шоу Вами, почему необходимо осуществить рефакторинг и не переписать (но я предполагаю Вас уже, знала, что перезапись является вещью, которую Вы никогда не должны делать..)
Работа Эффективно с Унаследованным кодом фокусируется на контакте с существующими кодовыми базами, которые должны развиться, чтобы быть тестируемыми. Много методов используются в книге для выполнения этого, и превосходный ресурс для рефакторинга.
При поиске больше, чем просто рефакторинг кода Вы могли бы найти книгу Scott Ambler довольно полезной: http://www.ambysoft.com/books/refactoringDatabases.html
Вот некоторые страницы Wiki о рефакторинге, которые исследуют различные принципы и инструкции.
Какова Ваша кодовая база?
Eclipse имеет довольно хорошую поддержку Java. Но к сожалению ограниченная поддержка кода C++.
Вот статья от производителей..
Рефакторинг HTML является новым и относительно хорошим, можно предположить то, что он покрывает :)
Кроме этого две книги, которые Вы упоминаете, являются двумя, которые я использовал больше всего, но Гибкие Принципы также очень хороши.
Существует 'шпаргалка' для запахов кода здесь: http://industriallogic.com/papers/
I would recommend reading Working Effectively with Legacy Code, then Refactoring - Improving the design of existing code. Martin Fowler's book is more like a receipt book for me, it explains how. Working effectively with legacy code, explains the why in my opinion.
below is some other books relating to refactoring:
antipatterns refactoring software architectures and projects in crisis
refactoring in large software projects performing complex restructurings