![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
blackbanny |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Учу Java совсем недавно, в коммерческой разработке не участвовал. Хотелось бы, чтобы вы посмотрели качество кода, понятность и т.п. Стоило ли в пакете ru.regexinfo.domeninformation создавать интерфейс, базовый класс и производный? Корректен ли интерфейс классов? Верно ли работаю с исключениями? Приложение совсем небольшое, просто хочется выслушать замечания, чтобы не допускать ошибок на более серьезных проектах Приложение предоставляет информацию о домене. ссылка на GitHub |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Не надо коммиты нумеровать. first commit second commit это не комментарий, с таким же успехом можно оставить сообщение пустым. В сообщении должно содержаться краткое описание того, что было сделано:
- create empty project - create main interface Комитить в репозиторий скомпилированне классы не надо. Добавлено через 39 секунд Тесты должны лежать отдельно от основного кода. Добавлено через 1 минуту и 42 секунды Комментарии на языке отличном от английского - зло. Добавлено через 5 минут В JavaDoc так же надо описывать поведение в "исключительных" ситуациях. Например void setUrl(String url); что будет в случае неправильного URL? А в случае null? Добавлено через 6 минут и 27 секунд Зачем создан DomenInformationBase, планируются альтернативные реализации? Добавлено через 7 минут и 52 секунды Выделять исключения в отдельный пакадж не стоит, пусть лежат в том же в котором используются. -------------------- 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. |
|||
|
||||
blackbanny |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
спасибо за замечания!
![]()
да, планируется написать класс для парсинга информации о домене с другого сайта... а то, что в интерфейсе у меня только методы Get/Set это нормально? Может стоит класс DomenInformationFromCyPr разбить на несколько классов, т.е. чтобы не один класс предоставлял всю информацию по домену, а отдельные классы - класс для получения имени владельца домена, класс для получения даты регистрации домена и т.д.? Корректно ли логирование и обработка исключений? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я бы сделал класс, DomainInfo который содержит в себе всю информацию о домене (включая ошибки парсинга, если возможна ситуация что информацию удалось получить лишь частично). И интерфейс DomainInfoResolver который будет на вход получать информацию о домене и возвращать DomainInfo. Логгирования честно говоря вообще не заметил. -------------------- 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. |
|||
|
||||
blackbanny |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
а где и в каком виде ошибки бы хранили?
наверное не информацию о домене, а сам домен? интерфейс или класс, не совсем понял про DomainInfoResolver? логирование в главном классе проекта - DomenInformation |
||||
|
|||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
1. DomenInformationConstants будет содержать только константы? Значит лучше сделать интерфейсом и убрать public static final
2. Названия пакетов нужно продумать лучше, не желательно делать два одинаковых названия domeninformation 2.1 Наименования пакетов желательно в одном стиле. У тебя везде в ед-ом числе, а exceptions почему-то во множественном. 2.2 Если есть Main класс, я бы пакет так и назвал 3. Не используйте System.out.println, логирование ведь подключено. К тому же в одном месте применять и то и то нет смысла.:
По коду: 1. Есть стандартные ворнинги, которые IDE подсвечивает, желательно их убрать. 2. с названиями беда: пакет checkurl класс CheckUrl метод checkingUrl. ![]() 3. Вот так if (!elements.isEmpty()) break; тоже лучше не писать. Нужны скобки и все с новой строки.
Почему? По мне, так исключения лучше выносить в свой пакет исключений. |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я плохо представляю какого рода ошибки могу быть, но в целом я бы сделал так: - если ошибка фатальная и вообще никакой информации о домене не удалось получить - выбрасываем эксепшн - если поличили информацию что такой домен не существует, создаем DomainInfo у которого ставим статус Not found (статусы я бы сделал enum-ом) - если информацию удалось получить но лишь частично создаем DomainInfo у которого ставим статус partialy resolved - если информацию удалось получить в полном объеме - то статус ОК Ну да, имелся в виду URL домена. Этого явно недостаточно. Нужно еще добавать логгирование в код который парсит информацию о домене, чтобы в случае проблем понять что там происходит.
А смысл отделять исключение от того кода с которым оно связано? Посмотри на JDK, там исключения лежат в тех же пакаджах что и классы которые их используют. -------------------- 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. |
|||
|
||||
blackbanny |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
спасибо за ценные замечания!
![]()
планируется, что еще будут константы переименовал
System.out.println пока что делается для себя, потом вместо этого будет присвоение значений GUI-элементам
вроде все убрал, пришлось добавить @Override у методов и метод setUrl() в DomenInformationFromCyPr сделать final переименовал, как вы посоветовали ![]()
скобки расставил Сейчас, наверное, сделаю, как посоветовал сделать LSD: только немного не пойму, в каком виде и где хранить ошибки парсинга в этом классе? в переменных которые буду отвечать за информацию о домене, например, переменная owner содержит владельца, если не удалось спарсить владельца, то присваиваем owner = "не удалось определить владельца"; так ?
с интерфейсом не совсем понял... и может тогда класс DomenInfo сделать внутренним классом DomenInformationBase? |
||||||||||
|
|||||||||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Добавляешь переменную которая содержит ParseStatus
Я имел в виду, что должен быть отдельный класс который хранит в себе информацию о домене. И отдельный класс который эту информацию получает. И раз уж у тебя планируется несколько источников получения информации, то DomainInfoResolver я предложил сделать интерфейсом. -------------------- 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. |
||||
|
|||||
blackbanny |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |