Что могло выровнять по ширине сложность Plone?

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

Пожалуйста, имейте в виду, что этот метод не так масштабируем и довольно неэффективен, если у вас есть 100 различных способов создания сеток.

Однако, если у вас есть (например, 3) типа таких способов, например, вы можете использовать константы!

См. Ниже:

 public class WebCenterGrid {
    //Declare constants with meaningful names for grid creation (add more as you like)
    public static final int DEEP_COPY=1, SEARCH=2, REBUILD=3;

    public void makeDeepCopy(){
    //implementation goes here..
    }

    public void searchAndPopulate(){
    //implementation goes here..
    }

    public void rebuildGrid(){
    //implementation goes here..
    }

    public void refresh(int operation) {
        switch(operation) {
        //based on 'operation', call appropriate method!
        case DEEP_COPY: this.makeDeepCopy(); break;
        case SEARCH: this.searchAndPopulate(); break;
        case REBUILD: this.rebuildGrid(); break;
        //you can have a default operation for any parameter that is not
        //in the list of our defined constants(i.e. the number 143)
        default: simpleRefresh(); break;
        }
    }
 }

Итак, что делает вышеприведенное работа решения?

Обычно, когда вы вызываете refresh(int operation) из одного из ваших других классов, вам нужно передать int в качестве параметра. Это целое число является одной из констант, определенных в самом верху класса. В зависимости от того, какая константа была передана, регистр переключателя будет определять, какой метод вызывать.

ПРИМЕР (Допустим, AwesomeGridCreator - это класс, который при вызове refresh () для обновления сетки должен выполнить поиск и затем заполнить сетку (, как вы) упомяните в своем вопросе ).

Назовем целое число (для простоты) SEARCH_POPULATE и присваиваем ему ЛЮБОЕ значение , которое мы хотим. Например 286 [ 119].

