Kotlin вместо bash. Прокачиваем автоматизацию на сервере
Для решения задач автоматизации рутинных процессов для системных администраторов и DevOps (которые, кроме всего прочего, нередко занимаются созданием сборочных скриптов, которые могут не только подготовить базовую среду выполнения, но и могут взаимодействовать с другими системами для обеспечения полного цикла CI/CD) чаще всего используются или bash-сценарии (zsh, ash или язык любой другой оболочки) или python. Первое решение косвенно используется и в описании Dockerfile, поскольку сценарий исполняемых команд принципиально ничем не отличается от запуска скрипта в какой-либо shell, второй подход чаще ассоциируется с автоматизацией, связанных с взаимодействием с хранилищами данных — например, для создания учетных записей в LDAP или базе данных, отправки уведомлений и тд.
https://habr.com/ru/companies/otus/articles/742050/
✍️ @kotlin_lib
Для решения задач автоматизации рутинных процессов для системных администраторов и DevOps (которые, кроме всего прочего, нередко занимаются созданием сборочных скриптов, которые могут не только подготовить базовую среду выполнения, но и могут взаимодействовать с другими системами для обеспечения полного цикла CI/CD) чаще всего используются или bash-сценарии (zsh, ash или язык любой другой оболочки) или python. Первое решение косвенно используется и в описании Dockerfile, поскольку сценарий исполняемых команд принципиально ничем не отличается от запуска скрипта в какой-либо shell, второй подход чаще ассоциируется с автоматизацией, связанных с взаимодействием с хранилищами данных — например, для создания учетных записей в LDAP или базе данных, отправки уведомлений и тд.
https://habr.com/ru/companies/otus/articles/742050/
✍️ @kotlin_lib
👍5
«Приключение на 20 минут: взял и поменял язык». Личный опыт перехода на Kotlin
Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.
Я пришел в коммерческую разработку на определенный проект, который был реализован на Python, но основным стеком для компании являлся Kotlin. Несмотря на переход в разработку, я продолжен преподавать и занимаюсь этим до сих пор. Вот из такой стартовой позиции начнем наше повествование.
https://habr.com/ru/articles/858436/
✍️ @kotlin_lib
Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.
Я пришел в коммерческую разработку на определенный проект, который был реализован на Python, но основным стеком для компании являлся Kotlin. Несмотря на переход в разработку, я продолжен преподавать и занимаюсь этим до сих пор. Вот из такой стартовой позиции начнем наше повествование.
https://habr.com/ru/articles/858436/
✍️ @kotlin_lib
👍6👎2
Applying the State Pattern in Kotlin
Когда наши объекты ведут себя по-разному в различных состояниях, может быть полезно применить Шаблон состояния (State Pattern). Сегодня мы рассмотрим код, который мог бы извлечь выгоду из этого шаблона, применим традиционный Шаблон состояния из классической книги "Gang of Four Design Patterns", а затем увидим, как можем его модернизировать и сократить количество вспомогательного кода, используя некоторые особенности языка Kotlin.
00:00 Introduction
00:16 Example Code
02:16 Classic State Pattern
06:50 Modernized State Pattern in Kotlin
11:58 Wrap-up
https://www.youtube.com/watch?v=pSx6yb1QLdk
✍️ @kotlin_lib
Когда наши объекты ведут себя по-разному в различных состояниях, может быть полезно применить Шаблон состояния (State Pattern). Сегодня мы рассмотрим код, который мог бы извлечь выгоду из этого шаблона, применим традиционный Шаблон состояния из классической книги "Gang of Four Design Patterns", а затем увидим, как можем его модернизировать и сократить количество вспомогательного кода, используя некоторые особенности языка Kotlin.
00:00 Introduction
00:16 Example Code
02:16 Classic State Pattern
06:50 Modernized State Pattern in Kotlin
11:58 Wrap-up
https://www.youtube.com/watch?v=pSx6yb1QLdk
✍️ @kotlin_lib
YouTube
Applying the State Pattern in Kotlin
When our objects behave differently in different states, then it can be helpful to apply the State Pattern. Today, we'll look at code that could benefit from the State Pattern, we'll apply a traditional State Pattern from the classic Gang of Four Design Patterns…
👍5
Улучшаем автокомплит в смешанных Java-Kotlin проектах
Честно говоря, не знаю, нужно ли ставить тэг «перевод» на собственную статью.
Ну ок, поставил.
Всем привет! Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Этот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Как-то раз я дизайнил публичный API Kotlin-библиотеки, чтобы клиенты на Java могли пользоваться ей бесшовно, как и клиенты на Kotlin (ну, насколько это возможно). Если вы используете Kotlin, то, возможно, знаете, что для data-классов компилятор кучу всего генерирует за нас, в том числе функции componentN() для деструктуризации параметров primary-конструктора.
https://habr.com/ru/articles/845080/
original https://proandroiddev.com/better-kotlin-java-auto-complete-d0fd7e8a9355
✍️ @kotlin_lib
Честно говоря, не знаю, нужно ли ставить тэг «перевод» на собственную статью.
Ну ок, поставил.
Всем привет! Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Этот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Как-то раз я дизайнил публичный API Kotlin-библиотеки, чтобы клиенты на Java могли пользоваться ей бесшовно, как и клиенты на Kotlin (ну, насколько это возможно). Если вы используете Kotlin, то, возможно, знаете, что для data-классов компилятор кучу всего генерирует за нас, в том числе функции componentN() для деструктуризации параметров primary-конструктора.
https://habr.com/ru/articles/845080/
original https://proandroiddev.com/better-kotlin-java-auto-complete-d0fd7e8a9355
✍️ @kotlin_lib
👍1
Что нового в Kotlin 2.1.0
Новые возможности языка: добавлены условия-гварды в конструкции
Обновления компилятора K2: улучшения проверок и реализация
Kotlin Multiplatform: базовая поддержка экспорта в Swift, стабильный Gradle DSL для опций компилятора.
Kotlin/Native: улучшенная поддержка iosArm64.
Kotlin/Wasm: поддержка инкрементной компиляции.
Gradle: повышена совместимость с новыми версиями Gradle и плагином Android.
Документация: значительные улучшения.
https://kotlinlang.org/docs/whatsnew21.html
✍️ @kotlin_lib
Новые возможности языка: добавлены условия-гварды в конструкции
when
с объектом, нелокальные break
и continue
, а также многодолларовая интерполяция строк.Обновления компилятора K2: улучшения проверок и реализация
kapt
.Kotlin Multiplatform: базовая поддержка экспорта в Swift, стабильный Gradle DSL для опций компилятора.
Kotlin/Native: улучшенная поддержка iosArm64.
Kotlin/Wasm: поддержка инкрементной компиляции.
Gradle: повышена совместимость с новыми версиями Gradle и плагином Android.
Документация: значительные улучшения.
https://kotlinlang.org/docs/whatsnew21.html
✍️ @kotlin_lib
👍4❤1
RxJava to Kotlin Coroutines: Полное руководство по миграции.
Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.
https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803
✍️ @kotlin_lib
Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.
https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803
✍️ @kotlin_lib
Medium
RxJava to Kotlin Coroutines: The Ultimate Migration Guide
As a developer working in large legacy applications, I’ve had the pleasure (and sometimes pain) of leading the modernization of large…
👍2
Миграция конфигурации сборки с Groovy на Kotlin
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
👍5
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Kotlin с нуля
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса)
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Урок 23: Теория разработки программ. Создание телеграм бота // Практика
Все видео доступны на youtube
✍️ @kotlin_lib
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса)
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Урок 23: Теория разработки программ. Создание телеграм бота // Практика
Все видео доступны на youtube
✍️ @kotlin_lib
👍11
Учим Kotlin c нуля.
Kotlin: История Java, Kotlin и как они связаны. JVM, интерпретируемые и компилируемые языки
Kotlin: создаем проект в IntelliJ IDEA, Gradle, нужные типы данных, функция main - точка входа
Kotlin: читаем из файла, преобразовываем массивы через функции map и flatMap
Kotlin: создаем свой первый класс, объявляем конструктор, пишем функции
Kotlin: циклы for и while, null-safety
Kotlin: дебажим код, ставим брейкпоинты, объявляем условия срабатывания для них
Kotlin: HashMap, hashCode и equals
Kotlin: enum, исследуем возможности
Kotlin: лямбды
Kotlin: заканчиваем приложение
Kotlin: пишем юнит-тесты на JUnit 5N
Kotlin: рефакторинг, extension функции, typealias
Проект Kotlin: git, github, gitignore
Проект Kotlin: git, github, continuous integration, автотесты
(наконец-то) подключаем Android в Gradle проект с Kotlin
Мультипроектная сборка Gradle: Android и библиотека
Любой файл в ресурсах андроид приложения! (продолжаем делать игру)
Android View с нуляN
Смена ориентации в Android приложении [4 способа]
Рисуем таблицу для судоку: Android RecyclerView и все такоеNerdy
Все видео доступны на youtube
✍️ @kotlin_lib
Kotlin: История Java, Kotlin и как они связаны. JVM, интерпретируемые и компилируемые языки
Kotlin: создаем проект в IntelliJ IDEA, Gradle, нужные типы данных, функция main - точка входа
Kotlin: читаем из файла, преобразовываем массивы через функции map и flatMap
Kotlin: создаем свой первый класс, объявляем конструктор, пишем функции
Kotlin: циклы for и while, null-safety
Kotlin: дебажим код, ставим брейкпоинты, объявляем условия срабатывания для них
Kotlin: HashMap, hashCode и equals
Kotlin: enum, исследуем возможности
Kotlin: лямбды
Kotlin: заканчиваем приложение
Kotlin: пишем юнит-тесты на JUnit 5N
Kotlin: рефакторинг, extension функции, typealias
Проект Kotlin: git, github, gitignore
Проект Kotlin: git, github, continuous integration, автотесты
(наконец-то) подключаем Android в Gradle проект с Kotlin
Мультипроектная сборка Gradle: Android и библиотека
Любой файл в ресурсах андроид приложения! (продолжаем делать игру)
Android View с нуляN
Смена ориентации в Android приложении [4 способа]
Рисуем таблицу для судоку: Android RecyclerView и все такоеNerdy
Все видео доступны на youtube
✍️ @kotlin_lib
❤1