Технологічні рішення
Технологічні рішенняСАНТА-КЛАРА, Каліфорнія — 10 січня 2025 року — Компанія GlobalLogic Inc., що є частиною...
GlobalLogic оголосила про партнерство з Nokia для прискорення впровадження передових 5G...
GlobalLogic надає унікальний досвід і експертизу на перетині даних, дизайну та інжинірингу.
Зв'яжіться з намиПродовжуємо ділитись досвідом та розповідати про переваги тих чи інших технологій. Наразі маємо вже цілу низку публікацій та колонок, де експерти GlobalLogic діляться своїм баченням індустрії та порадами, як швидше та ефективніше опанувати ту чи іншу технологію.
Сьогодні ми поговоримо про трендову технологію, а саме – Golang. У 2019 саме Golang очолила рейтинг мов програмування, які найшвидше розвиваються. Сьогодні, за даними StachOverflow, вона на 3 місці, пропустивши вперед JavaScript та Python.
Зараз GlobalLogic активно розвиває цей напрям – відкрита реєстрація на спеціальний Golang GL CrashCourse, де кожен інженер може опанувати цю технологію. Подробиці – за посиланням.
У цій колонці ми розберемо, що таке Go, в чому його феномен зараз та до чого бути готовим при його вивченні. Поїхали!
Що таке Golang сьогодні?
Почнемо з невеличкої історичної довідки. Як підказує нам назва, мова Go була розроблена у Google. Її маскотом став чи то ведмедик, чи то бобер ніжно-блакитного кольору.
Go був розроблений інженерами Google Робертом Гріземером, Робом Пайком та Кеном Томпсоном. Це статично типізована, компільована мова. Перша версія була випущена у відкритому коді в березні 2012 року.
Популярність Go. Як це працює?
Golang має схожість з C. Go була створена для заміни C ++, оскільки процес вивчення C ++ є занадто довгим і складним. Go дозволяє швидко та легко реалізувати проєкт і може використовуватись для написання мікросервісів. Це перевага для розробки спеціалізованих продуктів з дуже вузьким функціоналом.
Програми, написані на Golang, зазвичай працюють швидше, ніж програми, написані іншими мовами програмування.
GlobalLogic та Golang
Зараз GlobalLogic активно збільшує кількість проєктів з Go як основною мовою програмування. Ми також бачимо тенденцію великих компаній “переписувати проєкт з будь-якої іншої мови програмування на Go”.
Тенденція полягає в тому, що зараз Go використовується для розробки речей, які зазвичай написані на C ++: таких як продуктивний бекенд, обробка даних та ключова нетривіальна бізнес-логіка. Загалом, те, що раніше використовувалося для розробки на C ++, .Net або Java, зараз розробляється за допомогою Golang.
Згідно з останніми дослідженнями, зараз існує величезна тенденція і ми плануємо цей попит втамувати.
Golang – з чого почати
У цьому розділі ми розпитали інженера, який не так давно перейшов на Golang – Романа Осташа, Lead Software Engineer, Engineering, GlobalLogic. Його досвід та поради – перед вами!
Більшу частину своєї кар’єри я розробляв бекенд на Node.js. В певний момент задачі почали нагадувати рутину, тоді й захотів спробувати щось нове при цьому не змінюючи домену бекенд розробника. Так і звернув увагу на Golang
Сучасні сервери вирішують різні бізнес потреби від простих які не потребують відносно високої швидкої до тих де обробка запитів повинна залишаться у суворих межах і завершуватися максимально швидко – це якраз те із чим Golang справляється дуже добре, при тому синтаксис Golang є однозначним що дає перевагу у читабельності коду та його підтримці у майбутньому.
Мова є достатньо перспективною, на мій погляд, адже вона дозволяє розробляти не тільки сервери, а й десктопні застосунки. Вона близька по швидкодії до С/С++ при цьому на порядок простіша у вивченні.
У мене був досвід роботи із статично типізованими мовами програмування С++/Java тому перехід був досить простий. Познайомившись із базовими конструкціями мови вже через кілька днів зміг писати код необхідний для проєкту.
Навички напевно будуть не дуже специфічні для Golang, а для будь-якої мови програмування. Головне – це намагання зрозуміти ідею та принципи, які вкладаються авторами Golang і постійно слідкувати за апдейтами у самій мові.
Найшвидший та найпростіший буде перехід для інженерів, що мають досвід зі статичними мовами програмування C++/Java/C#. Golang має дуже схожий синтаксис із мовами сімейства С/С++.
Перший час було трохи незвично перемикнутися із динамічної типізації на статичну, та зрозуміти концепцію goroutines та як ефективно/правильно із ними працювати.
Цікаві моменти якраз пов’язані із goroutines та одним із засобів синхронізації каналами (channels). В node.js я не стикався із чимось подібним, тому було цікаво зрозуміти щось нове і випробувати на практиці. Також мені подобається концепція реалізації інтерфейсів (неявна реалізація), яка надає динамічності та гнучкості при тому ти не втрачаєш контроль за типом, бо мова є строго типізованою.
Бути в курсі розвитку мови та її останніх апдейтів, а вони будуть :)) та звичайно удосконалювати свої скіли на практиці. Початківцям раджу виконувати тестові задачі та читати літературу. Для інженерів які вже володіють будь-якою мовою програмування – спробувати переписати на Go одну із програм яку колись вони вже реалізовували.
Бажаєте опанувати актуальну технологію? Спробувати щось нове? Тоді чекаємо на вас на Golang GL Crash Course!