Как стать автором
Обновить
112
0
Андрей Солнцев @asolntsev

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

Отправить сообщение

Эффективные UI-тесты на Selenide

Время на прочтение7 мин
Количество просмотров70K

В ожидании чудес


Канун Нового Года — время чудес. В преддверии нового года мы все вспоминаем год уходящий и строим планы на следующий. И надеемся, что все проблемы останутся в прошлом, а в новом году случится чудо, и мы заживём по-новому.

Какой же Java разработчик не мечтает о чуде, которое осенит его и позволит стать Самым Крутым На Свете Java Программистом.

Хорошие новости: я хочу рассказать как раз о таком чуде.

Имя ему — автоматические тесты!

Фу, тесты?
Всего голосов 14: ↑14 и ↓0+14
Комментарии12

«Верно лошадь батарея скрепка», или что такое надёжный пароль

Время на прочтение1 мин
Количество просмотров23K
Всем привет!

Сегодня я хочу перевести не статью и даже не новость, а комикс. Этот комикс короткий, но чертовски объёмный.
Вообще-то это уже стало классикой. Странно, что я не нашёл ни упоминаний о нём на хабре, ни русского перевода.

Восполним этот пробел!

password strength

Вот так. Пароль «Верно лошадь батарея скрепка» (в оригинале «correct horse battery staple») надёжнее, чем «Tr0ub4dor&3» — его значительно труднее подобрать, и его проще запомнить, используя ассоциативную память, которая у компьютера отсутствует.

Читать дальше →
Всего голосов 42: ↑20 и ↓22-2
Комментарии54

Настройка IDEA для чистокодеров

Время на прочтение4 мин
Количество просмотров286K
Я люблю две вещи: Intellij IDEA и чистый код (Clean Code).
IDEA создана для чистого кода. Многие настройки по умолчанию уже стимулируют вас писать как надо.


Но она всё ещё не идеальна.
Когда я устанавливаю новую копию IDEA, я пробегаю по настройкам и выставляю свои любимые галочки.
Хочу ими с вами поделиться в надежде, что когда-нибудь и они станут стандартом.

Мои любимые настройки IDEA с картинками
Всего голосов 103: ↑76 и ↓27+49
Комментарии60

Лучшие доклады девклуба

Время на прочтение1 мин
Количество просмотров4.5K
Привет!
Как вы, возможно, знаете, в Таллинне есть клуб разработчиков DevClub.
По традиции, в декабре обычно выбираются лучшие доклады года.

А на этой странице отдельно собраны лучшие доклады за все годы:
http://www.devclub.eu/people/top-videos/

Главное отличие девклуба от других сообществ разработчиков в том, что девклуб не связан какой-то конкретной темой (будь то Java, Ruby, тестирование и т.п.). Поэтому темы этих видео самые разные: есть и про Java, и про .NET, PHP, JavaScript, а также про управление проектами и IT-бизнес. Есть даже «оффтопики», то есть совсем не связанные с IT темы.

Приятного просмотра!
Всего голосов 15: ↑10 и ↓5+5
Комментарии3

Тест-драйв нового интернет-банка «Санкт-Петербург»

Время на прочтение3 мин
Количество просмотров4.4K

На днях (20 ноября) состоялся запуск нового Интернет-банка «Санкт-Петербург».

Согласно официальному анонсу, разработка и внедрение системы были осуществлены всего за 6 месяцев — уникальный для России срок реализации проекта подобного уровня сложности.

Впервые в России появился интернет-банк, сделанный для людей, а не бухгалтеров. Существующие интернет-банки мучают пользователя обилием технической информации, такой как отдельные счета для овердрафтов (что бы это ни значило), отдельные выписки по карточке и счёту, не соответствующие друг другу и т.п.

У рядового российского пользователя такое вызывает скептическую реакцию. Что ж, давайте проведём тест-драйв этого чуда. Посмотрим, каков он в деле.

Под катом обзор демо-версии интернет-банка с картинками
Всего голосов 20: ↑5 и ↓15-10
Комментарии30

Как запускать DBDeploy в Gradle

Время на прочтение3 мин
Количество просмотров6.3K

В данной заметке я покажу, как запускать DBDeploy из скрипта Gradle.


