Продолжаем разбираться с Golang. На этот раз смотрим на минусы этого языка по мнению нашего инженера департамента инфраструктуры Алексея Косова. Что бы вы могли добавить? #языки_программирования #golang
🔴 Наличие сборщика мусора. Всё-таки он влечёт за собой дополнительные расходы на потребление ресурсов ЦП и оперативной памяти.
🔴 Обработка ошибок. Итак, мы вызвали каждую функцию и получили переменную, в которой должна записаться ошибка. Однако её там может и не быть. Поэтому после каждого вызова мы должны проверить её наличие и, если она есть, определить тип ошибки.
Проблема в том, что после каждого вызова функции или метода у нас повторяется один и тот же статичный блок с проверкой. И на одну строчку вызова может быть 3-5 строчек проверки обработки ошибок. Код превращается в портянку — первое время это сильно режет глаза, но потом привыкаешь. Этот минус скорее не про функциональность, а эстетику.
🔴 Неявная реализация интерфейсов. Сами интерфейсы — штука удобная, но только когда ты сам что-то разрабатываешь. Для того, чтобы реализовать интерфейс в Go, нет необходимости использовать ключевое слово, как, например, implements в Java.
В Golang любой тип данных, который реализует все методы интерфейса, автоматически реализует сам интерфейс. Мне кажется, что неявная реализация интерфейсов затрудняет понимание отдельных частей кода и процесс реверс-инжиниринга, которым мы как раз занимаемся.
Проблема в том, что после каждого вызова функции или метода у нас повторяется один и тот же статичный блок с проверкой. И на одну строчку вызова может быть 3-5 строчек проверки обработки ошибок. Код превращается в портянку — первое время это сильно режет глаза, но потом привыкаешь. Этот минус скорее не про функциональность, а эстетику.
В Golang любой тип данных, который реализует все методы интерфейса, автоматически реализует сам интерфейс. Мне кажется, что неявная реализация интерфейсов затрудняет понимание отдельных частей кода и процесс реверс-инжиниринга, которым мы как раз занимаемся.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏4⚡2🐳1
Golang — какие особенности обучения есть у этого языка программирования? Рассказывает инженер департамента инфраструктуры «Криптонита» Алексей Косов.
🧠 У Golang низкий порог входа. Изучать его легче, чем Java, но сложнее, чем Python. Go — небольшой молодой язык, который, скорее всего, задумали простым изначально. Например, можно реализовать действие в одну строчку вместо десяти.
У Go есть удобная система модулей — можно подключить уже созданные библиотеки и повторно использовать их. При этом они будут на том же языке и с тем же синтаксисом, а не в виде миллиона фреймворков, которые все написаны по-разному, как в JavaScript.
Потребность изучить Golang у меня возникла на работе, так как в проекте поменялся стек. Вместо Java- я стал Go-разработчиком. Так исторически сложилось, что я предпочитаю самообучение. Поэтому я пользовался metanit.com и habr.com, где можно пробежаться по основам.
📚 Ещё я прочитал книгу «Язык программирования Go» Донована и Кернигана, которая как раз подходит для начинающих. Ещё у Go большое количество библиотек и, поскольку это open source-сообщество, есть куча проектов на GitHub. Можно какой-нибудь из них позаимствовать или поучаствовать в разработке.
📣 А если есть вопросы — воспользоваться русскоязычным чатом в Telegram.
По поводу курсов: у меня есть пример из жизни. Знакомый купил годовой курс «Разработчик на Go» популярной образовательной платформы.
Целый год они изучали всё, что только можно, но не Golang: базы данных, Docker, Git, сети; успели пройти базу по Python, С++, Java… и лишь в конце немного коснулись нужной темы. Всё, что они успели изучить по Go, можно было пройти за двухнедельный интенсив. #языки_программирования #golang
У Go есть удобная система модулей — можно подключить уже созданные библиотеки и повторно использовать их. При этом они будут на том же языке и с тем же синтаксисом, а не в виде миллиона фреймворков, которые все написаны по-разному, как в JavaScript.
Потребность изучить Golang у меня возникла на работе, так как в проекте поменялся стек. Вместо Java- я стал Go-разработчиком. Так исторически сложилось, что я предпочитаю самообучение. Поэтому я пользовался metanit.com и habr.com, где можно пробежаться по основам.
По поводу курсов: у меня есть пример из жизни. Знакомый купил годовой курс «Разработчик на Go» популярной образовательной платформы.
Целый год они изучали всё, что только можно, но не Golang: базы данных, Docker, Git, сети; успели пройти базу по Python, С++, Java… и лишь в конце немного коснулись нужной темы. Всё, что они успели изучить по Go, можно было пройти за двухнедельный интенсив. #языки_программирования #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👾3
Можно потренироваться на Telegram-боте. Он ничем вас не ограничит — не придётся искать сервер для хостинга, чтобы показать свой маленький домашний проект. Нужно лишь посмотреть как пользоваться Telegram API (по этой теме информации полно) и придумать идею.
Попробуйте двигаться от простого к сложному: развивайте и поддерживайте свой проект. Его демонстрация станет преимуществом на собеседовании. Код скажет о вас больше пачки дипломов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4👏3