Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Best practice

  • записи
    2
  • коментарів
    76
  • переглядів
    4 089

Git и Deploy web приложение


stickpro

6 431 перегляд

За долгое время работы над сайтами над opencart не один клиент не пришел со своим магазином который имел бы систему контроля версий.
Это же в разы упрощает работу, как для разработчиков так и для клиентов. Немного теории и для чего это нужно.
Git это распрастроненная система котроля версий, которая позволяет хранить все слепки(снимки) кода. Тоесть это + и для клиента, он видит за что платит и в каких файлах были внесены изменения, и кто внес эти изменения, тоесть не будет уже такого, вот кто-то зашел на наш сервер и внес изменения и что то сломалось. Для разработчика это легкий способ развернуть исправить и залить на сервер. Снимая с себя ответсвенность за других разработчиков.
Тоесть git позволяет навести порядок у себя в голове и в своем магазине, блоге, приложении не важно.Почему большинство разработчиков и владельцев магазинов не использует для меня пока загадка.


Работать с гит очень просто и это в разы повысит эффективность вашей разработки. И внимание если вы хоть раз попробуете git вам уже больше не захочется возвращаться к ftp.


Для начала просто заведите аккаунт на одном из бесплатных gitlab.com или github.com. Таким образом вы для себя создаете хранилище для кода. Данные сервисы позволяют просмотреть историю проекта, подключить новых разработчиков к своему проекту или исключить старых, тем самым вам больше не придется каждый раз менять доступы от вашего продакшен сервера где хостится сайт.
Список коммитов будет выгледеть примерно так
image.thumb.png.b3467dad86104bafb810165075758415.png

Далее кликаем по интересуещму вас комиту и видим какие файлы и строки были удалены, а какие добавлены изменени
image.thumb.png.4c39dabe9adabfa0be84b87e1f00910a.png

Так же git защищает от человеского фактора и серьезных ошибок, Если что-то попало в коммит или, тем более, на git-сервер, разработчику придется очень сильно постараться, чтобы это стереть. На самом деле, Git защищает даже не попавшие в коммиты данные, например, запрещая делать слияния при «грязном» состоянии репозитория (когда есть непроиндексированные изменения в рабочей области). Другими словами, это отличная защита от дурака, которая поможет вам случайно не потерять результаты работы.

К тому же, когда что-то сделано неправильно, причем, сделано неправильно на «боевом» сервере, то, благодаря своей производительности, git позволит очень быстро откатиться на стабильную версию и без спешки разобраться с проблемой, перенеся ее на тестовый сервер.

Предвижу в комметарих, что гит это для командной работы. Я так не считаю, но должен согласиться с тем, что система контоля версий изначально были созданы именно для командной работы.

Если совсем просто, то с Git пропадает всякий бред типа в скайпе писать «не трогай style.css, сейчас я его правлю». Один и тот же файл могут редактировать разные разработчики одновременно, сперва делая его копию себе в локальный репозиторий (проще говоря, на компьютер), затем сливая свои изменения вместе.

Как выгледит простекйший процесс разработки

image.png.684ce8ba8f899c9b2f80628e1e07cd1b.png

Напомню, мы сейчас рассматриваем ситуацию только со стороны заказчика. Так будет выглядеть работа при правильно настроенном Git. Попросить настроить Git вы можете своего разработчика

1) Вы ставите задачу разработчику.

2) Разработчик выполняет ее локально или вживую прямо на своем или вашем тестовом сервере. Вы проверяете результат на тестовом сервере, принимаете работу.

3) Разработчик создает коммит, соответствующий задаче и перемещает его на ваш репозиторий в git и делает слияние веток.

4) Вы заходите на свой сервер и подтягиваете результат с помощью простейших команд
cd /path/to/you/site
git pull

И все на вашем сайте будут при менены изменение, и нет никаких задержек в обновлении, нет никаких выводом масива данных вар дампов и прочего которые могут выводить разработчики при работе с сайтом на 'на живую'.

Как итог уважаемые разработчики, не стесняйтесь вносить иновации для ваших клинетов, они будут благодарны, когда вы уделите 20 минут и объесните клиенту для чего это и почему так удобно, и давайте сделаем  разработку удобной и повысим качество кода во всех дополнениях.

 

  • +1 6

27 коментарів


Recommended Comments



