3f-lab: Основы разработки Java-программ в консольном режиме (лекция 1)
Пока не кончились выходные, буду выкладывать в блоге JavaLabs фрагменты текстов о разработке программ на языке Java в консольном режиме (среда 3f-lab). Хотя у этого проекта есть свой сайт, дублирую некоторые тексты здесь в надежде на обсуждение. Первая лекция — вводная, описывает основные преимущества методики.
Для разработки программ на языке Java используются мощные IDE (Integrateg Development Environments), оснащенные чрезвычайно развитыми графическими интерфейсами пользователя. В этом ряду такие приложения, как Eclipse, NetBeans, VisualStudio и т.п. Однако их несомненные преимущества заканчиваются там, где нужно отредактировать и откомпилировать код на удаленном хосте, к которому имеется лишь терминальный доступ. Cреда разработки 3f-lab, о которой пойдет речь, пердназначена для создания программ именно средствами консоли, т.е. для ее использования достаточно ssh или даже telnet-доступа к компьютеру. Когда программа пишется непосредственно на хосте, для которого предназначена — существенно сокращается время на отладку, т.к. происходит постоянная «подгонка по месту». Кроме того, удаленные серверы, как правило, обладают в разы большей мощностью чем десктопы, ноутбуки и нетбуки программистов, поэтому при удаленной консольной работе снижаются еще и затраты времени на компиляцию.
3f-lab — это не программный продукт. У нее нет дистрибутива, хотя и имеется LiveCD, на котором все необходимые установочные операции уже выполнены. Тем не менее, лучше всего создать такую среду разработки в ручном режиме. Это занимает не более 10 минут. Скринкаст о том, как начать работать, вы найдете здесь.
Среда представляет собой совокупность каталогов и скриптов для сборщиков ant или make. Основными каталогами являются _bin, _classes, _projects. Об этих и других каталогах постараюсь рассказать в следующих топиках. Но для начала нужно определиться с тем, где будет находиться сама «лаборатория». Думаю, что нет ничего лучше, чем разместить ее в домашнем каталоге. В этом случае всегда есть уверенность, что хватит полномочий на создание, изменение, удаление и запуск файлов, т.е. не понадобятся права рута. Понятие домашней директории (каталога, папки) существует и в Windows, и в Linux. Ведь поскольку мы собираемся программировать на Java, мы должны придерживаться правила «написано однажды — работает везде». Поэтому первым делом вводим команды
То же самое можно сделать множеством других способов (клавишей F7 в Midnight Commander'e, правой кнопкой мыши в оконном режиме). В начале имени каталога — точка, благодаря которой он оказывается в верхней части списка директорий и его быстро можно найти.
В получившейся директории нужно создать следующие подкаталоги:
1. _bin — здесь мы будем хранить бинарные утилиты, программы, сложные программные пакеты, такие как JDK;
2. _classes — здесь будут лежать откомпилированные классы и библиотеки (.jar-файлы);
3. _projects — каталог проектов, т.е. конечных продуктов, разработанных для сторонних заказчиков или для себя;
4. _reusable — здесь находятся исходники классов, созданных для собственного удобства и активно использующихся в различных проектах;
Названия всех этих каталогов начинаются с нижнего подчеркивания. Таким образом их легче найти, если в папке .3f-lab оказались еще какие-то дополнительные каталоги. Но лучше в ней ничего лишнего не хранить.
Продолжение следует.
Для разработки программ на языке Java используются мощные IDE (Integrateg Development Environments), оснащенные чрезвычайно развитыми графическими интерфейсами пользователя. В этом ряду такие приложения, как Eclipse, NetBeans, VisualStudio и т.п. Однако их несомненные преимущества заканчиваются там, где нужно отредактировать и откомпилировать код на удаленном хосте, к которому имеется лишь терминальный доступ. Cреда разработки 3f-lab, о которой пойдет речь, пердназначена для создания программ именно средствами консоли, т.е. для ее использования достаточно ssh или даже telnet-доступа к компьютеру. Когда программа пишется непосредственно на хосте, для которого предназначена — существенно сокращается время на отладку, т.к. происходит постоянная «подгонка по месту». Кроме того, удаленные серверы, как правило, обладают в разы большей мощностью чем десктопы, ноутбуки и нетбуки программистов, поэтому при удаленной консольной работе снижаются еще и затраты времени на компиляцию.
3f-lab — это не программный продукт. У нее нет дистрибутива, хотя и имеется LiveCD, на котором все необходимые установочные операции уже выполнены. Тем не менее, лучше всего создать такую среду разработки в ручном режиме. Это занимает не более 10 минут. Скринкаст о том, как начать работать, вы найдете здесь.
Среда представляет собой совокупность каталогов и скриптов для сборщиков ant или make. Основными каталогами являются _bin, _classes, _projects. Об этих и других каталогах постараюсь рассказать в следующих топиках. Но для начала нужно определиться с тем, где будет находиться сама «лаборатория». Думаю, что нет ничего лучше, чем разместить ее в домашнем каталоге. В этом случае всегда есть уверенность, что хватит полномочий на создание, изменение, удаление и запуск файлов, т.е. не понадобятся права рута. Понятие домашней директории (каталога, папки) существует и в Windows, и в Linux. Ведь поскольку мы собираемся программировать на Java, мы должны придерживаться правила «написано однажды — работает везде». Поэтому первым делом вводим команды
mkdir ~/.3f-lab
cd ~/.3f-lab
То же самое можно сделать множеством других способов (клавишей F7 в Midnight Commander'e, правой кнопкой мыши в оконном режиме). В начале имени каталога — точка, благодаря которой он оказывается в верхней части списка директорий и его быстро можно найти.
В получившейся директории нужно создать следующие подкаталоги:
1. _bin — здесь мы будем хранить бинарные утилиты, программы, сложные программные пакеты, такие как JDK;
2. _classes — здесь будут лежать откомпилированные классы и библиотеки (.jar-файлы);
3. _projects — каталог проектов, т.е. конечных продуктов, разработанных для сторонних заказчиков или для себя;
4. _reusable — здесь находятся исходники классов, созданных для собственного удобства и активно использующихся в различных проектах;
Названия всех этих каталогов начинаются с нижнего подчеркивания. Таким образом их легче найти, если в папке .3f-lab оказались еще какие-то дополнительные каталоги. Но лучше в ней ничего лишнего не хранить.
Продолжение следует.
Комментарии (35)
RSS свернуть / развернутьКонсоль это хорошо
Я, например, считаю vim достаточно удобным редактором
Было бы интересно узнать по-подробнее про Ant
Gangsta
FREExLOADER
yababay
… Сейчас как раз разбираюсь — жизнь заставила)
Sergei_T
yababay
Sergei_T
yababay
Sergei_T
yababay
кстати в доках указано что в скрипте ant нужно прописать
у меня по относительным не работают путям
Sergei_T
yababay
Sergei_T
Swing я так понимаю это встроенный gui
Sergei_T
yababay
Например, тесты, которые я тут выкладывал, могут работать без сервера.
yababay
Sergei_T
Sergei_T
yababay
Sergei_T
yababay
www.smartclient.com/smartgwt/showcase/#main
Думаю неплохо было бы сделать так — серверная часть обрабатывает и считает (пока есть простая задачка которую мне нужно решить) потом возможно нужна будет работа с БД
Интерфейс на GWT — для пользователей
И может как-то есть возможность переносить это все в виде мидлета на телефон для автономной работы?
Sergei_T
yababay
в _reusable?
Sergei_T
1) Из GWT нужно извлечь gwt-dev-linux.jar, gwt-servlet.jar, gwt-user.jar и поместить их в _classes
2) В _projects/YOUR_PROJECT/client создать подкаталоги по количеству веб-приложений. Например, index, admin, calculator.
3) Создать в каждом таком подкаталоге файл описания проекта и build.xml.
4) В каждом из них создать htdocs, где будут лежать картинки, css, js-файлы и, конечно же, html-файлы.
После этого можно девелопить. Короче, это уже не в каментах надо описывать, а в отдельном топике. Напишу.
yababay
/_bin/sdk/gwt (ссылка символическая)
по-моему это логично хранить в _bin/java то что нужно для сборки и исполнения а в _bin/sdk/ используемые sdk
проект в
_projects/eyecalculator/client (т.е. клиентская часть) и server (серверная)
может так
идея в том чтобы был один клиент на GWT в котором бы было все что нужно
а расчет на сервере
так?
Sergei_T
_bin/sdk, конечно, вариант, но среда предназначена не только для Java, поэтому я храню в _bin/java всё, что связано с Java-синтаксисом, jar-архивами и т.д. А в _bin кроме java могут храниться, например, какие-нибудь специфические библиотеки на С, темплейты дл flash-анимации и т.п., т.е. то, что с Java не связано вообще никак. Когда я разворачиваю 3f-lab под Windows в каталоге _bin оказывается полно всякой всячины: консольная версия rar, Null Soft Installer, какие-то улилиты для работы с базами данных и т.п.
Теперь что касается имен для проектов. Я их озаглавливаю капсом, т.е.
_projects/YOUR_PROJECT
Да, к капсу существует предубеждение. Зато когда смотришь код или попадаешь в папку проектов — сразу видишь: это специфический, «финальный» код, который вторично использоваться нигде не будет (в отличие от _reusable). Удобный психологический прием. Когда видишь вверху исходника package com.michaelbelyakov1967.projects.HELLOWORLD.client; — глаз сразу выхватывает нужную информацию. Попробуй написать то же самое строчными буквами. Строка сразу превращается в унылую, ничего не значащую «колбасу», над которой надо потрудиться чтобы понять что сие значит.
yababay
sdk перенесу в java/gwt
пространство имен
com.eyecalculator.client
com.eyecalculator.server
для начала — потом по мере добавления вложенность будет меняться
другой вопрос — сейчас мне нужно поднять серверную часть
Sergei_T
Что касается сервера, то Felix к твоим услугам . Пример сервлета выложу или пришлю.
yababay
src/com/google/gwt
это же полный здец
Sergei_T
yababay
вроде компилит
теперь надо болвашку клиент-сервера накатать
пока у меня простая задача — пользователь вводит несколько параметров — получает расчет
Sergei_T
yababay
Sergei_T
yababay
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.