Kotlin - эффективный и масштабируемый способ получить значение свойства экземпляра класса по id или по строке

Вероятно, не прямой ответ на вопрос, но systemd можно использовать для запуска вашего приложения в качестве демона. Вот пример:

[Unit]
Description=Python daemon
After=syslog.target
After=network.target

[Service]
Type=simple
User=<run as user>
Group=<run as group group>
ExecStart=/usr/bin/python <python script home>/script.py

# Give the script some time to startup
TimeoutSec=300

[Install]
WantedBy=multi-user.target

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

-Orby

0
задан Dean 1 March 2019 в 23:44
поделиться

1 ответ

Я не думаю, что вы получите представление, которое вы хотите от размышлений.

(Reflection не был предназначен для высокопроизводительного использования - и, по моему опыту, очень редко используется в производственном коде. Он отлично подходит для тестирования, каркасов, инструментов сборки и т. Д., Но в большинстве вопросов, которые я вижу о верно, реальный ответ - использовать лучший дизайн, который не нуждается в отражении!)

Ни один из двух других подходов, конечно, не идеален. Это, вероятно, зависит от точных требований. Должны ли они вообще быть объектами с именованными свойствами Kotlin или они могут быть простыми картами? Последний может быть проще для кода и проще в обслуживании. Остальные жестко запрограммированные тесты, вероятно, спасут память.

(Если бы у вас было много времени, вы могли бы написать какой-то инструмент для сборки, который мог бы автоматически генерировать метод поиска с этими жестко заданными для вас тестами. Что будет использовать отражение, конечно, , но только во время компиляции. Это будет большая работа, и я не знаю, как вы к ней подойдете.)

0
ответ дан gidds 1 March 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: