From: "Денис Смирнов" <mithraen@altlinux.ru> To: smoke-room@lists.altlinux.org Subject: Re: [room] Вопрос по PHP (или I Hate PHP) Date: Tue, 13 Feb 2007 19:16:28 +0300 Message-ID: <20070213161628.GB10549@mw.local.seiros.ru> (raw) In-Reply-To: <679044850702130421v5bf0759cu82b6409bfb1113ee@mail.gmail.com> On Tue, Feb 13, 2007 at 03:21:35PM +0300, Damir Shayhutdinov wrote: >> - Java категорически не нравится собственно для написания web-приложения. >> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой >> скриптовый язык из которого генерировать код на жабе я смогу. А где >> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать >> на жабе; DS> Есть JSP, есть сервлеты. JSP - это аналог php, только вставки там DS> делаются не на убогом PHP, а на Java, также есть возможность расширять DS> синтаксис этого jsp своими "тегами" и есть хорошая интеграция с Java DS> Beans и сессиями. Ну сервлеты мне хотя бы понятны. JSP это такой же кошмар что и PHP. Идея мешать код и данные меня категорически не устраивает. Я сейчас пишу вот так: ============================================================================= [requires] [templates] tpl => firm_edit.tmpl [cgi_param] name form str default(NULL) firmname str default(NULL) param do_update str default(0) id int min(0) update uraddr str default(NULL) ogrn str default(NULL) min(1) kpp str default(NULL) gendir_f str default(NULL) gendir_i str default(NULL) gendir_o str default(NULL) buh_f str default(NULL) buh_i str default(NULL) buh_o str default(NULL) [php] <?php if( !$edb->is_counteragent_id($param['id']) ) { redirect(); exit(); } if( $param['do_update'] === 'yes' ) { $where['counteragent_id'] = $param['id']; $db->update('firms', $update, $where); $db->update('counteragents', $name, $where); redirect("firm_show.php?id=".$param['id']); } $tpl->param($edb->get_counteragent($param['id'])); $tpl->value('accounts', $edb->get_counteragent_active_accounts($param['id']); ============================================================================= Разумеется код для объекта edb тоже генерирутся из высокоуровневого описания. cgi_param генерирует констрейнты для проверки валидности переданых пользователем значений. На все приложение, в котором используется такой стиль, есть всего несколько хоть чуточку нетривиальных функций на PHP. Остальное вот в таком линейном стиле, который запросто можно автоматически сконвертировать хоть в basic, хоть в haskell. >> - Генерировать самому код для JVM -- гм, а что, есть для этого >> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и >> более-менее эффективные (умеющие задействовать при необходимости фишки >> как сановской, так и IBM'овской реализации)? >> - То, что считается общепринятым методом разработки web-приложений на >> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому >> использовать как CGI нельзя. Остается FastCGI или встраивать в свое >> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя >> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется >> самостоятельно. DS> Веб-приложения на Java сделанные в виде сервлетов/JSP отлично DS> запускаются в среде контейнера сервлетов. То есть для обработки DS> запроса порождается очередной экземпляр сервлета и вызываются его DS> методы. Затраты на порождение близки к затратам на вызов метода new + DS> времени инициализации конструктора. DS> Контейнер сервлетов Tomcat может подключаться бэкэндом к апачу (через DS> jk-коннекторы), и у него уже есть штатный load balancing. А может быть DS> и обычным веб-сервером, даже с поддержкой https. DS> Есть еще другие контейнеры - но с ними я особенно не работал, так что не знаю. (со злобным выражением лица и стуча ложкой по столу) хочу FastCGI! >> Что мне, кстати, очень понравилось в Java -- очень хороший набор >> параметризуемых классов для различных структур данных. А также сам подход >> к ООП с разделением интерфейсов и собственно классов. Удобно это. DS> Главное не увлекаться. :) Ну, положим увлекаться с _интерфейсами_ в отличии от наследования вполне безопасно, и не уродует код. -- С уважением, Денис http://freesource.info ---------------------------------------------------------------------------- Documentation - The worst part of programming.
next prev parent reply other threads:[~2007-02-13 16:16 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-02-11 1:16 Денис Смирнов 2007-02-11 5:40 ` Anatol B. Bazyukin 2007-02-11 20:43 ` Денис Смирнов 2007-02-12 6:00 ` Eugene Prokopiev 2007-02-13 10:02 ` Денис Смирнов 2007-02-13 12:21 ` Damir Shayhutdinov 2007-02-13 16:16 ` Денис Смирнов [this message] 2007-02-13 16:37 ` Damir Shayhutdinov 2007-02-14 19:07 ` Денис Смирнов 2007-02-14 15:15 ` Michael Shigorin 2007-02-15 10:45 ` Денис Смирнов 2007-02-13 18:29 ` Andrey Rahmatullin 2007-02-14 19:03 ` Денис Смирнов 2007-02-14 14:59 ` Andrey Rahmatullin 2007-02-15 10:26 ` Денис Смирнов 2007-02-15 16:02 ` Andrey Rahmatullin 2007-02-17 11:55 ` Денис Смирнов 2007-02-14 15:11 ` Michael Shigorin 2007-02-15 10:45 ` Денис Смирнов 2007-02-17 17:22 ` Alexander Borovsky 2007-02-24 11:51 ` Денис Смирнов 2007-02-18 14:22 ` Eugene Prokopiev 2007-02-19 6:40 ` Eugene Prokopiev 2007-02-24 12:02 ` Денис Смирнов 2007-02-24 15:28 ` Eugene Prokopiev 2007-02-25 9:18 ` Денис Смирнов 2007-02-25 21:55 ` Eugene Prokopiev 2007-02-25 22:16 ` Денис Смирнов 2007-02-19 11:02 ` Денис Смирнов
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070213161628.GB10549@mw.local.seiros.ru \ --to=mithraen@altlinux.ru \ --cc=smoke-room@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Культурный офтопик This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \ smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com public-inbox-index smoke-room Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.smoke-room AGPL code for this site: git clone https://public-inbox.org/public-inbox.git