Pull to refresh
72
1.3
Denis @isden

User

Send message
Не подскажете, где именно искать «у себя»? Проверил на двух ноутах в 3-х разных браузерах. Через 2-х провайдеров (мобильный билайн и местный проводной).
> Достаточно сказать, что показания speedtest отличаются на треть лишь при использовании двух разных браузеров.

speedtest.net рухнул под натиском хабраэффекта :(
Уже минут 10 пытается открыть себя в браузере.
> Но не лучше ли быть спецом в своей области, зарабатывать на этом хорошие деньги и платить всем профессиональным строителям, собирателям табуреток, крановщикам и драконоводам за их работу?

Лучше, конечно, быть спецом в своей области.
Но блин, вы не представляете, до чего же интересно и захватывающе управлять башенным краном и укрощать драконов.
А хватит ли 4.5 вольт для раскачки контроллера зарядки в телефоне? Темболее, что при разрядке батареек напряжение падает.
Нужно 4 батарейки + простейший стабилизатор напряжения.
> Например, в вашем случае добавил бы функцию безопасной проверки наличия права на авторизацию, по которой давал бы пользователю доступ собственно к команде «Авторизовать».

Следует заметить, что во-первых, пример был взят исключительно, что называется, с потолка.
И во-вторых — мысль была такая —
— Есть id некоего пользователя.
— Проверить, имеет ли этот пользователь доступ к неким «продвинутым» фичам.
— Если имеет — авторизовываем в вызвавшей подсистеме.

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

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 творят чудеса.

Information

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