А если я как заказчик сам регулярно вношу изменения в сайт, как мелкие правки стилей, так и более масштабные порой в 10+ файлах? И эти правки в процессе нужно тестировать. После каждого сохранения файла выполнять команду в консоли, чтобы правка применилась? Пару лет назад пробовал смотреть в сторону гита, но тогда осилить не смог, и показалось, что в этом больше гемора, чем практической пользы, в условиях ежедневных бэкапов и правок кода + модуля от @halfhope по мониторингу изменения файлов.

  • +1 2
Надіслати
19 минут назад, dexion сказал:

А если я как заказчик сам регулярно вношу изменения в сайт, как мелкие правки стилей, так и более масштабные порой в 10+ файлах? И эти правки в процессе нужно тестировать. После каждого сохранения файла выполнять команду в консоли, чтобы правка применилась? Пару лет назад пробовал смотреть в сторону гита, но тогда осилить не смог, и показалось, что в этом больше гемора, чем практической пользы, в условиях ежедневных бэкапов и правок кода + модуля от @halfhope по мониторингу изменения файлов.

тестировать нужно не на боевом сервере, а на тестовом, которым может выступать так же и ваш ПК c OpenServer, docker или любой другой близкой к боевой среде сервер, развернутый например не поддомене.

  • +1 1
Надіслати

Некоторые правки бывают "безобидными", например, на странице товаров в админке. Такое можно спокойно ковырять и на боевом сервере - экономия времени на перенос правок. А если еще и работа выполнялась несколько дней - не нужно вспоминать какие именно файлы правились.

Плюс, часть программистов с форума предпочитают делать сразу на боевом, опять таки если правки "безобидные".

Я пробовал развернуть тестовую копию сайта. Но т.к. часть правок делались сразу на боевом, а часть на тестовом - спустя полгода проще было удалить и заново поставить тестовый, не смог придумать как актуализировать тестовую версию. Получается нужно вообще на 100% отказаться от прямых правок боевой версии?

И вроде как использование гита удорожает доработки.

  • +1 2
Надіслати
12 минут назад, dexion сказал:

Некоторые правки бывают "безобидными", например, на странице товаров в админке. Такое можно спокойно ковырять и на боевом сервере - экономия времени на перенос правок. А если еще и работа выполнялась несколько дней - не нужно вспоминать какие именно файлы правились.

Плюс, часть программистов с форума предпочитают делать сразу на боевом, опять таки если правки "безобидные".

Я пробовал развернуть тестовую копию сайта. Но т.к. часть правок делались сразу на боевом, а часть на тестовом - спустя полгода проще было удалить и заново поставить тестовый, не смог придумать как актуализировать тестовую версию. Получается нужно вообще на 100% отказаться от прямых правок боевой версии?

И вроде как использование гита удорожает доработки.

Не важно какие правки и где вы вносите, значительные они или нет, это прежде всего контроль, и всегда возможный откат к предыдущим изменениям, вы вносите правки, тестируете их на тестовом сервере, делате комит, благо соременные редакторы по типу phpStorm и vscode упрощают эту задачу, и вам не нужно видеть терминал парой, отправляете его на сервер в редакторе или в консоле командой git push в gitlab или github делаете мердж веток, и на боевом сервере одна команда git pull, так же можно настроить автодеплоер, тоесть вам даже на сревер заходить не придется, все изменения которые попадают в ветку мастер gitlab автоматически развернет на продакшен сервере ( может быть напишу статью по подобной настройке ), это все не дольше чем зайти на ftp найти нужный файл исправить сохранить и загрузить. А по поводу доработки, я бы задумался над компетенцией данного разработчика, который не умеет или не хочет освоить git хотя там осваивать нечего, и стоит ли ему доверять свой проект, который вам приносит деньги.

  • +1 1
Надіслати
13 минут назад, stickpro сказал:

может быть напишу статью по подобной настройке

Было бы интересно почитать. phpStorm я как то смотрел тоже пару лет назад, но не особо понял что там к чему. Мб конечно на маке версия отличается от виндовой, но если фтп подключить - секундное интуитивное действие, то на пхпшторм чет интуиции не хватило..

Пока  что использование гита мне видится как 1 большой костыль, хотелось бы развеять это представление. А если над сайтом работают 3 программиста единовременно, каждому свой клон (ветку) выдавать? У меня сайт 100гб+ весит с картинками и их кешем, это под каждую ветку по 100гб+ нужно выделять? А где это все хранится? И если 1 файл правился разными программистами в 1 день, как оно правильно объединится? Не будет ли это похоже на вкмод, который порой криво срабатывает из за конфликтов модулей?

Допустим я внес правки в 3 файла. Мне нужно в команде указать из каких именно файлов перенести правки с тестового на боевой? Или как происходит обновление?

Надіслати
4 минуты назад, dexion сказал:

Было бы интересно почитать. phpStorm я как то смотрел тоже пару лет назад, но не особо понял что там к чему. Мб конечно на маке версия отличается от виндовой, но если фтп подключить - секундное интуитивное действие, то на пхпшторм чет интуиции не хватило..

Пока  что использование гита мне видится как 1 большой костыль, хотелось бы развеять это представление. А если над сайтом работают 3 программиста единовременно, каждому свой клон (ветку) выдавать? У меня сайт 100гб+ весит с картинками и их кешем, это под каждую ветку по 100гб+ нужно выделять? А где это все хранится? И если 1 файл правился разными программистами в 1 день, как оно правильно объединится? Не будет ли это похоже на вкмод, который порой криво срабатывает из за конфликтов модулей?

Допустим я внес правки в 3 файла. Мне нужно в команде указать из каких именно файлов перенести правки с тестового на боевой? Или как происходит обновление?

Наоборот, не использование гита это и есть большой костыль, вам не нужно разворачивать несколько тестовых площадок, достаточно одной. и ей не обязательно быть точной копией со всеми картинками, и тянуть их в гит все эти картинки вообще ен нужно они добавляются в .gitignore, достаточно урезанной базы данных, кстати так безопаснее, у разработчика не будет полной информации о ваших заказах доступа к клинетам и реальной админской учетки, а тестовая бд. c минимально нужным наполнением. Разработчик же самостоятельно скачивает и на своем рабочем окружении, будь то openserver lamp xamp docker vagrant не важно разварачивает ваш сайт из dev ветки создает новую #1-task , работает над ним, и далее  уже загружает ветку  #1-task в вашем репозитории и межит ветку #1-task > dev, и на тестовый сервер или  же вы сами на тестовом сервере делеате git pull смотрите изменения, если вам все устраиваете мержите ветки  dev > master и удаляете ветку #1-task. Git отслеживает не файл в целом, а какбы каждую строчку по отдельности. У каждого разработчика есть своя задача, которую они решают в разных ветках разработчик один  #1-task разработчик два #2-task два у них одинаковые экземляры веток dev, допустим оба разработчика правят один и тот же файл, все заливают обе ветки и вы по очередно, их сливаете, но на втором слиянии может возникунть конфликт, который git может и самостоятельно разрешить если видны явные изменения, или предложит вам решить его самостоятельно. Вообще это нужно пробовать.

  • +1 1
Надіслати

Звучит здорово, но да, в идеале нужно смотреть как оно на практике. Может гайд какой нибудь соберете? Наверно можно даже как платную услугу это оформить - "подключение к гиту" с прилагающимся гайдом по дальнейшему использованию.

А сам гит при всем этом бесплатен?

Надіслати

В скором напишу подробный гайд по работе с гитом именно в рамках opencart. Да git бесплатен, ну в большинстве своем хватает бесплатного аккаунта

  • +1 4
Надіслати
8 часов назад, stickpro сказал:

В скором напишу подробный гайд по работе с гитом именно в рамках opencart. Да git бесплатен, ну в большинстве своем хватает бесплатного аккаунта

И получается что код сайта доступен для всех в любое время? На бесплатном аккаунте нет возможности закрыть все от индексации, или я не прав?

Надіслати
9 минут назад, gladky сказал:

И получается что код сайта доступен для всех в любое время? На бесплатном аккаунте нет возможности закрыть все от индексации, или я не прав?

репозиторий может быть как публичным, так и приватным, в бесплатной версии тоже есть возможность приватного репозитория

  • +1 1
Надіслати

и это все пишет паша @Pascha ? Который за 8 лет не достиг уровня даже джуна, который не знает даже понятия о psr-12, уровень которого это скопипастить код, и выдавать за свой, кстати так и не дождался ссылки где этот код в открытом доступе. Весь цивилизованный мир использует git вы же самый умный говорите, что это не удобно и не нужно. Прошу прощения, а какой вклад в opensource вы внесли? Или ваш предел только обманывать своих клиентов, выдавая себя за бога, который может в css покрасить кнопки?

  • +1 2
Надіслати

Почитал все это

Мое мнение - можете его почитать а можете забить большой болт

1 Я допустим вообще не знаю этот сайт для фриланса и сам не сижу по таким сайта - это же не значит что я не разбираюсь. Если бы я не разбирался - не потерли бы админы тему где я уничтожил Шаблон Паши - его кривую верстку. Видимо удалили потому что стало стыдно тем кто выставляет это все на продажу

2 Git - причем тут продавец ЧПУ станков. Вы можете сделать интернет магазин на Шаблоне Баваро бабушке которая убдет продавать свои старые трусы, а можете найти нормального заказчика. Последнее время средние бюджеты моих заказов от 500тыс рублей и выше.

Конечно Git, конечно контроль версий. Постоянно разрабатывается новый функционал и внедряется то что не спиздить на битриксе увидеть на других сайтах.

3 Я могу перечислить десятки разработчиков с Форума которых знаю лично с примерами их кода на Git шаблоны, модули api и др

4 Паша где Ваши разработки - или только влезть и обсосать чужое можете? Где Ваши публикации - 8 лет работы, куда вы все это деваете? Нельзя столько гениальной информации держать в голове - место в вашем теле начинает кончатся и брызгать с других дыр во всех темах StickPro этого форума

Тему мою скорее всего потрут а меня удалят. Но то не важно - я сказал что хотел.

 
  • +1 2
Надіслати
12 часов назад, Pascha сказал:

видимо потому что никому это не нужно, так как для любого продавана для контроля версий его магазина есть волшебная кнопка в ПУ его хостинга под названием "Бекап" (где можно задать срок сохранения резервной копии, а равно в любое время создать резервную копию по клику (к примеру перед тем как дать доступы к сайту очередному программисту)

Как бы вам сказать...а если над проектом перманентно работают 2-4 программиста, часть из них заменяется новыми под новые задачи? Перед стартом с каждым делать бэкап? И потом вспоминай какой бэкап перед кем был? А места хватит?

 

12 часов назад, Pascha сказал:

Станет ли  продавец станков с ЧПУ контролировать, проверять код и отслеживать изменения, а равно изучать языки программирования и все что к этому причитается дабы разбираться со всем этим хозяйством вместо того чтоб работать с поставщиками и своими сотрудниками и партнерами по бизнесу, заниматься логистикой и работой с потенциальными и реальными клиентами? 

Вы прям работали с каждым продавцом и знаете у кого как? Я, например, последние пару лет правки переношу самостоятельно с тестового домена. Спрашиваю какие файлы менялись, и дальше уже необходимое вытаскиваю. Доступ к основному сайту никому не даю, ну нафиг, потом задолбешься косяки подчищать, мало кто умеет с первого раза читабельно писать код, как показывает практика. И мне, как мне кажется, гит очень может пригодиться, но пока руки не дошли. Подозреваю, я не уникален. Так что данная статья очень даже полезна, и это наверно первая и единственная на текущий момент действительно ценная статья на форуме.

Надіслати
В 11.05.2020 в 04:27, dexion сказал:

Было бы интересно почитать. phpStorm я как то смотрел тоже пару лет назад, но не особо понял что там к чему. Мб конечно на маке версия отличается от виндовой, но если фтп подключить - секундное интуитивное действие, то на пхпшторм чет интуиции не хватило..

Пока  что использование гита мне видится как 1 большой костыль, хотелось бы развеять это представление. А если над сайтом работают 3 программиста единовременно, каждому свой клон (ветку) выдавать? У меня сайт 100гб+ весит с картинками и их кешем, это под каждую ветку по 100гб+ нужно выделять? А где это все хранится? И если 1 файл правился разными программистами в 1 день, как оно правильно объединится? Не будет ли это похоже на вкмод, который порой криво срабатывает из за конфликтов модулей?

Допустим я внес правки в 3 файла. Мне нужно в команде указать из каких именно файлов перенести правки с тестового на боевой? Или как происходит обновление?

 

Мне показалось, что использование гита эффективно в случае командной разработки. Как только участников проекта становится больше одного - нужны возможности контроля версий, отката и разрешения конфликтов в редактировании одних и тех же файлов. При разработке модулей для CMS это имеет смысл если нужно подключить к отладке и развитию сообщество, чтобы они добавляли pull request(ы), но для этого желательно достаточно свободно владеть английским. 

Надіслати
В 15.05.2020 в 22:51, Pascha сказал:

я сказал что бесполезна? Где? Тыкните меня носом... буду очень признателен если обоснуете что содержание статьи и 

одно и то же.
Видимо Вы пробежались по моим коментариям не вдаваясь в смысл написанного, впрочем как и сам ТС... потому как гнев глаза застит
 

 

повторюсь специально для Вас

В Вашем случае  2-4 кодера являются Вашей "карманной командой" на время работы с сайтом 

 

Нет не с каждым, но в основном они типичны (Вы - скорее исключение из правил и Ваш статус я указывал ранее в числе тех кому работа с Git приемлема. )

Защищая ТС Вы, надеюсь, поступаете верно судя со своей колокольни - выбрав основное, отбросив шелуху и не обратив внимание на те мелочи, которые для Вас не существенны и казалось бы само собой разумеющееся... причину этого я Вам назвал ранее...

Это по смыслу напоминает тот момент, когда к купленному Вами мужскому галстуку дают в подарок женские колготки, если у Вас есть жена- Вы с радостью и благодарностью примите этот бонус, а если нет... и у Вас даже не поинтересовались, есть ли у Вас женщина... Вы посчитаете это как минимум оскорблением и намеком на Вашу "нетрадиционность" и дело тут, как Вы понимаете не в чулках...они могут быть отличного качества, а в подаче... Надеюсь Вы поняли о чем я Вам сказал.

 

Забаньте этого индивидума за флуд - вы только меня банить можете. Павел вы жалок!

  • +1 1
Надіслати
В 15.05.2020 в 15:53, AUSS сказал:

Последнее время средние бюджеты моих заказов от 500тыс рублей и выше.

повеселило =)

Надіслати
3 часа назад, pimur сказал:

повеселило =)

Это может быть много для того кто Доедает крошки после Своего хозяина и его сирот

  • +1 1
Надіслати
1 минуту назад, pimur сказал:

ЧТо вы за больные люди на этом форуме? Вам так нравится писать мне всякое гавно ? Так нравится когда я Вас оскорбляю и унижаю? Вот ты сидел читал буквы разного размера большие и маленькие, целовал своего покровителя в губы и вдруг решил зайти поспамить людям в посту? Как же вы заколебали ..

Не ищи себе врага

  • +1 1
Надіслати
34 минуты назад, AUSS сказал:

люди на этом форуме

 

34 минуты назад, AUSS сказал:

мне

 

34 минуты назад, AUSS сказал:

Так нравится

 

34 минуты назад, AUSS сказал:

Вас

 

34 минуты назад, AUSS сказал:

целовал

 

34 минуты назад, AUSS сказал:

б

 

34 минуты назад, AUSS сказал:

ы

 

В 15.05.2020 в 15:53, AUSS сказал:

всех

 

34 минуты назад, AUSS сказал:

в губы

Фууу.

34 минуты назад, AUSS сказал:

Не ищи себе врага

Цитата

 

Дурак думает, что он умён, а умный человек знает, что он глуп

 

@AUSS У меня к вам вопрос. Кем вы себя считаете?

Умным или глупым?

  • +1 2
Надіслати

Люди пользующие фтп будут вариться в отдельном котле. Особенно те кто пользуют фтп вместе с гитом.
Но в рамках best practice = customer -> dev -> х*к-х*к и в -> production это скорей всего допустимо. :-D

Надіслати

Как вообще правильно развернуть тестовый сервер, особенно если планируешь использовать покупные модули, которые привязываются я так понимаю к домену?

Надіслати
В 01.11.2021 в 12:55, Nebel_ сказал:

Как вообще правильно развернуть тестовый сервер, особенно если планируешь использовать покупные модули, которые привязываются я так понимаю к домену?

вроде как любые купленные модули отлично живут на localhost и у них есть лицензия на тестовый домен вида test/staging.vash-domen, который вы указываете при покупке модуля как тестовый. 

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.