Обновить
40
0

Пользователь

Отправить сообщение
Ой. Точно! :) Не стал использовать source теги, а оказалось, что зря. Там ещё были Generic:

 class MyException<E> extends Exception{}


 class MyException<E> extends Date{}
На счёт generic в блоке throws странно. Почему вообще это разрашили делать? Ведь generic в Exception нельзя применять, а в throws почему то можно?!
P.S. Нельзя, означает, что class MyException extends Exception{} не скомпилируется, а, например, class MyException extends Date{} скомпилируется.
Вы знаете, по моему это то что нужно! А ещё какие-нибудь аналоги есть? Т.е. Вы ещё что-нибудь подобное пробовали?
Как бы банально не звучало, но — Спасибо за статью! У нас как раз в пятницу WebLogic падал с OOM. Так что статья вовремя — завтра будем её использовать. Кстати, по повду jmap, для дампа целевое приложение не нужно запускать с какими то параметрами? Т.е. вот работает приложение в проде без опций heap dump и можно ли с помощью jmap сделать дамп памяти это приложения?
Да, я как раз подобное и видел. Смущает одно — он очень не стойкий. Хотелось бы что то вроде ABS но только с возможностью ручного формирования :)
А если нужна всего одна деталь, можно ли обойтись вообще без формы из силикона? Нет ли такого «пластилина» что бы при застывании был твёрдый как пластик и его можно было бы долго использовать? Или может есть какие-нибудь другие способы быстрого прототипирование, например, корпуса устройства?
И ещё, можно ли делать шаблон и пластилина? Не развалится ли он в силиконе?
Не могли бы Вы скинуть ссылку на плату в AliExpress? А то там много похожих плат и, пишут, не все платы перепрошиваются.
И ещё вопрос про готовые устройства. На AliExpress куча подобных устройств: ru.aliexpress.com/wholesale?&SearchText=transistor+tester А кто нибудь пользовался ими? Какие лучше?
А кто нибудь читал доку, которая в статье упоминалась? (Детальная техническая документация на русском языке доступна здесь. В каталоге нужно выбрать файл ttester.pdf) Там пишут, что китайская реализация не очень — большая погрешность измерения, насколько я понял.
Нубовский вопрос: А на Arduino Uno заработает? Вроде прошивка есть на ATmega328.
Вчера подключил FindBugs у нас на проекте и обнаружил несколько одинаковых ошибок с тернарным оператором.
Есть два метода:
  static void m(int i) {}
  static void m(Integer i) {}

Есть код, который вызывает один из этих методов:
 m(s != null ? Integer.parseInt(s) : (Integer) null);

, где s — типа String.
И суть ошибки — вызывается метод с примитивом (int) и если s == null, то будет вызван m(((Integer)null).intValue()); что приведёт к NPE.
Если не кастить null к Integer, или вместо Integer.parseInt(s) использовать Integer.valueOf(s) то будет вызываться метод m(Integer). Но из за стечения обстоятельств , говнокода и кривых рук будет вызываться метод m(int) и в случае s == null будет NPE
Пробовал в Gradle настроить FindBugs 3.0.1 — не найден в maven репозиториях. Вот только 3.0.0 есть: mvnrepository.com/artifact/com.google.code.findbugs/findbugs
Спасибо за предложение! Но боюсь от меня фидбек не очень будет — мне нужен софт, чтобы просто стоял на компе и при случае можно было посмотреть снимки. Не на постоянной основе :)
Про PACS сервер читал в Вашей прошлой статье. Вы же о нём сейчас говорите?
А про «проект по инвазивному картированию сердца для лечения всякого рода аритмий» интересно было бы почитать! Хотя бы в общем виде — как писали, как тестировали. Всё таки разработка очень отличается от большинства софта — цена ошибки очень высока. На Хабре как то статья была про разработку для Боинга — интересно было читать, как разрабатывают такие проекты, когда нельзя просто на компе запустить и проверить, как оно работает.
Спасибо за развёрнутый ответ! Попробую на Jenkins поставить — было бы непохо динамику видеть по багам. Получается также как и по тестам — сколько всего, какие новые упали. :-)
В IDEA в плагине тоже есть инкрементальные проверки. Пока особо не смтрел, но в ближайшее время опробую.
Добрый день!

Спасибо за отличную статью — было интересно прочитать про внутреннее устройство DICOM. Сам я с DICOM сталкивался несколько раз — у меня друг работал в фирме, которая делала подобную программу для рендеринга, и несколько раз делал КТ (там тоже был софт для просмотра DICOM). Тогда интересно было почитать про сам формат, но хорошей статьи, которая бы всё объяснила подробным языком, не нашёл.

Собственно, вопросы:
1) А ваша фирма только в Воронеже работает? Есть представительства в других городах?
2) Какой бесплатный DICOM viewer Вы можете посоветовать? Для домашнего использования. А то вот делают снимки и хочется их на компе сохранить, чтобы в случае чего можно посмотреть. Те программы, которые идут с диском заточены под определённую структуру папок, а хочется просто универсальный софт, который открывает DICOM файлы.
3) И какие программы для медицины вы ещё делаете? Я вообще работал в фирме по производству медицинского ПО, но это было ПО для ведения записей и учёта. А вот интересно, из первых рук, какое ещё чисто медицинское ПО создаётся. :)
Для начала — Спасибо за отличные статьи, как по FindBugs так и по Java! :)
Вопрос хоть и гуглится, но хотелось от Вас ответ услышать: А как Вы FindBugs в своих проектах применяете? Какой use case? Перед коммитом всё смотрите или при сборке на build сервере? Как решается проблема старых проектов — когда есть уже большой объём кода и если вводить анализатор кода, то он будет показывать кучу ошибок и будет трудно во всём этом разобраться при дальнейшей разработке проекта? В PVS Studio (анализатор для C++) есть возможность выводить только новые баги. (насколько я понял, сам то я им не пользуюсь).
Сам я когда то давно пробовал пользоваться статическими анализаторами кода, но как-то не пошло — тогда для меня было слишком накладно каждый раз запускать проверку по всему проекту. Сейчас пользуюсь IDEA и все её предупреждения по коду исправляю, благо она это говорит в run time при написании кода. А в FindBugs такое возможно?
Интересный вопрос — вообще наличие метода говорит о том, что можно добавлять. Но если прочитать JavaDoc метода (java.util.Collection#add(E e)) и там ясно написано, что поведение метода зависит от реализации:
Throws:
UnsupportedOperationException — if the add operation is not supported by this collection

Т.к. с одной стороны метод конечно есть, но в JavaDoc чётко написано — что он может не работать. Так что нужно читать JavaDoc.
Это есть в контракте Collection.
А можно ссылочку на этот контракт? А то вообще странно — в самой java.util.Collections есть метод — emptyList(). И наверное не зря же его придумали. Да и используется (сейчас посмотрел в IDEA в нашем проекте) в 14 случаях в JDK и в 170 случаях во внешних либах (Guava, Mockito, Apache Common) и singletoneList используется в 10 случаях в JDK и в 70 в библиотеках. Так что вполне рабочий метод — использовать unmodifiable коллекции. Хотя да, если часто изменять возвращаемые из методов коллекции, то может быть сюрприз, когда это сделать не удастся. Но это уже пользователи методов виноваты :)
По моему, первая ошибка новичка в Java — не читать книги по Java :) Т.к. в них большая часть ошибок разобрана.
Да и судя по опыту, это не только ошибка новичка, но и более опытных Java программистов. :(
Оффтоп: В Java переносят хорошие практики из Guava — в Java 7 Objects появился, в Java 8, по моему, дополнили классы по работе с коллекциями. В общем, не может не радовать :)

Информация

В рейтинге
5 843-й
Дата рождения
Зарегистрирован
Активность