job4j.ru - Практика. Ревью. Результат.
771 subscribers
75 photos
186 links
О жизни в IT:
- Языки: Go, Rust, Java, Kotlin
- Технологии: PostgreSQL, Kafka
- Инфраструктура: Docker, Kubernetes
- Soft Skills: общение, интервью, карьера
Download Telegram
💻 Проверь свои знания по корутинам в Kotlin перед собеседованием!

Корутины — это одна из ключевых тем в Kotlin, которая часто встречается на собеседованиях. Готовы ли вы к вопросам по этой теме?

🚀 Ответьте на 23 вопроса с собеседований и убедитесь, что ваши знания на высоте! Подготовьтесь к следующему этапу карьеры и получите полезные рекомендации по улучшению навыков.

👉 Начать проверку можно по ссылке: [job4j.ru/profile/interview/9](https://job4j.ru/profile/interview/9)

Не упустите возможность подготовиться к собеседованию на высоком уровне! #Kotlin #Coroutines #Job4j
🔥3👍1
🔥 Использование `this` в программировании: Мой путь и Kotlin-философия 🔥

Привет, ребята! 👋 Сегодня хочу поделиться своим опытом по поводу использования this в коде. Надеюсь, вам будет интересно! 🚀

---

🔹 Начало пути: Чистый код и `this`

Когда я только начинал как программист, строго следовал правилам из классической книги Роберта Мартина "Чистый код". Одно из главных правил было всегда использовать `this`. Почему? 🤔

- Ясность: this явно показывает, что мы обращаемся к свойству или методу текущего объекта.

  class User(val name: String) {
fun updateName(name: String) {
this.name = name
}
}


- Читаемость: Код становится понятнее для других разработчиков.

---

🔹 Сомнения и поиск баланса

Со временем начал задумываться: Действительно ли нужно всегда использовать `this`? Иногда это приводит к загромождению кода:

this.service(this.value, this.otherValue, this.anotherProperty)


Такой код выглядит шумно и тяжело читается. 🤯

---

🔹 Открытие Kotlin и новая философия

Познакомившись с Kotlin, понял, что язык предоставляет больше гибкости. В Kotlin this не обязателен, если нет конфликтов имен или необходимости явно указать контекст. Это позволяет писать более лаконичный код:

fun updateName(name: String) {
this.name = name // Необходим здесь
}

fun displayName() {
println(name) // Здесь можно без `this`
}


---

🔹 Советы от разработчиков Kotlin

Разработчики Kotlin рекомендуют использовать this в определённых случаях, например, в расширяющих функциях:

fun Set<String>.countBy(criteria: (String) -> Boolean): Int {
return this.count(criteria)
}


Здесь this помогает явно указать контекст, но иногда это может запутывать, если не добавляет ясности. 🤷‍♂️

---

🔹 Мои выводы

💡 Используйте `this` осознанно — не следуйте правилам слепо. Важно, чтобы код оставался читабельным и понятным. Kotlin даёт свободу решать, когда this действительно нужен, а когда можно обойтись без него.

Баланс между явностью и лаконичностью — ключ к чистому коду. Помните, что цель — создавать понятный и поддерживаемый продукт, а не просто следовать правилам.

---

Спасибо, что прочитали! Надеюсь, мой опыт поможет вам в написании более чистого и понятного кода. Делитесь своими мыслями в комментариях! 💬👇

#программирование #Kotlin #ЧистыйКод #Советы #Разработка #Кодинг
👍8🔥1
Настройки окружения через Gradle плагин dotEnv

В этой статье расскажем, как удобно хранить и управлять настройками окружения для разных сред (локальный, develop, test, stage, production) с помощью Gradle и плагина dotenv.

Зачем это нужно?
Обычно у нас есть несколько стендов разработки, каждый из которых требует своих настроек. Прямое изменение настроек в build.gradle или других конфигурационных файлах неудобно. Решением этой проблемы является использование проекта dotenv, который позволяет хранить ключи и другие данные в простом текстовом файле с расширением .env.

Подключение плагина
Для начала добавьте плагин в ваш файл build.gradle.kts:

id("co.uzzu.dotenv.gradle") version "4.0.0"


Создание файла настроек
Создайте файл env/.env.local и добавьте в него необходимые параметры:

DB_URL=jdbc:postgresql://localhost:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password


Указание пути к файлу
Добавьте настройку в gradle.properties, чтобы указать путь к вашему .env файлу:

dotenv.filename=env/.env.local


Создание задачи для демонстрации
Для демонстрации работы создадим задачу profile в build.gradle.kts:

tasks.register("profile") {
doFirst {
println(env.DB_URL.value)
}
}


Запустите задачу командой:

gradle profile


Результат:

> Task :profile
jdbc:postgresql://localhost:5432/job4j_devops


Создание нового файла настроек для другого окружения
Создайте новый файл env/.env.develop:

DB_URL=jdbc:postgresql://develop:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password


Запустите задачу с изменением пути к файлу через параметр:

gradle profile -P"dotenv.filename"="env/.env.develop"


Результат:

> Task :profile
jdbc:postgresql://develop:5432/job4j_devops


Ключ -P позволяет гибко изменять окружение, подставляя нужные файлы конфигурации.


🔧 Узнать больше о настройках и DevOps можно на нашем курсе! Присоединяйтесь и улучшайте свои навыки в управлении окружениями! #Gradle #DevOps #dotenv #Kotlin #Программирование
🔥5⚡2