![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Добрый день.
Вот решил делать RSS клиент как свою первую программу на Java. Подскажите: 1. Что обязательно к прочтению? 2. Какие необходимы классы? Мысли такие: непосредственно RSSReader, он будет создавать Article-ы и где-то должен присутствовать SubscriptionToFeeds. А где использовать интерфейсы? Может где-то паттерн? Какой? И что из API мне нужно? Спрашиваю т.к. опыта нет.. Спасибо. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ну для начала почитай описание формата RSS и про сам XML. Потом парсинг XML в Java (есть пара статей в FAQ).
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Почитал, научился парсить XML (по примеру из FAQ, более детально буду разбираться непосредственно при решении своей задачи). Подскажите, что такое RSS парсер.
2. Помогите представить общую картину желаемого приложения (все-же хочу начать с uml диаграммы классов). --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Несмотря на то, что какого-то представления о том, как будет выглядеть программа целиком у меня нет, я решил попробовать написать ту часть, где происходит парсинг XML или RSS? Собственно вот код. Покричите, подскажите как правильно писать.
И появился ряд маленьких вопросов: 1. Тут, как и в примере из FAQ, с которого я это делал, xml читаем из файла. А как в реальном клиенте? Т.е. как изменится строчка
2. JavaDoc. Что нужно комментировать, а что нет? 3. RSS. Если посмотрите мой пример xml-я - увидите, что сперва идет <channel> со своим описанием, потом - <item>-ы. Как и зачем использовать описания <channel> (интересует логика, как прочитать как-бы понятно)? 4. Есть разные форматы RSS, значит мне надо наследовать мой SAXHandler и реализовать наследников для разных форматов? ЗЫ: тут можно использовать паттерн абстрактная фабрика (как-то просматривал статьи про паттерны, могу все путать)? 5. Планирую сделать "caching of articles", ну т.е. писать все в БД. Подскажите, как различать новые итемы от существующих (наверное сравнивать какие-то поля. какие поля? есть какое-то общепринятое решение)? 6. По тестам. Что необходимо тестить в приведенном коде? 7. Последнее. Класс Article. Полей в нем достаточно? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||||||||||
|
|||||||||||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Для полноты картины: wiki: RSS (внизу есть ссылки на спецификации), Open Source RSS & RDF Tools in Java(На случай если вдруг вы захотите использовать готовые решения, а не изобретать своё);
1. В реальном клиенте, а точнее в классе/интерфейсе, предназначенном непосредственно для использования в клиентском коде, будет куча одноимённых методов, различающихся типом входных параметров. Например содержимое входного xml может быть предано как String, File, InputStream и т.д. Естественно никакого handler'а в параметрах не будет - это наше дело, каким способом мы парсим xml. 2. Комментировать лучше всё, а вот JavaDoc формировать по классам/пакетам, которые могут быть использованы клиентом, исключив private поля/методы/внутренние классы; 3. См. первую ссылку. 4.
Не факт. Как вы будете определять объект какого класса инстанциировать? Заставлять клиента определять? - Нехорошо. На основе содержимого xml - для этого нужно его распарсить. Может лучшим решением будет распарсить в каком то общем виде, определить формат, а потом уже сформировать ответ для клиента. 5. См. первую ссылку. 6. Ну классы модели, представляющие из себя POJO классы, по моему, тестировать ни к чему. Тестировать надо функционал, логику работы самого парсера. На вход даёте, заранее определённый xml, получаете результат и проверяете его. 7. См. первую ссылку. Кстати, по моему, результат работы парсера, лучше выдавать как объект одного класса, например RSSChannel или типа того. В качестве резюме, попробую всё таки посоветовать использовать готовое решение, а не "изобретать велосипед". |
|||
|
||||
| Nudnik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 15.9.2007 Репутация: нет Всего: нет |
а не красивее ли будет попробовать с помощью JAXB?
|
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Цель этой программы - получить опыт, маленький. Вот и приглянулась мне идея RSSClient-а, так программа будет включать работу с xml, с БД, чем-то еще. По этому, как для обучения, наверное, лучше "изобретать велосипед".
Подскажите что счас (маленькое) сделать? Сенкс. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Продолжай делать свой RSS клиент. Раз с парсингом XML разобрался, делай получение RSS из интернета (поищи по форуму: URL openConnection) . Потом попробуй совместить код парсинга и чтения из интернета.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Дык а это не HTTPClient (такое когда-то делал)?
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Можно и HTTPClient использовать, раз ты с ним знаком.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shklyar |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
И вызываю его:
А как модифицировать
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||||
|
|||||||
| Shklyar |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Переделал, чуток HTTPClient:
И вызываю все так:
И получаю org.xml.sax.SAXParseException: Premature end of file. Почему? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||||
|
|||||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
К предыдущему посту:
Что происходит - понятно (функция httpClient.getISAnswer() возвращает некую пустоту), но почему? ЗЫ: плохое имя придумал для переменной "isAnswer", как answer типа InputStream, очень смахивает на boolean "это answer?". Посоветуйте лучшее имя. Добавлено через 2 минуты и 49 секунд Классссс --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
К предыдущему посту:
Что происходит - понятно (функция httpClient.getISAnswer() возвращает некую пустоту), но почему? ЗЫ: плохое имя придумал для переменной "isAnswer", как answer типа InputStream, очень смахивает на boolean "это answer?". Посоветуйте лучшее имя. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Не надо никакого BufferedReader и чтения в промежуточный буфер. Скармливай парсеру просто InputStream, тот сам с кодировкой разберется.
Просто добавь в твой SAXHandler метод парсинга. Передаеш туда URL, он открывает URLConnection и сразу же парсит полученный результат. После чего закрывает соединение. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Вроде видал в документации даже метод с такой сигнатурой:
SAXParser.parse(String url, SAXHandler handler); А InputStream может быть прочитан только один раз? Парсеру пробовал дать InputStream, принимает, но InputStream оказывается пустым (выше есть код этого). --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Гы, действительно, InputStream можно прочесть один раз. Подскажите по теории, почему так?
С последнего поста, с кодом, поменял только HTTPClient class, так:
HTTPClient решил оставить в отдельном классе, т.к. это учебная программа и в ней появился новый рассмотренный вопрос. В перспективе, если из этого получиться что-то приличное - оформлю и выложу все в интернете и дам ссылку со своего резюме. Думаю это будет мне плюсом. Что дальше? БД? А вообще, то у меня душа лежит реализовать uml диаграмму классов приложения целиком. Вот только я его (приложение), пока, целиком смутно представляю. :( --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
После использования URL.openConnection() его нужно закрывать?
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Это довольно таки широко распостранённая абстракция в Java (и не только), представляющая собой доступ к устройствам последовательного ввода данных (сеть, последовательный доступ к файлу, куча различных переферийных последовательных интерфейсов и т. п.) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Желательно. Но сам URLConnection закрыть нельзя. Надо или приводить к HttpURLConnection или закрыть полученный InputStream. БД, GUI как хочешь. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Думал заняться БД, но начал с того, что снова посмотрел форматы RSS (на перспективу хочу RSS 1.0, RSS 2.0, Atom) на предмет того, какие поля будут присутствовать в моем RSSClient-е, а соответственно как будет выглядеть БД. Результат - нужно еще посмотреть. Трудность у меня в том, что мне, как я понимаю необходимо придумать какой-то свой формат, который будет содержать главные (необходимые) и пересекающиеся поля из указанный форматов.
Одновременно наткнулся в интернете на тему проверки файла на обновление перед тем, как качать. Тож нужно посмотреть. Глупо качать то, что уже есть.. Или это делать после того, как будет получена первая программа, которая что-то делает? И снова мысли о том, как будет выглядеть приложение целиком. Вот появился вопрос: нормально-ли когда основа приложения GUI? Т.е. алгоритм такой: получение итемов новостей с RSS канала -> запись их в БД -> чтение БД -> отображение новостей. Ох эта диаграмма классов. Она сильно отбирает у меня покой. GUI, наверное, логично делать после БД. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Решил делать БД (в MySQL). Выглядеть она будет так (прочитал недавно статью IBM Ajax RSS-reader. Себя чувствую нормально с БД, но код взял из статьи. Онная, просто, придала уверенности в том, какие поля будут присутствовать):
Интерестно видеть PRIMARY KEY ( rss_feed_id ) в MySQL. Приведенный код будет чуть изменен, а именно, будет добавлено поле date в rss_articles и поле last_file_size в rss_feeds (для проверки обновлен ли rss). Еще. Тут появился человек, который будет участвовать в разработке программы. Принимайте. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Сделал первые наброски работы с БД (по мотивам Студенческого отдела кадров, было дело, когда изучал его
В классе Article добавил:
Ну и Main.java стал таким:
Только возникли проблемы с полем даты. Как я понимаю в RSS стандартного формата нет и это просто String. Как мне его превращать в Date date? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||||||
|
|||||||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: 4 Всего: 4 |
Посмотри: DateFormat.parse(String s).
Это сообщение отредактировал(а) duk - 2.9.2008, 20:21 |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Сенкс, но: date = DateFormat.getDateInstance().parse("Tue, 26 Aug 2008 11:24:48 +0000"); дает java.text.ParseException: Unparseable date: "Tue, 26 Aug 2008 11:24:48 +0000" --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: 4 Всего: 4 |
static DateFormat getDateInstance(int style)
Gets the date formatter with the given formatting style for the default locale. static DateFormat getDateInstance(int style, Locale aLocale) Gets the date formatter with the given formatting style for the given locale. глянь вот это. |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Shklyar, молодец! Слежу за темой с самого ее начала! Давай не останавливайся!
|
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Нашел решение вопроса прасинга даты у родственника DateFormat - SimpleDateFormat
java.lang.Object extended by java.text.Format extended by java.text.DateFormat extended by java.text.SimpleDateFormat
Подскажите: правильно-ли написан паттерн даты и выбрана Locale? Результат работы - Tue Aug 26 15:24:48 EEST 2008 Что такое EEST, почему происходит сдвиг на 3 часа? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Теперь GUI (дорабатывать нужно все, но это на последующих итерациях, логично?).
И вопрос: в визуальном редакторе (с последующей доработкой, при надобности) или полностью руками? Мысли такие: в визуальном редакторе быстрее. А как работают в реальных и больших проектах? Сам, уже пробовал и так и так (руками - в Eclipse, с визуальным редактором - в NetBeans, счас работаю с NetBeans). Т.е. вариант руками из за того, что это обучение - отбросил. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Написание GUI рукми - это не обучение |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
GUI, для меня, получилась самой сложной темой. layout решил взять попроще. В общем вот, что сделал:
Появился вопрос: подскажите, как на JTable-е сделать SelectionListener? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Ну наверно стоит добавить листенер. Вот тут посмотри: http://jug.org.ua/wiki/display/JavaAlmanac...Table+Component http://java.sun.com/docs/books/tutorial/ui...onlistener.html еще может тут чего найдешь полезного http://www.java2s.com/Code/Java/Swing-JFC/Table.htm Это сообщение отредактировал(а) garbuz - 4.9.2008, 23:40 |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Сенкс,
Ну а вообще? Нужна критика, чтоб я мог ориентироваться в правильном ли направлении работаю. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Shklyar, я вообще не специалист по юзабилити, но мне кажется что интерфейс вполне приличный, мне сразу стало все понятно что к чему
Короче продолжай в том же направлении! Молоток! PS. Как допишешь первую бету - готов потестить |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Для кнопки сделал отступ, стало лучше.
Получилось сделать листенер для таблицы (с второй ссылки). Добавил модель для таблицы (модель - представление - контроллер). + всякая мелочь. Основной вопрос - как и что необходимо сделать для корректной работы с JTabbedPane. На каждой его вкладке должны быть следующие элементы:
Каждая вкладка создается кнопкой вне JTabbedPane. На одной вкладке JTabbedPane все сделано и прекрасно работает. Добавить вкладку понятно как. Вопрос в том, как организовать данные (т.е. связанную работу трех JButton, JTable и JTextArea на каждой вкладке, только внутри ее). Думаю, что надо сделать отдельный (внутренний) класс для наполнения JTabbedPane. В этот класс внести всю иерархию представления, модель таблицы и, наверно обработчики трех кнопок? Или как быть с обработчиками? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Что, если сделать так:
1. Описать внутренний (в MainForm) класс, для наполнения вкладок (включить туда из MainForm() панель (и все ее содержимое), которую кладу на JTabbedPane). 2. При создании новой вкладки (через создание нового экземпляра вышеуказанного класса) заносить объект в ArrayList. 3. Т.е., неявным образом, выйдет, что вкладка и объект, который ее заполнил имеют одинаковый индекс (к объекту, который заполнил вкладку, можно будет получить доступ получив индекс активной вкладки и попросив элемент из ArrayList по этому индексу). Прокомментируйте, плис. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Сделал первую версию. Посмотрите, скажите свое мнение.
Присоединённый файл ( Кол-во скачиваний: 35 )
RSSClient.7z 448,17 Kb--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Да, для программки необходима MySQL.
:| --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Shklyar, супер! Все работает! Завтра получше потыкаюсь и постараюсь написать конаструктив
ЗЫ. А можно исходники сюда выложить? ну или хотя бы в приват? ЗЫЫ. Кстать mysql-connector есть версия поновее, 5 с чем-то Это сообщение отредактировал(а) garbuz - 7.9.2008, 23:11 |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Все таки решил сейчас немного потыркаться
Как я понимаю, приложение не открывает две одинаковых вкладки с рсс. Когда открыт канал, жмакаем на кнопку редактировать, изменяем имя канала, жмем окей, а потом снова открыть, открывается вторая вкладка с таким же содержимым как и первая, только с другим именем, причем в списке каналов, только один. Тут я вижу два варианта. 1) При редактировании канала, редактируется и надпись на вкладке, если канал открыт. 2) При редактировании канала, если он открыт, вкладка закрывается и тогда уже в следующий раз она откроется с новым именем |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Для чего MySQL? Ибо так все делают? H2DB, HSQLDB, Apache Derby (и т.д.) - на вкус и цвет. Ну не будет обычный пользователь ставить MySQL, а RSS ридер - программа в первую очередь ориентирована на обычных пользователей. В общем, пока еше не поздно, лутше перейти на какую-то из джавишных баз данных. И скорость выше (т.к. не через сокеты связь) и весит меньше, да и ресурсы экономит. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Тут вопрос кроется во мне. Просто я стремлюсь стать junior Java developer (в этом и есть цель этой программки - опыт, посмотрите по вопросам: xml + db + http + gui ++), а в прошлом работал с php + MySQL. Думаю, что для желаемой должности учить дополнительно что-то про ДБ нет смысла (попасть на желаемую СУБД трудно, а SQL одинаков), есть куча более необходимых на сейчас вопросов. MySQL и так знаю + поселилась она на моем компе давно и основательно. Потому и выбрал. А перейти на другую СУБД можно всегда - поменять драйвер и, возможно, почитать один класс (а, возможно, и так заработает). --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
1. Сенкс, очень приятно. Хотя, когда первый раз ты меня похвалил, то я подумал: ну все, щас расслаблюсь (и на этом программка будет закончена). Сенкс. 2. Да. Только, когда я заканчивал с гуи, то начался такой код, что стыдно показывать. Вообще, то и по началу много всякого стыдного, но концовка... 3. Наверно. Нашел библиотеку на своем компе (с тех времен, когда смотрел Студенческий отдел кадров). Добавлено через 1 минуту и 31 секунду
Косяк. Но перед его исправлением нужно подумать про структуру программки (как красиво связать закладки, их модели и список и его модель). Как я писал выше они связаны совпадающими индексами (сразу понимал, что идея хлипкая) и под конец гуи начал это чувствовать. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||
|
|||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Ну джуниром возьмут по любому, после университета бывает народ что вообще нифига не понимает, но ничего, проводят пару месяцев на курсах, потом идут на работу. Но, по моему, не в ту степь копаете. GUI на джаве мало где делают, а вот вебом занимаются активно.
Один с необходимых навыков программисат - умение принимать оптимальные\правильные решения. MySQL в данном случае к ним не относится ;) |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Да это правда. Я - белая ворона в этом сообществе :( К сожалению, я не предприниматель, чтоб продвигать Java GUI, да и надо ли? Есть технология, которая предлагает готовое решение и популярна в сфере десктоп приложений (не Java) Не знаю радоваться ли расстраиваться твоему решению писать GUI на Java... ... Добавлено через 10 минут и 29 секунд А так посмотрел, всё тип-топ. Для полноценного RSSClient не хватает малости - нормального HTML Renderer. Добавлено через 12 минут и 22 секунды И мои фиды обижает :( http://yanaidu.ru/jobs/feed Это сообщение отредактировал(а) Platon - 8.9.2008, 09:16 |
|||
|
||||
| Shklyar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
1. Ох, больной, для меня, это вопрос. 2. Вы про сервлеты? 3. Давайте определимся с вопросом (для правильного решения). Если вопрос о том, какая СУБД нужна для RSSClient - согласен с вами. Если - что в данном случае и на данном этапе использовать - MySQL. Добавлено через 24 секунды
1. А можно детальнее? 2. Да, это точно, но пока решил на этом сэкономить время. 3. Посмотрел. Да, он поступил плохо. Думаю это нужно решать через второй пункт. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
||||
|
|||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Для начала про сервлеты, а вообще про JSP, Struts, Hibernate, JPA, Spring, JavaScript, Ajax, etc... Вопрос однозначно должен решатся с точки зрения того, на кого ориентирована ваша программа. Правильные технологические решения должны приниматься на начальном этапе разработки, ибо чем дальше в лес... Потом либо прийдется потратить слишком много усилий на переработку, либо уже сидеть скрипя зубами на изначально не верном решении. |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
JavaScript, Ajax? Моя душа, честно говоря, ближе к толстому клиенту.. Отдельно: прикрепил код программы. Присоединённый файл ( Кол-во скачиваний: 18 )
rssclientSrc.7z 5,91 Kb--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Под "Есть технология" подразумевал .NET Добавлено через 3 минуты и 44 секунды Хотя, есть позывы к улучшению ситуации: http://forum.vingrad.ru/forum/topic-227207/index.html |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Пока в java расстраивает изменение размера окна.
Это сообщение отредактировал(а) Platon - 8.9.2008, 20:00 |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Да, возможно, .NET для GUI получше будет, но я за Java. Хотя, одновременно, "сервлеты и JSP" менее интересны мне, хотя знать необходимо. --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Одно дело что нравится, другое - за что деньги платят. Я бы тоже с удовольствием толстые клиенты\игрушки писал, но увы...
Под жабоскриптом имеется ввиду жабоскрипт который заполняет\проверяет формочки, календарики, прочее. Под аджаксом - перезагрузка кусочков странички без других частей К примеру, Struts2 умеет работать с аджаксом, хотя там есть своя таглиба, которая использует dojo, через который уже и работают аджаксовские запросы Это сообщение отредактировал(а) SoulKeeper - 8.9.2008, 21:16 |
|||
|
||||
| garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 3 Всего: 11 |
Согласен что это надо знать, это можно так сказать основы Java EE. Уже только на основе этого + бд можно приличное веб приложение разработать. Вопрос вопрос в том, сколько сил и времени придется на это потратить, без использования каких-либо фреймворков. В какой последовательности учился я. Core java -> Swing -> БД -> Servlets -> Jsp -> Hibernate -> Struts -> начал Spring, но пока так и не осилил -> Portlets. Ко всему этому html, css, ajax. Последовательность хоть и не закончена, но кажется вполне адекватной. Shklyar, если ты раньше писал на пыхе, то для тебя не составит труда понять servlets и jsp |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Тогда такой вопрос: есть ли специализации Java EE программистов? Все ли (на коммерческом уровне) работает в веб интерфейсе (через браузер)? --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
| Shklyar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 28.11.2007 Где: Kyiv Репутация: 2 Всего: 3 |
Понять servlets и jsp, наверное дело чести. html, css - исходя из прошлого опыта известны. А вот JavaScript (а, как следствие, и Ajax) ... Максимум - заюзать какуюто фичу. Большое желание отдать это ... --------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |