Александр Е.
80 сообщений
#16 лет назад
Всем доброго времени суток.
Программист я опытный, имею большое количество готовых наработок и кода, который интегрирую в свои приложения. Как правило, не занимаюсь установкой готовых движков, предпочитаю писать "с нуля".
Не так давно встала мысль о написании собственной CMS, но, увидев сколько модулей есть к бесплатный , понял что небольшой команде сложно разработать нечто подобное. Есть очень удачные небольшие компактные CMS вроде (кстати, прекрасная админка в плане гибкости и интуитивности восприятия), но это не совсем то, что хотелось бы видеть.
Проанализировав свои желания, понял - хочу хороший CMS-framework. Порылся в инете, нашел , но почему-то как-то на не потянуло.
Быть может, есть у вас какие-нибудь линки, где можно почитать про создания таких ядер?
Вадим Бартко
21 сообщение
#16 лет назад
"Проектирование корпоративных приложений" сами знаете кого
Станислав Малкин
1410 сообщений
#16 лет назад
Цитата ("Cord"):
Всем доброго времени суток.
Программист я опытный, имею большое количество готовых наработок и кода, который интегрирую в свои приложения. Как правило, не занимаюсь установкой готовых движков, предпочитаю писать "с нуля".
Не так давно встала мысль о написании собственной CMS, но, увидев сколько модулей есть к бесплатный , понял что небольшой команде сложно разработать нечто подобное. Есть очень удачные небольшие компактные CMS вроде (кстати, прекрасная админка в плане гибкости и интуитивности восприятия), но это не совсем то, что хотелось бы видеть.
Проанализировав свои желания, понял - хочу хороший CMS-framework. Порылся в инете, нашел , но почему-то как-то на не потянуло.
Быть может, есть у вас какие-нибудь линки, где можно почитать про создания таких ядер?


Начните с просмотра существующих фреймворков:

MZZ -
PRADO -
ZendFramework -
SYMPHONY -
CakePHP -

Для начала думаю Вам с головой хватит в чем разбираться..
Вадим Т.
3240 сообщений
#16 лет назад
- Среди программистов конца 70х бытовало мнение, что "каждый программист может сделать операционную систему, под себя".
- В середине 80х ходило такое "каждый программист может создать язык программирования для себя", и многие создавали.
- В конце 90x, пошло вовсю "каждый должен для себя сделать свой фреймворк".
- Далее, в начале 2000, когда вовсю пошло PHP, началось "каждая команда должна делать свою CMS, это лучший путь".

Наверное что-то в этом и есть... Но когда сложность задачи превышает возможности средней команды разработчиков, смысл в этом уже теряется, лучшего чем уже сделано часто трудно сделать, а главное, невыгодно. Раньше было просто создать свою OS, так как требования к ним были примитивны. А теперь - попробуйте

Cord, ничего плохого нет в том, если Вы разработаете свою CMS. Если она будет отличаться от других, и будет чем-то лучше других, она станет очень популярной. Например, если будет сверхбезопасна, в том числе будет способна нормально работать в safe_mode с установленными жесткими лимитами, если будет оптимизирована на максимально возможное быстродействие, легко выдерживая 300-400 запросов в секунду, если будет рассчитана на работу в кластере и т.д.
Олег Панькив
31 сообщение
#16 лет назад
А я пока нге встречал оптимальную CMS всегда чегото не хватает нужна простая CMS и гибкая, но не с разряда обильно обработать напильником, для меня главное, чтобы каждая страница могла использовать свой шаблон, а естественно порядоки наличие соответствующих блоков-компонентов, соответсвенно одна команда создайот основу CMS, а вторая основные модули. Достаточно неплохо реализовали эту задачу на коммерческой CMS Umi, но это всеравно не то.
Олег Панькив
31 сообщение
#16 лет назад
Кстати не плохо было бы организовать, условный доступ ко всем модулям, это был бы не плохой способ реализаци платных ресурсов.
Виктор Брылев
226 сообщений
#16 лет назад
Посмотрите повнимательнее на Symphony(php) и Ruby on Rails(ruby) фреймворки.
Николай Т.
205 сообщений
#16 лет назад
В копилку
(имхо кака)
(очень не плохо, даже очень очень)
symfony это вещь, правда пришлось отказаться из-за жуткого (имхо) механизма работы с классами, ну и вызовы логера конечно смутили (почему проверку на использование логера не вынесли в сам логер мне не ясно), а так лучшее что я видел.
mzz давний знакомый... релиза там ещё года 2 не будет, тк mz и zerkms пустило в создание рюшечек. mzz кстати не framework, о чём кстати и говорят его авторы. и самое главное mzz тормозит, с чем конечно не согласны авторы, но это факт.

