All streams
Search
Write a publication
Pull to refresh
77
1.1
Denis @isden

User

Send message
Имхо, сбой — это нештатная ситуация. Деление на ноль, ошибка преобразования строки в число, ошибка соединения клиентской части с серверной, итд.
В данном случае отбой при недостатке прав — это ожидаемая, штатная ситуация.
Исключениями удобно делать что-то такое:

public Person authPerson(int id) throws NoSuchPersonException {
Person person = new Person(id); // бросаем NoSuchPersonException если пользователя с таким id нет
person.applySomeRulesOrSomething();
return person.auth();
}

Возвращаем объект Person если все ОК, и null если не прошла авторизация (в т.ч. у пользователя не хватает пермишенов).
Врядли это можно назвать сбоем, а вот исключительной ситуацией — вполне.
Я к тому веду — что не стоит пихать исключения везде, часто можно (и правильнее) обойтись и без них.
> По ссылкам 1 и 3 — описание, что не стоит делать, при использовании исключений, а не примеры, почему исключениями иногда не стоит пользоваться.

Там есть замечательные примеры с пробросом исключений.

> 2 — оно как бы не совсем про ООП.

Оно легко адаптируется к использованию с ООП. Не нашел толкового примера на C++, но думаю мысль и из этого понятна.
> В ООП нужно пользоваться только исключениями.

Не всегда и не везде:
today.java.net/article/2006/04/04/exception-handling-antipatterns#antipatterns
stackoverflow.com/questions/2870701/risking-the-exception-anti-pattern-with-some-modifications
www.rockstarprogrammer.org/post/2007/jun/09/java-exception-antipatterns/
etc

> Кстати, мне сказали, что исключения тормозят систему…

В целом, они отрабатывают медленнее. Но, стоит ли гнаться за этими миллисекундами, если bottleneck в другом месте?
Само собой, что опционально. Иметь возможность включить такую штуку лучше чем её не иметь :)
> клиент сам понимал что раздача обновилась и он такой — хоп и уже обновлённую качает?

Было бы неплохо имхо.
У меня VX nano уже года 4 живет, и все ОК, только лак немного облез со средней кнопки. Батареек (ААА) хватает при активном использовании где-то на 2-3 месяца.
> пруф

О, спасибо, не знал этого.
> Помните ироническое высказывание о том, что в вашем кармане компьютер, который во много раз мощнее бортового компьютера управлявшего ракетой Гагарина?

Если мне не изменяет память, ВУ на порядки слабее тех, что сейчас используются в обычных телефонах, в свое время управляли группой спутников и полетами на Луну.
А в «ракете Гагарина» не было компьютера насколько я помню. Они тогда были очень большими, теплыми и ламповыми.
Сдается мне, тут основной потребитель энергии — это дисплей и его подсветка.
А, вот теперь понятно. А если попробовать внутри JSNI метода определить JS функцию (которую и вызывать извне) и в ней сделать вызов this.@com.google.gwt.examples.JSNIExample::myInstanceField?
И что же мешает использовать HTML/CSS практически в чистом виде в шаблонах UiBinder?
> Вы на практике пытались это заставить работать?

Ну того что мне смогло потребоваться JSNI вполне смогло сделать.

> повесить онклик на картинку, которую перехватит GWT

Т.е. у вас есть где-то картинка, на onClick на которую вам нужно перехватить? И хандлер в JSNI-методе не срабатывал? Или в чем была проблема?

> Основные (HorizontalPanel, VerticalPanel, FlexTable, Grid) — верстают таблично

Почему вы думаете что это основные? Основные — это SimplePanel например, состоящая из 1-го div'а.
Другое дело, что проще и быстрее использовать Grid/etc.

> UI Binder при этом ну совсем никак не помогает.

Поверьте мне, это вполне удобная и полезная штука. На личном опыте ощутил.

> «Можете написать свои» это бугога.

Да какие «бугога», это не так уж и сложно.
> Подобных строк ведь в коде больше половины

Четкое следование паттерну MVC/MVP, выделение view в отдельный класс + UiBinder творят чудеса.
Немного цитат, что сразу бросилось в глаза:

> В автоматически создаваемых элементах интерфейса использовалась махровая табличная верстка. Любой прямоугольный блок генерировал таблицу с одной ячейкой.

Кроме HorizontalPanel / VerticalPanel есть еще 100500 компонентов, а если этого мало — можно написать свои, на любой вкус.

> Сверстать свой HTML и скормить его GWT на практике оказалось также не очень-то просто.

Про UiBinder вы, наверное, тоже не слышали.

> В теории GWT поддерживает JSNI — что-то а-ля ассемблерных вставок в Си, только с Javascript в роли ассемблера. Но работает это только в одну сторону. То есть вызвать какую-то внешнюю js-библиотеку из GWT вы можете без проблем. А вот наоборот…

Вы про это — code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#methods-fields?
Да уж, весело у вас там.
Будет еще веселее, если 28-го числа они снова передумают.

PS: Так это, тут разведка докладывает, что таки не будет.

«18.10.2011, Киев 14:30:09 Парламент Украины сегодня не смог проголосовать за возвращение перехода на зимнее время путем перевода стрелок часов на час назад в последнее воскресенье октября. За такое решение проголосовали 216 депутатов при 226 необходимых. Вопрос выносился на обсуждение дважды.»

www.rbc.ru/rbcfreenews/20111018143009.shtml
Сдается мне, автор статьи весьма поверхностно знаком с GWT.
> Поясните — что ребята принципиально нового сделали?

«Поразительное видео [..], демонстрирующее [..]».

Information

Rating
1,548-th
Location
Россия
Registered
Activity