From: Eugene Prokopiev <prokopiev@stc.donpac.ru> To: "культурный офтопик" <smoke-room@lists.altlinux.org> Subject: Re: [room] Лекция по Java Date: Mon, 26 Feb 2007 01:52:15 +0300 Message-ID: <45E2131F.9020507@stc.donpac.ru> (raw) In-Reply-To: <20070225220153.GB10614@mw.local.seiros.ru> Денис Смирнов пишет: > On Thu, Oct 26, 2006 at 11:47:12AM +0400, Eugene Prokopiev wrote: > > Извиняюсь за поздний ответ, письма на эту тему после прочитывания > откладывал на обдумывание... да слишком на долго отложил. > > >>>Гм. У меня ситуация немного другая -- мне достаточно если он будет >>>_работать_ где угодно. Увы, скорее всего то что будет распространяться >>>будет распространяться в бинарном виде :( > > EP> Этого, по-моему, уже достаточно для отказа от apt для всего, кроме > EP> JDK/JRE, чтобы унифицировать подход к разным платформам > > Я с этим не соглашусь. Пусть у меня будет одна нормальная платформа где > будет удобно работать. А для остальных, так и быть, можно раздавать кашу в > виде пачки jar'ов в одном tgz с боооольшим README на тему "а как с этим > кошмаром взлететь". > > Пользователи же нормальных дистрибутивов смогут использовать пакетный > менеджер. > > >>>То есть класс содержит в себе код обработчики запроса? Ага. >> >>EP>> Есть надстройки над этим - template engines типа JSP и Velocity, которые >>EP>> позволяют писать в стиле PHP, т.е. html + вставки кода. Кстати, Velocity >>EP>> как template engine используется в проектах, которые к web никаким боком. >> >>>Добровольно мешать код и данные? Нет уж :) > > EP> :) > > :) > > >>EP>> Есть надстройки над этими надстройками :) Есть другие надстройки над >>EP>> сервлетами. Начать читать можно отсюда - >>EP>> http://www.techinfo.net.ru/docs/web/javawebdev.html >> >>>Прочитал... жуть! Описано только одно средство (XMLC) которое упрощает >>>разработку, а не усложняет %-/ > > EP> :) так видимо считали все, приступая к разработке очередного кошмара, но > EP> уже своего :) > > Видимо да. Но логика своего кошмара хотя бы самому себе кажется разумной. > А логика чужого кошмара приводит к кошмарам по ночам :) > > >>>Откуда такая XML-мания? > > EP> просто XML - это общепринятый способ хранить древовидные данные (если > EP> этих данных немного - т.е. для конфигов почти идеал). Конечно, у Lisp и > EP> Erlang свой путь, может более эффективный по затрате ресурсов, но в Java > EP> и не только путь именно такой, и изобретено уже столько инструментов и > EP> технологий поддержки, что отказываться поздно ... > > :( > > Люблю конфиги на тикле писать :) > > >> EP>> <display-name>Hello, World Application</display-name> >> EP>> <description> >> EP>> This is a simple web application with a source code organization >> EP>> based on the recommendations of the Application Developer's Guide. >> EP>> </description> >> >>>Где используется эта информация? > > EP> В Tomcat есть интерфейс администрирования web-приложений: установить, > EP> удалить, запустить, остановить - вот там имя и описание и фигурируют > > Ага, понял. > > >> EP>> build.xml (и вызывающий его build.sh) умеет строить из этого дерева >> EP>> файлов war-архив. Этот архив можно разными способами продеплоить в >> EP>> Tomcat: например, скопировать его в определенный каталог, который он >> EP>> мониторит на предмет появления новых приложений. Будет это приложение >> EP>> работать и в других контейнерах вроде Jetty и Resin, а также в тяжелых >> EP>> серверах приложений вроде JBoss и Geronimo, которые содержат встроенные >> EP>> сервлет-контейнеры (коими являются Tomcat и Jetty :) ). >> >>>Я правильно понимаю что минимальный сервлет-контейнер должен уметь "всего >>>лишь" каким-либо образом обрабатывать клиентские соединения, подгружать >>>сервлеты и передавать данные? > > EP> да :) > > А монстры чем отличаются от этого минимума? Администрирование, возможно > какой-то механизм кэширования, что еще? О каких монстрах речь? JBoss и Geronimo? Ну тут в двух словах никак. Кратко: это реализация всех стандартов JEE - JMS (асинхронные сообщения - аналог e-mail, но с отказоустойчивостью, транзакциями и т.д.), EJB (RPC, ORM, ...), распределенные транзакции, security, кластеризация ... Собственно Web тут очень небольшая часть. Кстати, я их не использую, мне в качестве контейнера достаточно Spring, куда я при необходимости могу втащить реализацию какой-либо JEE-технологии, вроде JMS (например, ActiveMQ - часть Geronimo, но поддерживает конфигурирование средствами Spring и JBoss). >>>То есть можно, например, написать простой >>>сервлет-контейнер который будет общаться с тем же nginx через FastCGI. > > EP> писать свой - это все-таки перебор, посмотри на Jetty или Embeded Tomcat > EP> - с первым я баловался, встраивая его в свое приложение. > EP> FastCGI и сервлеты - это скорее взаимоисключающие вещи. Я бы на твоем > EP> месте проверил, реально ли (и достаточно ли по производительности - так > EP> на всякий случай) на сервлетах построить тот framework, который ты > EP> хочешь (очень интересно, что у тебя получится :) - как сделаешь, делись > EP> :) ). А если нет, то идти к FastCGI - эта технология, как я понимаю, > EP> вообще перпендикулярна любым языкам и платформам. И при любом выборе > EP> посмотреть в сторону какой-либо реализации IoC и AOP - вероятность того, > EP> что они будет полезны, довольно высока. > > что такое IoC и AOP? IoC мы кратко рассмотрели в примере использования Spring, можно еще здесь почитать - http://www.rsdn.ru/article/java/spring.xml AOP - грубо говоря, препроцессор для выполнения неких действий перед вызовом метода и после него (возможно с модификацией входных и выходных параметров), не ставя в известность об этом факте сам метод. Полезно для разделения основной логики и дополнительной (авторизация, управление транзакциями и т.д.) > Путь с интегрирование Jetty мне нравится. Хотя, с > учетом того что я _знаю_ что у меня будет frontend, собственно код сервера > достаточно простой получается. Самое-самое-самое сложное в этом коде это > разбор запросов :) ну и замечательно, пока этим и стоит ограничиться, даже сервлеты тебе фактически не нужны, а нужны только твои собственные реализации интерфейса Handler >> EP>> public static void main(String[] args) throws InterruptedException { >> >>>Что означает этот exception? > > EP> В Java изначально предполагалось, что каждый метод должен знать, какие > EP> исключения внутри могут приключиться (за исключением unchecked > EP> exceptions). Возможно, это был ответ на позицию M$ при разработке Win32 > EP> API, когда было заявлено, что это невозможно узнать в принципе. > > EP> Со временем unchecked exceptions расплодились и Spring главный, кто эту > EP> идею фактически похоронил - есть и обоснования, но тут я принимать > EP> чью-либо сторону не берусь. > > Гм. > > >>>В Java вообще все есть :) Дело в синтаксисе. > > EP> Ну так все что есть, есть не в Java, а в JVM/JEE :) И теоретических > EP> препятствий к использованию других языков на этой платформе вроде нет - > EP> попробуй, расскажешь :) > > Медитирую над синтаксисом того, чего хочу. В общем-то я понял что хочу -- > некий недоlisp. Буду думать. > > Кстати о, куда копать на предмет того как в Java принято писать простые > клиент-серверные приложения? Даже и не знаю ... Может отсюда http://java.sun.com/docs/books/tutorial/networking/index.html Книжка Брюса Эккеля Thinking in Java неплоха, ее электронный перевод отвратителен, а бумажный нормальный Но это слишком низкий уровень, сокеты, потоки и все такое ... Наверное, лучше начать с примеров, идущих с Jetty и с кода самого Jetty. Кстати, у тебя и клиент-сервера как такового не получается, всеми сетевыми делами и даже потоками будет заниматься Jetty, тебе лишь остается правильно структурировать свой внутренний код. > Первое где я могу с ней реально поиграться на > практике, это в том интерфейсике к asterisk managment interface, который > мне все равно скоро писать придется. > > И как _правильно_ запускать Java-сервер через инитскрипты? Я использую http://jakarta.apache.org/commons/daemon/, его же использует Tomcat -- С уважением, Прокопьев Евгений
next prev parent reply other threads:[~2007-02-25 22:52 UTC|newest] Thread overview: 205+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-10-12 22:25 ` [room] ну почему мы такие страшные Sergey Stepanov 2006-10-13 0:02 ` Денис Смирнов 2006-10-14 16:54 ` [room] новички Michael Shigorin 2006-10-14 19:51 ` Денис Смирнов 2006-10-15 18:27 ` [room] комоды Michael Shigorin 2006-10-15 22:46 ` Денис Смирнов 2006-10-16 11:35 ` [room] IA: комоды += mithraen@ Michael Shigorin 2006-10-16 18:22 ` Maxim Tyurin 2006-10-16 19:40 ` [room] IA: комоды += mrkooll@ Michael Shigorin 2006-10-16 18:19 ` [room] новички Maxim Tyurin 2006-10-16 20:14 ` Денис Смирнов 2006-10-16 21:20 ` Michael Shigorin 2006-10-17 8:10 ` Денис Смирнов 2006-10-17 8:20 ` Evgenii Terechkov 2006-10-17 19:21 ` Michael Shigorin 2006-10-18 0:54 ` Evgenii Terechkov 2006-10-18 7:02 ` Michael Shigorin 2006-10-18 8:08 ` Evgenii Terechkov 2006-10-17 20:34 ` Maxim Tyurin 2006-10-18 0:51 ` Evgenii Terechkov 2006-10-18 8:31 ` Maxim Tyurin 2006-10-18 9:24 ` Evgenii Terechkov 2006-10-18 9:33 ` Maxim Tyurin 2006-10-18 10:10 ` Evgenii Terechkov 2006-10-18 10:22 ` Maxim Tyurin 2006-10-18 15:07 ` Evgenii Terechkov 2006-10-18 20:44 ` Michael Shigorin 2006-10-19 5:46 ` Dmytro O. Redchuk 2006-10-19 5:58 ` Evgenii Terechkov 2006-10-19 23:08 ` Michael Shigorin 2006-10-20 3:58 ` Evgenii Terechkov 2006-10-19 23:07 ` [room] whitespace (не язык) Michael Shigorin 2006-10-20 3:46 ` Evgenii Terechkov 2006-10-20 8:16 ` Michael Shigorin 2006-10-20 9:18 ` Maxim Tyurin 2006-10-20 11:46 ` Michael Shigorin 2006-10-20 12:09 ` Maxim Tyurin 2006-10-20 12:23 ` Evgenii Terechkov 2006-10-19 5:55 ` [room] новички Evgenii Terechkov 2006-10-19 23:05 ` Michael Shigorin 2006-10-20 3:56 ` Evgenii Terechkov 2006-10-20 3:57 ` Evgenii Terechkov 2006-10-19 16:01 ` Maxim Tyurin 2006-10-19 15:57 ` Maxim Tyurin 2006-10-19 17:33 ` Evgenii Terechkov 2006-10-19 17:57 ` Maxim Tyurin 2006-10-19 19:52 ` Evgenii Terechkov 2006-10-20 9:15 ` Maxim Tyurin 2006-10-20 12:32 ` Evgenii Terechkov 2006-10-19 18:28 ` Денис Смирнов 2006-10-20 19:44 ` Aleksey Korotkov 2006-10-20 22:02 ` Денис Смирнов 2006-10-21 19:47 ` Aleksey Korotkov 2006-10-21 20:22 ` Денис Смирнов 2006-10-21 22:16 ` Michael Shigorin 2006-10-21 22:45 ` Денис Смирнов 2006-10-22 11:18 ` Michael Shigorin 2006-10-22 21:01 ` Денис Смирнов 2006-10-22 21:20 ` Aleksey Korotkov 2006-10-22 21:28 ` [room] язычки и библиотечки Michael Shigorin 2006-10-23 6:15 ` Eugene Ostapets 2006-10-23 7:36 ` Michael Shigorin 2006-10-23 7:53 ` Eugene Ostapets 2006-10-23 12:21 ` Maxim Tyurin 2006-10-23 12:38 ` Dmitriy L. Kruglikov 2006-10-24 1:48 ` Денис Смирнов 2006-10-24 10:44 ` Maxim Tyurin 2006-10-23 18:21 ` Michael Shigorin 2006-10-23 18:30 ` Eugene Ostapets 2006-10-23 19:18 ` Michael Shigorin 2006-10-23 19:26 ` Eugene Ostapets 2006-10-24 10:35 ` [room] язычки и библиотечки [fin?] Michael Shigorin 2006-10-23 8:10 ` [room] язычки и библиотечки Денис Смирнов 2006-10-23 20:14 ` Aleksey Korotkov 2006-10-24 10:33 ` Michael Shigorin 2006-10-24 22:57 ` Aleksey Korotkov 2006-10-25 10:18 ` Michael Shigorin 2006-10-23 8:24 ` Денис Смирнов 2006-10-23 18:19 ` Michael Shigorin 2006-10-24 1:55 ` Денис Смирнов 2006-10-24 7:03 ` Michael Bochkaryov 2006-10-24 8:54 ` Денис Смирнов 2006-10-24 10:30 ` [room] wackowiki Michael Shigorin 2006-10-24 10:49 ` [room] lustre Eugene Prokopiev 2006-10-24 15:07 ` Michael Shigorin 2006-10-24 16:04 ` [room] wackowiki Денис Смирнов 2006-10-24 16:08 ` Igor Zubkov 2006-10-24 16:47 ` Денис Смирнов 2006-10-24 17:51 ` [room] wackowiki vs mediawiki Igor Zubkov 2006-10-24 19:20 ` Michael Shigorin 2006-10-25 3:47 ` Денис Смирнов 2006-10-24 19:37 ` [room] wackowiki Michael Shigorin 2006-10-25 3:40 ` Денис Смирнов 2006-10-25 10:10 ` Michael Shigorin 2006-10-25 17:13 ` Денис Смирнов 2006-10-25 18:38 ` Michael Shigorin 2006-10-25 21:17 ` Aleksey Korotkov 2006-10-26 21:01 ` Michael Shigorin 2006-10-26 4:36 ` Денис Смирнов 2006-10-28 14:26 ` Michael Shigorin 2006-10-28 16:02 ` Денис Смирнов 2006-10-29 17:44 ` Michael Shigorin 2006-10-29 20:49 ` Денис Смирнов 2006-10-30 7:48 ` Michael Shigorin 2006-10-30 13:32 ` Денис Смирнов 2006-10-30 17:19 ` Igor Zubkov 2006-11-01 9:22 ` Денис Смирнов 2006-11-01 17:11 ` Igor Zubkov 2006-11-01 21:08 ` Денис Смирнов 2006-10-31 9:47 ` Michael Shigorin 2006-11-01 9:20 ` Денис Смирнов 2006-10-31 9:49 ` Michael Shigorin 2006-11-01 9:21 ` Денис Смирнов 2006-10-30 16:59 ` Igor Zubkov 2006-11-01 9:20 ` Денис Смирнов 2006-10-30 16:58 ` Igor Zubkov 2006-10-31 3:16 ` Evgenii Terechkov 2006-10-25 6:47 ` [room] язычки и библиотечки Michael Bochkaryov 2006-10-25 7:16 ` Eugene Prokopiev 2006-10-28 8:18 ` Michael Bochkaryov 2006-10-25 8:35 ` Денис Смирнов 2006-10-25 10:07 ` Michael Shigorin 2006-10-25 17:15 ` Денис Смирнов 2006-10-24 10:28 ` Michael Shigorin 2006-10-24 8:58 ` Eugene Prokopiev 2006-10-24 15:57 ` Денис Смирнов 2006-10-24 19:35 ` [room] java off the rails Michael Shigorin 2006-10-25 3:37 ` Денис Смирнов 2006-10-25 6:21 ` Eugene Prokopiev 2006-10-25 6:39 ` Eugene Prokopiev 2006-10-25 10:05 ` Michael Shigorin 2006-10-25 16:59 ` Денис Смирнов 2006-10-25 6:00 ` [room] язычки и библиотечки Eugene Prokopiev 2006-10-25 8:30 ` Денис Смирнов 2006-10-25 10:43 ` [room] Лекция по Java Eugene Prokopiev 2006-10-25 10:53 ` Eugene Prokopiev 2006-10-25 16:50 ` Eugene Prokopiev 2006-10-25 18:10 ` Денис Смирнов 2006-10-25 18:34 ` Michael Shigorin 2006-10-26 4:39 ` Денис Смирнов 2006-10-26 8:05 ` Eugene Prokopiev 2007-02-25 21:48 ` Денис Смирнов 2007-02-25 22:10 ` Eugene Prokopiev 2007-02-25 22:20 ` Денис Смирнов 2007-02-25 22:56 ` Eugene Prokopiev 2007-02-26 14:01 ` Денис Смирнов 2006-10-26 7:47 ` Eugene Prokopiev 2007-02-25 22:01 ` Денис Смирнов 2007-02-25 22:52 ` Eugene Prokopiev [this message] 2007-02-26 14:05 ` Денис Смирнов 2007-02-26 20:16 ` Eugene Prokopiev 2007-02-26 20:51 ` Денис Смирнов 2007-02-26 5:50 ` Eugene Prokopiev 2007-02-26 14:09 ` Денис Смирнов 2007-02-26 20:07 ` Eugene Prokopiev 2006-10-25 10:45 ` [room] язычки и библиотечки Eugene Prokopiev 2006-10-25 10:03 ` Michael Shigorin 2006-10-25 6:57 ` Michael Bochkaryov 2006-10-25 8:37 ` Денис Смирнов 2006-10-24 10:27 ` Michael Shigorin 2006-10-24 16:01 ` Денис Смирнов 2006-10-24 19:44 ` Michael Shigorin 2006-10-25 3:36 ` Денис Смирнов 2006-10-24 19:44 ` [room] mod_security article (was: язычки и библиотечки) Michael Shigorin 2006-10-23 20:09 ` [room] язычки и библиотечки Aleksey Korotkov 2006-10-24 10:22 ` Michael Shigorin 2006-10-24 23:12 ` Aleksey Korotkov 2006-10-25 10:19 ` Michael Shigorin 2006-10-25 15:46 ` Aleksey Korotkov 2006-10-25 18:39 ` Michael Shigorin 2006-10-25 21:19 ` Aleksey Korotkov 2006-10-23 8:08 ` [room] новички Денис Смирнов 2006-10-23 20:08 ` Aleksey Korotkov 2006-10-24 1:46 ` Денис Смирнов 2006-10-24 10:22 ` [room] г-флейм Michael Shigorin 2006-10-24 10:27 ` Денис Смирнов 2006-10-24 22:44 ` [room] новички Aleksey Korotkov 2006-10-25 3:29 ` Денис Смирнов 2006-10-25 10:00 ` Michael Shigorin 2006-10-25 16:38 ` Денис Смирнов 2006-10-25 18:25 ` Michael Shigorin 2006-10-26 4:14 ` Денис Смирнов 2006-10-25 15:07 ` Aleksey Korotkov 2006-10-25 16:57 ` Денис Смирнов 2006-10-25 21:07 ` Aleksey Korotkov 2006-10-26 4:28 ` Денис Смирнов 2006-10-26 13:39 ` Aleksey Korotkov 2006-10-26 15:10 ` Денис Смирнов 2006-10-25 9:58 ` Michael Shigorin 2006-10-25 15:30 ` Aleksey Korotkov 2006-10-25 18:27 ` [room] смайлЫ Michael Shigorin 2006-10-25 21:14 ` Aleksey Korotkov 2006-10-25 16:35 ` [room] новички Денис Смирнов 2006-10-18 11:11 ` [room] язЫки программирования Michael Shigorin 2006-10-18 11:22 ` Maxim Tyurin 2006-10-18 15:08 ` Evgenii Terechkov 2006-10-18 11:10 ` [room] новички Michael Shigorin 2006-10-18 15:12 ` Evgenii Terechkov 2006-10-19 16:04 ` Maxim Tyurin 2006-10-19 17:19 ` Evgenii Terechkov 2006-10-19 18:00 ` Maxim Tyurin 2006-10-19 18:57 ` Evgenii Terechkov 2006-10-19 23:10 ` Michael Shigorin 2006-10-20 3:53 ` Evgenii Terechkov 2006-10-23 6:59 ` Dmytro O. Redchuk
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=45E2131F.9020507@stc.donpac.ru \ --to=prokopiev@stc.donpac.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