Как вы пишите веб приложения?

Суть вопроса заключается в следующем: Какие инструменты вы используете при написании своего веб-приложения? Пример: 1. FTP/SFTP клиент 2. Среда разработки 3. GIT и т.д.
Данный вопрос возник потому-что я долгое время пользуюсь редактором кода с FTP, создал/отредактировал файл, нажал ctrl+s, все, файл на сервере. Читая разнообразные статьи, задумался, что, возможно, я что-то делаю не так. Например, много где пишут что редактор кода с мгновенной записью на сервер - это плохо, но каких-то вразумительных аргументов не дают и как сами это делают опять же не говорят (а какой тут второй вариант? - Локально редактировать и потом через FTP клиент закидывать? - В итоге не тоже самое ли получается?).

UPD: Затрагивая тему моментальной загрузки файлов на сервер, в случае с dev сервером, разве это плохо? Это же удобно! Нет?
  • Вопрос задан
  • 2791 просмотр
Решения вопроса 8
@maximilan
С IDE все нормально как раз. Лучше продукции от JetBrains ничего не видел. В купе с ним, можно использовать какой нибудь WinSCP, ибо на сервак необходимость залезть бывает.
Все Вы делаете нормально.
Ответ написан
Adamos
@Adamos
FTP - это очевидное древнее зло, его можно использовать только в том случае, если вообще нет альтернатив или они еще страшнее (заливка через веб-морду, например).
Редактирование и сразу сохранение на боевой сервер - одна эта идея должна вызывать у разработчика приток адреналина от представления, чем это чревато.
Сохранение в теории может привести к тому, что на сервере окажется пустой или оборванный с середины файл. При использовании FTP и не слишком стабильного канала эта теория легко становится практикой.
Свежеисправленный файл с довольно большой вероятностью содержит ошибки. Даже не говоря о профессиональном тестировании - самому-то хотя бы убедиться, что результат работает примерно так, как ожидалось, надо убедиться, прежде чем выпускать это дело в свет. А еще лучше - постепенно делая одно изменение за другим, проверять, что реализация задуманного соответствует задумке. Обязательно нужен тестовый сервер.
Тем более, что, если код и файлы организованы грамотно, изменения на одной странице вполне могут означать одновременное изменение четырех файлов (стили, скрипты, класс с логикой, шаблон с представлением). Что будет, если пользователь зайдет на сайт, когда половина из этих файлов не будет обновлена? Хотите поотлавливать ошибки, в которые это выльется? Предположите, например, что эта страничка - корзина интернет-магазина и вы меняли что-то, касающееся товаров...
Ответ написан
Описанным Вами образом можно разрабатывать проекты индивидуально, когда Вы единственный разработчик или другие разработчики очень редко принимают участие. В этом случае можно просто локально создать гит-репозиторий для возможности отката в случае чего.
В случае, когда разработчиков много и они принимают активное участие в проекте, заливая файл по ftp/sftp Вы будете постоянно иметь риск затереть чей-то код. Даже когда редактор об этом предупреждает, Вам придется сохранить Ваш свеженаписанный код куда-то, чтобы обновить файл с сервера и не потерять свой собственный код. Чтобы избежать таких моментов люди и используют системы контроля версий.
Ответ написан
pomeo
@pomeo
emacs(хотя это не важно, любой редактор)
+
git(тоже не важно, можно и hg)
+
capistrano, деплоит код из системы контроля версий, если что-то всплыло, что не увидел в тестах, откат моментальный на прошлую рабочую версию. Спокойно деплоит на контейнеры находящиеся внутри серверов. Может деплоить на много мест. Удаляет всякий мусор .git и т.д.
+
supervisord, держит рабочим приложение, дружит с capistrano, т.е. capistrano умеет его передёргивать, когда новый код загружает
Ответ написан
Комментировать
@RomkaChev
PhpStorm + Git.
Храним код в Bitbucket.

Основной вопрос, как я понял из обсуждения, крутится вокруг загрузки файлов на сервер.
Используем платный сервис dploy.io.

