Telegram Web Link
Selenium-cheat-sheet-webdriver-java.pdf
47.7 KB
Шпаргалка по Selenium Webdriver (Java)
🖥 ConnectBot — SSH-клиент для Android на Java

ConnectBot — это клиент Secure Shell для Android, позволяющий подключаться к удаленным серверам по криптографически защищенному каналу.

ConnectBot удобнее всего использовать в Android Studio.

Быстрый старт с Docker и Jenkins CI:
docker run -it -v $(pwd):/workspace \
-v jenkinsfile-runner-cache:/var/jenkinsfile-runner-cache \
-v jenkinsfile-runner:/var/jenkinsfile-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):$(which docker) \
-e ANDROID_ADB_SERVER_ADDRESS=host.docker.internal \
jenkins/jenkinsfile-runner


🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Курс по основам программирования на Kotlin

Kotlin — современный язык программирования, который упрощает процесс разработки и повышает безопасность кода.

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

Курс

#java #курс

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Byte Buddy — Java-библиотека для кодогенерации и не только

<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>LATEST</version>
</dependency>


Byte Buddy — это библиотека Java для генерации и манипулирования кодом для создания и модификации Java-классов во время выполнения Java-приложения.

Помимо самой кодогенерации, Byte Buddy позволяет создавать произвольные классы, а также предлагает удобный API для изменения классов вручную, с помощью Java-агента или во время сборки.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Mill — новый инструмент для сборки проектов на Java/Scala

Mill стремится облегчить процесс сборки, для чего заимствует идеи из таких современных инструментов, как Maven, Gradle, Bazel и SBT.

Mill автоматизирует решение многих общих проблем, связанных с инструментами сборки, таких как кэширование, инкрементные повторные вычисления и параллелизм, что позволяет сосредоточить усилия на бизнес-логике, а Mill позаботится обо всем остальном.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 XPipe — вся ваша серверная инфраструктура под рукой

choco install xpipe
или
bash <(curl -sL https://github.com/xpipe-io/xpipe/raw/master/get-xpipe.sh)

XPipe — open-source инструмент на Java, который позволяет получить доступ ко всей инфраструктуре сервера с локальной машины.

Он работает поверх установленных программ командной строки и не требует настройки на удаленных системах. Так что если вы используете такие инструменты, как ssh, docker, kubectl и т.д. для подключения к серверам, вы можете просто использовать XPipe поверх них.

XPipe полностью интегрируется с текстовыми редакторами, с терминалом, и с разными CLI утилитами.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Agrona — библиотека Java, позволяющая писать более лаконичный и производительный код

Agrona предоставляет набор структур данных и вспомогательных методов, которые часто требуются при создании высокопроизводительных приложений на Java.
Многие из этих компонентов используются, к примеру, в Aeron для эффективной и надежной передачи IPC-сообщений по протоколу UDP и обеспечивают высокопроизводительную реализацию буферов для поддержки кодека сообщений Simple Binary Encoding.

Например, с помощью Agrona можно переписать код:
List<Integer> numbers = new ArrayList<>();
// fill numbers somehow
Map<Integer, Integer> counters = new HashMap<>();
for (Integer x : numbers) {
counters.compute(x, (k, v) -> v == null ? 1 : v + 1);
}

вот так:
IntArrayList numbers = new IntArrayList();
// fill numbers somehow
Int2IntCounterMap counters = new Int2IntCounterMap(0);
for (int i = 0; i < numbers.size(); i++) {
counters.incrementAndGet(numbers.getInt(i));
}


🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 RoaringBitmap — битовые карты для сжатия чисел в Java

RoaringBitmap — это одна из лучших битовых карт;
используется в Apache Spark, Netflix Atlas, Apache Pinot, Tablesaw и во многих других компаниях.

RoaringBitmap превосходят обычные сжатые битовые карты, такие как WAH, EWAH или Concise. Изображения, сжатые с помощью RoaringBitmap могут быть до сотни раз легче обычных изображений

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Anvil — плагин для компилятора Kotlin, облегчающий внедрение зависимостей с помощью Dagger 2

Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:

@Module
@ContributesTo(AppScope::class)
class DaggerModule { .. }

@ContributesTo(AppScope::class)
interface ComponentInterface {
fun getSomething(): Something
fun injectActivity(activity: MyActivity)
}

// The real Dagger component.
@MergeComponent(AppScope::class)
interface AppComponent


GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Piranha — инструмент Java для автоматического рефакторинга кода

Piranha — это инструмент для автоматического рефакторинга кода, связанного с устаревшими флагами.

Входными данными для Piranha являются имя флага и ожидаемое поведение;
также необходимо указать список API, связанных с флагами, в файле свойств.
Piranha будет использовать эти данные для автоматического рефакторинга кода в соответствии с ожидаемым поведением.

🖥 GitHub
🟡 Примеры рефакторинга с Piranha

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как работают фильтры сервлетов?

Servlet содержит саму бизнес-логику обработки запросов. Реализации интерфейса javax.servlet.Filter выстраиваются в цепочку, через которую проходит запрос по пути в сервлет, и ответ на него по пути обратно к пользователю.

Filter Chain – типичный пример реализации паттерна Chain of responsibility. Каждый фильтр может модифицировать запрос/ответ, и либо отправить на обработку следующему фильтру, либо заворачивать обратно. В фильтрах удобно выполнять некий общий код обработки запросов: отклонение неавторизованных обращений, логгирование, обогащение запроса/ответа данными из контекста.

Фильтр состоит из трех методов: init, doFilter и destroy. doFilter – основная реализация фильтрации, он вызывается для каждого запроса. Инициализация и уничтожение вызываются строго по одному разу. Кроме того, сервлет-контейнер гарантирует, что их вызовы не будут пересекаться: doFilter не начнет работать до конца выполнения init, и закончит до начала destroy.

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Spring Boot 🚀

Еесли вы хотите узнать, когда начинается и заканчивается транзакция #JPA, как повторно использовать существующую транзакцию в @Transactional или шаблоне TransactionTemplate, включите логирование DEBUG для `org.springframework.orm.jpa`.

@javatg
2024/10/02 04:17:50
Back to Top
HTML Embed Code: