Только наверное nginx все-таки не получил, а дал ответ :-) Нет, интересует несколько не то, скорее интересно просто видеть те или иные логи под рукой, в том числе с указанием проблемы, а не просто видя, что был отдан некий код ошибки.
А кстати нельзя ли во втором случае общий код оформить в виде функции, и вызывать ее? Я только с LESS опыт хороший имею, там так можно. Тогда не будет 200 классов в первом селекторе, его вообще в результирующем css не должно будет оказаться. Но тем не менее второй вариант все равно не слишком хорош, если нужна максимальная скорость загрузки сайта, с другой стороны, не факт, что прорисовка DOM в итоге будет работать быстрее в случае применения одного класса на другой, но это уже из разряда вопросов, на которые если и требуется ответ, то автор должен уметь дать его сам.
xmoonlight: ну все это найдете без проблем. Бекапом является как бы сам проект, ну и как я писал выше, можно пушить в репозиторий удаленный какой-нибудь. Собственно, при вашем подходе, когда код сразу деплоится на продакшн, я бы крайне рекомедовал именно такой подход и побольше коммитов, в этом случае всегда можно будет оперативно откатиться на любое состояние проекта и собственно хранить сам проект как локально, так и в удаленном хранилище (Github, Bitbucket, свое).
Но уверяю, я сам прошел через путь осознания, что лучше работать не так, хотя изначально тоже очень хотелось как привык, нажал-сохранил и все улетело. Но в итоге это актуально в итоге только для мелких правок и исключительно когда работаешь над проектом один.
Станислав: первые два варианта - имеется ввиду, когда локально запущен веб-сервер и сервер баз данных, если таковой требуется, и в нем крутится ваш проект.
xmoonlight: без вопросов, но я опять же повторюсь, что потерять данные или передать их не полностью и не заметить этого в IDE от JetBrains невозможно как из-за собственно принципов работы самой IDE, которая проверяет загруженные данные в любом случае (насколько я знаю, опять же), так и из-за принципов работы с самой IDE, то есть когда вы отказываетесь от загрузки кода по Ctrl+S на рабочий или какой угодно другой сервер и работаете:
либо с локальной копией проекта;
либо с локальной копией проекта и в режиме live - когда написанные изменения в коде сразу отображаются в браузере даже без обновления страницы;
либо с удаленным тестовым сервером, загружая туда тем или иным образом код и не боясь нарушить работу основного сервера, равно как и потерять код;
либо с удаленным пускай и рабочим сервером, но все равно через контролируемую загрузку кода только тогда, когда это требуется, а не просто по каждому сохранению локальной копии проекта.
xmoonlight: не касаясь оправданности такого подхода в большинстве случаев, такая возможность есть в тех же продуктах от JetBrains (https://yadi.sk/i/0mUi6w6xwndPC). При этом их продукты проверяют закачанные файлы на идентичность с локальной копией в проекте, насколько я знаю (вижу, как в фоне проскакивают эти задачи).
Но вообще гораздо удобнее и безопаснее как раз не сохранять каждый раз на (рабочем) сервере изменения в коде, а либо синхронизировать их (https://yadi.sk/i/jKIPEX_swneiS), просматривая перед деплоем все вносимые изменения, либо уж загружать просто аплоадом, но только тогда, когда это необходимо. У меня все эти пункты, например, собраны в едином быстром меню, вызываемом по Ctrl+Shift+D (https://yadi.sk/i/jKIPEX_swneiS), с возможностью загрузки на сервер по умолчанию или на любой другой выбранный, и тд и тп.
При этом все изменения в локальном проекте сохраняются безо всяких сохранений, в любой момент закрыв проект, мы всегда его откроем после ровно в том же состоянии, что он был на момент закрытия, без каких-либо сохранений.
xmoonlight: вы привели пример софта, который занимается бекапами. Если же вы ищете IDE, которая будет делать аналогичное, то вряд ли вы что-либо найдете, так как вы не понимаете саму концепцию работы с проектом в IDE, в том ее виде, в котором она существует сейчас - в ней невозможна ситуация, когда произойдет некая потеря, которую вы не заметите или не сможете восстановить.
xmoonlight: ответ на самом деле есть, и он заключается в том, что вы неправильно подходите в принципе к проектам, говоря о какой-то частичной закачке файла и прочем. То, что вы выдумали себе такую концепцию не значит, что она верная и что под нее в принципе производится какой-либо софт.
Или вы имеете ввиду не части файла, а в смысле что есть проект из множества файлов, а вам нужно работать только с парой из них, например?
xmoonlight: я использую PHPStorm, он умеет в том числе и в SFTP. Не знаю, как он работает с файлами, закачивает только часть или как-то еще, знаю только, что у меня таких проблем никогда не возникало. В крайнем случае выдается ошибка о том, что синхронизация не может быть выполнена, и файл в проекте (локальном) остается в том виде, в котором он и был.
В целом я вообще использую во всех проектах длиннее пары часов git, через создание репозитория на удаленном сервере (Bitbucket, Github, свой удаленный - не важно), что занимает примерно одну минуту вместе с его клонированием в локальный проект. В итоге мне не важны проблемы с сохранностью как локального, так и удаленного кода и прочих ресурсов - все необходимое я пушу в репозиторий и оно там лежит в целости и сохранности.
Но если бы у меня вдруг была проблема с коннектом к удаленной машине из-за разрывов, то я бы наверное использовал такие варианты, на выбор:
1. Локальный виртуальный сервер, на котором тестировал бы и разрабатывал проект от и до, делая деплои на продакшн только после очередного успешного этапа разработки.
2. Удаленный тестовый сервер, на котором делал бы все то же самое, что в пункте 1, и потом все результаты работы закачивал бы на продакшн. Для пущей верности в обоих пунктах можно использовать что-либо для последующей сборки после деплоя, когда сначала закачиваются сорцы, и потом они уже через что-то вроде capistrano/etc заливаются куда надо, подставляются необходимые переменные окружения и конфиги и так далее.
Вообще же, я сейчас еще раз прочитал ваш вопрос и осмыслил его по-новому - возможно, вы имеете ввиду, что IDE должна работать с удаленными файлами/проектами, правя их прямо где-то удаленно? Если так, то это не правильный путь ни разу, всегда в IDE имеется локальная версия всех необходимых файлов, которые правятся локально и потом тем или иным образом попадают в ту или иную рабочую среду - командами IDE типа "синхронизировать", "закачать" или же некими скриптами, или созданием из файлов проекта папки проекта в виртуальном локальном хосте, и так далее.
Это гарантия сохранности проекта, плюс ради дополнительной сохранности можно использовать то, что я уже описал выше.
xmoonlight: говоря "Интересный вариант, особенно про консоль через ssh", я имел ввиду конечно же работу в вашей импровизированной IDE через консоль и ssh. Вообще же, если не нужен какой-то визуальный инструмент типа mc/far/etc, да, из IDE нет проблем подключаться что к локальному виртуальному серверу, что к удаленному, и проводить любые необходимые операции.