![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
У меня на сон уходит меньше 5 часов в день, напряженка, поэтому, думаю, обучение будет медленно.
Но с конфигами через FileReader разобрался. логирование не нашел еще(искал мало), но, думаю, на крайний случай свой напишу ) |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Ты Java по методу Илоны Давыдовой собрался учить? ![]() По заданию: то, что с FileReader'ом разобрался, это хорошо. Только если ты внимательно читал условие, читать на самом деле пока ничего не надо. Я предлагал пока зделать заглушку будущего объекта Configuration с жестко прописанными параметрами. Потому что в дальнейшем этот объект будет инициализироваться из файла XML. А для парсения XML в Java не нужно предварительно зачитывать весь файл в память. |
|||
|
||||
nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
![]() Просто у меня напряженка в реале =)
|
||||||||
|
|||||||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Да был такой лохотрон в начале 90-х - аудиокассеты для обучения английскому во сне ![]() То, что с временем туго - это, конечно, не очень здорово. Понимаешь, я пытаюсь напривлять твою разработку в стиле agile programming (шустрое программмирование) - слышал, наверное, про такую методологию. Ну и вот, а если на каждое задание будет уходить по нескольку дней, то эффект будет маленько смазанным. То есть на самом деле разницы большой нет, но вот психологически будет по-другому восприниматься. Но понятно, что жизнь есть жизнь и получается так, как получается. Ладно, давай к заданию. В принципе все очень неплохо, но есть ряд недочетов, которые лучше устранить. Перечисляю в призвольном порядке: 1. Имя переменной _instance противоречит конвенции и из-за этого несколько "режет глаз". Подробнее о соглашении об именах - вот здесь: http://java.sun.com/docs/codeconv/html/Cod...s.doc8.html#367 2. Логгер у тебя конфигурится программно. В том числе оказывается, что имя логфайла зашито в коде. Между тем один из основных мотивов создания логового фреймворка состоял в том, чтобы вынести конфигурацию логирования во внешний редактируемый файл. Как это делается в штатном логгере - я, честно говоря, совершенно без понятия, так что на-ко вот скачай книжку и разберись. Заодно почитаешь там про log4j, и может быть его и выберешь. Вообще, логирование в Java - это вещь достаточно запутанная и капризная. Почему - станет ясно, когда начнешь подключать сторонние библиотеки и пытаться настраивать их вывод. В общем, сделай внешнюю конфигурацию. Книжку выкладываю вот сюда: Logging In Java with the JDK 1.4 Logging API and Apache log4j. 3. Тестовых классов у нас еще будет много, поэтому лучше для них создать отдельный пакет, например ru.hunger.test, и перенести туда TestHunger. 4. Классическая реализация синглтона требует приватного дефолтного конструктора, а иначе появляется возможность унаследовать от твоего класса, и вот уже у тебя в программе больше одного объекта данного типа. 5. Когда ты начнешь плотнее работать с приложением, у тебя окажется не одно рабочее окружение, а несколько. Соответственно, нужно будет как-то указывать, откуда брать конфиг. Поэтому для класса Hunger нужно как-то предусмотреть возможность задания рабочей директории. Поскольку от конфига зависит вся дальнейшая раскрутка, имеет смысл завести метод с такой сигнатурой:
Понятно, почему это надо делать не в конструкторе? Потому что класс у нас синглтонный, конструктор приватный, а инфы о том, где брать конфигурацию, на момент создания экземпляра еще нету. 6. Рассмотрим метод getConfigItem(). Это хорошо, что параметров конфига у нас пока мало. А когда будет много, мы что же, будем дублировать все методы из класса Configuration? Нет, нам этого не надо. Лучше просто отдавать объект Configuration - и пусть кому надо смотрят в нем что хотят. 7. Метод log() нам тоже не нужен. Этак мы сами себя подстрекаем использовать один общий логгер на всю прогу. А идея-то с логгерами в том, чтобы можно было, в частности, управлять уровнями логирования на уровне иерархий классов. Так что логгеры у нас в каждом классе будут свои. 8. Ввиду предыдщих двух пунктов, не очень правильно заставлять класс-раскрутчик (TestHunger) выпытывать подробности конфигурации. Раскрутчик должен сделать всего две вещи: получить ссылку на синглтон Hunger и проинициализировать его значением пути к рабочей директории. Путь имеет смысл брать из аргументов запуска программы. Если путь не указан, то берется текущая директория. А выводом параметров конфига должен заниматься сам класс Configuration, по указке Hunger. 9. Да, классу Configuration тоже не помешает знать путь к рабочей директории. Удобно будет задавать его через параметр конструктора. В общем, предлагаю переделать с учетом замечаний. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Угу, спасибо =)
Только я наверно это только завтра смогу сделать =\ По крайней мере в воскресенье надеюсь уделить часов 12 джаве =) |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Вот в общем написал, но чую, что плохо.
Пока почитаю про коллекции ) Еще примерно какие области надо знать в первую очередь? Коллекции, потоки, сеть(http, сокеты), файлы....
|
||||||
|
|||||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
nerezus, так не пойдет. Или мы делаем проект, или не делаем. Из девяти замечаний, которые я привел, ты отреагировал только на пункты 1, 3, 4, 5, 7, да и то не в лучшем виде.
Зачем сделал публичной переменную config? Там просто геттер нужен. Где метод в Configuration, который возвращает текстовое описание конфига? Можно для этой цели переопределить toString(). Почему по-прежнему явно инициализируешь логгер? Зачем из TestHunger пытаешься вывести значение конфиг параметра? А если будет десять параметров? А если двадцать тестовых классов (хинт: со временем и тех, и других может оказаться намного больше). И потом, что это за второй параметр в init()? Передаешь в него вроде файл конфига, а используешь для вывода логов. Неряшливость, невнимательность. В общем, если хочешь продолжать, то давай работать, если нет - нет. С логгером если не можешь разобраться, то сделай хотя бы так: подключи либу log4j и положи в корень классов файл log4j.properties с таким содержанием:
Переменная логгера определяется в одну строчку:
Жду новостей. |
||||
|
|||||
Omut |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.12.2005 Репутация: нет Всего: нет |
Tак, тема уже не зафиксирована
![]() ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Omut, а сам? Нет желания поучаствовать? Если согласен, верну тему на место. Хотя... Смотря, что скажет Stampede.
|
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Я тоже за то, что batigoal поработает, т.к. у еня сложилось предвзятое мнение к джаве в вебе...
Я конечно извиняюсь за потраченное время, но.... короче еще раз извиняюсь =( |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
У меня назрело решение об альтернативном проекте, так что я теперь "вне игры" ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Omut |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.12.2005 Репутация: нет Всего: нет |
||||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
А могу я себя выставить в роли ученика?
..правда есть уже небольшой опыт (ссылка в подписи - все на JSP/Servlet сделано) но многое еще не осовоил, например куки, JavaBeen... да многое наверное... Добавлено @ 01:02 nerezus, почему сложилось такое мнение? -------------------- ![]() |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
nerezus, а ведь мы с тобой к вебу еще даже не притронулись. Похоже, тебя отпугнула именно Java как таковая. Что я могу на это сказать... Да, в изучении Java существует некоторый начальный порог, но если его пройти, дальше все становится не так грустно. Так что может быть когда-нибудь еще вернешься. Ну что ж, давай попробуем. Исходные данные сопоставимы. То, что есть опыт с JSP - вообще отлично: значит шишки уже набиты ![]() Поэтому первым делом: расскажи, чего хочешь от сайта. В частности, зачем предусмотрена регистрация? Что будет доступно юзерам и недоступно прочим? |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
Хочется развить сайт в такой некий опен-сорс ресурс, типа в вкладке проектов будут описания начатых проектов, если посетитель не зареген то он может скачать только бинарникили вообще ничего, если зареген то и исходник, и например обновить файлы проекта (например что то дописал) - пока только это в голову пришло...
Да и хостинг там сильно ограничен всего 10 мб и отсутствует возможность средствами сервлета создавать и редактировать файлы, а так бы админку сделал бы для наполнения содержимым, правда есть доступ к БД, можно сделать админку типа, написал текст для главной странице он залился в базу, потом при вызове этой страницы данные из базы считались и вывелись... Еще на хостинге нельзя почтовиком пользоваться, придется функцию "Восстановления пароля" сделать такой чтобы данные о таком запросе вбивались в базу а админ потом уже сам проверял и отсылал в ручную... Еще была идея сделать гостевую... но не как обычно в виде мини форума, а в виде аплета. Аплет как паинт, т.е посетитель рисует на нем мышкой, жмет - сохранить и этот рисунок отображается на странице, естественно регулировать количество этих "художеств"... Так что этот сайт скорее полигон, на данном этапе, чем конечная цель. Если из него что то вырастет то будет гут, нет, так тоже не обижусь так как опыт при его создании очень важен. Одна из задач такая - для пользователя со статусом админа показывать юзеров. Одно из решений это считать данные из базы в колекшн а потом значения из колекшена выводить в JSP в цикле... может есть более красивое решение? Типа считать данные в некий датасет, кинуть на страницу таблицу где источником данных взять этот датасэт (влияние долгого программирования на Delphi)? воть... ![]() Всех с наступающим! ![]() ![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |