X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

2 страниц Открыть меню   1 2 >  
Ответить в данную темуНачать новую тему
> Автоматическое обновление системы
Alexander
сообщение 2012-01-18, 2:23
Сообщение #1
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Меня все чаще спрашивают: когда будет реализована функция автоматического обновления системы, чтобы не перекачивать архив, а в админке щелкнуть ссылку и получить новый функционал. Этот вопрос заставляет меня каждый глубоко задуматься над реализацией такой "фишки"... Но есть ряд проблем, которые не позволяют мне даже представить такую функцию. Пока я не вижу способов автообновления системы, поскольку сразу после того, как система установлена на рабочий сайт, она в 90% случаев подвергается изменениям внутри себя: владелец хочет изменить шаблон, подкорректировать работу модуля, базы данных и т.п.

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

  1. Обновить только ядро системы. Так поступать нельзя потому что администратор сайта волен менять и ядро системы, как ему угодно. Но даже и без этого, в ядре могут произойти изменения, которые повлекут за собой изменение и кода модулей.
  2. Заменить только те файлы, которые администратор сайта не менял. А что делать с теми, которые он менял?
  3. Написать код системы так, чтобы изменять содержимое файлов было не нужно, а все можно было сделать путем вкраплений в определенные файлы. И как Вы себе это представляете? Да, я знаю, что можно использовать к примеру это или расставлять свои подобные костыли... Но такой подход неизбежно ведет к усложнению разработки под систему нового функционала, увеличению объема мертвого кода и к замедлению выполнения скриптов, плюс ко всему я не уверен на 100%, что с такими костылями можно серьезно жить.
  4. Сделать эту опцию для тех, кто не изменяет ядро системы. Такой подход не есть решением проблемы. Такие пользователи могут вручную заменить все файлы. Я ищу красивое решение, а не ограниченное и со звездочками.


Поделитесь, пожалуйста, своими соображениями по существу.

Сообщение отредактировал Alexander - 2012-01-18, 16:30
Перейти в начало страницы
+Цитировать сообщение
lestatbbk
сообщение 2012-01-18, 3:22
Сообщение #2
Новичок
Иконка группы

Группа: Eleanor user
Сообщений: 49
Регистрация: 2008-12-27
Из: Харьков

Репутация:   нет  
Всего: нет


Автообновление как "фишка" очень классная штука!
К примеру, в том же Wordpress присутствует, а вот в ядро мало кто лазит. Если уж и поправил что-то для себя - автообновление является не приемлемым и администратор знает, что могут возникнуть проблемы да и терять свои изменения не очень хочется!

В нашем случае, думаю, что лучше всего сделать уведомление (только админу) о том, что есть обновление и прямую ссылочку/ссылочки на архив/ы
(т.е к примеру у меня utf8 версия).
-------------------------------------------------
"Доступно обновление Eleanor CMS"
"Версия: 1.0 alpha #10"
"Описание: исправление сущ. замечаний
"Рекомендуемое обновление: <a href="{ссылка на utf версию системы}" alt="">utf8 версия</a> (если установлена cp1251 - предлагать соответсвующую версию)
-------------------------------------------------

по поводу 3 пункта, а зачем изобретать велосипед и создавать лишние проблемы?
для этого лучше использовать какую нить систему "версирования" файлов (svn/git), очень удобно.

я к примеру, на живом сайте не обновляюсь, всегда стягиваю рабочие файлы на локальный серв, сверяю версии файлов с оригинальным движком (через svn), произвожу все манипуляции (Merge) и после заливаю обратно
(а как на счет базы? - имею удаленный доступ к базе и обновляю с локального хоста)






Сообщение отредактировал lestatbbk - 2012-01-18, 3:32
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2012-01-18, 3:25
Сообщение #3
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Сделать всплывающее окошко с информацией о том, что появилась новая версия - не проблема... Сделаем, если желающих много. Но вопрос все-таки был насчет автоматического обновления...
Перейти в начало страницы
+Цитировать сообщение
lestatbbk
сообщение 2012-01-18, 3:27
Сообщение #4
Новичок
Иконка группы

Группа: Eleanor user
Сообщений: 49
Регистрация: 2008-12-27
Из: Харьков

Репутация:   нет  
Всего: нет


Цитата (Alexander @ 2012-01-18, 3:25)
Сделать всплывающее окошко с информацией о том, что появилась новая версия - не проблема... Сделаем, если желающих много. Но вопрос все-таки был насчет автоматического обновления...


Как по мне, в нашем случае оно не приемлемо

а вообще, чтобы было всем хорошо

дать пользователю выбор

вывести такое окно или блок в самом лояуте админки, что доступно обновление (описание выше)
В это окно добавить кнопочку [Обновить]
по нажати - вывести уведомление красными буковками, что при обновлении будет произведена замена всех файлов Eleanor CMS кроме ваших шаблонов и ваших модулей

возможно, ввести систему версий для модулей, и как-то пробовать выключить модули не совместимые с текущей версией Eleanor CMS

Сообщение отредактировал lestatbbk - 2012-01-18, 3:50
Перейти в начало страницы
+Цитировать сообщение
Xenus
сообщение 2012-01-18, 11:14
Сообщение #5
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2011-11-01

Репутация:   нет  
Всего: нет


На данный момент автообновление нет смысл прикручивать, почему, обяснено по пунктам в первом сообщении этой темы.

Допустим, сейчас прикрутят автообновление, автоматом проверяется наличие более новой версии на сайте и если она есть, предлогает пользователю обновится. Пользователь дал добро - скачались новые файлы поверх старых (о этом естественно его заранее предупреждали), вроде бы всё нормально. А через день, юзер видит что у него пропала с сайта какая-нибудь сделанная им 100500 лет назад фича, о которой он благополучно забыл. И что ему теперь делать? Что правил и где он не помнит. В голову идут три решения:
  • откат;
  • идти к Alexander' у и просить помочь сделать то что нужно;
  • мучатся вспоминая как и что нужно поправить, чтобы сделать так, как было раньше;



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





Сообщение отредактировал Xenus - 2012-01-18, 11:16
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2012-01-18, 16:40
Сообщение #6
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Xenus, запускаем svn сейчас - он решит эту проблему (со списком файлов и изменений в них). Но сейчас скажу так, что изменен в системе почти каждый файл, по крайней мере 80% файлов - точно. Что в таких условиях Вам бы дал список всех изменных файлов? Если я вижу такой список из 30+ пунктов, скорее всего я его закрою с мыслями "проще тупо заменить файлы и выловить ошибки".

Добавлено через 1 минут, 8 секунд:

Цитата (lestatbbk @ 2024-04-19 12:12)
по нажати - вывести уведомление красными буковками, что при обновлении будет произведена замена всех файлов Eleanor CMS кроме ваших шаблонов и ваших модулей

Это не решение. Такие пользователи могут самостоятельно заменить файлы системы.
Перейти в начало страницы
+Цитировать сообщение
lestatbbk
сообщение 2012-01-18, 20:24
Сообщение #7
Новичок
Иконка группы

Группа: Eleanor user
Сообщений: 49
Регистрация: 2008-12-27
Из: Харьков

Репутация:   нет  
Всего: нет


Цитата (Alexander @ 2012-01-18, 16:40)
Это не решение. Такие пользователи могут самостоятельно заменить файлы системы.


примерно так поступает Wordpress при обновлении на новую версию + выполняются дополнительные запросы в базу (если что-то добавилось)
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2012-01-18, 21:54
Сообщение #8
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


lestatbbk, скриншот можете сделать, как это происходит в WP?
Перейти в начало страницы
+Цитировать сообщение
lestatbbk
сообщение 2012-01-19, 0:27
Сообщение #9
Новичок
Иконка группы

