fun main() — точка входа Kotlin
На JVM точка входа — всё тот же public static void main(String[] args). Kotlin позволяет писать его короче: fun main() или fun main(args: Array<String>).
См. также: Первая программа · Java — main в соседнем разделе · Python — аналог.
Минимальная программа
fun main() {
println("Hello, Kotlin")
}
Компилятор генерирует класс Kt (или имя файла) со static main для JVM. Запуск через IntelliJ, kotlin MainKt или Gradle application plugin.
С аргументами:
fun main(args: Array<String>) {
args.forEach { println(it) }
}
main внутри класса
class App {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("Старт")
}
}
}
@JvmStatic нужен, чтобы JVM увидела статический main в companion — иначе вызов идёт через объект companion.
Import и main
Как в Java, import com.example.Calculator не вызывает main. Другой модуль использует Calculator.add(1, 2) без запуска демо.
object Calculator {
fun add(a: Int, b: Int) = a + b
}
fun main() {
println(Calculator.add(5, 3))
}
| Действие | main |
|---|---|
Запуск файла / Gradle run | Выполняется |
import функций из другого модуля | Не выполняется |
Android и Ktor
- Android — точка входа в Activity /
Application, неfun main()в приложении на устройстве. - Ktor / консоль —
fun main()поднимает embedded-сервер или CLI.
Сравнение с Python и Java
| Python | Java | Kotlin | |
|---|---|---|---|
| Точка входа | if __name__ == "__main__": | public static void main | fun main() |
| Import запускает main | Нет (если код в блоке) | Нет | Нет |
Дальше по разделу
| Тема | Статья |
|---|---|
| IntelliJ, Maven | Первая программа на Kotlin — Первая программа |
| Java interop | История языка Kotlin — Основы |
| Ktor | статьи раздела по backend |
Расширение темы
Что важно понимать на практике
Тема точка входа main в Kotlin редко ограничивается только определением и одним примером. В реальной работе важно понимать контекст: зачем это нужно бизнесу, какие есть ограничения, и как решение ведет себя при росте нагрузки. Полезный ориентир: любой новый термин должен быть привязан к конкретному сценарию, где он приносит измеримую пользу.
Рабочий подход для новичка
- Сначала собрать минимальный рабочий пример.
- Затем усложнить его: добавить негативный сценарий и обработку ошибок.
- После этого проверить читаемость и поддержку: понятные имена, единый стиль, комментарии только там, где без них трудно.
- В конце — зафиксировать выводы и правила, чтобы команда использовала один подход.
Типичные ошибки
- Слишком ранняя оптимизация до понимания базового сценария.
- Смешение нескольких задач в одном большом модуле.
- Отсутствие критериев качества, из-за чего решение сложно проверить.
- Копирование кода без объяснения, почему выбран именно этот путь.
Мини-практика
Возьмите небольшой фрагмент по теме точка входа main в Kotlin и улучшите его в три шага: сначала сделайте рабочим, затем устойчивым к ошибкам, затем удобным для чтения другим разработчиком. Так формируется инженерное мышление: также "чтобы запускалось", но и "чтобы поддерживалось".
Как проверять качество результата
- Понимает ли другой человек решение без устных пояснений.
- Есть ли пример входных данных и ожидаемый результат.
- Очевидно ли, где расширять решение дальше.
- Не нарушен ли единый стиль раздела и терминов.
Если эти пункты выполняются, материал становится полезным также для знакомства с темой, но и для ежедневной практики.
Дополнительный пример
Контекст -> Решение -> Проверка -> Выводы
Такой шаблон можно применять почти к любой инженерной задаче: он помогает не терять логику и быстрее объяснять решение команде.
Углубление и сценарии применения
Сценарий 1 базовый
Сначала фиксируйте самый простой рабочий сценарий, где тема приносит понятный результат. Затем добавляйте проверку входных данных и явную обработку ошибок. Такой порядок помогает избежать хрупкой архитектуры.
Сценарий 2 командная разработка
Когда с материалом работает несколько человек, договоритесь о единых соглашениях: структура файлов, правила именования, формат примеров и критерии готовности. Это уменьшает число конфликтов и ускоряет ревью.
Сценарий 3 масштабирование
При росте проекта полезно заранее определить границы модулей, точки расширения и ответственность между слоями. Даже простая диаграмма зависимостей помогает увидеть узкие места до того, как они станут проблемой в продакшене.
Антипаттерны
- Монолитный модуль без разделения ответственности.
- Отсутствие тестовых примеров и проверяемых критериев результата.
- Скрытые зависимости, о которых знает только автор.
- Документация, которая не совпадает с текущей реализацией.
Что добавить в личный конспект
- Короткое определение термина своими словами.
- Один рабочий пример с ожидаемым результатом.
- Два частых сбоя и способ их предотвращения.
- Мини-шпаргалку по проверке качества перед публикацией.
Так материал превращается из "прочитал и забыл" в инструмент, который можно использовать в работе и обучении.
Углубление и сценарии применения
Сценарий 1 базовый
Сначала фиксируйте самый простой рабочий сценарий, где тема приносит понятный результат. Затем добавляйте проверку входных данных и явную обработку ошибок. Такой порядок помогает избежать хрупкой архитектуры.
Сценарий 2 командная разработка
Когда с материалом работает несколько человек, договоритесь о единых соглашениях: структура файлов, правила именования, формат примеров и критерии готовности. Это уменьшает число конфликтов и ускоряет ревью.
Сценарий 3 масштабирование
При росте проекта полезно заранее определить границы модулей, точки расширения и ответственность между слоями. Даже простая диаграмма зависимостей помогает увидеть узкие места до того, как они станут проблемой в продакшене.
Антипаттерны
- Монолитный модуль без разделения ответственности.
- Отсутствие тестовых примеров и проверяемых критериев результата.
- Скрытые зависимости, о которых знает только автор.
- Документация, которая не совпадает с текущей реализацией.
Что добавить в личный конспект
- Короткое определение термина своими словами.
- Один рабочий пример с ожидаемым результатом.
- Два частых сбоя и способ их предотвращения.
- Мини-шпаргалку по проверке качества перед публикацией.
Так материал превращается из "прочитал и забыл" в инструмент, который можно использовать в работе и обучении.
Термины простыми словами
- SLA — согласованный срок реакции и решения по обращению.
- Инцидент — сбой, который нарушает работу сервиса.
- Мастер-данные — ключевые справочники, общие для разных процессов.
- TCO — полная стоимость владения решением за выбранный период.