Search
Write a publication
Pull to refresh
14
0
Send message
1. Потому что так нельзя.
А можно вот как
public < T extends Throwable > T rethrow(Class< T > clazz, T throwable) throws T

Но собственно такой метод там есть.
2. Чтобы анализатор кода(в IDE например) понимал что выполнение здесь заканчивается.
Нет, так не бывает :)
Один try — один ресурс, иначе никаких гарантий.
То есть нормальный паттерн, в котором нет ни одной описанной Вами проблем, и в то же время нет проблем с checked exception(на примере трех стримов, два инпут и один отпут):

InputStream g1 = new InputStream(...)
try{
  //Some actions
  OutputStream g2 = new OutputStream(...);
  try {
    //Some actions
    InputStream g3 = new InputStream(...);
    try{
      //Some actions
    } finally {
      IOUtils.closeQuietly(g3);
    }
    //Some actions
    g2.flush();
  } finally {
     IOUtils.closeQuietly(g2);
  }
  //Again, some actions
} finally {
  IOUtils.closeQuietly(g1);
}
Код с гуавой плох тем, что глотает checked exception
То есть если " // что-то делаем со stream" кидает CheckedUserException, который я объявил в сигнатуре функции, то гуава обернет его во что-то
Для этого там конечно есть еще два rethrow, так что до двух CheckedException еще можно выкинуть… Ну вобщем стремно это все.
По сути куда проще в try() делать flush а на close всегда логировать и игнорировать исключение. Такой код хотя бы читабелен
Я вот одного не понимаю — неужели для вас другой язык(не считая erlang, давайте возьмем python/java/perl vs javasscript) это большее препятствие, чем другая концепция(single threaded environment на клиенте vs async event processing на сервере)?
Погодите, что такое «обычно»?)
Про размытие стека технологий — вы до этого использовали NodeJS? Если да, тогда понятно, но тогда ответ на мой вопрос — «потому что уже было».
Если нет, то стек технологий все равно размысля за счет добавления NodeJS.
По сути мне кажеться язык вещь второстепенная. В том смысле, что если у вас везде single thread assumed CRUD код, а надо добавить что-то хитрое(для чего вам потребовался event driven processing), то все равно надо потратить усилия на изучение тонкостей. И в этом смысле изучения нового языка — о(прочих усилий).
Я все равно не понял, почему собственно выбрали NodeJS
По сути единственное приемущество которое я вижу — возможность писать клиентский и серверный код на одном языке.
Все остальное(event driven processing) вполне себе реализуемо на любом адекватном языке программирования и к фреймворку отношения не имеет.
С другой стороны, для того что бы писать клиентский и серверный код на одном языке можно использовать например GWT, либо еще какой-нибудь компилятор в javascript.
А главное, JS — язык без строгой типизации, что на мой взгляд — минус, причем существенный, для серверных языков программирования.
Устройство будет чрезвычайно популярно в России.
Представляете, разговариваете с ГАИшником и записываете о чем идет речь? Это ж песня какая-то
Гм.
www.wordpress.com/ — заблокирован, а wordpress.com/ — нет. Эх, безопасность в опасности.
Эмм, пример и правда слишком сферический, тут нечего даже сказать.
Скорее всего тут не надо проверять что «вызван метод flip», а просто смотреть на возвращенный буфер и проверять его свойства.
Все таки хотелось бы посмотреть какой был реальный кейс
Можете привести пример где вам надо сделать mock на utility-классы со статическими функциями?

То есть не пример статической функции, это я и сам найду.
А пример где для тестирование надо сделать мок статической функции
Подход «с головой» к пробелеме написания стабов для статик методов заключается в замене static method на instance method и DI.
Можете привести пример где вам надо сделать mock на utility-классы со статическими функциями?
>И приходилось выбирать: или красивый дизайн, или качественное покрытие тестами
Я думаю вам стоит выкинуть PowerMock и почитать про dependency injection… Моки на статик методы это зло
Я вот никакого отношения к написанию ERP систем не имею, но мне интересно.
Почему нельзя нанять компанию/человека(из мира IT) который сядет на место каждого человека который будет пользоваться системой, соберет список вещей которые ему нужны, а потом создаст по всему этому согласованное ТЗ? Причем все это в виде отдельного проекта, целью которого понять что нужно сделать, или как можно скорректировать бизнес процессы. Задача довольно нетривиальная, но выполнимая, при условии что люди которые занимаются этим проектом добросовестные и при условии, что им правильно поставили задачу.

Просто мне кажется, что проблема в самом подходе «собрать тендер из 10 фирм и выбрать одну», потому что забота каждой такой фирмы в том, что бы продать свой продукт, а не в том, что бы улучшить чьи-то бизнес процессы
Ну вот, то есть их не надо «использовать приемущественно», их надо использовать в (вписать).
Ну а если у вас не один из этих кейсов, то вы все равно юзаете статические методы, а не конструкторы? По инерции?
Использовать преимущественно static factory methods, а не конструкторы для создания новых экземпляров
Почему:
Я не знаю, что такое «система», поэтому ваше объяснение мне не понятно.
Возможно вы сообщаете мне, что «ценная инфа» хранится в другой программе, нежели той о которой говорится в статье. Вот только учитывая что у этой «другой программы» тот же заказчик и, весьма возможно, тот же исполнитель(или того же сорта), то есть шансы что и в ней ошибок не меньше.
Вообще-то терминал который печатает билеты(билеты купленные через сайт можно распечатать на вокзале, если не хочется или нельзя пройти электронную регистрацию) спрашивает номер паспорта вместе с номером брони.
Если предположить что он не просто шутки ради спрашивает этот номер, но еще и сравнивает этот номер с тем, что вводился при покупке, значит он где-то хранится.

Information

Rating
Does not participate
Registered
Activity