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
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
👍11❤6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Визуализация 9 типов тестирования API
▪Smoke Testing
Выполняется после разработки API. Проверка того, что API работают и ничего не выходит из строя.
▪Functional Testing
Позволяет создать план тестирования на основе функциональных требований и сравнить его с фактическими результатами.
▪Integration Testing
Этот тест объединяет ряд вызовов API и выполняет сквозные тесты. Оцениваются коммуникации и передача данных в процессе эксплуатации.
▪Regression Testing
Этот тест гарантирует, что исправления ошибок или новые функции не нарушат текущее поведение API.
▪Load Testing
Измеряет производительность приложений при различных нагрузках. Мы можем определить емкость приложения.
▪Stress Testing
API специально перегружаются, чтобы проверить, могут ли они функционировать должным образом.
▪Security Testing
Этот тест сертифицирует API от всех потенциальных угроз извне.
▪UI Testing
Гарантирует, что пользовательский интерфейс может взаимодействовать с этими API и отображать данные по мере необходимости.
▪Fuzz Testing
Этот тест отправляет недействительные или неожиданные входные данные в API и пытается вызвать его сбой. Делается путем выявления уязвимостей API.
#opensource #api #web
@javatg
▪Smoke Testing
Выполняется после разработки API. Проверка того, что API работают и ничего не выходит из строя.
▪Functional Testing
Позволяет создать план тестирования на основе функциональных требований и сравнить его с фактическими результатами.
▪Integration Testing
Этот тест объединяет ряд вызовов API и выполняет сквозные тесты. Оцениваются коммуникации и передача данных в процессе эксплуатации.
▪Regression Testing
Этот тест гарантирует, что исправления ошибок или новые функции не нарушат текущее поведение API.
▪Load Testing
Измеряет производительность приложений при различных нагрузках. Мы можем определить емкость приложения.
▪Stress Testing
API специально перегружаются, чтобы проверить, могут ли они функционировать должным образом.
▪Security Testing
Этот тест сертифицирует API от всех потенциальных угроз извне.
▪UI Testing
Гарантирует, что пользовательский интерфейс может взаимодействовать с этими API и отображать данные по мере необходимости.
▪Fuzz Testing
Этот тест отправляет недействительные или неожиданные входные данные в API и пытается вызвать его сбой. Делается путем выявления уязвимостей API.
#opensource #api #web
@javatg
👍26❤5🔥5
Ответ на картинке.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🥰1
Если вы случайно уже используете генератор метамодели в своем проекте, вы можете использовать сгенерированные классы модели в атрибуте
mappedBy
ваших отношений, чтобы обеспечить немного большую типобезопасность.@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
☕ Shallow Copy vs Deep Copy
⚡️ Поверхностное копирование:
Создается новая переменная. Она ссылается на тот же объект в памяти, что и оригинал. Это означает, что любые изменения в копии будут отражаться и на исходном объекте.
Используется:
- Когда объект содержит только примитивные типы данных.
- Когда две ссылки на один объект запланированы или допустимы.
⚡️ Глубокое копирование:
Создается полностью независимый дубликат объекта, включая все вложенные структуры.
Это гарантирует, что изменения в копии никак не повлияют на оригинальный объект.
Используется:
- Когда объекты содержат вложенные объекты или массивы.
- Когда вам нужна полная независимость между копиями.
@javatg
⚡️ Поверхностное копирование:
Создается новая переменная. Она ссылается на тот же объект в памяти, что и оригинал. Это означает, что любые изменения в копии будут отражаться и на исходном объекте.
Используется:
- Когда объект содержит только примитивные типы данных.
- Когда две ссылки на один объект запланированы или допустимы.
⚡️ Глубокое копирование:
Создается полностью независимый дубликат объекта, включая все вложенные структуры.
Это гарантирует, что изменения в копии никак не повлияют на оригинальный объект.
Используется:
- Когда объекты содержат вложенные объекты или массивы.
- Когда вам нужна полная независимость между копиями.
@javatg
👍18❤3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ every-programmer-should-know | Каждый кодер должен знать
Крутая подборка материалов про Computer Science. Неважно, какой ЯП вы используете, вам все равно стоит знать виды алгоритмов, структур данных, архитектуры и другую базу.
📌 Репозиторий проекта
@javatg
Крутая подборка материалов про Computer Science. Неважно, какой ЯП вы используете, вам все равно стоит знать виды алгоритмов, структур данных, архитектуры и другую базу.
📌 Репозиторий проекта
@javatg
👍11❤6🔥3😱1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13😁6👍5❤3
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Python: www.tg-me.com/pro_python_code
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Linux: www.tg-me.com/linuxacademiya
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/DevopsDocker
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Python: www.tg-me.com/pro_python_code
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/devOPSitsec
АНАЛИЗ Данных: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Linux: www.tg-me.com/linuxacademiya
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Docker: www.tg-me.com/DevopsDocker
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
Собеседования МЛ: www.tg-me.com/machinelearning_interview
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
❤1😁1