Pull to refresh
112
0
Андрей Солнцев @asolntsev

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

Send message

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

Reading time7 min
Views72K

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


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

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

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

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

Фу, тесты?
Total votes 14: ↑14 and ↓0+14
Comments12

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

Reading time1 min
Views23K
Всем привет!

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

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

password strength

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

Читать дальше →
Total votes 42: ↑20 and ↓22-2
Comments54

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

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


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

Мои любимые настройки IDEA с картинками
Total votes 103: ↑76 and ↓27+49
Comments60

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

Reading time1 min
Views4.6K
Привет!
Как вы, возможно, знаете, в Таллинне есть клуб разработчиков DevClub.
По традиции, в декабре обычно выбираются лучшие доклады года.

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

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

Приятного просмотра!
Total votes 15: ↑10 and ↓5+5
Comments3

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

Reading time3 min
Views4.6K

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

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

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

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

Под катом обзор демо-версии интернет-банка с картинками
Total votes 20: ↑5 and ↓15-10
Comments30

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

Reading time3 min
Views6.3K

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


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


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



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


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



Пример проекта и билд-скрипт для запуска SQL-скриптов
Total votes 12: ↑12 and ↓0+12
Comments7

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

Reading time3 min
Views86K
Многие слышали про Selenium WebDriver — один из самых популярных инструментов для написания приёмочных/интеграционных тестов.


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

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

Что такое Selenide
Total votes 17: ↑16 and ↓1+15
Comments33

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

Reading time1 min
Views1.9K


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

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

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

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments4

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

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

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

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

Налоговая декларация в картинках
Total votes 32: ↑30 and ↓2+28
Comments48

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

Reading time3 min
Views21K

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

Предыстория


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

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

история с картинками
Total votes 24: ↑20 and ↓4+16
Comments19

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

Reading time5 min
Views213K

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


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

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


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

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

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

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

Итак, главное различие между IDEA и Eclipse
Total votes 185: ↑139 and ↓46+93
Comments262

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

Reading time1 min
Views2.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
Total votes 11: ↑7 and ↓4+3
Comments3

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

Reading time1 min
Views2.8K
В гостях у DevClub побывал Михаил Мухин из компании JetBrains, который рассказал о системе MPS (Meta-Programming System).

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

Под катом два видео об MPS
Total votes 16: ↑15 and ↓1+14
Comments3

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

Reading time4 min
Views16K
Ни об одной теме я не слышал столько негативных отзывов, как об Аджайл. Дескать, он и неэффективный, и не работает, и подходит для ленивых, и придуман для зарабатывания бабла на консультациях, и вообще, нам аджайл не подходит.



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

Почему Agile вам не подходит
Total votes 134: ↑89 and ↓45+44
Comments99

Real-life unit tests

Reading time1 min
Views6.7K
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

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

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

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

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

Слайды и пояснения:
Total votes 20: ↑17 and ↓3+14
Comments50

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

Reading time7 min
Views132K
Как вы разрабатываете веб-приложение на Java?
После каждого изменения, как вы его запускаете и проверяете? Сколько времени занимает редеплой приложения и рестарт контейнера?

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

Запускалка


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

под катом - примеры кода и обзор альтернативных решений
Total votes 42: ↑38 and ↓4+34
Comments43

Keep API simple

Reading time2 min
Views762
Я хочу рассказать об одном случае, когда нам удалось придумать простой API, когда поначалу задача казалось сложной.


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

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

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

Reading time4 min
Views55K


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

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

Примеры


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


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

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

Вот простое задание
Total votes 93: ↑73 and ↓20+53
Comments290

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

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

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

Итак, мои 5 любимых фишечек в Play! Framework
Total votes 25: ↑18 and ↓7+11
Comments19
1

Information

Rating
Does not participate
Location
Эстония
Date of birth
Registered
Activity