Здесь я не собираюсь говорить о каких-либо специфичных для Kotlin функциях или моих любимых, но вместо этого это будет высокоуровневый обзор процесса переключения, первых результатов и того, как это влияет на мою команду.
Около года назад мы решили перенести наш проект (около 50 микросервисов, написанных на Java (предпочтительно), Scala, Groovy, NodeJS) в Kotlin.
Ремонтопригодность То, что поначалу казалось просто “синтаксическим сахаром”, улучшило читаемость, выразительность и, как следствие, ремонтопригодность кода. Понятно, что речь идет не только о языке, но это здорово, когда язык продвигает такие аспекты.
Неизменяемость Язык сильно мотивирует к написанию неизменяемого кода и предлагает широкий спектр функциональных возможностей для этого. В результате: мы отошли от хранения состояния в службах, и теперь у нас есть несколько экземпляров каждой службы. Следовательно, мы можем масштабироваться горизонтально при возрастающей нагрузке, и мы не могли использовать это раньше.
Совместимость Kotlin обладает отличной совместимостью с Java. Вы можете вызывать функции, написанные на Kotlin, из Java и наоборот. На самом деле вам не нужно переписывать весь сервис за один раз, что создает пробелы в предоставлении ценности. Это болезненно для бизнеса и часто просто невозможно. Мы осуществляли наш переход постепенно, шаг за шагом. Переписывая компонент за компонентом, ничего не нарушая и не разрушая, и в каждый момент времени наш код оставался функциональным, предоставлял клиентам новые функции и продолжал зарабатывать деньги.
Удовлетворение Удовольствие, легкость работы с кодовой базой возросли, и я считаю, что это важно. Когда команда счастлива, выигрывают все. Теперь ясно, что первоначальные затраты времени и усилий были оправданы.
-1. Слабость Очевидным недостатком была и остается скорость компиляции, вывода типов и подсказок в IDE. Это действительно раздражает, особенно при переходе с Java, где с этими вещами все хорошо.
Но у нас есть хорошие новости здесь ! Похоже, ребята из JetBrains прекрасно понимают, что делают! 😉
Оригинал: “https://dev.to/vadim_lopatka/switching-to-kotlin-short-overview-2id0”