Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему в ява нет анотаций внутри методов? дилемные вопросы о архитектуре 
:(
    Опции темы
polosatij
Дата 2.10.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(fixxer @  2.10.2008,  17:25 Найти цитируемый пост)
Такой случай очень редок. 


согласен  smile  посему я и сказал, что было бы не плохо, если бы.. и название темы: "почему в ява так мало решено анотациями".. а  это, лишь как пример возможной ситуации  smile 



--------------------
PM   Вверх
fixxer
Дата 2.10.2008, 17:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Чтобы, так сказать, расставить точки над Ё. Мое мнение такое:

Зачастую бывает так, что вместо того чтобы действительно решать проблему, люди придумывают различные workaround'ы, порой фантастические. Типа: "Вот неплохо было бы иметь такую конструкцию, она сразу бы решила мою локальную проблему", - вместо того чтобы искоренить первопричину. Обратимся к началу топика. Проблема, как я понял, в том, что часто приходится писать ветвления со сложным условием, порой с одинаковыми конструкциями в условиях в различном их сочетании. А это, к гадалке не ходи, как правило означает проблемы в проектировании. Например перегруженный функционалом класс или наоборот размазанный по иерархии функционал. Как правило такие проблемы можно решить перепроектированием классов и их взаимодействия. Локализовать ответственности, разбить на более мелкие, но умные классы или применить, к примеру, State/Strategy, ну или сгруппировать и обернуть условия в более явные и предметные предикаты.

Я ни в коем случае не говорю, что у тебя именно так, я твою задачу не знаю, твоего кода не видел. Просто предположение.

В любом случае разговоры типа "А не плохо если бы..." беспредметны.


--------------------
user posted image
PM MAIL ICQ   Вверх
Aristotelb
Дата 2.10.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 23.3.2007
Где: Саратов

Репутация: 4
Всего: 5



Цитата(fixxer @  2.10.2008,  16:36 Найти цитируемый пост)
1. Импортнуть. А полностью квалифицировать то, что покороче. 2. Не использовать дебильные либы.


Или изобрести наконец алиасы, почему их до сих пор нет в Java мне не понятно

Добавлено через 12 минут и 5 секунд
Цитата(fixxer @  2.10.2008,  17:59 Найти цитируемый пост)
Зачастую бывает так, что вместо того чтобы действительно решать проблему, люди придумывают различные workaround'ы, порой фантастические. Типа: "Вот неплохо было бы иметь такую конструкцию, она сразу бы решила мою локальную проблему", - вместо того чтобы искоренить первопричину. Обратимся к началу топика. Проблема, как я понял, в том, что часто приходится писать ветвления со сложным условием, порой с одинаковыми конструкциями в условиях в различном их сочетании. А это, к гадалке не ходи, как правило означает проблемы в проектировании. Например перегруженный функционалом класс или наоборот размазанный по иерархии функционал. Как правило такие проблемы можно решить перепроектированием классов и их взаимодействия. Локализовать ответственности, разбить на более мелкие, но умные классы или применить, к примеру, State/Strategy, ну или сгруппировать и обернуть условия в более явные и предметные предикаты.


На сколько я понял человек просто ищет пути (может не совсем верные | совсем не верные) к автоматизации рутинной работы, а она рано или поздно возникнет даже при идеальной архитектуре
PM MAIL ICQ   Вверх
polosatij
Дата 2.10.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8





Цитата(fixxer @  2.10.2008,  17:59 Найти цитируемый пост)
Зачастую бывает так, что вместо того чтобы действительно решать проблему, люди придумывают различные workaround'ы, порой фантастические. 


зачастую бывает такое, что одни занимаются практикой, другие теорией..  а также некоторые практики иногда хотят теории.. и наоборот.. может ты в этот строчке хоть увидишь смысл..


Цитата(Aristotelb @  2.10.2008,  19:48 Найти цитируемый пост)
На сколько я понял человек просто ищет пути (может не совсем верные | совсем не верные) к автоматизации рутинной работы, а она рано или поздно возникнет даже при идеальной архитектуре 


угу.. ты попап в самую точку  smile 



Цитата(Aristotelb @  2.10.2008,  19:48 Найти цитируемый пост)
Или изобрести наконец алиасы, почему их до сих пор нет в Java мне не понятно


что такое алиас и с чем его едят?  smile // посмотрел в гоогле, пока не очень понял зачем это и зачем это для ява..


--------------------
PM   Вверх
v2v
Дата 2.10.2008, 22:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(polosatij @  2.10.2008,  22:20 Найти цитируемый пост)
polosatij  
что такое алиас и с чем его едят?  smile // пос


на примере
Код


{
     doAction1(com.net.play.game.package.name.subname.subSubname.SuperLongSuperClassName.getParam1());
     doAction2(com.net.play.game.package.name.subname.subSubname.SuperLongSuperClassName.getParam2());
     doAction3(com.net.play.game.package.name.subname.subSubname.SuperLongSuperClassName.getParam3());
     doAction4(net.game.packagename2.subname.subSubname.SuperLongSuperClassName.getOtherParam());
}

// ( псевдокод ) c алиасами:

  define   com.net.play.game.package.name.subname.subSubname.SuperLongSuperClassName SLSCL;
  define   net.game.packagename2.subname.subSubname.SuperLongSuperClassName nSLSCL;
{
     doAction1(SLSCL.getParam1());
     doAction2(SLSCL.getParam2());
     doAction3(SLSCL.getParam3());
     doAction4(nSLSCL.getOtherParam());

}



теперь по сабжу.
Если не ошибаюсь, Стандарт JSR-308 , который будет входить в 7ю яву , описывает как использовать аннотации вместе с типами (переменными).
например можно будет объявлять 
@NotNull
Integer a;
Но кроме этого будет возможность создавать свои аннотации с изощерённой логикой ... проверками, условиями и т.д...



Это сообщение отредактировал(а) v2v - 2.10.2008, 23:15


--------------------
PM   Вверх
fixxer
Дата 3.10.2008, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Цитата(v2v @ 2.10.2008,  22:57)

теперь по сабжу.
Если не ошибаюсь, Стандарт JSR-308 , который будет входить в 7ю яву , описывает как использовать аннотации вместе с типами (переменными).
например можно будет объявлять 
@NotNull
Integer a;
Но кроме этого будет возможность создавать свои аннотации с изощерённой логикой ... проверками, условиями и т.д...

Че-то я  очкую (с)

http://www.michaelnygard.com/blog/2008/05/..._jsr_308_t.html
http://dmlloyd.blogspot.com/2008/05/closer...at-jsr-308.html
http://bc-squared.blogspot.com/2008/05/wha...va-wrought.html


--------------------
user posted image
PM MAIL ICQ   Вверх
COVD
Дата 3.10.2008, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата

человек просто ищет пути ... к автоматизации рутинной работы


если в работе намечается рутина, может просто пора ... поменять работу? smile 
PM MAIL   Вверх
Дрон
Дата 3.10.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 6
Всего: 93



Цитата(v2v @  2.10.2008,  23:57 Найти цитируемый пост)
Стандарт JSR-308 , который будет входить в 7ю яву

Код
@NotEmpty List<@NonNull String> strings = new ArrayList<@NonNull String>();

От блин, но автор вот тут правильно заметил, что это уже чересчур. Вообще как я где-то читал и полностью согласен -- на самом деле исходный код чаще читается людбми, чем пишется. Я бы не хотел в такой галиматье разбираться. Это напоминает мне жуткие и абсолютно нечитаемые конструкции с шаблонами к которым в итоге пришёл С++.

Это сообщение отредактировал(а) Дрон - 3.10.2008, 09:33


--------------------
Да. Именно так.
PM   Вверх
ecologist
Дата 3.10.2008, 09:32 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 2
Всего: 9



Цитата(v2v @  2.10.2008,  22:57 Найти цитируемый пост)
например можно будет объявлять 
@NotNull
Integer a;
Но кроме этого будет возможность создавать свои аннотации с изощерённой логикой ... проверками, условиями и т.д...

Ну и что здесь такого, что занимается логикой работы программы ? Ну да - есть ОПИСАНИЕ того, как надо инициализировать переменную. И что ? Это заменяет if ? 

Я подозреваю, что меня тут сразу забанять за наезд, но по-моему Вы занимаетесь самолюбованием - ах, посмотрите, какую штуку я тут придумал. Про таких Мичурин говорил, что "они готовы скрестить что угодно с чем угодно и получить совершенно непонятный результат" (не гарантирую за точность высказывания - давно встречал).

Надо строить то, что реально может быть востребовано и может помочь в работе. А то, что предложено в начале топика - полный идиотизм.
PM MAIL   Вверх
Hroft
Дата 3.10.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: 1
Всего: 3



Цитата(Дрон @  3.10.2008,  09:32 Найти цитируемый пост)
жуткие и абсолютно нечитаемые конструкции с шаблонами к которым в итоге пришёл С++.

Вот! Прямо в точку.
PM MAIL ICQ   Вверх
w1nd
Дата 3.10.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Кстати, у меня идея появилась по поводу всех этих @NotNull. На самом деле тут уже совсем другая штука получается, вовсе не "умные самоисполняющиеся аннотации", да и всё необходимое уже есть. Например, можно было бы реализовать нормальную поддержку константных объектов:

Код
    public static class MyClass {
        
        @Constant public void doSomethingWithoutStateChange() {
        }
        
        public void changeState() {
        }
        
    }

    public void test(@Constant MyClass my) {
        my.doSomethingWithoutStateChange(); // Тут всё хорошо
        my.changeState(); // Тут ошибка компиляции
    }


Нужно всего-то сделать процессор для apt, после чего заполучить полные штаны счастья smile Точно так же уже сейчас можно сделать и пресловутый @NotNull.

Это сообщение отредактировал(а) w1nd - 3.10.2008, 11:28


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
fixxer
Дата 3.10.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Проще Scala канонизировать


--------------------
user posted image
PM MAIL ICQ   Вверх
w1nd
Дата 3.10.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(fixxer @  3.10.2008,  11:33 Найти цитируемый пост)
Проще Scala канонизировать

Тьфу... Есть же любители всё опошлить smile 

Это сообщение отредактировал(а) w1nd - 3.10.2008, 11:41


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
fixxer
Дата 3.10.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Цитата(w1nd @ 3.10.2008,  11:40)
Цитата(fixxer @  3.10.2008,  11:33 Найти цитируемый пост)
Проще Scala канонизировать

Тьфу... Есть же любители всё опошлить smile

Да пользы было бы больше. Ты почитай ссылки на блоги, что я давал.
Я не хочу такого мусора из аннотаций в Java. За ними кода не видно.


--------------------
user posted image
PM MAIL ICQ   Вверх
w1nd
Дата 3.10.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(fixxer @  3.10.2008,  11:46 Найти цитируемый пост)
Да пользы было бы больше.

Насчёт пользы я сильно-сильно не уверен. Ни scala, ни ruby, ни любые другие надстройки, думаю, никогда не приживутся. 

Цитата(fixxer @  3.10.2008,  11:46 Найти цитируемый пост)
Я не хочу такого мусора из аннотаций в Java. За ними кода не видно.

Во-первых, этот "мусор" уже есть, метаться поздно. Во-вторых, чем вам не угодило вдруг использование аннотаций по прямому их назначению?

Это сообщение отредактировал(а) w1nd - 3.10.2008, 11:53


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.