Time to GO: розбираємо, що таке Golang та радимо, з чого почати

share

Продовжуємо ділитись досвідом та розповідати про переваги тих чи інших технологій. Наразі маємо вже цілу низку публікацій та колонок, де експерти 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. Його досвід та поради – перед вами!

  • В який момент ти вирішив перейти на Golang? 

Більшу частину своєї кар’єри я розробляв бекенд на Node.js. В певний момент задачі почали нагадувати рутину, тоді й захотів спробувати щось нове при цьому не змінюючи домену бекенд розробника. Так і звернув увагу на Golang

  • Чому Golang на сьогодні є актуальною технологією? 

Сучасні сервери вирішують різні бізнес потреби від простих які не потребують відносно високої швидкої до тих де обробка запитів повинна залишаться у суворих межах і завершуватися максимально швидко – це якраз те із чим Golang справляється дуже добре, при тому синтаксис Golang є однозначним що дає перевагу у читабельності коду та його підтримці у майбутньому.

  • Чому тобі цікавий саме цей напрям? Скільки часу в цілому зайняло опанування технології?

Мова є достатньо перспективною, на мій погляд, адже вона дозволяє розробляти не тільки сервери, а й десктопні застосунки. Вона близька по швидкодії до С/С++ при цьому на порядок простіша у вивченні.

  • Які навички будуть корисними для інженера з Golang? З якої технології буде швидше\простіше перейти?

У мене був досвід роботи із статично типізованими мовами програмування С++/Java тому перехід був досить простий. Познайомившись із базовими конструкціями мови вже через кілька днів зміг писати код необхідний для проєкту.

Навички напевно будуть не дуже специфічні для Golang, а для будь-якої мови програмування. Головне – це намагання зрозуміти ідею та принципи, які вкладаються авторами Golang і постійно слідкувати за апдейтами у самій мові.

Найшвидший та найпростіший буде перехід для інженерів, що мають досвід зі статичними мовами програмування C++/Java/C#. Golang має дуже схожий синтаксис із мовами сімейства С/С++.

  • Який момент при переході був найскладнішим? 

Перший час було трохи незвично перемикнутися із динамічної типізації на статичну, та зрозуміти концепцію goroutines та як ефективно/правильно із ними працювати.

  • А яка була найбільш цікава?

Цікаві моменти якраз пов’язані із  goroutines та одним із засобів синхронізації каналами (channels). В node.js я не стикався із чимось подібним, тому було цікаво зрозуміти щось нове і випробувати на практиці. Також мені подобається концепція реалізації інтерфейсів (неявна реалізація), яка надає динамічності та гнучкості при тому ти не втрачаєш контроль за типом, бо мова є строго типізованою.

  • Твої побажання тим інженерам, які прагнуть опанувати Golang

Бути в курсі розвитку мови та її останніх апдейтів, а вони будуть :)) та звичайно  удосконалювати свої скіли на практиці. Початківцям раджу виконувати тестові задачі та читати літературу. Для інженерів які вже володіють будь-якою мовою програмування – спробувати переписати на Go одну із програм яку колись вони вже реалізовували.

Бажаєте опанувати актуальну технологію? Спробувати щось нове? Тоді чекаємо на вас на Golang GL Crash Course!

Реєстрація

 

Author

Roman Ostash

Lead Software Engineer, Engineering, GlobalLogic

View All articles

Категорії блогу

Категорії блогів

ТОП автори

Dmytro Haidenko

Dmytro Haidenko

Senior Test Engineer, Quality Assurance, GlobalLogic

Dmytro Ryabokon

Dmytro Ryabokon

Director, Engineering, GlobalLogic

Roman Ostash

Roman Ostash

Lead Software Engineer, Engineering, GlobalLogic

Maryna Sergiyenko

Maryna Sergiyenko

Associate Manager, Engineering, GlobalLogic

Yaroslav Pushko

Yaroslav Pushko

Lead Software Engineer, Engineering, GlobalLogic

Архів

Подивіться наші попередні колонки

Подивитись архів