2 tvv:
ваш пример пытаются учитывать все разработчики, но ни у кого не получается, да и ни когда не получиться

2 pilot if:
костюм сшитый на заказ всегда лучше сидит чем костюм купленный в магазине

вместо окончания:
протыкал в свое время все демосайты всех коммерческих цмс, совесть не позволила это впаривать
Вадим Бартко
21 сообщение
#16 лет назад
Вешь - это wicket. Пример кода из текущего проекта:

public class RegisterPanel extends Panel {

private String email;
private String firstName;
private String secondName;
private String password;
private String passwordConfirmation;

public RegisterPanel(String name, IModel model) {
super(name, model);

add(HeaderContributor.forCss("html/style/stylesheet.css");
Form registrationForm = new RegistrationForm("registrationForm", new Model("");

FeedbackPanel feedback = new FeedbackPanel("registerFeedback";
feedback.setFilter(new ContainerFeedbackMessageFilter(registrationForm));

// создание элементов формы
TextField email = new TextField("email", new PropertyModel(this, "email");
TextField firstName = new TextField("firstName", new PropertyModel(this, "firstName");
TextField secondName = new TextField("secondName", new PropertyModel(this, "secondName");


PasswordTextField password = new PasswordTextField("password", new PropertyModel(this, "password");
PasswordTextField passwordConfirmation = new PasswordTextField("passwordConfirmation", new PropertyModel(this, "passwordConfirmation");

// добавление валидаторов
password.add(StringValidator.minimumLength(6));
registrationForm.add(new EqualPasswordInputValidator(password, passwordConfirmation));
email.setRequired(true);
email.add(EmailAddressPatternValidator.getInstance());
email.add(new UniqueEmailValidator());

// добавление элементов к панели
add(feedback);
add(registrationForm);
registrationForm.add(email);
registrationForm.add(firstName);
registrationForm.add(secondName);
registrationForm.add(password);
registrationForm.add(passwordConfirmation);

// PropertyConfigurator.configure("/home/neiroman/projects/Nevilon Services/Sync/src/com/nevilon/services/sync/web/log4j.properties";



}

public String getPasswordConfirmation() {
return passwordConfirmation;
}

public void setPasswordConfirmation(String passwordConfirmation) {
this.passwordConfirmation = passwordConfirmation;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getSecondName() {
return secondName;
}

public void setSecondName(String secondName) {
this.secondName = secondName;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

class RegistrationForm extends Form {

public RegistrationForm(String id, IModel model) {
super(id, model);
}

@Override
public void onSubmit() {
Account newAccount = new Account();
newAccount.setEmail(email);
newAccount.setFirstName(firstName);
newAccount.setSecondName(secondName);
newAccount.setPassword(password);

RegistrationMailMessage regMessage = new RegistrationMailMessage(newAccount);


AccountManager accountManager = AccountManager.getInstance();
accountManager.saveAccount(newAccount);
MailController mct = new MailController();
mct.sendMessage(email,MailTemplates.REGISTER_NOTIFICATION,regMessage);


}
}
}