![]() |
Модераторы: LSD, AntonSaburov Страницы: (29) « Первая ... 6 7 [8] 9 10 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
v2v, я не позиционирую себя как опытного JEE разработчика в том понимании, которое вы вкладываете в это слово. Поэтому ваши вопросы - это не ко мне. Попробуйте создать отдельную тему, или посмотрите вот этот только что открытый топик: Малый джентельменский набор знаний, начинающего девелопера корпоративного ПО.
-------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
User
Post
Добавлено через 1 минуту и 43 секунды Stampede мы будем с локализацией заморачиваться? -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
||||
|
|||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Так, препарируем. Замечания такие:
1. Зачем хранить пароль в виде байтов? Гораздо удобнее в виде строки - hex или base64. 2. Аватар собираешься прямо в базе хранить, блобом? Подумай, удобно ли? В прниципе это возможно, но поддерживать будет трудно (вставлять/обновлять/просматривать). Я бы все-таки предложил хранить в файловой системе. Тогда поле avatars (кстати, почему во множественном числе) будет строкой, содержащей путь к файлу картинки. 3. По поводу пола. У тебя вот такая конструкция:
Есть ли в этом смысл? Практически единственное место, где у тебя будет создаваться объект типа User - это при обработке соответствующей веб-формы. Пол там будет скоее всего задаваться радиокнопкой. Ну и зачем нам связываться с преобразованием строки в число, а потом обратно, если мы можем везде работать со строкой? Я бы сделал так:
Проверками пока не заморачиваемся, потому что для валидации все равно нужен будет какой-то целостный подход. 4. В классе Post ссылка на автора поста идет по имени юзера. Правильнее было бы по ID. Это как бы азбука проектирования реляционных баз данных. В остальном вроде нормально. Да, вот еще. В классе Post я заметил у тебя переменную int section, а ты такую сущность не описывал. Так что отредактируй классы с учетом замечаний и приведи список свойств для Section. После этого займемся непосредственным созданием интересующих нас объектов. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
diablero |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
section это тематические разделы сайта. Например, с++ java asm ...
Как и если она нам понадобиться мы ее опишем или уберем.
Это сообщение отредактировал(а) diablero - 26.6.2007, 20:14 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
А почему не enum? Вроде у нас Джава не четвертая... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Ага, годидзе.
Теперь очень важный момент. Нам нужно будет насоздавать экземпляров определенных нами сущностей. В этом месте многие начинающие программисты сразу приступают к программированию датабазного слоя, с тем чтобы далее юзать данные из набитой вручную базы данных. Это не есть хорошо. При таком подходе вектор зависимости компонентов проги неизбежно отклоняется в сторону датабазной логики. При еще менее удачной архитектуре, когда начинают плясать от вебного слоя, этот вектор тяготеет также в сторону Servlet API, что в сочетании дает совершенно невообразимую мешанину, в которой практически невозможно разобраться. Поэтому крайне важно смотреть на базу данных лишь как на один из возможных способов персистенции, и соответственно экранировать реализацию низкоуровневого доступа к базе неким более общим интерфейсом, который знать ничего не знает о таких вещах как Statement, ResultSet и SQLException. Но вернемся к исходному вопросу. Как же все-таки создавать объекты для тестирования? Выход состоит в использовании т. н. mock objects - болванок, имитирующих реальные сущности (mock == имитация). Для их генерации существует несколько подходов:
To batigoal: Ну, для поля gender с двумя возможными значениями это был бы все-таки overkill. Тем более что ведение enum не решало бы вопрос о преобразовании из строкового значения в enum'ное. Это сообщение отредактировал(а) Stampede - 26.6.2007, 23:04 -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Не знал как это называется, но всегда для тестов использовал сгенириный файлик.
![]() Так что я склоняюсь к файлу описателю. Т.е. моя задача в какую-нибудь структуру нагенерить кучу User и Post. Это сообщение отредактировал(а) diablero - 26.6.2007, 23:25 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Типа того. Тут можно еще сделать финт ушами и реализовать это дело малой кровью. Фокус заключается в том, чтобы задействовать один из имеющихся средств сериализации Java объектов в какой-нибудь текстовый формат. Для этого подойдет например класс XMLEncoder, или библиотека Burlap (вот тут рассказывается, как в две строчки за- и рассериализовать объект: http://www.caucho.com/resin-3.0/protocols/burlap.xtp), или XStream (вот пример сериализации в строку: http://xstream.codehaus.org/tutorial.html), или дюбой другой (погугли по java xml serialization). Я бы от себя порекомендовал XStream - очень простой, четкий и внятный. Сделать надо вот что. Пишешь новый тестовый класс, скажем TestUser, и в нем (можно прямо в main()) создаешь экземпляр User, заполняешь поля значениями, и печатаешь его XML представление. Да, предварительно засовываешь объект в какую-нибудь коллекцию, чтобы потом загружать сразу пачкой. Примерно вот так:
После этого копируешь вывод в буфер, заносишь в файл, скажем, conf/users.xml, и, творчески применяя излюбленный метод китайских программистов под названием copy-paste, создаешь столько юзеров, сколько тебе надо. Фсе! Телемаркет! ![]() Как потом прочитать - объяснять, я думаю, не надо. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
diablero |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Я сделал проще. Взял сворй старый генератор csv файла и создаю сколь угодно User вида:
Post аналогично. И не в две, а чуть больше строчек, с помощью StringTokenizer создаю n-е количество User и Post
-------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
||||
|
|||||
Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Рад, что тебе понравился XStream. Поехали дальше.
Давай теперь напишем два класса-менеджера, которые реализуют простенький интерфейс:
Менеджерами будет заведовать класс Infinite: создавать, инициализировать и выдавать через геттеры. В самих менеджерах надо будет при инициализации загрузить из файла моки соответственно юзеров и постов, и сохранить их в мапе по ID. Выдавать методами getUser(int id) и getPost(int id). В классе UserManager дополнительно определи методы
Попробуй все это потестить отдельным тестовым классом.
Не совсекм понял вопрос. А вообще, чтение конфига - это не та задача, где надо выжимать максимум быстродействия. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
diablero |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
UserManager
PostManager
Потестил, работает. Это сообщение отредактировал(а) diablero - 28.6.2007, 14:36 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
||||
|
|||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Отлично!
Теперь проведем вторую жЫрную черту. Выкладывай zip-архив всего, что наваял. Не забудь про сторонние библиотеки и файлы для моков. После этого приступим к обсуждению персистенции. ЗЫ. Я бы все-таки поменял Vector на ArrayList. Vector и Hashtable - это тяжелаое наследие проклятого царизма, когда еще не было фреймворка Collections, а коллекции на всякий случай делались полностью потокобезопасными (естественно, в ущерб производительности). Это сообщение отредактировал(а) Stampede - 28.6.2007, 17:49 -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Сменить vector на arraylist я захотел после того как посмотрел соотношение производительности между ними.
А какой струтурой заменить hashmap? Архив с библиотеками запостить не получиться. Лимит всего 120кб, а со всеми библиотеками архив будет пол мегабайта. Как сменюсь с дежурства все сделаю. Это сообщение отредактировал(а) diablero - 28.6.2007, 19:48 -------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Хм, жалко... Модераторы, есть ли какая-нибудь возможность разместить полный архив? Может, дать доступ к FTP или еще-как-то. Спасибо. Читай внимательнее. HashMap как раз в полном порядке. И еще. Я сегодня уезжаю на пять дней. Доступа в инет скорее всего не будет. Так что если не хочешь, чтобы работа на это время застопорилась, давай попытаемся успеть обсудить персистенцию. Основные кандидаты - голый JDBC, Hibernate, iBatis, Castor. Выбирай с учетом предыдущего опыта и/или желания освоить какую-то технологию. ЗЫ. Я сам с ORM не работал, так что если что - придется кого-то просить в помощники. Или разбираться вместе. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
diablero |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 3.12.2006 Где: Аркхэм Репутация: 2 Всего: 5 |
Из перечисленного я имел дело только с jdbc. Заметил что часто требуется работадателями и много народ обсуждает hibernate. Давай будем работать с ним. Или есть аргументы в другую сторону?
-------------------- Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |