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

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

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

Reading time 7 min
Views 64K
Website development *IT systems testing *TDD *

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


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

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

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

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

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

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

Reading time 1 min
Views 23K
Information Security *
Translation
Всем привет!

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

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

password strength

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

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

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

Reading time 4 min
Views 281K
Programming *Java *
Я люблю две вещи: Intellij IDEA и чистый код (Clean Code).
IDEA создана для чистого кода. Многие настройки по умолчанию уже стимулируют вас писать как надо.


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

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

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

Reading time 1 min
Views 4.5K
Website development *Programming *
Привет!
Как вы, возможно, знаете, в Таллинне есть клуб разработчиков DevClub.
По традиции, в декабре обычно выбираются лучшие доклады года.

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

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

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

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

Reading time 3 min
Views 3.6K
Self Promo

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

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

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

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

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

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

Reading time 3 min
Views 6K
Java *SQL *Gradle *
Tutorial

В данной заметке я покажу, как запускать 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
Comments 7

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

Reading time 3 min
Views 81K
Website development *IT systems testing *TDD *
Tutorial
Многие слышали про Selenium WebDriver — один из самых популярных инструментов для написания приёмочных/интеграционных тестов.


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

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

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

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

Reading time 1 min
Views 1.8K
Legislation in IT


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

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

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

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

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

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

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

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

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

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

Reading time 3 min
Views 19K
Legislation in IT

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

Предыстория


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

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

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

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

Reading time 5 min
Views 210K
Java *

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


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

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


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

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

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

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

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

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

Reading time 1 min
Views 2.1K
JavaScript *Programming *
Tutorial
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
Comments 3

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

Reading time 1 min
Views 2.7K
Website development *
В гостях у 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
Comments 3

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

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



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

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

Real-life unit tests

Reading time 1 min
Views 6.4K
IT systems testing *Java *TDD *
Tutorial
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

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

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

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

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

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

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

Reading time 7 min
Views 130K
Website development *Java *
Tutorial
Как вы разрабатываете веб-приложение на Java?
После каждого изменения, как вы его запускаете и проверяете? Сколько времени занимает редеплой приложения и рестарт контейнера?

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

Запускалка


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

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

Keep API simple

Reading time 2 min
Views 711
Designing and refactoring *
Я хочу рассказать об одном случае, когда нам удалось придумать простой API, когда поначалу задача казалось сложной.


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

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

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

Reading time 4 min
Views 52K
Delirium coding


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

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

Примеры


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


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

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

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

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

Reading time 5 min
Views 7.3K
Website development *
Translation
Про 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
Comments 19
1

Information

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