О чём это вообще?


Возможно, вы уже слышали о версионированной миграции структуры баз данных. Об этом писали на хабре. DBDeploy — один из самых простых и известных инструментов, позволяющий легко установить все последние изменения в базе данных на любом инстансе и любой девелоперской машине. А Gradle — модный ныне инструмент для сборки проекта (как Ant и Maven, только лучше). О нём тоже уже писали.



И в чём вопрос?


Вопрос в том, как запускать DBDeploy из скрипта Gradle? У DBDeploy есть таски для Ant и плагин для Maven, но пока ещё нет плагина для DBdeploy (точнее, он в зачаточном состоянии). Немного потыркавшись, я пришёл к выводу, что самый простой способ — это использовать тот самый Ant таск DBDeploy из скрипта Gradle (здесь описано, как из gradle-скрипта использовать любые Ant-таски). Рассмотрим пример.



Пример проекта и билд-скрипт для запуска SQL-скриптов
Всего голосов 12: ↑12 и ↓0+12
Комментарии7

Selenide: удобные тесты на Selenium WebDriver

Время на прочтение3 мин
Количество просмотров84K
Многие слышали про Selenium WebDriver — один из самых популярных инструментов для написания приёмочных/интеграционных тестов.


Используя Selenium, мы очень быстро заметили, что нам раз от раза приходится писать один и тот же код, чтобы инициализировать браузер вначале, закрыть его в конце, делать скриншоты после каждого упавшего теста и т.д. (пруфлинк).

Поэтому мы решили выделить этот повторяющийся код в отдельную библиотеку. Так на свет появился Selenide.

Что такое Selenide
Всего голосов 17: ↑16 и ↓1+15
Комментарии33

Демо-центр эстонских инфотехнологий

Время на прочтение1 мин
Количество просмотров1.9K


В последние 12 лет в Эстонии появилось много разных электронных услуг: ID карта, электронные выборы, интернет-банки, электронная налоговая декларация, электронная школа, Mobile-ID, дигитальный рецепт, электронный билет на общественный транспорт, электронные гос-услуги, портал для подачи показаний электросчётчиков и оплаты счетов за электричество, и так далее и тому подобное.

Но самое главное, что в Эстонии создана X-Road — инфраструктура, объединяющая регистры и инфосистемы разных ведомств. Аналогичной системы больше нет нигде в мире. Это стало возможным в первую очередь благодаря политическому единству и независимости, а также правильным законам, вовремя принятым в 90ых годах.

Естественно, гости, посещающие Эстонию, проявляют повышенный интерес к эстонским IT-достижениям в области электронного правительства. И специально для таких гостей 3,5 года назад в Таллинне был создан Демо-центр ИКТ. Почти каждый день в Эстонский Демо Центр ИКТ приходят министры, бизнесмены, инвесторы и журналисты из разных стран, чтобы познакомится с эстонским опытом и найти потенциальных партнеров. Подробнее о Демо-центре рассказывается в этом видео:

Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии4

Электронная налоговая декларация в Эстонии

Время на прочтение2 мин
Количество просмотров11K
Привет!
Как уже писалось, в последние годы в Эстонии появилось много приятных электронных няшек, и одной из таких приятностей является возможность подавать налоговую декларацию через интернет. Только представьте: не нужно посреди рабочего дня идти в налоговый департамент, стоять в очереди, терять два-три часа! Можно вечером дома, сидя в кресле и посматривая одним глазом «Крепкий Орешек», зайти на нужный сайт и всё спокойненько заполнить.

Период подачи налоговых деклараций в Эстонии сейчас в самом разгаре. Я как раз на днях заполнил свою декларацию и сделал скриншоты со всех страниц.

Итак, смотрим картинки и наслаждаемся. Все цифры в евро.

Налоговая декларация в картинках
Всего голосов 32: ↑30 и ↓2+28
Комментарии48

Технология Mobile-ID

Время на прочтение3 мин
Количество просмотров20K

Привет!
Я хочу рассказать о том, что такое Mobile-ID, и как использовать эту услугу в своём софте.

Предыстория


В последние 10 лет в Эстонии появилось много разных электронных няшек: ID карта, электронные выборы, электронная школа (e-kool), дигитальный рецепт (digiretsept), электронный билет на общественный транспорт, порталы для граждан, пациентов больниц, портал для подачи показаний электросчётчиков и оплаты счетов за электричество, и так далее и тому подобное.

Одной из таких электронных няшек является Mobile-ID — средство идентификации пользователя с помощью мобильного телефона. Грубо говоря, имея мобильный телефон с правильной картой, вы можете легко логиниться в интернет-банк, государственные порталы, ну и вообще на любой сайт, поддерживающий аутентификацию через Mobile-ID. Как это сделать на своём сайте, я и расскажу в конце.

история с картинками
Всего голосов 24: ↑20 и ↓4+16
Комментарии19

Почему IDEA лучше Eclipse

Время на прочтение5 мин
Количество просмотров212K

Священный спор


Принято считать, что есть «вечные» вопросы, на которые нет правильного ответа. Например, что лучше: Windows или Linux, Java или C#; Чужой против Хищника или Чак Норрис против Ван Дамма.

Одним из таких холиваров считается выбор лучшей IDE для Java:


Идут постоянные споры о том, в которой из них больше плагинов, горячих клавиш и т.д. Различий так много, что трудно выбрать, какие из них важнее, и все сходятся в одном: обе IDE примерно одинаковы по своим возможностям, и выбор одной из них — это дело вкуса.

Так вот, я утверждаю, что это не просто дело вкуса. Есть объективные причины, почему
Intellij IDEA однозначно лучше, чем Eclipse.

Подчёркиваю, мы сейчас рассматриваем обе среды именно как Java IDE.

Я не буду приводить кучу мелких различий вроде плагинов, горячих клавиш и т.п. — этому посвящены многие страницы в интернете, а объясню лишь одно, самое главное отличие. Как правило, о нём не знают ни идеяшники, ни эклипсофилы, ибо первые привыкли к нему и не знают, что в других IDE этого может и не быть, а вторые привыкли жить без него, и даже не догадываются, что может быть лучше. Более того, эклипсники его не замечают, когда пробуют IDEA ради интереса, ибо привыкли работать по-старому.

Итак, главное различие между IDEA и Eclipse
Всего голосов 185: ↑139 и ↓46+93
Комментарии262

Видео: Антон Кекс. Асинхронное программирование с Node.js

Время на прочтение1 мин
Количество просмотров2.2K
Node.js – платформа для построения быстрых масштабируемых server-side приложений на JavaScript. Вопреки распространённому отношению к JavaScript как к “несерьёзному” языку, Node.js позволяет писать вполне серьёзные вещи. Node.js – это разруливамая событиями, не блокирующая I/O модель, что делает её легковесной и эффективной. Идеально подходит для приложений, нагруженных данными.

О Node.js уже писали на хабре, а в этом видео Антон Кекс рассказывает о Node.js, попутно рассказывая про опыт использования в некоторых реальных проектах.

www.devclub.eu/2012/02/03/anton-keks-nodejs
Всего голосов 11: ↑7 и ↓4+3
Комментарии3

Видео: Введение в MPS

Время на прочтение1 мин
Количество просмотров2.7K
В гостях у DevClub побывал Михаил Мухин из компании JetBrains, который рассказал о системе MPS (Meta-Programming System).

На хабре уже была парочка статей про MPS, а теперь это можно увидеть более наглядно на видео с живой демонстрацией кода: www.devclub.eu/2011/12/02/mihail-muhin-mps-intro

Под катом два видео об MPS
Всего голосов 16: ↑15 и ↓1+14
Комментарии3

Почему Agile вам не подходит

Время на прочтение4 мин
Количество просмотров16K
Ни об одной теме я не слышал столько негативных отзывов, как об Аджайл. Дескать, он и неэффективный, и не работает, и подходит для ленивых, и придуман для зарабатывания бабла на консультациях, и вообще, нам аджайл не подходит.



Я здесь не собираюсь никого разубеждать. Я хочу поделиться соображениями, почему большинству компаний аджайл действительно не подходит.

Почему Agile вам не подходит
Всего голосов 134: ↑89 и ↓45+44
Комментарии99

Real-life unit tests

