Telegram Web Link
🖥Принципы SOLID с примерами на Java

Отличная демонстрация принципов SOLID на Java, к каждому пункту приведён антипаттерн «как делать не нужно»

А вот и расшифровка самого акронима SOLID, повторить лишним не будет

🟡S — Single Responsibility Principle (Принцип единственной ответственности). Суть: класс должен обладать единственной ответственностью и иметь одну и лишь одну причину для его изменения.

🟡O — Open-Closed Principle (Принцип открытости/закрытости). Суть: программные сущности должны быть открыты для расширения и закрыты для изменения.

🟡L — Liskov Substitution Principle (Принцип подстановки Барбары Лисков). Суть: функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.

🟡I — Interface Segregation Principle (Принцип разделения интерфейса). Суть: программные сущности не должны зависеть от методов, которые они не используют; много узконаправленных интерфейсов - это лучше для клиента этого интерфейса, чем один интерфейс общего назначения, "умеющий всё".

🟡D — Dependency Inversion Principle (Принцип инверсии зависимостей). Суть: 1) модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. 2) Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

📎 Поехали

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 JSqlParser — библиотека Java для парсинга SQL

JSqlParser разбирает SQL-запрос и преобразует его в иерархию Java-классов.
Сгенерированная иерархия может быть перемещена с помощью паттерна Visitor

🖥 GitHub
🔘 Wiki

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Генерация типов Java на основе JSON или JSON Schema

brew install jsonschema2pojo

Можно использовать jsonschema2pojo как плагин Maven, задачу Ant, как утилиту командной строки, плагин Gradle или встроить в собственное Java-приложение.

🖥 GitHub
🟡 Можно использовать и онлайн

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Релиз CheerpJ 3.0

Learning Technologies, разработчики CheerpJ, среды для запуска приложений Java внутри браузеров, относительно недавно выпустили третью версию инструмента. По их словам, это «полная переработка CheerpJ, основанная на уроках, извлечённых за 7 лет его использования».

CheerpJ — полноценная виртуальная машина Java на основе WebAssembly. Её авторы уточняют, что благодаря множеству архитектурных инноваций CheerpJ 3.0 — чрезвычайно мощный инструмент, предназначенный для корпоративных приложений.

📎 Подробнее

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PMD — расширяемый многоязычный статический анализатор кода, написанный на Java

cd $HOME
wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F7.2.0/pmd-dist-7.2.0-bin.zip
unzip pmd-dist-7.2.0-bin.zip
alias pmd="$HOME/pmd-bin-7.2.0/bin/pmd"
pmd check -d /usr/src -R rulesets/java/quickstart.xml -f text


PMD находит неиспользуемые переменные, пустые блоки catch, ненужное создание объектов и всё в таком духе. В основном он работает с Java и Apex, но поддерживает 16 других языков. В комплект входит 400+ встроенных правил.

PMD легко можно кастомизировать с помощью пользовательских правил. Использует JavaCC и Antlr для разбора исходных файлов на абстрактные синтаксические деревья (AST) и запускает правила на их основе для поиска нарушений. Правила могут быть написаны на языке Java или с помощью запроса XPath.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 JavaCV — удобный интерфейс для работы с OpenCV, FFmpeg и не только

dependencies {
implementation("org.bytedeco:javacv-platform:1.5.10")
}


JavaCV использует обертки из JavaCPP Presets широко используемых библиотек в области компьютерного зрения (OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica и Tesseract) и предоставляет служебные классы для упрощения их использования в Java.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 scoold — Java-клон Stack Overflow, который можно развернуть локально

Scoold — это open-source платформа вопросов и ответов и обмена знаниями.

Scoold может работать где угодно — на Heroku, DigitalOcean, AWS, Azure или у любого VPS-хостинг-провайдера. Scoold легкий, за бэкенд отвечает отдельный сервис под названием Para.
Scoold не требует БД, да и в целом состоит из простых компонентов, потому что вся тяжелая работа возложена на Para.

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Portfolio Performance — open-source инструмент на Java для расчета общей эффективности инвестиционного портфеля

Позволяет записывать всю историю операций: покупки, продажи, оплата налогов, сборы, и т.д.

Обновляет исторические котировки по данным из различных источников: Yahoo Finance, Finnhub.io, Quandl или AlphaVantage.
При желании можно настроить получение котировок с нужных HTML-страниц или из JSON-документов.

Все данные хранятся в XML для дальнейшей обработки и могут быть экспортированы в CSV или JSON.

🖥 GitHub
🟡 Страничка Portfolio Performance

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😂 Лучшие бесплатные курсы и книги по Этичному Хакингу и Информационной Безопасности.


Полный список
Видео

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 CloudStack — open-source решение на Java для для развёртывания и управления большими сетями виртуальных машин

CloudStack — это готовое решение, которое включает в себя весь набор функций, необходимых для laaS-облака: управление вычислениями, гибкое настраивание сети, управление пользователями и учетными записями, полный и открытый собственный API, учет ресурсов и удобный интерфейс (UI).

🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Joern — open-source платформа для анализа кода на Java (и не только)

wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern


Joern — это платформа для анализа исходного кода, байткода и бинарных исполняемых файлов. Она генерирует графы свойств кода (CPG), графовое представление кода для межъязыкового анализа кода. Графы свойств кода хранятся в пользовательской БД. Это позволяет анализировать код с помощью поисковых запросов, сформулированных на языке запросов, специфичном для конкретной области, на основе Scala.

Joern разрабатывается как инструмент для обнаружения уязвимостей и для статического анализа программ.

Быстрый старт с Docker:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern

🖥 GitHub
🟡 Страничка Joern
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Релиз Winlator 7.0, окружения для запуска Windows-приложений в Android, написанного на Java (и C)

Состоялся релиз открытого проекта окружения для запуска Windows-приложений в Android под названием Winlator 7.0.

Проект Android-приложения Winlator 7.0 (размер APK-пакета составляет 251 МБ) предоставляет собой обвязку над Wine и эмуляторами Box86/Box64 для выполнения Windows-приложений на платформе Android.

Инструмент Winlator разворачивает Linux-окружение на базе Ubuntu с Mesa, DXVK, D8VK, Vkd3d и CNC DDraw, в котором при помощи эмулятора и Wine на ARM-устройствах с Android выполняются Windows-приложения, собранные для архитектуры x86.

🖥 Исходный код проекта написан на языках C и Java и опубликован на GitHub под лицензией MIT.

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 kotlin-logging — легковесный фреймворк для логгирования, написанный на чистом Kotlin

implementation 'io.github.oshai:kotlin-logging-jvm:5.1.0'

kotlin-logging предоставляет обертку для slf4j-api для использования классами Kotlin; при этом kotlin-logging имеет такие преимущества:
— нет необходимости писать шаблонный код, содержащий имя логгера и класса или имя логгера
— простой способ регистрации сообщений в виде строки с ленивой оценкой с помощью лямбда-выражения {}
— все предыдущие реализации slf4j по-прежнему могут быть использованы

🖥 GitHub
🟡 Wiki

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 SchemaCrawler — open-source инструмент на Java для исследования баз данных

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

SchemaCrawler также может генерировать диаграммы схем БД. И можно выполнять сценарии на любом стандартном языке сценариев для БД.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/11/17 05:31:24
Back to Top
HTML Embed Code: