Я - программист Unix, ставший программистом, и потому что это близко и дорого моему сердцу в настоящее время, я хотел услышать о некоторых лучших и худших практиках, с точки зрения написания программного обеспечения, чтобы его было легко развернуть, обновить и поддерживать в долгосрочной перспективе. Я не говорю о долгосрочном обслуживании самого кода; скорее, какие рекомендации вы используете, чтобы ваше программное обеспечение не превратилось в неустановимый беспорядок?
Моя текущая любимая мозоль имеет жестко запрограммированные конфигурации. Я работаю с нашей командой разработчиков над своей работой, чтобы упростить развертывание наших приложений, чтобы я мог полностью автоматизировать каждый шаг процесса развертывания. Большая часть конфигурации для этих приложений на самом деле жестко запрограммирована, либо во время сборки, либо в кодовой базе, что делает процесс установки программного обеспечения на сервере очень и очень болезненным.
К счастью, команда на моем постоянном концерте талантлива и хочет, чтобы это было исправлено так же, как и я, поэтому все идет гладко.
Что касается «лучшей практики», с точки зрения Unix, мне действительно нравится, когда программное обеспечение является или может быть автономным. Итак, я должен иметь возможность установить приложение в каталог, а затем иметь возможность перемещать этот каталог, не заставляя приложение работать совершенно бесполезно. На самом деле это не занимает больше времени, чем обнаружение путей запуска, и делает мою жизнь системного администратора намного приятнее.
Какими способами вы можете упростить процесс развертывания (как в Windows, так и в Unix) для приложений серверного типа, а также, какие вещи, с которыми вы столкнулись, превратились в настоящий кошмар, когда пришло время вытолкнуть код из двери?