—
brew install dagger/tap/dagger
Dagger — это инструмент на Go, который позволит заменить кустарные скрипты современным API и межъязыковым скриптовым движком.
Dagger поможет создать надежную среду разработки/тестирования на локальном хосте и развернуть CI-конвейеры в конте
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥1
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
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥3🤯1
Kotlin — современный язык программирования, который упрощает процесс разработки и повышает безопасность кода.
Сохраните себе этот курс, посвященный основам программирования на Kotlin. В нём рассматриваются ключевые концепции, такие как типы данных, операторы, переменные, условные выражения, циклы, массивы и функции. Этот вводный курс идеально подходит для новичков или тех, у кого есть минимальный опыт программирования.
Курс
#java #курс
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4😁4🔥2🤯1
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>LATEST</version>
</dependency>
Byte Buddy — это библиотека Java для генерации и манипулирования кодом для создания и модификации Java-классов во время выполнения Java-приложения.
Помимо самой кодогенерации, Byte Buddy позволяет создавать произвольные классы, а также предлагает удобный API для изменения классов вручную, с помощью Java-агента или во время сборки.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥5
Mill стремится облегчить процесс сборки, для чего заимствует идеи из таких современных инструментов, как Maven, Gradle, Bazel и SBT.
Mill автоматизирует решение многих общих проблем, связанных с инструментами сборки, таких как кэширование, инкрементные повторные вычисления и параллелизм, что позволяет сосредоточить усилия на бизнес-логике, а Mill позаботится обо всем остальном.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6🔥5
—
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 утилитами.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥5
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));
}
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤10🔥3🤔2
RoaringBitmap — это одна из лучших битовых карт;
используется в Apache Spark, Netflix Atlas, Apache Pinot, Tablesaw и во многих других компаниях.
RoaringBitmap превосходят обычные сжатые битовые карты, такие как WAH, EWAH или Concise. Изображения, сжатые с помощью RoaringBitmap могут быть до сотни раз легче обычных изображений
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3
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
👍9❤5🔥2🤯1
Piranha — это инструмент для автоматического рефакторинга кода, связанного с устаревшими флагами.
Входными данными для Piranha являются имя флага и ожидаемое поведение;
также необходимо указать список API, связанных с флагами, в файле свойств.
Piranha будет использовать эти данные для автоматического рефакторинга кода в соответствии с ожидаемым поведением.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍8🎉3