[room] Лекция по Java
Денис Смирнов
=?iso-8859-1?q?mithraen_=CE=C1_altlinux=2Eru?=
Пн Фев 26 01:01:53 MSK 2007
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> да :)
А монстры чем отличаются от этого минимума? Администрирование, возможно
какой-то механизм кэширования, что еще?
>> То есть можно, например, написать простой
>> сервлет-контейнер который будет общаться с тем же nginx через FastCGI.
EP> писать свой - это все-таки перебор, посмотри на Jetty или Embeded Tomcat
EP> - с первым я баловался, встраивая его в свое приложение.
EP> FastCGI и сервлеты - это скорее взаимоисключающие вещи. Я бы на твоем
EP> месте проверил, реально ли (и достаточно ли по производительности - так
EP> на всякий случай) на сервлетах построить тот framework, который ты
EP> хочешь (очень интересно, что у тебя получится :) - как сделаешь, делись
EP> :) ). А если нет, то идти к FastCGI - эта технология, как я понимаю,
EP> вообще перпендикулярна любым языкам и платформам. И при любом выборе
EP> посмотреть в сторону какой-либо реализации IoC и AOP - вероятность того,
EP> что они будет полезны, довольно высока.
что такое IoC и AOP? Путь с интегрирование Jetty мне нравится. Хотя, с
учетом того что я _знаю_ что у меня будет frontend, собственно код сервера
достаточно простой получается. Самое-самое-самое сложное в этом коде это
разбор запросов :)
> 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 принято писать простые
клиент-серверные приложения? Первое где я могу с ней реально поиграться на
практике, это в том интерфейсике к asterisk managment interface, который
мне все равно скоро писать придется.
И как _правильно_ запускать Java-сервер через инитскрипты?
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Может все-таки /etc/menu-methods/{icewm,fvwm2} поправить, чем
пересобирать весь GNOME и KDE ?
-- zerg in #1772
Подробная информация о списке рассылки smoke-room