«20 деплоев в день» обычно означают мелкие изменения, можно же только измененные .class, .jsp или .tag заменять в горячем режиме?
А сборка из исходников на стороне продакшна как-то чревато утечкой исходников.
java.nio.file — Apache Commons IO выглядит лучше
File change notifications — полезная штука, аналоги есть конечно
Fork and Join — полезно, но не всем нужно
G1 — давно же есть?
Поставил на продакшн мелкий проект на Java7, все ок. Понадобилось поставить в другое место, где Java7 нет и долго не будет. За полдня переписал на Java6. И знаете что — нет ни одного действительно удобного синтаксического сахара, за который можно держаться руками.
Diamond operator — прекрасно заменяется Guava: Map<Integer, List> map = Maps.newHashMap(); switch в строках — ни разу не понадобился, а так цепочку else if никто не отменял try(Exception1 | Exception2) — ну чуть дольше писать, да, но тоже нечастая операция try (ресур с автоматческим освобождением при выходе) — потенциально интересная фича, но пока не так уж много классов поддерживают интерфейс AutoCloseable чтобы часто использовать числа вида 1_000_000 — такое чувство, что ввели фичу от безысходности, лишь отрапортовать, «у нас в проекте Coin в Java7 будет целых 5 новых фич!». Настолько редко нужная штука, как мне кажется, что даже не знаю…
Банкомат при регистрации доступа к ИБ запрашивает номер сотового телефона, надеюсь для сверки с тем номером который указан в заявлении на выдачу карты.
Для примера — Собинбанк. Декларируется возможность получения доступа к интернет-банку через банкомат, без обращения к персоналу. Технология такова — банкомат выдает временный пин-код, с помощью которого заводим логин на сайте SobinDirect.ru. Причем временный пин-код действует 15 дней, до этого второй ключ банкомат не выдает, просит обратиться в офис Попытка 1. После инструкций операциониста иду к банкомату в холле. Карта съедена, банкомат перезагружается с внутренней ошибкой, ключей нет. Операционист при мне звонит в центральный офис, просит сбросить срок повторной попытки получения ключей, распечатывает руками конверт с пин-кодом и заверяет что сегодня в течение дня пин-код от банкомата сбросят и можно будет использовать код с конверта. Попытка 2. Назавтра пытаюсь ввести код с коверта. Сайт заявляет, что код неправильный. Техподдержка просит обратиться в ближайший офис. В офисе просят или подойти лично или подождать 15 дней. Ок, мне не к спеху, подожду. Попытка 3. Сайт заявляет, что код неправильный. Ок, иду в офис. Девушка при мне создает новый конверт с пин-кодом. Я прошу ее активировать аккаунт при мне, чтобы не ходить туда-сюда. Мне отдают компьютер, аккаунт создался. Ура? Вечером (сбросив пароль естественно) замечаю что в списке карт нет виртуальной визы. Ок, пишу в техподдержку (прямо в SobinDirect есть такая возможность, очень удобно). Назавтра приходит ответ с просьбой сообщить реквизиты карты. Сообщаю. Через день сайт отказывается меня пускать. В техподдержке отвечают «У нас был сбой, ваш аккаунт удален, пожалуйста заведите новый» (!!!) Попытка 4. Девушка в банке встречает меня как родного. Радует следующей информацией: «Авторизация через банкомат у нас теперь работает, но только НЕ через банкомат в банке, в любом другом пожалуйста». И ведь не обманула, теперь у меня есть банк-клиент.
Хотя и с 4-й попытки и через 3 недели. А если бы не выеживался и как все нормальные люди сделал все через операциониста, то все заработало бы с первой попытки :)
Советую кинуть проект в репозиторий системы управления версиями (svn, git, hg), все изменения закачивать (коммитать) в репозиторий и только потом забрасывать на ftp
Я еще крамольней мысль скажу — импорты вообще не должны попадаться на глаза программисту. Импортами мы должны заняться только тогда когда с ними возникает проблема — конфликт имен или импорт несуществующего класса. В остальном что там лежит это должно быть проблемой IDE.
«Inspect & Refactor» — вот походу главная фишка Netbeans 7.1
Еще понравился новый «Organize imports», наконец-то автоматом будут проставляться import java.io.* вместо простыни одиночных импортов классов, если бы еще автоматом сворачивало все импорты…
И «Rectangular Block Selection» теперь есть, хвала богам.
Зачем и правда знать сколько с точностью до байта занимает объект памяти? Достаточно знать, что объекты жрут памяти больше чем примитивы. Если так нужно экономить — используйте Apache Commons primitives, этого достаточно я считаю
А сборка из исходников на стороне продакшна как-то чревато утечкой исходников.
File change notifications — полезная штука, аналоги есть конечно
Fork and Join — полезно, но не всем нужно
G1 — давно же есть?
Diamond operator — прекрасно заменяется Guava: Map<Integer, List> map = Maps.newHashMap();
switch в строках — ни разу не понадобился, а так цепочку else if никто не отменял
try(Exception1 | Exception2) — ну чуть дольше писать, да, но тоже нечастая операция
try (ресур с автоматческим освобождением при выходе) — потенциально интересная фича, но пока не так уж много классов поддерживают интерфейс AutoCloseable чтобы часто использовать
числа вида 1_000_000 — такое чувство, что ввели фичу от безысходности, лишь отрапортовать, «у нас в проекте Coin в Java7 будет целых 5 новых фич!». Настолько редко нужная штука, как мне кажется, что даже не знаю…
Для примера — Собинбанк. Декларируется возможность получения доступа к интернет-банку через банкомат, без обращения к персоналу. Технология такова — банкомат выдает временный пин-код, с помощью которого заводим логин на сайте SobinDirect.ru. Причем временный пин-код действует 15 дней, до этого второй ключ банкомат не выдает, просит обратиться в офис
Попытка 1. После инструкций операциониста иду к банкомату в холле. Карта съедена, банкомат перезагружается с внутренней ошибкой, ключей нет. Операционист при мне звонит в центральный офис, просит сбросить срок повторной попытки получения ключей, распечатывает руками конверт с пин-кодом и заверяет что сегодня в течение дня пин-код от банкомата сбросят и можно будет использовать код с конверта.
Попытка 2. Назавтра пытаюсь ввести код с коверта. Сайт заявляет, что код неправильный. Техподдержка просит обратиться в ближайший офис. В офисе просят или подойти лично или подождать 15 дней. Ок, мне не к спеху, подожду.
Попытка 3. Сайт заявляет, что код неправильный. Ок, иду в офис. Девушка при мне создает новый конверт с пин-кодом. Я прошу ее активировать аккаунт при мне, чтобы не ходить туда-сюда. Мне отдают компьютер, аккаунт создался. Ура? Вечером (сбросив пароль естественно) замечаю что в списке карт нет виртуальной визы. Ок, пишу в техподдержку (прямо в SobinDirect есть такая возможность, очень удобно). Назавтра приходит ответ с просьбой сообщить реквизиты карты. Сообщаю. Через день сайт отказывается меня пускать. В техподдержке отвечают «У нас был сбой, ваш аккаунт удален, пожалуйста заведите новый» (!!!)
Попытка 4. Девушка в банке встречает меня как родного. Радует следующей информацией: «Авторизация через банкомат у нас теперь работает, но только НЕ через банкомат в банке, в любом другом пожалуйста». И ведь не обманула, теперь у меня есть банк-клиент.
Хотя и с 4-й попытки и через 3 недели. А если бы не выеживался и как все нормальные люди сделал все через операциониста, то все заработало бы с первой попытки :)
Еще понравился новый «Organize imports», наконец-то автоматом будут проставляться import java.io.* вместо простыни одиночных импортов классов, если бы еще автоматом сворачивало все импорты…
И «Rectangular Block Selection» теперь есть, хвала богам.