Стоит ли ставить возможности linux'а на windows, или установить отдельно linux.
Если устанавливать linux, то какой дистрибутив ставить (На сколько я знаю, на серверах стоят ubuntu зачастую)?
Umid, я б сказал – разница незначительна, если вообще существует. Другое дело, что лучше вести разработку в том же окружении, в котором приложение будет жить в production – а с большой долей вероятности это Linux.
Я веду разработку на Node на macOS и в Windows Subsystem for Linux внутри Windows 10. Продакшн – Linux. Никаких неудобств и различий я ни там, ни там не заметил.
sim3x, для этого есть testing environment, не нужно этого делать в dev-среде :) как, кстати, и вынуждать разработчиков полностью копировать production-среду локально.
Другое дело, что лучше вести разработку в том же окружении, в котором приложение будет жить в production – а с большой долей вероятности это Linux.
На самом деле это не помогает.
Мой друган, который сидит под десктопным Линем, но не любит, как он утверждает, засирать свою систему лишним ПО,
в том числе и тем, которое предназначено для облегчения работы разработчиков (у нас с ним была речь о Vagrant) - довольно часто имеет проблемы при переносе своей разработки на реальный боевой сервер.
При том, что я сижу под Windows - и имею таких проблем существенно меньше.
Просто потому что использую полноценную эмуляцию сразу при разработке.
sim3x, мы по-разному понимаем вопрос, видимо. Если речь о том, где более удобно работать с Node, мой ответ – да везде, различия незначительны. А если мы говорим о том, где мы тестируем приложение перед релизом на продакшн – то, конечно, мы должны иметь для этого среду, которая копирует production-окружение – будь то testing-окружение на отдельном инстансе или Docker/Vagrant-контейнер.
для этого есть testing environment, не нужно этого делать в dev-среде :) как, кстати, и вынуждать разработчиков полностью копировать production-среду локально.
Идея современного подхода, когда виртуалки жрут не так много - и вполне доступны:
Максимальная идентичность среды отладки и среды продакшена.
Собственно и Докер это пропогандирует. По сути ты с ним свою среду разработки переносишь с рабочей машины на сервер. А не пытаешься воссоздать локально серверную среду.
Сослан Алдатов,
я, к сожалению, насмотрелся на вопросы, где новички пытались установить пакеты для обработки изображений под ноду и им виндо-убунта наплевала непонятных ошибок, которые непонятно как решать
Писать приложение, исправлять баги, которых на проде никогда не будет - странное занятие
Поясните почему нельзя добиться полноценной эмуляции сервера. Просто интересно. сам я работаю на VPS, на своём ПК мне кажется не лучшей идеей работать, но это вполне реально и дело вкуса.
sim3x, у меня десктоп с иксами, представить себе не могу что тут может повлиять. Вы не подумайте я не пропогандирую заниматься такой ерундой, лучше делать на виртуалке, но поверьте всё прекрасно будет работать.
a0lwq, ад может случиться если только не опытный пользователь начнёт цеплять сторонние репозитории и вот тогда попрёт не совместимость версий и всё закончится тем что он убьёт систему. Ну так не хрен цеплять то что не хрен цеплять)
Владимир Муковоз, вы не понимаете суть проблемы.
работать скорее всего будет.
но при переносе на сервер вы можете столкнуться с приличной вероятностью косяком непредусмотренных
собственно умных людей это настолько достало, что они придумали Докер и т.п.
никакой десктопный Линух не дает вам гарантий, что вдруг во время деплоя вы не будете бегать над наполовину работающим приложением.
более того - и серверный тоже не дает таких гарантий.
именно поэтому так широко за последние несколько лет стали использоваться легковесные эмуляторы - контейнеры Докера и т.п..
они как раз и позволяют получить довольно идентичную среду.
но для мелких проектиков, я согласен, тут и потери от простоев невелики. и система софта на сервере как правило гораздо примитивнее - посему столкнуться с несовместимостью вам менее вероятно.
никакой десктопный Линух не дает вам гарантий, что вдруг во время деплоя вы не будете бегать над наполовину работающим приложением.
Да я вообще не сторонник этим на десктопе заниматься. Но больше из этических соображений.
более того - и серверный тоже не дает таких гарантий.
Ну если филосовствовать то нигде их нет
но для мелких проектиков, я согласен, тут и потери от простоев невелики. и система софта на сервере как правило гораздо примитивнее - посему столкнуться с несовместимостью вам менее вероятно.
Если руки кривые она везде возможна, а при прямых руках не будет проблем ни на десктопе ни на сервере.
Если руки кривые она везде возможна, а при прямых руках не будет проблем ни на десктопе ни на сервере.
Видите ли в чем дело:
Вы полностью отладили проект.
Переносите его на сервер.
Пусть даже вы отлаживали на сервере, пусть даже он будет той же самой версии.
Но из за уже упомянутого "ада библиотек", например - ваше ПО, разработка которого полностью завершена, не хочет работать ни в какую.
И у вас возникает проблема - вы уже предвкушаете деньги.
Но у вас не работает.
Чьи тут кривые руки?
Тех админов, что поставили на целевой сервер нужное для работы ПО?
Ваши? У вас ведь все работает
Чтобы избежать этой проблемы в корне - и используется изоляция сред исполнения.
Одна софтина (ну или один отлаженный набор софта) = одна виртуалка или один контейнер
Вы полностью отладили проект.
Переносите его на сервер.
Уже звучит не очень честно говоря. Я рекомендую работать сразу там где оно будет работать.
Но из за уже упомянутого "ада библиотек"
Да нет никакого ада если нормально настроено.
И у вас возникает проблема - вы уже предвкушаете деньги.
У меня никогда не возникнет, я работаю сразу на месте.
Чьи тут кривые руки?
У меня конкретно всё работает
Чтобы избежать этой проблемы в корне
Чтобы избежать возможных проблем в корне, да и вообще я всегда рекомендую сразу работать на месте. Чтобы отлаживать не только сам код, но и серверное ПО попутно.
в крупных проектах нет такой проблемы - про кривые руки.
проблема кривизны возникает от сложности привнесенной разнообразным установленным ПО.
В крупных проектах кривые руки встречаются не редко. Я в основном работаю над серверной частью один, поэтому классно когда я знаю всё, а вот в команде за всех думать тяжко и да в таком случае разлад не избежать.
но, как очевидно из нашей беседы, вы даже близко ни с чем подобным не сталкивались потому и не понимаете о какой проблеме идет речь.
MacOS для разработки идеальна, в том числе для сложных больших проектов в долгосрочной перспективе. Для рабочей лошадки отлично взлетит Mac Mini с ssd.