В репозитории следующая структура веток -
  • master - код, который находится в Production
  • development - "буфер" между master и milstone для проверки на dev-сервере
  • milestome-vX.Y.Z - Определенная стадия проекта
  • feature-N - Определенная feature


Все изменения ведутся локально. и привязаны к одной feature-ветке. После того, как задание сделано, feature-ветка вливается в milestone-ветку (Повторяется N раз).

Когда нужно проверить набор коммитов на dev-сервере, пушим изменения из milestone-ветки в dev-ветку и они автоматически заливаются на dev-сервер (Если нет отдельного сервера или что-то еще не позволяет развернуть тестовое окружение, то можно работать и без этого шага).

После того, как убедились, что все нормально, вручную через web-интерфейс dploy.io заливаем master-ветку на production-сервер.
Ответ написан
ddale
@ddale
Front-end developer
Macbook Pro 13, на нем соответственно OS X. Я пользуюсь Sublime Text 3 (в нем самое главное Emmet + поддержка SASS/SCSS + удобная цветовая схема). Для FTP - Cyberduck. Проект начинаю как стандартное приложение Node.js . Для сборки проекта Grunt (он и минимизирует, и файлы сливает, и префиксы расставляет, и заливает на FTP). Для контроля версий Git + Bitbucket. Приложением ImageOptim при надобности оптимизирую изображения. Photoshop CC 2015 сейчас стоит для работы с макетами, которые верстаю. Для того, чтобы оперативно делиться инфой - облако от Яндекса. Воот. По сути простой сетап.
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Все зависит от вашей ситуации. В случае разработчика-одиночки все хорошо до той поры, пока ваши изменения минимальны и не привязаны ко времени. Как только ваш проект начинает усложнятся до такой степени, что изменения не могут быть постепенными и незначительными, наступает момент перехода на GIT и т.п.
После этого автоматически встает вопрос развертывания кода на сервере. Как только нужно изменять базу, то начинает требоваться написание миграции БД. Плюс есть еще такой вариант, как требования к качеству.
Например, поддерживаемый сайт не может быть просто так поломан, поскольку на нем онлайн человек 100.
Т.е. в таком случае любой самый маленький косяк может быть замечен многими людьми.
А после перехода на серьезный уровень, когда над сайтом работаете не только вы, а еще люди, применение прямого редактирования кода на сервере становит проект под угрозу полной неработоспособности.
Ну и плюс всякие крайние случае вроде - поехали вы куда-нибудь далеко, заказчик вас попросил что-то пофиксить, вы подключились, начали записывать файл, но соединение оборвалось в самый неприятный момент. И интернета тупо нет. И вы рвете на себе волосы. А вас понесло на такие-то острова и ближайший инет только на материке.
Грубо говоря до интернета сутки. А сайт-то неплохой, пару килобаксов приносит владельцу в день. И потом он вам присылает за "работу" неустойку с щедрой долей вербальных пилюлей.
Всякие IDE пытаются переименовывать файл, проверять размер и т.д. Но нет истории изменений, ничего.
Ответ написан
У меня MacOS c тестовым серваком на нем же + sublime text + скрипт с командой rsync c ноута на продакшн и на второй тестовый сервак, в общем пишу я код, тестирую на буке, потом через rsync отправляю апдейты на серваки, при этом обновляются только измененные файлы, а не вся система, обычно 1-2 файлика отправляются. Rsync не просит пароль, т.к. авторизация ssh происходит по ключу, при этом я не вводу rsync ... /www server:/www, а ввожу команду www_to_srv и у меня запускается скриптик, который это мутит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Eugeny1987
Работаю с HostCMS
NetBeans с автозаливкой по ftp
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Linux + PhpStorm + Git
Публикация в продакшн - git push в production репозиторий.
Разработка на сервере ужасно криво, медленно и неудобно, но судя по тому что вы пользуетесь редактором кода вместо полноценной IDE вам может быть ОК и так.
FTP медленный и глючный (не говоря о безопасности), забудьте его как страшный сон навсегда.
Ответ написан
Комментировать
@r2d
просто программист
MacOS+PyCharm+Git + Bitbucket

заливка на сервер git push в master ветку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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