Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Продвинутая обработка исключений в Kotlin Coroutines: руководство для Android-разработчиков
Обработка исключений в Kotlin Coroutines — это важная тема, особенно когда дело касается асинхронного программирования в Android. В статье рассматриваются следующие ключевые аспекты:
- Общая стратегия обработки исключений
Различие между
- Глобальная обработка исключений
Использование
- Обработка исключений в структурированных корутинах
Применение
- Отлов исключений в
Важно помнить, что
- Ошибка распространения исключений в
Запущенные через
https://proandroiddev.com/advanced-exception-handling-in-kotlin-coroutines-a-guide-for-android-developers-e1aede099252
✍️ @kotlin_lib
Обработка исключений в Kotlin Coroutines — это важная тема, особенно когда дело касается асинхронного программирования в Android. В статье рассматриваются следующие ключевые аспекты:
- Общая стратегия обработки исключений
Различие между
try-catch
, CoroutineExceptionHandler
и supervisorScope
. - Глобальная обработка исключений
Использование
CoroutineExceptionHandler
и его ограничение — он работает только с незахваченными исключениями. - Обработка исключений в структурированных корутинах
Применение
supervisorScope
для предотвращения отмены всей иерархии корутин. - Отлов исключений в
async
Важно помнить, что
async
возвращает Deferred
, а исключения в нем не всплывают автоматически. Их нужно ловить через await()
. - Ошибка распространения исключений в
launch
Запущенные через
launch
корутины выбрасывают исключения вверх по иерархии, что может привести к неожиданному завершению приложения. https://proandroiddev.com/advanced-exception-handling-in-kotlin-coroutines-a-guide-for-android-developers-e1aede099252
✍️ @kotlin_lib
👍3
👩💻 А ты справишься с тестом по Kotlin?
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокодKotlin5
🎫 Курс можно приобрести в рассрочку
➡️ Пройти тест и забрать скидку: https://vk.cc/cIK1jj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод
🎫 Курс можно приобрести в рассрочку
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Принцип единственной ответственности (SRP) в Kotlin: глубокий разбор
Принцип единственной ответственности (Single Responsibility Principle, SRP) из SOLID гласит, что класс должен иметь только одну причину для изменения. В статье рассматриваются следующие важные аспекты:
- Почему SRP важен?
Код становится более читаемым, тестируемым и удобным для сопровождения.
- Признаки нарушения SRP
- Класс выполняет несколько несвязанных задач.
- Частые изменения одной части кода затрагивают другие части.
- Усложняется тестирование, так как приходится проверять несколько функциональностей сразу.
- Как применять SRP в Kotlin?
- Разделение ответственности: деление класса на несколько более мелких, каждый из которых отвечает только за свою функцию.
- Использование делегирования: передача отдельных задач вспомогательным классам.
- Функциональный подход: использование функций высшего порядка и композиции вместо огромных классов.
- Пример рефакторинга
В статье показан код, который нарушает SRP, и варианты его исправления с помощью грамотного разделения логики.
Применение SRP в Kotlin позволяет писать более чистый, поддерживаемый и расширяемый код, который легче тестировать и модифицировать.
https://itnext.io/the-single-responsibility-principle-srp-in-kotlin-deep-dive-34f478064848
✍️ @kotlin_lib
Принцип единственной ответственности (Single Responsibility Principle, SRP) из SOLID гласит, что класс должен иметь только одну причину для изменения. В статье рассматриваются следующие важные аспекты:
- Почему SRP важен?
Код становится более читаемым, тестируемым и удобным для сопровождения.
- Признаки нарушения SRP
- Класс выполняет несколько несвязанных задач.
- Частые изменения одной части кода затрагивают другие части.
- Усложняется тестирование, так как приходится проверять несколько функциональностей сразу.
- Как применять SRP в Kotlin?
- Разделение ответственности: деление класса на несколько более мелких, каждый из которых отвечает только за свою функцию.
- Использование делегирования: передача отдельных задач вспомогательным классам.
- Функциональный подход: использование функций высшего порядка и композиции вместо огромных классов.
- Пример рефакторинга
В статье показан код, который нарушает SRP, и варианты его исправления с помощью грамотного разделения логики.
Применение SRP в Kotlin позволяет писать более чистый, поддерживаемый и расширяемый код, который легче тестировать и модифицировать.
https://itnext.io/the-single-responsibility-principle-srp-in-kotlin-deep-dive-34f478064848
✍️ @kotlin_lib
👍2
Вот отсортированная база с тонной материала (постепенно пополняется):
БАЗА (4687 видео/книг):
(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(114 видео, 77 книги) — Сисадмин
(107 видео, 43 книги) — BA/SA
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — Дизайн
(129 видео, 73 книги) — QA
(213 видео, 63 книги) — Rust
(121 видео, 24 книги) — 1С
(136 видео, 33 книги) — PM/HR
Скачивать ничего не нужно — все выложили в Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
💩8🔥1
Пошаговое руководство по выполнению анализа данных с помощью Kotlin DataFrame
Это первая из серии обучающих статей о том, как легко манипулировать и визуализировать данные с помощью библиотек Kotlin DataFrame и Kandy. Эти уроки предназначены для обычных разработчиков на Kotlin, поэтому предыдущий опыт в области анализа данных или работы с аналогичными фреймворками (например, pandas или Apache Spark) не требуется. Однако, вы должны быть знакомы с языком Kotlin и ранее создавать проекты на Kotlin в IntelliJ IDEA.
https://blog.jetbrains.com/kotlin/2024/04/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe/
✍️ @kotlin_lib
Это первая из серии обучающих статей о том, как легко манипулировать и визуализировать данные с помощью библиотек Kotlin DataFrame и Kandy. Эти уроки предназначены для обычных разработчиков на Kotlin, поэтому предыдущий опыт в области анализа данных или работы с аналогичными фреймворками (например, pandas или Apache Spark) не требуется. Однако, вы должны быть знакомы с языком Kotlin и ранее создавать проекты на Kotlin в IntelliJ IDEA.
https://blog.jetbrains.com/kotlin/2024/04/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe/
✍️ @kotlin_lib
👍5
😴 Ваши Android-приложения «умирают» в фоне, а как пользоваться сервисами непонятно?
✨ Разбираем фоновые процессы на открытом вебинаре!
– Узнаем, какие ограничения Google накладывает на работу приложений в фоновом режиме и как с этим бороться.
– Разберём все актуальные методы.
🚀 Освойте лучшие практики фоновой работы, чтобы создавать эффективные и отзывчивые Android-приложения. А ещё получите 🎁скидку на обучение «Android Developer. Professional»!
📅 Встречаемся 26 февраля в 20:00 мск!
👉 Регистрация открыта: https://vk.cc/cISnPc
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
✨ Разбираем фоновые процессы на открытом вебинаре!
– Узнаем, какие ограничения Google накладывает на работу приложений в фоновом режиме и как с этим бороться.
– Разберём все актуальные методы.
🚀 Освойте лучшие практики фоновой работы, чтобы создавать эффективные и отзывчивые Android-приложения. А ещё получите 🎁скидку на обучение «Android Developer. Professional»!
📅 Встречаемся 26 февраля в 20:00 мск!
👉 Регистрация открыта: https://vk.cc/cISnPc
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍2❤1
Media is too big
VIEW IN TELEGRAM
Непростые вопросы про Kotlin Coroutines
Александр Гирев
Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.
Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.
Материал доклада рассчитан на участников, которые знакомы как минимум с теоретическими основами Kotlin Coroutines.
источник
✍️ @kotlin_lib
Александр Гирев
Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.
Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.
Материал доклада рассчитан на участников, которые знакомы как минимум с теоретическими основами Kotlin Coroutines.
источник
✍️ @kotlin_lib
👍3
Koin Annotations 2.0: что нового?
Команда Koin выпустила Koin Annotations 2.0, значительно улучшив поддержку аннотаций для DI в Kotlin. Этот релиз нацелен на упрощение работы с Koin и упрощение интеграции аннотаций с компиляторным плагином KSP.
🔥 Основные изменения:
- Оптимизированный KSP-обработчик – компиляция теперь быстрее и стабильнее.
- Обновленный DSL – улучшенная поддержка модулей и более гибкие аннотации.
- Упрощенные Scopes & Qualifiers – декларативный стиль позволяет писать меньше кода.
- Новый механизм Inject – еще более удобный способ внедрения зависимостей.
Этот релиз делает DI с Koin еще проще, позволяя писать меньше кода и получать максимум производительности. Если используешь Koin – обязательно обновись!
https://blog.insert-koin.io/koin-annotations-2-0-release-is-out-445c27a569b9
✍️ @kotlin_lib
Команда Koin выпустила Koin Annotations 2.0, значительно улучшив поддержку аннотаций для DI в Kotlin. Этот релиз нацелен на упрощение работы с Koin и упрощение интеграции аннотаций с компиляторным плагином KSP.
🔥 Основные изменения:
- Оптимизированный KSP-обработчик – компиляция теперь быстрее и стабильнее.
- Обновленный DSL – улучшенная поддержка модулей и более гибкие аннотации.
- Упрощенные Scopes & Qualifiers – декларативный стиль позволяет писать меньше кода.
- Новый механизм Inject – еще более удобный способ внедрения зависимостей.
Этот релиз делает DI с Koin еще проще, позволяя писать меньше кода и получать максимум производительности. Если используешь Koin – обязательно обновись!
https://blog.insert-koin.io/koin-annotations-2-0-release-is-out-445c27a569b9
✍️ @kotlin_lib
👍5
Ko-iso
Это репозиторий ko-iso, который предоставляет ISO-коды стран и регионов в виде Kotlin-библиотеки. Полезен для работы с международными стандартами, например, при обработке страновых кодов в приложениях. Поддерживает ISO 3166-1 (страны) и 3166-2 (регионы).
https://github.com/jillesvangurp/ko-iso
✍️ @kotlin_lib
Это репозиторий ko-iso, который предоставляет ISO-коды стран и регионов в виде Kotlin-библиотеки. Полезен для работы с международными стандартами, например, при обработке страновых кодов в приложениях. Поддерживает ISO 3166-1 (страны) и 3166-2 (регионы).
https://github.com/jillesvangurp/ko-iso
✍️ @kotlin_lib
👍8
moko-resources — это библиотека для управления ресурсами (строки, изображения, цвета и т.д.) в Kotlin Multiplatform проекте. Она позволяет использовать ресурсы из общего кода
Основные возможности:
- Доступ к ресурсам из
- Поддержка string, string formatting, plurals, colors, images
- Генерация кода на основе
- Поддержка Android, iOS, desktop (JetBrains Compose)
Пример использования:
Поддержка платформ:
- ✅ Android
- ✅ iOS
- ✅ Desktop (Compose Multiplatform)
https://github.com/icerockdev/moko-resources
✍️ @kotlin_lib
commonMain
.Основные возможности:
- Доступ к ресурсам из
commonMain
- Поддержка string, string formatting, plurals, colors, images
- Генерация кода на основе
.xml/.strings
файлов- Поддержка Android, iOS, desktop (JetBrains Compose)
Пример использования:
val str = MR.strings.some_string.desc()
textView.text = str.localized()
Поддержка платформ:
- ✅ Android
- ✅ iOS
- ✅ Desktop (Compose Multiplatform)
https://github.com/icerockdev/moko-resources
✍️ @kotlin_lib
👍5
Открытие браузера по умолчанию на разных платформах
Иногда приложение должно открыть веб-страницу в браузере по умолчанию. Хотя это кажется простой задачей, реализация может различаться в зависимости от платформы. Давайте посмотрим, как справиться с этим в разных средах.
Kotlin Multiplatform
В многоплатформенных проектах (например, с использованием Kotlin Multiplatform) приходится учитывать реализацию для каждой целевой платформы. Один из подходов — использовать ожидания/реализации (
https://dev.to/tkuenneth/open-the-default-browser-across-platforms-3cbh
✍️ @kotlin_lib
Иногда приложение должно открыть веб-страницу в браузере по умолчанию. Хотя это кажется простой задачей, реализация может различаться в зависимости от платформы. Давайте посмотрим, как справиться с этим в разных средах.
Kotlin Multiplatform
В многоплатформенных проектах (например, с использованием Kotlin Multiplatform) приходится учитывать реализацию для каждой целевой платформы. Один из подходов — использовать ожидания/реализации (
expect/actual
), чтобы объявить функцию в общем коде и реализовать её отдельно для каждой платформы.https://dev.to/tkuenneth/open-the-default-browser-across-platforms-3cbh
✍️ @kotlin_lib
👍2
🧵 Kotlin Coroutines без макияжа: что скрывается под капотом
Когда вы запускаете корутину с помощью
🔄 Жизненный цикл корутины:
1. Создание — с помощью
2. Запуск — автоматически или через
3. Приостановка — при вызове
4. Возобновление — после завершения асинхронной операции.
5. Завершение — когда весь код выполнен или корутина отменена.
🧠 Что такое
📌 Пример:
Компилятор преобразует этот код в класс, который можно представить следующим образом:
Здесь
https://habr.com/ru/articles/882988/
✍️ @kotlin_lib
Когда вы запускаете корутину с помощью
launch
или async
, компилятор Kotlin создаёт специальный объект, реализующий интерфейс Continuation
. Этот объект содержит состояние выполнения корутины и позволяет ей приостанавливаться и возобновляться. Внутри него хранятся все локальные переменные и текущая точка выполнения.🔄 Жизненный цикл корутины:
1. Создание — с помощью
launch
или async
.2. Запуск — автоматически или через
start()
.3. Приостановка — при вызове
suspend
-функций, таких как delay()
или await()
.4. Возобновление — после завершения асинхронной операции.
5. Завершение — когда весь код выполнен или корутина отменена.
🧠 Что такое
Continuation
?Continuation
— это объект, представляющий состояние выполнения корутины. Он позволяет приостанавливать и возобновлять выполнение, сохраняя информацию о том, где именно корутина была приостановлена. Интерфейс Continuation
выглядит следующим образом:
interface Continuation<in T> {
val context: CoroutineContext
fun resumeWith(result: Result<T>)
}
📌 Пример:
suspend fun mySuspendFunction() {
println("Start")
delay(1000)
println("End")
}
launch {
mySuspendFunction()
}
Компилятор преобразует этот код в класс, который можно представить следующим образом:
class GeneratedContinuation extends SuspendLambda {
int label;
@Override
Object invokeSuspend(Object result) {
switch (label) {
case 0:
println("Start");
label = 1;
if (delay(1000, this) == COROUTINE_SUSPENDED)
return COROUTINE_SUSPENDED;
case 1:
println("End");
return Unit.INSTANCE;
}
throw new IllegalStateException();
}
}
Здесь
label
указывает на текущую точку выполнения внутри корутины. При каждом вызове suspend
-функции значение label
изменяется, чтобы указать, с какого места нужно продолжить выполнение после приостановки.https://habr.com/ru/articles/882988/
✍️ @kotlin_lib
👍5
Плавная миграция на Kotlin 2.1.0
Всем привет, меня зовут Эдуард, я Android Tech Lead в QIC digital hub[ссылка удалена мод.]. Сегодня я расскажу как совершить плавный переход на Kotlin 2.1.0, руководствуясь опытом своей команды.
https://habr.com/ru/articles/898048/
✍️ @kotlin_lib
Всем привет, меня зовут Эдуард, я Android Tech Lead в QIC digital hub[ссылка удалена мод.]. Сегодня я расскажу как совершить плавный переход на Kotlin 2.1.0, руководствуясь опытом своей команды.
https://habr.com/ru/articles/898048/
✍️ @kotlin_lib
👍1
💻Хотите научиться писать эффективные сетевые клиенты для iOS и разобраться в том, какие технологии лучше выбрать для SwiftUI?
📖На открытом вебинаре 22 апреля в 20:00 мск мы подробно разберем архитектуру приложений на SwiftUI и выбор сетевого клиента: что лучше — Alamofire, Moya или нативное решение? Мы также покажем, как интегрировать эти технологии с Combine и async-await.
📊Умение работать с сетевыми клиентами под SwiftUI — ключевой навык для iOS-разработчика.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «iOS Developer. Professional» по промокоду IOSPRO4: https://vk.cc/cKRMfx
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📖На открытом вебинаре 22 апреля в 20:00 мск мы подробно разберем архитектуру приложений на SwiftUI и выбор сетевого клиента: что лучше — Alamofire, Moya или нативное решение? Мы также покажем, как интегрировать эти технологии с Combine и async-await.
📊Умение работать с сетевыми клиентами под SwiftUI — ключевой навык для iOS-разработчика.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «iOS Developer. Professional» по промокоду IOSPRO4: https://vk.cc/cKRMfx
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍1
🧨 equals()
в Kotlin: незаметная ловушка, которая бьёт по бизнес-логикеКогда
equals()
работает не так, как ты думаешь — начинается отладочный ад. Особенно, если ты используешь data class
и полагаешься на их auto-generated equals.Представь кейс: ты получаешь DTO из API и кладёшь его в
Set
, надеясь, что дубликаты не появятся. Но через минуту замечаешь, что одинаковые по сути объекты спокойно живут рядом. Почему?📌 Типичная ошибка — включать в
equals()/hashCode()
поля, которые не участвуют в "бизнесовой" идентичности объекта. Например:
data class Product(
val id: String,
val name: String,
val lastUpdated: Long // техническое поле
)
Добавь два продукта с одинаковым
id
, но разным lastUpdated
— и Set посчитает их разными.equals()
и hashCode()
, вручную указав, какие поля важны:
data class Product(
val id: String,
val name: String,
val lastUpdated: Long
) {
override fun equals(other: Any?) =
other is Product && other.id == id
override fun hashCode() = id.hashCode()
}
🔥 Если используешь
copy()
— помни, что он тащит все поля. И если ты потом сравниваешь объекты по equals()
, может случиться сюрприз.✅ Вывод: auto-generated
equals()
удобен, но не всегда безопасен. Если объект участвует в коллекциях, кэшах или логике сравнения — контролируй его равенство вручную.✍️ @kotlin_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
Объяснение отмены корутин в Kotlin
Kotlin корутины предоставляют удобный способ асинхронного программирования. Но с этим удобством приходит и необходимость понять, как работает отмена. Давайте разберемся, как именно происходит отмена корутин и что это означает для вашего кода.
Что происходит при отмене?
Когда
- Вызов
- Явная проверка
Пример:
Если вы вызовете
Отмена и finally
Пример отмены
Вывод:
Как видно,
Заключение
Понимание механизма отмены корутин — важная часть работы с асинхронным кодом в Kotlin. Отмена не означает мгновенное завершение — корутина завершится в точке отмены. Используйте
https://sam-cooper.medium.com/kotlin-coroutine-cancellation-explained-6a545c8da252
✍️ @kotlin_lib
Kotlin корутины предоставляют удобный способ асинхронного программирования. Но с этим удобством приходит и необходимость понять, как работает отмена. Давайте разберемся, как именно происходит отмена корутин и что это означает для вашего кода.
Что происходит при отмене?
Когда
Job
отменяется, он переводится в состояние "отменено", но фактически корутина не завершится мгновенно. Она завершится, когда достигнет "точки отмены" (cancellation point). Это может быть:- Вызов
delay
, yield
и других suspend-функций, проверяющих isActive
.- Явная проверка
coroutineContext.isActive
или вызов ensureActive()
.Пример:
launch {
repeat(1000) { i ->
println("I'm sleeping $i ...")
delay(500L)
}
}
Если вы вызовете
cancel()
на этой корутине, она остановится только после следующего delay
.Отмена и finally
try/finally
блоки работают в корутинах, как и ожидалось. Однако, если вы используете delay
или другую suspend-функцию в finally
, она тоже может быть отменена. Чтобы избежать этого, используйте withContext(NonCancellable)
:
try {
// работа
} finally {
withContext(NonCancellable) {
// гарантированно выполнится
}
}
Пример отмены
val job = launch {
try {
repeat(1000) { i ->
println("Job: I'm sleeping $i ...")
delay(500L)
}
} finally {
println("Job: I'm running finally")
}
}
delay(1300L) // немного подождем
println("main: I'm tired of waiting!")
job.cancelAndJoin() // отмена и ожидание завершения
println("main: Now I can quit.")
Вывод:
Job: I'm sleeping 0 ...
Job: I'm sleeping 1 ...
Job: I'm sleeping 2 ...
main: I'm tired of waiting!
Job: I'm running finally
main: Now I can quit.
Как видно,
finally
выполнится при отмене, но если в нем будет suspend-функция — нужно быть осторожным.Заключение
Понимание механизма отмены корутин — важная часть работы с асинхронным кодом в Kotlin. Отмена не означает мгновенное завершение — корутина завершится в точке отмены. Используйте
NonCancellable
, если нужно завершить работу "честно", несмотря на отмену.https://sam-cooper.medium.com/kotlin-coroutine-cancellation-explained-6a545c8da252
✍️ @kotlin_lib
👍3
На открытом уроке «Облако в кармане: запускаем всю инфраструктуру для теста при сборке» от OTUS мы расскажем, как избежать ручных настроек и запусков. Вместо этого вы научитесь автоматизировать весь процесс с помощью Docker, DockerCompose и TestContainers, интегрируя их с Gradle.
Урок полезен для разработчиков на Kotlin и Java, которые работают с автотестами — интеграционными и end-to-end.
В ходе урока вы освоите:
▫️Автоматический запуск всей необходимой инфраструктуры для тестирования.
▫️Создание Docker-образов для тестов и деплоя.
▫️Разработку автотестов, которые поднимут ваши навыки на новый уровень.
Участники получат скидку на курс «Kotlin Backend Developer. Professional».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🚀 Подборка Telegram каналов для программистов
Системное администрирование, DevOps 📌
https://t.iss.one/bash_srv Bash Советы
https://t.iss.one/win_sysadmin Системный Администратор Windows
https://t.iss.one/sysadmin_girl Девочка Сисадмин
https://t.iss.one/srv_admin_linux Админские угодья
https://t.iss.one/linux_srv Типичный Сисадмин
https://t.iss.one/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.iss.one/linux_odmin Linux: Системный администратор
https://t.iss.one/devops_star DevOps Star (Звезда Девопса)
https://t.iss.one/i_linux Системный администратор
https://t.iss.one/linuxchmod Linux
https://t.iss.one/sys_adminos Системный Администратор
https://t.iss.one/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.iss.one/sysadminof Книги для админов, полезные материалы
https://t.iss.one/i_odmin Все для системного администратора
https://t.iss.one/i_odmin_book Библиотека Системного Администратора
https://t.iss.one/i_odmin_chat Чат системных администраторов
https://t.iss.one/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.iss.one/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.iss.one/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.iss.one/DevLab1C 1С:Предприятие 8
https://t.iss.one/razrab_1C 1C Разработчик
https://t.iss.one/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://t.iss.one/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://t.iss.one/cpp_lib Библиотека C/C++ разработчика
https://t.iss.one/cpp_knigi Книги для программистов C/C++
https://t.iss.one/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.iss.one/pythonofff Python академия.
https://t.iss.one/BookPython Библиотека Python разработчика
https://t.iss.one/python_real Python подборки на русском и английском
https://t.iss.one/python_360 Книги по Python
Java разработка 📌
https://t.iss.one/BookJava Библиотека Java разработчика
https://t.iss.one/java_360 Книги по Java Rus
https://t.iss.one/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.iss.one/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.iss.one/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.iss.one/developer_mobila Мобильная разработка
https://t.iss.one/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.iss.one/frontend_1 Подборки для frontend разработчиков
https://t.iss.one/frontend_sovet Frontend советы, примеры и практика!
https://t.iss.one/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.iss.one/game_devv Все о разработке игр
Библиотеки 📌
https://t.iss.one/book_for_dev Книги для программистов Rus
https://t.iss.one/programmist_of Книги по программированию
https://t.iss.one/proglb Библиотека программиста
https://t.iss.one/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.iss.one/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://t.iss.one/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.iss.one/rust_lib Полезный контент по программированию на Rust
https://t.iss.one/golang_lib Библиотека Go (Golang) разработчика
https://t.iss.one/itmozg Программисты, дизайнеры, новости из мира IT
https://t.iss.one/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.iss.one/nodejs_lib Подборки по Node js и все что с ним связано
https://t.iss.one/ruby_lib Библиотека Ruby программиста
https://t.iss.one/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://t.iss.one/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.iss.one/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.iss.one/thehaking Канал о кибербезопасности
https://t.iss.one/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.iss.one/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.iss.one/Pomatematike Канал по математике
https://t.iss.one/phis_mat Обучающие видео, книги по Физике и Математике
https://t.iss.one/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://t.iss.one/Excel_lifehack
https://t.iss.one/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.iss.one/sysadmin_rabota Системный Администратор
https://t.iss.one/progjob Вакансии в IT
Системное администрирование, DevOps 📌
https://t.iss.one/bash_srv Bash Советы
https://t.iss.one/win_sysadmin Системный Администратор Windows
https://t.iss.one/sysadmin_girl Девочка Сисадмин
https://t.iss.one/srv_admin_linux Админские угодья
https://t.iss.one/linux_srv Типичный Сисадмин
https://t.iss.one/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.iss.one/linux_odmin Linux: Системный администратор
https://t.iss.one/devops_star DevOps Star (Звезда Девопса)
https://t.iss.one/i_linux Системный администратор
https://t.iss.one/linuxchmod Linux
https://t.iss.one/sys_adminos Системный Администратор
https://t.iss.one/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.iss.one/sysadminof Книги для админов, полезные материалы
https://t.iss.one/i_odmin Все для системного администратора
https://t.iss.one/i_odmin_book Библиотека Системного Администратора
https://t.iss.one/i_odmin_chat Чат системных администраторов
https://t.iss.one/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.iss.one/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.iss.one/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.iss.one/DevLab1C 1С:Предприятие 8
https://t.iss.one/razrab_1C 1C Разработчик
https://t.iss.one/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://t.iss.one/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://t.iss.one/cpp_lib Библиотека C/C++ разработчика
https://t.iss.one/cpp_knigi Книги для программистов C/C++
https://t.iss.one/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.iss.one/pythonofff Python академия.
https://t.iss.one/BookPython Библиотека Python разработчика
https://t.iss.one/python_real Python подборки на русском и английском
https://t.iss.one/python_360 Книги по Python
Java разработка 📌
https://t.iss.one/BookJava Библиотека Java разработчика
https://t.iss.one/java_360 Книги по Java Rus
https://t.iss.one/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.iss.one/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.iss.one/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.iss.one/developer_mobila Мобильная разработка
https://t.iss.one/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.iss.one/frontend_1 Подборки для frontend разработчиков
https://t.iss.one/frontend_sovet Frontend советы, примеры и практика!
https://t.iss.one/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.iss.one/game_devv Все о разработке игр
Библиотеки 📌
https://t.iss.one/book_for_dev Книги для программистов Rus
https://t.iss.one/programmist_of Книги по программированию
https://t.iss.one/proglb Библиотека программиста
https://t.iss.one/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.iss.one/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://t.iss.one/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.iss.one/rust_lib Полезный контент по программированию на Rust
https://t.iss.one/golang_lib Библиотека Go (Golang) разработчика
https://t.iss.one/itmozg Программисты, дизайнеры, новости из мира IT
https://t.iss.one/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.iss.one/nodejs_lib Подборки по Node js и все что с ним связано
https://t.iss.one/ruby_lib Библиотека Ruby программиста
https://t.iss.one/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://t.iss.one/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.iss.one/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.iss.one/thehaking Канал о кибербезопасности
https://t.iss.one/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.iss.one/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.iss.one/Pomatematike Канал по математике
https://t.iss.one/phis_mat Обучающие видео, книги по Физике и Математике
https://t.iss.one/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://t.iss.one/Excel_lifehack
https://t.iss.one/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.iss.one/sysadmin_rabota Системный Администратор
https://t.iss.one/progjob Вакансии в IT
Telegram
Bash Советы
🚀 Секреты и советы по Bash
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Ktor Server Fundemantals. Часть 1
Освойте разработку бэкенда на Ktor с использованием Kotlin! Эта серия материалов охватывает основы Ktor, маршрутизацию, обработку запросов, аутентификацию и другие ключевые концепции, которые помогут вам эффективно создавать надежные серверные приложения.
источник
✍️ @kotlin_lib
Освойте разработку бэкенда на Ktor с использованием Kotlin! Эта серия материалов охватывает основы Ktor, маршрутизацию, обработку запросов, аутентификацию и другие ключевые концепции, которые помогут вам эффективно создавать надежные серверные приложения.
источник
✍️ @kotlin_lib
👍5