1. Напишите некоторые конфигурации, которые необходимо изменить в файле свойств
Например, количество потоков, используемых, когда некоторое параллельное выполнение не установлено для настраиваемого в файле свойств. Затем ваша программа может работать гладко и беспрепятственно как в средах DEV, так и в тестовых средах, но после развертывания на PROD и обработке больших наборов данных в качестве многопоточной программы будет выброшено ioException. Причина может заключаться в том, что онлайн -среда одновременно вызывает это или что -то еще. Если количество потоков может быть настроено в файле свойств, очень легко сделать его однопоточным приложением. Нам больше не нужно многократно развертывать и тестировать приложения для решения проблем. Этот метод также подходит для настройки URL -адресов, серверов и номеров портов.
Рекомендуется использовать файлы атрибутов для ExternaLize этих конфигураций, и формат файла в порядке со свойствами, YAML, Hocon и JSON. Следующий класс реализует поддержку инъекций пружины для файлов в этих форматах, включая поддержку заполнителей.
https://github.com/superhj1987/awesome-libs/blob/master/src/main/java/me/rowkey/libs/spring/config/awesomepropertiplaceholderconfigurer.java
2. Моделируйте онлайн -среду как можно больше во время теста
Типичным сценарием в производственном процессе является использование только от 1 до 3 учетных записей для тестирования, и это число должно быть от 1000 до 2000. При выполнении тестирования производительности используемые данные должны быть верными и непревзойденными. Тестирование производительности, которое не близко к реальной среде, может привести к непредсказуемым проблемам производительности, расширения и многопоточности. Здесь мы также можем использовать предварительную среду для решения некоторых проблем.
3. Обработка из-за непрерывной устойчивости должна быть выполнена для всех внешних вызовов и внутренних служб.
Независимо от того, является ли это вызовом RPC или сторонним сервисным вызовом, мы не можем принять это как должное, что доступность составляет 100%. Временные тайм -ауты вызовов и повторение не допускаются, что отрицательно повлияет на стабильность и производительность приложения.
4. Система должна следовать принципу минимальных разрешений при разработке системы безопасности
Веб -сервисы повсюду, что позволяет хакерам легко использовать его для отрицания атак на обслуживание. Поэтому при разработке системы вам необходимо следовать принципу «минимальных разрешений» и принять белый список и другие методы.
5. Требуются следующие документы
Напишите документацию на модульном тестировании и имейте хорошее покрытие кода.
Высокий дизайн рисунок: описывает все компоненты, взаимодействия и структуры.
Подробные дизайнерские чертежи: специфичные для дизайна уровня кода и некоторые логические процессы ключей.
Системный композиционный документ: объясняет все файлы композиции, файлы конфигурации и т. Д. Системы.
Документы DML и DDL на уровне базы данных, особенно заявления о SQL-запросах, должны пройти DBA или обзор основных разработчиков, прежде чем они будут запущены.
Не только для традиционных процессов развития, но и даже для гибкого развития, эти документы необходимы, в противном случае это принесет большие неудобства при последующем обслуживании и передаче.
6. Сделайте хорошую работу в мониторинге, восстановлении ошибок, резервном копировании и других ключевых функциях системы
Для некоторых важных функциональных модулей системы их необходимо контролировать, чтобы они не влияли на работу системы и вызывая неостановленные потери. Кроме того, если возможно, попробуйте восстановить после контроля ошибки и отправить сигнал тревоги, если восстановление не удается. Для некоторых очень важных файлов данных необходимо сделать резервное резервное копирование, чтобы предотвратить некоторые внезапные сбои и потери данных.
7. Разработайте несколько столбцов, которые легко отслеживать историю и организовать при разработке базы данных.
Например, create_time и update_time могут указывать время создания и обновления записи. create_by и update_by может указать, кто создал и обновил запись.
Кроме того, удаление записей иногда не на самом деле не удаляется. В настоящее время необходимо разработать столбец, который представляет статус этой записи, такой как столбец «активного» или «неактивного» статуса.
8. Составьте план отката проекта
Когда новая функция будет запущена, если нет плана отката, она может спешить и привести к тому, что онлайн -сервисы становятся недоступными в течение определенного периода времени. Существует хороший план отката, который позволяет вам упорядочить выполнять соответствующие операции и восстановить систему в бегемое состояние в контролируемое время.
9. Перед началом проекта необходимо провести количественный анализ
Количественный анализ должен быть проведен для памяти, базы данных, файлов, кэша и т. Д., Используемые в проекте. Он оценивает космическую профессию в будущем и обеспечивает ссылку на распределение машин и технического обслуживания. Предотвратить, что недостаточное количество хранения вызвано быстрым ростом объема данных. Это очень важно, в противном случае легко, чтобы онлайн -услуги были недоступны.
10. Разработать план развертывания системы.
Платформа для развертывания системы является важной частью. Описание платформы развертывания не может быть ограничено одним сервером или двумя базами данных, по крайней мере, необходимо включить
11. Выберите наиболее подходящий инструмент/технологию
Во многих случаях разработчики используют язык или инструмент, который они хотят изучать в производственной системе. Обычно это не лучший вариант. Например, используйте базу данных NOSQL для данных, которые уже на самом деле являются реляционной формой. Будь то язык или инструмент, есть применимые сценарии. Мы не можем искать инновации и не можем использовать «я» в качестве стандарта.
12. Иметь достаточно резервов знаний в некоторых ключевых технических областях.
Дизайн шаблон
JVM настройка многопоточная "проблема параллелизма"
Проблемы с транзакциями, включая проблемы с производительностью распределенной транзакции, включая GC, вычисления и другие кэши
Через эту статью я надеюсь, что друзья, которые могут помочь разработать программы Java, спасибо за вашу поддержку на этом веб -сайте!