← All posts tagged Java

fixpoint
Java programming Оторвали ли бы вы руки программисту за такую идиому?

Object value = cache.get(key);
if (value == null) {
cache.put(key, value = createValue(key));
}

// Do something with value
fixpoint
Java Eclipse Недавно открыл для себя новый способ ставить эклипс. Вместо того, чтобы качать упакованный билд с разным трешем типа Mylyn и CVS, скачиваю чистую платформу и ставлю на нее только то, что мне нужно: download.eclipse.org
fixpoint
Java Android А вы знаете, что есть такой офигенный сайт как grepcode? Например, вот: grepcode.com — с подсветкой синтаксиса, с occurence highlight-ом, с навигацией, outline-ом и 100500 других свитстоняшечек.
fixpoint
Java Scala Пользуясь случаем, выражаю НЕНАВИСТЬ "удобным тулзам для развертывания проектов" типа sbt, maven и иже с ними. За то, что не указывают БОЛЬШИМИ БУКВАМИ, нужно ли их запускать в уже созданной директории проекта, или они сами ее создадут.
fixpoint
Java ОМГ! Оказывается, можно писать String[] xyz = { "x", "y", "z" } вместо String[] xyz = new String[] { "x", "y", "z" }! Век живи, век учись.
fixpoint
Java programming О пробелах. А вы знаете, что кроме обычного " " есть на самом деле уйма других пробелов? И, что печально, на просторах интернетов обязательно найдется умелец, который решит выделиться из толпы, используя у себя в бложике, скажем, \u202f (narrow non-breaking space) и \u2003 (em space).

Поэтому, если разбиваете какой-нибудь веб-контент на слова, обязательно используйте CharMatcher.WHITESPACE из библиотеки Guava, чтобы ваши мозги оставались мягкими и шелковистыми.

А вот табличка, которая хорошо иллюстрирует шизофреничность джавы по некоторым вопросам: spreadsheets.google.com
fixpoint
spring Java Spring — это круто, и чем больше я с ним работаю, тем он круче. Это как раз тот случай, когда "software writes itself" и когда рефакторинг как минимум уполовинивает количество кода. Использую связку @Autowired + @Configuration + @Bean + @Qualifier, но без component-scan.

Добавить бы еще сюда некоторые фичи из Nucleus (неймспейсы компонентов, возможность подгрузки настроек из .properties и configuration layers) — вообще бы убер-комбо получилось.
fixpoint
Java Последнее время практикую разбиение полей в классе на четыре группы:
//Constructor (параметры конструктора)
//Injected (компоненты-зависимости)
//Internal (внутренние производные параметры)
//Configuration (параметры конфигурации, которые обычно пишут в .properties)
fixpoint
Java Было бы здорово, если бы в Java классы эксепшенов можно было не объявлять. Т.е., фактически, бросать простые Symbol-ы, но которые можно chain-ить и обрабатывать как Exception-ы.
fixpoint
Java В дополнение к предыдущему посту: вне зависимости от способа завершения программы, она все равно может зависнуть на I/O операциях. :(
fixpoint
Java Программисту на заметку: на SIGINT и SIGTERM JVM немедленно убивает все потоки и затем выполняет shutdown hooks. На SIGKILL она просто мгновенно умирает без каких-либо хуков.
fixpoint
Java В дополнение к предыдущему: вот, например, обрезалка строки по границе слова:
BreakIterator wi = BreakIterator.getWordInstance();
wi.setText(string);
string = string.substring(0, wi.preceding(maxLength));
fixpoint
Java Внезапно обнаружил класс java.text.BreakIterator для поиска границ слов/строк/предложений в тексте. Возможности у него довольно скудные, но иногда бывает полезен.
fixpoint
spring Java Программисту на заметку — всегда используй последние версии библиотек и старайся избегать тех, которые заканчиваются на .0 (на .0.0 — еще хуже).