Skip to main content

Полезные библиотеки

На странице собрана информация о различных Java-библиотеках

Json


Прочее

Генераторы данных


Работа с географическими и навигационными данными


REST


Асинхронное программирование

Полезные функции

Преобразование числа в IP-адрес

new System.Net.IPAddress(36546)).ToString();

Преобразование IP-адреса в число в прямом порядке (BE)

{
    byte[] ipNums = ip.Split('.').Select(s => byte.Parse(s)).ToArray();
    uint res = 0;

    res = res + ipNums[0] << 8;
    res = res + ipNums[1] << 8;
    res = res + ipNums[2] << 8;
    res = res + ipNums[3];
    return res;
}

Полезные функции

Перехват Ctrl+C

Информация взята из блога Mat Ryer.

func main() {
    ctx := context.Background()

    // trap Ctrl#C and call cancel on the context
    ctx, cancel := context.WithCancel(ctx)
    c := make(chan os.Signal, 1)
    signal.Notify(c, os.Interrupt)
    defer func() {
        signal.Stop(c)
        cancel()
    }()
    go func() {
        select {
        case <-c:
            cancel()
        case <-ctx.Done():
        }
    }()

    doSomethingAwesome(ctx)
}

Более простой вариант

func main() {
    c := make(chan os.Signal, 1)
    signal.Notify(c, os.Interrupt)
// Wait for Ctrl#C
    <-c
}

Как правильно реализовать Singletone

Вариант взят отсюда singleton-pattern-in-go.

gdoc_arrow_right_alt

Полезные библиотеки

Конфигурация и всё такое


Логгирование

  • Библиотека от Google Glog. Документация.
  • Библиотека от juju Loggo. Документация.
  • Библиотека от Uber Zap. Документация.
  • Logrus. Наверное наиболее популярный. Используется в Docker. API.
  • Вроде как самая маленькая библиотека go-logging. API.
  • zerolog - логирование в формате json. GoDoc. Также может логировать в нормальном виде.
  • go-spew - красивый вывод в консоль данных для отладки. GoDoc.
  • httpretty - удобное логирование в консоль http запросов как на сервере, так и на клиенте. GoDoc.
  • zlog - логер позволяет скрывать чувствительную информацию из логирования. GoDoc.
  • Log - простенький логер с подсветкой вывода от создателей Bubble Tea. GoDoc.

UI

Пользовательский интерфейс в терминале

Отличная статья с обзором разных библиотек для написания text-based GUI.

gdoc_arrow_right_alt

Полезная информация по git

Общая информация

Официальная книга по Git.

Как содержать репозиторий в чистоте

Ещё полезная статья на Habrahabr.

Как удалять ветки

Локальные:

gdoc_arrow_right_alt

Java

Информация о Java, примеры использования и библиотеки

JVM

  • Liberica - сборка openjdk от BellSoft. Принимают участие в развитии openjdk и вообще всячески лицензированы oracle.
  • GraalVM - позволяет запускать не только java, но и JavaScript, Python, Ruby, R, C, C++.
  • AdoptOpenJDK - ещё одна сборка openjdk. Также есть реализация Openj9 вирутальной машины.

Быстрая памятка по настройке логирования в Java

Для добавления логирования в проект надо добавить следующие зависимости:

gdoc_arrow_right_alt

Internationalization (i18n) и Localization (l10n) в Go

Информация взята отсюда

Альтернативный пакет (https://github.com/nicksnyder/go-i18n).

Internationalization (i18n)

Для форматирования вывода информации в национальном формате (например, чисел) используются следующие пакеты:

По-умолчанию, они не установлены. Необходимо их скачать:

go get -u golang.org/x/text/language
go get -u golang.org/x/text/message

Для вывода информации на основании языка используется тип message.Printer. Используется он следующий образом:

gdoc_arrow_right_alt