Культурный офтопик
 help / color / mirror / Atom feed
From: Eugene Prokopiev <enp@altlinux.org>
To: "Культурный офтопик" <smoke-room@lists.altlinux.org>
Subject: [room] java devel
Date: Fri, 20 Feb 2009 14:55:29 +0300
Message-ID: <f7a739430902200355q10c24e8bwf3e4c948a92f0490@mail.gmail.com> (raw)
In-Reply-To: <20090220105543.GA5847@mw.office.seiros.ru>

20.02.09, Денис Смирнов написал(а):
> On Fri, Feb 20, 2009 at 01:12:28PM +0300, Eugene Prokopiev wrote:
>
>  >>  Но, увы, у меня используется просто множество своих костылей, вместо уже
>  >>  существующий в java-мире. Каждый псих изобретает свои костыли, и _это_ в
>  >>  мире java мне категорически не нравится.
>  EP> Ты бы, кстати, как-нибудь описал свои костыли - может еще кому
>  EP> захочется на них встать ;)
>
>  А что тут описывать?
>
>  Берется jar с тем что нужно (скажем какой-нибудь log4j). С помощью
>  proguard из него вырезается все ненужное, отрабатывает оптимизатор
>  proguard'а, возможно еще и обфускатор -- получается log4j для моих задач.
>  И так с каждым jar'ом.
>
>  Потом результат объединяется тем же proguard с собственно приложением.
>  Далее опять отрабатывает оптимизатор (он удаляет неиспользуемые классы),
>  и, если надо, обфускатор.
>
>  Результирующий jar или готов к использованию, или сначала по нему еще
>  проходится gcc-java.
>
>  В результате не надо думать о том что "а вот с другой версией того jar'а
>  ничего не заработает" или "а вот что будет если этого jar не окажется в
>  системе?". Кроме того получается относительно компактное нечто (хотя и
>  менее компактное чем jar -- у меня обычно бинарники в несколько мегабайт
>  получаются). Ну и время запуска при использовании gcc-java доли секунды,
>  ибо не надо поднимать тяжелую VM, компилировать байт-код, и прочей фигней
>  заниматься.
>
>  Запускаю я то что написал обычно с помощью daemontools. Никакие сервлет
>  контейнеры и прочее не используется, ибо Jetty -- rulez :)
>
>  Этап обрезания ненужного с помощью proguard -- самый емкий по времени.
>  Писать конфиг что отрезать а что не стоит, то еще удовольствие. Зато
>  результат получается компактный и шустрый. Ну и с некоторыми клиентами
>  обфускатор бывает не лишним :)

Спасибо, познавательно. Хотя мне до сих пор не требовалась компиляция
в нативный код (и у меня есть сомнения в том, что она всегда корректно
будет работать) и обфускатор. Я вполне доволен jakarta commons daemon.
Мне именно этот вариант видится самым прямым, хотя большинство
проектов стартуют с использованием /usr/bin/java, а останавливаются
так: слушают некий порт, и, если с локалхоста пришел соответствующий
пакет, тушат свет и выходят. Собственно под эту схему пишутся и
инитскрипты. Но в сравнении с jsvc это полное уродство.

Но помимо инфраструктуры для запуска, которая всегда относительно
проста, есть еще и внутренние паттерны для чего-то среднего между
прикладными и системными решениями, которые иногда достигают
реюзабельного состояния. Вот они как раз и были бы мне интересны ;)

Пример своих я в блоге публиковал, если у тебя что похожее накопится -
не прячь :)

-- 
С уважением,
Прокопьев Евгений

       reply	other threads:[~2009-02-20 11:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-20 11:55 ` Eugene Prokopiev [this message]
2009-02-21 19:15   ` Денис Смирнов
2009-02-24  5:02     ` Eugene Prokopiev
2009-02-26  5:36       ` Денис Смирнов
2009-02-26  6:14         ` Eugene Prokopiev
2009-02-26  8:48           ` Денис Смирнов
2009-02-27 16:55             ` Eugene Prokopiev
2009-02-28  0:11               ` Денис Смирнов
2009-03-01 13:44                 ` Eugene Prokopiev
2009-03-02 11:32                   ` Денис Смирнов

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=f7a739430902200355q10c24e8bwf3e4c948a92f0490@mail.gmail.com \
    --to=enp@altlinux.org \
    --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