Вот как просмотреть код Java

Проверка кода влияет на качество программного обеспечения. ³ Участие в проверке кода снижает риск ошибок³.

Хороший обзор приводит к меньшему количеству ошибок, большему количеству опыта и передаче знаний.

В среднем частые рецензенты кода пишут код лучше, чем другие. Это потому, что они знают больше и видят больше кода.

Ваша команда настолько хороша, насколько хорош ваш самый слабый рецензент. - Джоэл Кемп

Вот как лучше анализировать код Java.

Как проверить безопасность

Защитите свои службы. Создавайте надежные службы. Ожидайте неожиданного поведения. Создайте резервную копию для всех ошибок.

Не сохраняйте конфиденциальную информацию. Информация о кредитной карте, разрешения и другие конфиденциальные данные.

Не создавайте исключения для конфиденциальных данных. Это раскрывает конфиденциальные данные. Вызывающий может злоупотреблять этими конфиденциальными данными.

Сделайте SQL-запросы параметризованными с помощью PreparedStatement в Java. Обычная практика - избегать SQL-инъекций.

Очистить ввод. Очистить ненадежные данные. Веб-формы могут содержать вредоносные данные.

Неспособность должным образом очистить данные может привести к множеству различных проблем безопасности, таких как уязвимости межсайтового скриптинга (XSS) и внедрения XML2.

Укради мою электронную книгу

Я нашел много советов по качественным обзорам. Вы можете украсть их здесь.

Как просмотреть тестирование?

Выберите граничные значения для тестирования.

Вы тестируете ряд ценностей? Выберите из ассортимента самые маленькие и самые большие. Выберите немного выше максимального.

Создайте классы значений и выберите по одному из каждого класса. Вот пример:

Для диапазона от 1 до 100 у нас будет 3 класса. Один из них - это диапазон, о котором идет речь, C1 = {x | 1 ≤ x ≤ 100}. Во-вторых, будут числа меньше 1, C2 = {x | x ‹1}. Третий содержит числа больше 100, C3 = {x | x ›100}.

Не проверяйте счастливые потоки. Также проверьте облачные. Проверьте положительный и отрицательный потоки. Тестируйте исключительные потоки, где вы получаете неопределенное поведение.

Читайте подробнее о том, как улучшить навыки тестирования. И еще больше читайте здесь.

Как проверить доступность класса Java

Ограничьте доступность. Как можно меньше раскрывайте информацию. Преобразуйте все общедоступное в защищенное или частное.

Зависимости компонентов должны быть в направлении стабильности.

Скрыть частное поведение. Сведите к минимуму зависимости. Разместите общедоступный API.

Ищите движущиеся части. Они должны находиться в отдельных объектах. Затем введите те.

Предпочитайте композицию наследованию.

окончательный и статический

Константы должны жить в последнем классе. Таким образом, мы не разгоняем константы. Их можно использовать, например, как в классах, так и в тестах.

Добавьте частные конструкторы для статических классов. Таким образом вы гарантируете, что ваши статические классы не будут созданы.

Классы без подклассов следует сделать окончательными. Мы предотвращаем наследование, когда оно не нужно.

Завод и строитель

Предпочитайте фабрики конструкторам. Фабрики извлекают несвязанную логику.

Создание объекта в большинстве случаев не связано с бизнес-логикой. Создание объекта можно использовать повторно. Без фабрики нужно копировать код.

У вас есть несколько аргументов для конструктора? Используйте шаблон построителя. Вам нужно добавить все атрибуты в цепочку, а в конце построить экземпляр.

// taken from here
User user = new User.UserBuilder().userName("test")
    .userPassword("******").addressInfo.(new AdressInfo.Builder()
        .address1("100 Townsend St")
        .city("San Francisco").zip("94107").build()).build();

Как просмотреть нулевое использование

Избегайте использования null в качестве вывода метода. Использовать необязательно.

Необязательный выводит многословие на новый уровень. Делает код более понятным. Интерфейс Необязательный дает, намного лучше, чем работа с null.

Иногда null - это что-то. А иногда ничего. Правильно отрегулируйте это поведение.

Если null - это что-то, используйте Необязательно. Если null - ничего, используйте null.

Что значит null - это что-то? Пустая тележка - это что-то. Отсутствующий аккаунт - это что-то. Эти сценарии являются примерами того, когда что-то имеет значение null.

Вы не ожидаете, что вывод будет нулевым? Вы сталкиваетесь с неожиданным или неопределенным поведением? Используйте null.

При работе со списками не возвращать нули¹. Принимая во внимание предыдущие идеи, null - это что-то, это пустой список. Возвращает пустые коллекции, а не null.

Не беспокойтесь о производительности¹. Разработчики опасаются, что пустой список может ухудшить производительность.

Для противодействия этому можно использовать неизменяемые списки. Используйте Collections.emptyList(), Collections.emptySet() для возврата неизменяемых коллекций.

Как просматривать исключения

В непредвиденных случаях используйте исключения. Это улучшит анализ вскрытия.

Обрабатывать все допустимые исключения. Если вы видите игнорируемое исключение, исправьте его. Вы даже можете заставить Sonar перехватить этот код.

Вызывающий должен знать, почему произошло исключение. Вы не должны регистрировать конфиденциальные данные.

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

Используйте Необязательный, если значение null. Вернуть null или выбросить исключения, если что-то неожиданное.

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

Неожиданное поведение должно приводить к возникновению непроверенных исключений. Поскольку нет обработки, это может предотвратить это. Лучше всего зарегистрировать свои выводы и выбросить исключение.

Избегайте исключений с нулевым указателем. Сделайте все возможное, чтобы их уменьшить.

Исключения с нулевым указателем дорого обходятся. Сколько стоят исключения? Зависит от глубины стопки. Большая часть затрат идет на метод fillInStackTrace.

Эмпирические исследования StackOverflow показывают 10-кратное замедление. Можно утверждать, что можно пойти еще дальше.

Заключение

Ключевые выводы:

  • Ограничить доступность класса
  • Используйте окончательные классы и предотвращайте экземпляры статических классов
  • Используйте фабрики для создания экземпляров
  • Использовать необязательный, более нуля
  • Не игнорируйте исключения
  • Узнайте разницу между неотмеченными и проверенными исключениями
  • По возможности избегайте исключений, чтобы повысить производительность

Каковы ваши советы по хорошей проверке кода Java?

Присоединяйтесь к Medium сегодня!

Почему вам следует подписаться? Сначала отказаться от режима инкогнито в Chrome. Во-вторых, вы услышите множество замечательных историй. Вы можете прочитать около 100 книг с книжной полки прагматичного программиста. Вы можете увидеть препятствия, чрезвычайно полезные советы и отличные советы от команды Pinterest. Вы можете прочитать о последних разработках Google Cloud.

Это то, что вы получаете за 5 долларов (2 чашки кофе) в месяц. Вы получаете всю библиотеку Pragmatic Programmer для чтения за 5 долларов.

Отказ от ответственности: 2 доллара из 5 долларов напрямую поддержат меня и предоставят вам отличные темы.

Тебе понравилась эта статья? Вам понравятся:







Ресурсы

[1] Блох, Джошуа. Эффективная Java. Pearson Education India, 2016 г.

[2] https://www.oracle.com/java/technologies/javase/seccodeguide.html



[3] МакИнтош, Шейн и др. «Эмпирическое исследование влияния современных практик обзора кода на качество программного обеспечения».