Время на прочтение1 мин
Количество просмотров6.6K
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

Почему так получается?

По-видимому, причина в том, что юнит-тесты обычно демонстрируют на простых примерах. А в жизни код сложнее. В реальных проектах код использует базы данных, веб-сервисы, код, написанный другими компандами и т.д.

В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.

www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests

Слайды и пояснения:
Всего голосов 20: ↑17 и ↓3+14
Комментарии50

Быстрая разработка веб-приложений на Java

Время на прочтение7 мин
Количество просмотров131K
Как вы разрабатываете веб-приложение на Java?
После каждого изменения, как вы его запускаете и проверяете? Сколько времени занимает редеплой приложения и рестарт контейнера?

Мне довелось видеть разные варианты: от полной пересборки WAR-файла до использования плагинов для IDE типа MyEclipse, WTP и «коннекторов» для сервлет-контерйнеров. У некоторых из них есть явные недостатки, другие вполне работают — но есть способ проще!

Запускалка


Этот способ разработки позволяет максимально просто и гибко настроить приложение с минимальным временем редеплоя. Вам надо всего лишь написать один простенький Java-класс с main-методом, который запустит сервер Jetty сразу с нужными приложениями (т.н. Embedded Mode).

под катом - примеры кода и обзор альтернативных решений
Всего голосов 42: ↑38 и ↓4+34
Комментарии43

Keep API simple

Время на прочтение2 мин
Количество просмотров747
Я хочу рассказать об одном случае, когда нам удалось придумать простой API, когда поначалу задача казалось сложной.


Недавно мы получили задачу. Нам надо было логировать каждое действие пользователя, которое он может совершать на нашем веб-сайте. Другими словами, нам нужно было создать какой-то класс (API), который легко можно было бы использовать практически во всех контроллерах в нашей системе. Сложности добавляло то, что в зависимости от действия надо логировать разные дополнительные параметры.

Вместе с этим заданием нам досталось наполовину готовое решение, сделанное некими разработчиками.
Выглядело оно примерно так:
Всего голосов 19: ↑12 и ↓7+5
Комментарии18

Говнокод: врага надо знать в лицо

Время на прочтение4 мин
Количество просмотров54K


Все примерно представляют, что такое говнокод. На этом замечательном сайте собрана целая коллекция.

Что делает код говнокодом — никто точно не знает. Точного определения нет. Часто то, что одни считают очевидным говнокодом, другим кажется лаконичным и эффективным решением.

Примеры


Примеры говнокода варьируются от избыточных до откровенного хардкода. Самые любмые примеры — такие, говнокодистость которых очевидна для всех:
Boolean b = new Boolean( is_admin );
if( b.toString().length() == 4 ) {
   // something...
}
// something


Но знаете, что я скажу? Осуждать говнокод легко, но написать его не так-то легко!
Не верите? Давайте попробуем!

UPD Ниже добавлен анализ поступивших решений.

Вот простое задание
Всего голосов 93: ↑73 и ↓20+53
Комментарии290

Мои 5 любимых фишечек в Play Framework

Время на прочтение5 мин
Количество просмотров7.3K
Про Play уже писали на хабре: Отличный Java MVC фреймворк и ‘Hello World’ tutorial. В этой статье Томас Рёмер из компании ZeroTurnaround рассказывает о своих любимых фишечках в Play! framework.

В течение последнего года я разрабатывал два проекта с помощью Play! Framework. Это сервер лицензий JRebel и LiveRebel. Я перепробовал разные фреймворки для этих двух задач, и в конце концов мой выбор свёлся к двум кандидатам: Struts и Play! Framework. Play! казалась более рискованной, прикольной, бунтарской , в то время как Struts считалась чем-то вроде старой рабочей лошадки, которая работает и гарантированно добивается результата. После некоторых споров в команде мы решили рискнуть и попробовать Play!.. С тех пор я полюбил некоторые особенности Play! больше, чем другие, и хотел бы поделиться своей любовью.

Итак, мои 5 любимых фишечек в Play! Framework
Всего голосов 25: ↑18 и ↓7+11
Комментарии19
1

Информация

В рейтинге
Не участвует
Откуда
Эстония
Дата рождения
Зарегистрирован
Активность