Pull to refresh
10
0
Send message

Mockito и как его готовить

Reading time21 min
Views311K

О статье


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


Полагаю, она и сейчас может пригодиться мне же — иногда я забываю что-то из этого, а вспоминать материал удобнее всего не по официальной документации или чужим статьям, а по собственному, скажем так, конспекту. Вместе с тем я старался построить текст так, чтобы он был удобен прежде всего для знакомства с Mockito с нуля, и кое-где подробно разбираю вроде бы очевидные вещи — не все из которых были для меня очевидными с самого начала.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments11

IT-2033: будущее готово устареть

Reading time10 min
Views34K

«Как известно, ничто не стареет так быстро, как будущее» 
Станислав Лем, «Сумма технологии», 1964 год

Сколько лет вам будет в 2033 году? Мне 48. Я уже вряд ли буду модерировать Хабр и заниматься «Технотекстом». Зная о рисках эйджизма, скорее всего, постараюсь уйти из IT ближе к академической науке и преподаванию. А может, наконец-таки добью скилы аналитика и останусь в data science или автоматизации процессов. Кто же знает, что там будет. Но, как видите, я уверена, что будут живы и академическая наука, и data science — просто потому что это тренды, которые хорошо прослеживаются. И они не единственные. 

Взрослые почему-то разучиваются мечтать, как дети: в 35 стыдно сказать, что ты готов выучиться на врача или стать космонавтом. А между тем, новые тренды совсем скоро окажутся обыденностью и у всех нас есть шанс стать профессионалом в новой сфере, мечтая по-взрослому, то есть используя свои навыки, опыт, умения, обучаемость и приверженность той или иной сфере. Итак, рассмотрим основные векторы мечты :-)

Читать далее
Total votes 25: ↑18 and ↓7+26
Comments35

Внутреннее устройство Git: хранение данных и merge

Reading time9 min
Views88K
В процессе перехода с SVN на Git мы столкнулись с необходимостью переписывания наших внутренних инструментов, связанных с развёртыванием кода, которые ориентировались на существование линейной истории правок (и разработку в trunk). На Хабре уже публиковались возможные решения этой проблемы через Git-SVN, но мы пошли другим путём. Нам нужна поддержка таких возможностей Git, как branching и merge, поэтому мы решили разобраться в основах, как же работает Git и каким способом должна осуществляться интеграция с ним.
Читать дальше →
Total votes 77: ↑77 and ↓0+77
Comments10

Как мы ускорили выполнение запросов PostgreSQL в 100 раз

Reading time10 min
Views41K

Существует великое множество статей об оптимизации PostgreSQL — эта «кроличья нора» весьма глубока. Когда несколько лет назад я начал разрабатывать бэкэнд аналитического сервиса, у меня уже был опыт работы с другими СУБД, такими как MySQL и SQL Server. Тем не менее, раньше мне не приходилось так фокусироваться на производительности. В прошлых проектах, над которыми я работал, либо не было жестких требований к времени обработки (DS/ML), либо не требовалось обрабатывать много строк одновременно (обыкновенные веб-приложения). Однако в этот раз мои запросы:

состояли из 3-10 JOIN-ов по коррелирующим запросам;

уielded от 10 до 1,000,000 строк;

должны были выполняться в течение времени, определенного UX-ом;

не могли быть hinted — пока Cloud SQL, управляемый PostgreSQL в Google Cloud, не стал поддерживать pg_hint_plan в конце 2021 года;

запрещали прямой доступ к серверному процессу, чтобы, например, хакнуть некоторые perf — потому что PostgreSQL был managed.

Получение целого миллиона строк в одном API endpoint сигнализирует о проблеме в алгоритме или архитектуре. Конечно, все можно переписать и перепроектировать, но за это нужно платить.

У нас не нашлось «заклинания», которое решило бы все проблемы с производительностью SQL. Тем не менее, я упомяну здесь несколько дельных предложений, которые помогли нам и, надеюсь, смогут помочь читателю. Разумеется, это не какие-то сакральные знания. Но когда мы начинали оптимизацию, я был бы рад их прочитать или услышать.

Читать далее
Total votes 27: ↑24 and ↓3+24
Comments2

Основы контейнеризации (обзор Docker и Podman)

Reading time16 min
Views145K

Привет, Хабр!

К 2022 году о контейнеризации не слышал только ленивый. Большинство специалистов, так или иначе имеющих отношение к ИТ, хотя бы раз в жизни запускали программное обеспечение в контейнерах. Однако так ли эта технология проста и понятна? Давайте разбираться вместе!

Главная задача данной статьи – рассказать о контейнеризации, дать ключевые понятия для дальнейшего изучения и показать несколько простых практических приемов. По этой причине (а еще, безусловно, вследствие недостаточной квалификации автора) теоретический материал достаточно упрощен.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments22

Криптография в Java

Reading time11 min
Views60K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Java Cryptography" автора Jakob Jenkov.


Данная публикация является переводом первой статьи Java Cryptography из серии статей для начинающих, желающих освоить основы криптографии в Java.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

Information

Rating
Does not participate
Works in
Registered
Activity