Затем мы можем использовать эту константу из любого другого класса, потому что нам не важно, каково ее значение (в данном случае 286, но какая функциональность она предоставляет при вызове refresh(). [ 1118]

public class WebCenterGrid {
    /*some code here*/
    public static final int SEARCH_POPULATE = 286; //integer value doesn't matter

    public void refresh(int operation) {
        switch(operation) {
        case SEARCH_POPULATE: this.searchAndPopulate(); break;
    }


    /*...some other code here, we don't care..*/
}

Затем, в классе «призвания»:

public class AwesomeGridCreator{
  //some code here

  WebCenterGrid wcg = new WebCenterGrid();
  //The parameter that we pass below (2), will make the refresh() method call
  //the method that we defined in our switch cases ('searchAndPopulate()').
  wcg.refresh(wcg.SEARCH_POPULATE);
}
13
задан Community 23 May 2017 в 12:09
поделиться

6 ответов

Если Вы хотите видеть сложность Plone, необходимо попросить его. Для большинства людей это просто не там. Это устанавливает за несколько минут через установщик с одним щелчком. Затем это - один щелчок для входа в систему, один щелчок, чтобы создать страницу, использовать редактора WYSYWIG и один щелчок для сохранения. Все через интуитивный веб-GUI. Plone является продуктом.

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

23
ответ дан 1 December 2019 в 17:12
поделиться

Я вижу четыре вещи, которые могут выровнять по ширине инвестиции времени в использовании Plone:

  • Plone имеет многочисленное и полезное сообщество. Большинство вещей Вам нужно, кто-то еще
    уже сделал в некоторое время в прошлом. Он, вероятно, задал некоторые вопросы и получил полезные ответы, или он записал учебное руководство. Обычно это оставляет трассировки легкими найти. о том, как он сделал это.
  • Вы не должны будете понимать целую сложность для многих Ваших потребностей настройки.
  • Разработчики Plone знают о своем сложном стеке и обсуждают, как это может быть уменьшено. Plone доказал в прошлом, что может возобновить себя и отбросить старую инфраструктуру в очевидном способе с определенными фазами депрекации.
  • Существуют многие группы локального пользователя с услужливыми людьми.

О, ожидайте, мне сказали, что plone встречи разработчиков являются одним из лучших! Как этот

7
ответ дан 1 December 2019 в 17:12
поделиться

Трудно ответить на Ваш вопрос без любой справочной информации. Сложность выравнивается по ширине, если Вы просто хотите блог? Нет. Сложность выравнивается по ширине при создании интранет компании для 400 + люди? Да. Действительно ли это - хорошие инвестиции, если Вы надеетесь быть консультантом? Абсолютно! Существует большая работа Plone там, и она платит намного лучше, чем среднее задание PHP.

Я поощрил бы Вас разъяснять то, что Вы пытаетесь создать, и попросить у форумов Plone совета. Plone имеет очень сформировавшееся и дружелюбное сообщество — и абсолютно сообщит, является ли то, что Вы пытаетесь сделать, бедными, подходящими для Plone. Можно, конечно, сделать то, что Вы хотите с Plone, но существуют некоторые области, где это - доступное лучшее решение, другие области, где это будет большая работа для изменения его, чтобы сделать что-то еще.

Некоторый фон:

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

Plone делает это, чтобы не оставлять их клиентов путем повреждения назад совместимости, к которой они относятся очень серьезно — в отличие от других систем, которые я мог упомянуть (но не будет ;).

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

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

Как пример, считайте текущую версию Plone разработанной (что станет 4.0):

  • Это запускает в 3-4 раза быстрее, чем текущая версия.
  • Это использует приблизительно на 20% меньше памяти, чем текущая версия.
  • Существует очень, намного более легкая система типов в работах (Функциональные возможности), которые уменьшат сложность и ускорят систему много при хранении того же уровня функциональности
  • Кодовая база уже на 20% меньше, чем текущая версия поставки и получение еще меньшего.
  • Ранние сравнительные тесты новой системы типов показывают 5× ускорение для довольного редактирование, и мы действительно не начали оптимизировать эту часть все же.

— Alexander Limi, соучредитель Plone (и немного смещенный ;)

29
ответ дан 1 December 2019 в 17:12
поделиться

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


Этим летом мой шахматный клуб попросил, чтобы я сделал новый веб-сайт, где члены платы должны смочь добавить экстренные сообщения, статьи... Походивший CMS. Будучи разработчиком Python, я посмотрел на Plone и купил Профессиональную разработку книги Aspeli Plone (превосходный записанный btw).

Я занял 3 недели своего отпуска исследование, которое книга и устанавливать первое копирует сайта.

После 3 недель я понял, что Plone имеет некоторые очень хорошие вещи, но также и некоторые очень расстраивающие вещи На positivie стороне

  • если Вы не должны настраивать Plone, Plone является большим в функциях и расположении
  • Plone имеет хорошую модель обеспечения безопасности
  • Plone имеет хороший от рабочих процессов полки
  • Plone является много языком (в чем я нуждался),

На оборотной стороне

  1. Plone ужасен медленный. На моей платформе разработки (3-летний ПК с 512 МБ RAM) требуется 30 секунд для запуска Plone, и требуется 10 - 15 секунд для перезагрузки страницы
  2. Вам нужно много различных технологий, чтобы настроить или разработать даже самые простые вещи
  3. TAL и Металл не являются состоянием и не адаптированные к дизайну OO Plone.
  4. Приобретение по умолчанию является неправильным. Acquisation может быть очень полезным (для, например, безопасность), но он должен быть явно определен при необходимости. Это - недостаток дизайна
  5. Plone не различает содержание и расположение. Это серьезный недостаток дизайна. Нет никакой причины применить настройки безопасности и роли на, например, каскадную таблицу стилей или HTML, который создает расположение на 3 столбца и нет никакой причины, почему эти элементы должны быть в ZODB а не в файловой системе
  6. Plone не отличает между веб-дизайнером и редактором контента / издателя, снова серьезный дефект. Редактор контента / издатель добавляет/рассматривает содержание, работающее на живом сайте. Веб-дизайнер добавляет/изменяет типы контента, формы и расположение на тестовом сервере и портирует его на живой сервер, когда готовый. Ограничения безопасности, которые Plone помещают на месте для редактора контента, не должны быть применены для веб-дизайнера, у которого есть доступ к файловой системе на сервере.
  7. Plone не различает графические аспекты и аспекты программирования веб-дизайнера. Графические художники используют инструменты, которые только говорят HTML, CSS и определенные javasccript, но никакой Python, адаптеры и другие усовершенствованные концепции программирования. Как следствие полная очищающая система в Plone является кошмаром

Я предполагаю, что Plone является настолько медленным из-за точек 4, 5, 6 и 7.

Точки 6 и 7 сделали меня отбрасыванием Plone. Я навел справки о других опциях и в конечном счете решил разработать свой собственный CMS на Опорах, который ослепительно быстр по сравнению с Plone. На том же сервере разработки у меня есть время запуска 1 секунды, и время страницы перезагрузки не измеримо.

Сайт www.kosk.be работает (это находится на нидерландском языке). CMS позади него, названный Красным дьяволом, будет запущен как отдельный проект с открытым исходным кодом, начинающийся в следующем году

10
ответ дан 1 December 2019 в 17:12
поделиться

С точки зрения системного администратора Plone просто стесняется быть абсолютным дьяволом. Обновление, поддерживая и устанавливая, где Вы хотите установить вещи, является все более болезненным, чем необходимый на платформе Linux. Это - просто мои два цента, хотя, и почему я обычно предпочитаю избегать стека Zope/Plone.

Примечание: это лучше с более новыми выпусками, но более старыми выпусками.... тьфу

5
ответ дан 1 December 2019 в 17:12
поделиться

Наращивание.

4
ответ дан 1 December 2019 в 17:12
поделиться
Другие вопросы по тегам:

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