|
|
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
пардон за задержку, выходной Йуный джавистЪ Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. итого, твой пример - именно что пример, по завершенности он даже близко не подбирается к моему, потому что там законченное решение даже на случай, если у класса User 150 полей являющихся не только примитивами но и в свою очередь бинами типа Company, Group, Role, Department и т.д. При этом твой пример уже сейчас больше моего, а будучи полноценно реализованным будет на хорошее количество экранных листов. и это еще без реализации логики во view (мой view является где-то на 80% завершенным, не хватает только тонкой настройки например какие поля не отображать) И это еще без реализации ограничения доступа (у меня это будет либо <intercept pattern="**/edituser", либо @RequiresRoles("admin"), либо @RequiresPermissions("users:save") public void onSomeAction(EventContext eventContext) { ... }) так что термин "фигачить" очень удачно подходит к подобному коду, фигачить там прилично. ну и собственно если вам подобное дает ложное чувство "контроля" над проектом, то, как говорится, на здоровье. Но как по-мне - подобный поделки быстро превращаются в неуправляемый кошмар. В одном месте подкрутишь, в другом сломается. Наследнику проекта просто не завидую. Я и своему наследнику не завидую, потому переписываю по-тихоньку страницу за страницей с freemarker на tapestry. Разница в результате просто ошеломительна. P.S. фримаркер - хороший инструмент, но он гораздо лучше подходить для темплейтов писем, документов и т.д. html страницы (особенно достаточно сложные) на фримаркере очень быстро становятся монструозными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 16:56:39 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
итого, твой пример - именно что пример, по завершенности он даже близко не подбирается к моему, потому что там законченное решение даже на случай, если у класса User 150 полей являющихся не только примитивами но и в свою очередь бинами типа Company, Group, Role, Department и т.д Я вижу, ты пропагандируешь такой подход - все параметры запроса берутся и суются в объект User. Пока класс состоит из фамилии, имя и отчества это работает. Потом в класс User добавляется поле isAdmin. Хитрый хакер при регистрации добавляет к запросу &isAdmin=true и сразу становится админом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 17:52:58 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
авторГДЕ ЛОГИКА РЕАЛИЗУЮЩАЯ ПОКАЗ ОШИБКИ В ПОЛЕ, СОДЕРЖАЩЕМ ОШИБКУ? Очевидно, что в шаблонизаторе доступны переменные типа birthdate_message, которые должен отобразить в шаблоне верстальщик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:00:57 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪЯ вижу, ты пропагандируешь такой подход - все параметры запроса берутся и суются в объект User. Пока класс состоит из фамилии, имя и отчества это работает. Потом в класс User добавляется поле isAdmin. Хитрый хакер при регистрации добавляет к запросу &isAdmin=true и сразу становится админом. Для этого есть DTO. А ещё лучше аннотации, как, например Ignore для JSON сериализатора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:01:17 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
а что там за проблема с локалью? И я бы не мешал валидацию с показом ошибки и контроль типов (системная ошибка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:05:43 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПотом в класс User добавляется поле isAdmin. Хитрый хакер при регистрации добавляет к запросу &isAdmin=true и сразу становится админом.ты иногда такие наивные вопросы задаешь, что я просто в ступор впадаю. наверно для того и существует метод onValidate, чтоб проверять, кто что имеет право делать. очевидно, что операции с ролями требуют от оператора наличия определенных прав. нет? так что хитрый хакер может вставлять туда хоть свой конец. несмотря на почти полную законченность мой пример все-таки всего лишь пример. там и валидации пароля нет, я ж не могу все бизнес-логику сюда вывалить. вернее могу, но зачем? ты тщетно пытаешься найти в моем примере недостатки в пользу твоего по той простой причине, что мой и твой делают в принципе одно и тоже. только мой с гораздо меньшим количеством кода, гарантированно большей надежностью и с гораздо большими возможностями кастомизации. я не отвергаю право на существование кастомых решений. но каждый раз их применение должно быть оправданно. Йуный джавистЪавторГДЕ ЛОГИКА РЕАЛИЗУЮЩАЯ ПОКАЗ ОШИБКИ В ПОЛЕ, СОДЕРЖАЩЕМ ОШИБКУ? Очевидно, что в шаблонизаторе доступны переменные типа birthdate_message, которые должен отобразить в шаблоне верстальщик.мне-то как раз очевидно. зато тебе не очевидно, где тут проблема (даю подсказку - проблема здесь в бездумном копипасте одного и того же кода на всех страницах) Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. чуешь разницу? хотя вряд ли, если у тебя все по принципу "для бешенной собаки семь верст не крюк". разве не ты жаловался, что на яве ничего меньше чем за X строчек кода не написать? (может и не ты, мне что-то так запомнилось) к тому же верстальщик знающий freemarker, really? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:34:52 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Для этого есть DTO. А ещё лучше аннотации, как, например Ignore для JSON сериализатора. Пусть есть два сценария - первый когда пользователь сам регистрируется на сайте, а второй - когда один админ создает другого админа. Валидация в этих случаях должна быть совершенно разной, поэтому аннотации не катят. DTO тоже не очень, потому что два разных DTO, даже если отличаются на одно поле, являются в яве совершенно разными типами и с ними нельзя работать полиморфно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:38:00 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Petro123а что там за проблема с локалью? проблема в том, что из его примера не очевидно, как реализуется показ локализованных ошибок в зависимости от настроек пользователя. особенно с учетом предыдущего топика, в котором Йуный Джавист говорил о том, что предпочитает статические классы. Вот мне и интересно посмотреть, как это все разрулилось в LocaleUtils , в который ни локаль текущая не передается, ни реквест - ioc он же не юзает, откуда тогда в LocaleUtils текущей локали юзверя взяться? Ну и плюс thread safety самому обеспечивать, хуле. Petro123И я бы не мешал валидацию с показом ошибки и контроль типов (системная ошибка) по сравнению с вызовом BeanUtils.set внутри валидации это уже мелочи. Собственно о том и речь - самостоятельно изобретая велосипеды мы делаем массу ошибок. Про потерю времени я уже молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:42:30 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПусть есть два сценария - первый когда пользователь сам регистрируется на сайте, а второй - когда один админ создает другого админа. Валидация в этих случаях должна быть совершенно разной, поэтому аннотации не катят. Ну, это смотря какие аннотации. Security навернуть сверху можно даже на свойства сущностей. Йуный джавистЪDTO тоже не очень, потому что два разных DTO, даже если отличаются на одно поле, являются в яве совершенно разными типами и с ними нельзя работать полиморфно. Наследование и интерфейсы в DTO никто не запрещает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:43:39 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪПусть есть два сценария - первый когда пользователь сам регистрируется на сайте, а второй - когда один админ создает другого админа. Валидация в этих случаях должна быть совершенно разной, поэтому аннотации не катят. это чисто архитектурная задача с массой способов решения. что касается аннотаций, я бы тоже не стал здесь лепить аннотацию (потому что собственных данных объекта user не достаточно для валидации) . можно на пользовательской странице в onValidate устанавливать isAdmin принудительно в false, а на админской проверять есть ли права. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:49:10 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
как реализуется показ локализованных ошибок в зависимости от настроек пользователя В методе валидации меняешь Код: sql 1. на Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:50:21 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪкак реализуется показ локализованных ошибок в зависимости от настроек пользователя В методе валидации меняешь Код: sql 1. на Код: sql 1. а сразу почему так не написал, нету локализации в проекте? а если у меня локаль через куки, а если в урл? нужен фильтр, да? чуешь как наш мини-фреймворк обрастает мышцой кодом? так вот еще раз, если не понятно, куда я клоню - пока что ты под моим чутким руководством реализуешь кое-как одну за другой фичи, которые где-то еще уже есть. какой профит ты при этом имеешь, кроме того, что это "свое-родное", а то "чье-то чужое"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 18:59:31 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
chpashaэто чисто архитектурная задача с массой способов решения. что касается аннотаций, я бы тоже не стал здесь лепить аннотацию (потому что собственных данных объекта user не достаточно для валидации) . можно на пользовательской странице в onValidate устанавливать isAdmin принудительно в false, а на админской проверять есть ли права. А по-моему аннотация авторизации на уровне свойства - самое то. Есть права у юзера, он её, видит. Либо видит и пишет. Либо не видит и не пишет. И никакой хакер не пролезет. Надо поменять свойство в воркфлоу без достаточных прав - выполняешь действие в коде, явно указывая право. Так вся Java секурити построена. Зато проверки не расползаются по всем контроллерам и прочим классам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:00:33 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
BlazkowiczА по-моему аннотация авторизации на уровне свойства - самое то. у меня нет окончательно сложившегося мнения на этот счет. Blazkowicz Есть права у юзера, он её, видит. Либо видит и пишет. Либо не видит и не пишет. ты имеешь в виду спрятать User за интерфейсом и навесить на get/setAdmin секьюрити-аннотацию? BlazkowiczЗато проверки не расползаются по всем контроллерам и прочим классам. теоретически ты прав, но практически таких мест как-правило 1-2 (чаще 1), пока это так - not big deal (тем более что логику-то мы не дублируем). но на досуге надо подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:10:13 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
ДАВАЙ НЕ ПО АНАЛОГИИ А ВСЕ 7-8 СТАНДАРТНЫХ ВАЛИДАТОРОВ И ПРОВЕРКИ НА ТО, ЧТО чИСЛО ЭТО ЧИСЛО, ДЕСЯТИЧНЫЙ РАЗДЕЛИТЕЛЬ ЭТО ДЕСЯТИЧНЫЙ РАЗДЕЛИТЕЛЬ И Т.Д. С ВЫДАЧЕЙ ПОНЯТНЫХ ЮЗВЕРЮ ОШИБОК несмотря на почти полную законченность мой пример все-таки всего лишь пример. там и валидации пароля нет, я ж не могу все бизнес-логику сюда вывалить. вернее могу, но зачем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:10:36 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪДАВАЙ НЕ ПО АНАЛОГИИ А ВСЕ 7-8 СТАНДАРТНЫХ ВАЛИДАТОРОВ И ПРОВЕРКИ НА ТО, ЧТО чИСЛО ЭТО ЧИСЛО, ДЕСЯТИЧНЫЙ РАЗДЕЛИТЕЛЬ ЭТО ДЕСЯТИЧНЫЙ РАЗДЕЛИТЕЛЬ И Т.Д. С ВЫДАЧЕЙ ПОНЯТНЫХ ЮЗВЕРЮ ОШИБОК несмотря на почти полную законченность мой пример все-таки всего лишь пример. там и валидации пароля нет, я ж не могу все бизнес-логику сюда вывалить. вернее могу, но зачем ты некрасиво придираешься к словам. мой пример не закончен в плане отсутсвия бизнес-логики. твой не закончен в принципе. для сравнения примеров в них должно быть реализовано одинаковое количество фич. у тебя нет ни валидаторов, ни конвертеров типов ни даже полной инициализации объекта user. у меня это все есть. если ты планируешь и далее в том же духе писать, думаю дискуссию можно считать оконченной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:19:35 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
если ты планируешь и далее в том же духе писать, думаю дискуссию можно считать оконченной. Ну, это ты во втором треде подряд пытаешься доказать мне что я быдлокодер. Мне даже интересно стало, что я такого написал на этом форуме что тебя это так обидело. Если что, то прости, я честное слово не специально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:38:35 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪесли ты планируешь и далее в том же духе писать, думаю дискуссию можно считать оконченной. Ну, это ты во втором треде подряд пытаешься доказать мне что я быдлокодер. я пытаюсь указать на ошибки в суждении, не более. моей целью не является тебя каким-либо образом унизить. Йуный джавистЪ Мне даже интересно стало, что я такого написал на этом форуме что тебя это так обидело. да я не обижен. просто твоя критика часто не конструктивна и местами эмоционально. я парень горячий, но вроде бы в этом топике я волю чувствам не давал. если тебе показалось иначе, извини. Йуный джавистЪ Если что, то прости, я честное слово не специально. та ниче, просто не хотелось, чтобы топик скатывался в неконструктив, потому что топик интересный, хоть мы и далеко от темы ушли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 19:59:16 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
<input type="text" name="login" value="${user.login!}" <#if login_message!false>class="error"</#if>/> <#if login_message!false><label class="error">${login_message}</#if> vs <input type="text" t:id="login" value="user.login" validate="required"/> А кстати, допустим верстальщик наверстал так что инпут в одном диве а валидационное сообщение в другом диве, можно ли такую верстку реализовать в рамках этого фреймворка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 20:09:05 |
|
||
|
GXT vs ExtJS vs jQuery
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪА кстати, допустим верстальщик наверстал так что инпут в одном диве а валидационное сообщение в другом диве, можно ли такую верстку реализовать в рамках этого фреймворка? если я тебя правильно понял... так? блин, в хроме тэги sql.ru не хотят вставляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 20:20:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38204656&tid=2129661]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 273ms |
| total: | 431ms |

| 0 / 0 |