Группа: Eleanor user
Сообщений: 49
Регистрация: 2008-12-27
Из: Харьков

Репутация:   нет  
Всего: нет


Цитата (Alexander @ 2012-01-18, 21:54)
lestatbbk, скриншот можете сделать, как это происходит в WP?

вот видео для наглядности

http://www.youtube.com/watch?feature=player_detailpage&v=Hw93494zxrg#t=12s

Сообщение отредактировал lestatbbk - 2012-01-19, 0:28
Перейти в начало страницы
+Цитировать сообщение
Djadka
сообщение 2012-01-19, 17:50
Сообщение #10
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 463
Регистрация: 2010-10-17

Репутация:   нет  
Всего: нет


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

В данном случае что бы всё обновлялось надо делать что бы всё новое капировалось из нового файла в старый, но тогда всё потрётся, что приведёт к весьма печальным последствиям. Поэтому не стоит обновлять файлы которые изменял админ, и к каждому файлу писать какой то минимальный репорт о том что менялось. Что бы админ сам мог поменять потом.
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2012-01-19, 23:40
Сообщение #11
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Djadka, я так понимаю, наличие svn-а решит проблему автообновлений...
Перейти в начало страницы
+Цитировать сообщение
Djadka
сообщение 2012-01-20, 0:51
Сообщение #12
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 463
Регистрация: 2010-10-17

Репутация:   нет  
Всего: нет


ВОобще хотелось бы сделать раздел с примочками где можно было бы быстро ставить блоки и модули, что бы не надо было качать и ставить самому, то есть будет список всех блоков модулей разделёных по категориям может там ещё всякие примочки хаки будут отдельной категорией. А может вообще что бы была возможность отключение каких то модулей и блоков и примочек которые не надо, что бы лишний раз не тормозили систему.
Перейти в начало страницы
+Цитировать сообщение
7Azimuth
сообщение 2012-01-31, 21:51
Сообщение #13
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 525
Регистрация: 2010-10-20
Из: Украина

Репутация:   нет  
Всего: нет


Цитата
дать пользователю выбор

вывести такое окно или блок в самом лояуте админки, что доступно обновление (описание выше)
В это окно добавить кнопочку [Обновить]
по нажати - вывести уведомление красными буковками, что при обновлении будет произведена замена всех файлов Eleanor CMS кроме ваших шаблонов и ваших модулей

Согласен с этой мыслью!
Перейти в начало страницы
+Цитировать сообщение
7Azimuth
сообщение 2012-01-31, 22:09
Сообщение #14
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 525
Регистрация: 2010-10-20
Из: Украина

Репутация:   нет  
Всего: нет


В последней Джумле кстати, тоже есть такая возможность. Они вообще там дальше пошли и придумали даже кнопку для проверки обновлений для дополнений :)


Сообщение отредактировал 7Azimuth - 2012-01-31, 22:14
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2012-01-31, 22:52
Сообщение #15
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Красные буквы-преждения - не выход. Нужно более красивое решение, коего пока не предложили. Или все предложения сводятся к:
  • Уведомить пользователя о новой версии.
  • Предложить обновить.
  • Показать красную табличку с предупреждением о том, какие файлы будут заменены.
  • Заменить указанные файлы.

Ладно. Подумаем, как это все реализовать...
Перейти в начало страницы
+Цитировать сообщение
Гость_Ramix_*
сообщение 2012-02-01, 10:00
Сообщение #16



Гости





Интересный поднят вопрос. С моей точки зрения, необходимо писать систему полностью абстрагировавшись от ядра, чтобы у меня даже мысли не было лезть в ядро и что-то там менять (т.к. это "поле" разработчика системы). Соответственно, если держать такую линию - ядро уже можно обновлять безболезненно. Для того, чтобы не ломались модули и другие пользовательские дополнения, очевидно, что необходимо поддерживать существующий API в следующих версиях. Выходит, Александр, вопрос с системой автоматического обновления поднят слишком рано, т.к. система пока alpha и API, скорее всего, будет изменяться.
Перейти в начало страницы
+Цитировать сообщение
LuxCore
сообщение 2012-07-07, 22:56
Сообщение #17
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 278
Регистрация: 2011-11-09

Репутация:   нет  
Всего: нет


Сегодня покрутил в голове, как реализовать автообновление исходя из нынешней ситуации. Конечно же согласен с Александром, что вывод простого сообщения - фигня на постном масле. Вот как я вижу на данный момент эту ситуацию: показывать пользователю, а точнее админу окошко "Diff", наподобие SVN`овского и построчно пользователь сможет анализировать и тут же заменять необходимые ему строки кода (не малина, конечно, но считаю мыслью мозгового штурма :) ).
Тем не менее буду думать со всеми вами дальше об автообновлении.
Перейти в начало страницы
+Цитировать сообщение
Djadka
сообщение 2012-07-07, 23:12
Сообщение #18
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 463
Регистрация: 2010-10-17

Репутация:   нет  
Всего: нет


Обновление штука сложная, учитывая, что система может меняться из вне, а не изнутри, то есть сделать систему, которая могла бы только меняться изнутри и не как нельзя было бы править файл из вне, что бы система могла контролировать свои файлы и в случае каких то косяков откатываться, да звучить конечно архи глобально, но всё таки стоит задумываться, орагнизовывать SVN на PHP это не очень, и мергить файлы в админке тоже как то не очень, этим должен заниматься сам СВН. Пока бы стоит сделать инсталлер модулей. На данный момент начал разрабатывать модуль переводов статичных файло системы, что находяться сейчас в виде массивов, что бы можно было бы из админке делать, а не править всё ручками, так как бывают такие ситуации что пользователю это не обходимо. И вообще клиент не должен знать пхп что бы работать с системой, вот в меню модуле это можно встретить, что бы сделать пункт в меню ведущий на какой то модуль не обходимо писать клиенту PHP, а если это блондинкО, то выходит надо уже отказываться от системы, так как тут нужны уже не примитивные знания. Для меня лично кажется, что систему надо строить, так что она будет расчитана, на весьма не образованых и не далёких людей, так организую такую систему мы избавляемся от многих проблем.
Перейти в начало страницы
+Цитировать сообщение
LuxCore
сообщение 2012-07-07, 23:23
Сообщение #19
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 278
Регистрация: 2011-11-09

Репутация:   нет  
Всего: нет


Для "блондинок" это вы хорошо и полезно сказали, но иногда и в блондиночных галочках теряешься. Вот у меня, например, постоянная потребность залезть вовнутрь, мне трудно бывает работать, если не знаю как устроено. Даже не зная язык PHP, я всё равно лезу, ищу, меняю. Поэтому делать систему для "блондинок" не есть оптимально.
Перейти в начало страницы
+Цитировать сообщение
Djadka
сообщение 2012-07-08, 10:56
Сообщение #20
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 463
Регистрация: 2010-10-17

Репутация:   нет  
Всего: нет


Не есть оптимально, когда тебя дёргают по каждой мелочи. А что там надо вставить где написано PHP код, я не понимаю. И оптимальности должно быть столько, что бы не надо было меня внутрености, что бы можно сказать каждая мелочь была бы настраиваемая без всяких на то лазаний в ядро. Вы же не лезет в виндовс что бы понять как он работает, да и это не возможно, всё решает куча настроек и патчей, да конечно можно залезть в реестр и конкретно всё заточить и переточить, но опять же это только настройки, а не сама реализация.
Перейти в начало страницы
+Цитировать сообщение

2 страниц Открыть меню   1 2 >
Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0375 сек.    11 запросов    GZIP включен    Сейчас: 2024-04-19, 12:12