Привет! У нас для вас подарок к новогодним праздникам. Сегодня мы запускаем первую часть нашего нового курса по Go на платформе Coursera, посвященного разработке веб-сервисов. В этой части мы рассмотрим основы синтаксиса, асинхронную модель в Go, вопросы производительности и основу работы с HTTP в стандартной библиотеке.
Видя неослабевающий интерес к записям лекций из Техносферы, мы решили записать полноценный онлайн-курс, чтобы дать вам возможность не только ознакомиться с самим языком в теории, но и попробовать свои силы в решении практических задач. Ну и получить сертификат за это, показывающий, что вы с делом провели новогодние праздники. :)
Мы не ставили перед собой цель сделать всеохватывающий курс, обладающий энциклопедической ценностью, скорее ориентировались на быстрый старт для тех людей, которые уже заняты в веб-разработке, например на PHP, Python или JavaScript (Node.js), и хотят попробовать свои силы в Go, но не знают, с чего начать.
Вторая часть курса планируется к выходу в январе 2018 года. В ней будет рассказано про основные компоненты веб-сервиса, работу с различными базами данных и микросервисы на gRPC.
Go в данный момент является основным языком разработки Почты Mail.Ru, на нём написано уже много нагруженных сервисов и микросервисов нашего проекта. Нас очень радует то, что Go ориентирован на читабельность и поддерживаемость кода. Почему это важно? С развитием интернета кода приходится писать больше и больше, его сложность, которая complexity, растет вместе с количеством мегабайт в исходниках. И сейчас появляется всё больше инструментов для уменьшения работы, связанной с большими кодовыми базами: синтаксические анализаторы, инструменты для рефакторинга, автодополнение в IDE.
Если посмотреть на развитие веб-разработки, то можно заметить, что индустрия всегда развивалась в сторону более эффективных инструментов, не только в плане утилизации серверов, но и используемых в работе программистами. Сначала для веба писали на Си, в 90-е ему на смену пришел Perl, затем — PHP, который позволял делать то же самое, что и Perl, только проще. Тем не менее, сложность продолжала расти, и мир начал переходить к унификации, чтобы как-то упорядочить бесконечные обработчики сессий и валидаторы форм. Поэтому свою долю славы получили и паттерны проектирования, и фреймворки.
Теперь настала очередь синтаксического сахара. Go хорошо зашел, потому что на нём просто писать, просто читать. В нём осознанно мало синтаксического сахара, даже тернарного оператора нет. Мозг программиста отдыхает от творчества коллег и легче сосредоточиться на задаче. В курсе основы синтаксиса мы проходим в первой лекции, а уже во второй начинаем изучать асинхронную модель Go.
Надеемся, этот курс послужит для вас первым шагом в мир этого замечательно языка или же поможет увереннее чувствовать себя начинающим. Курс уже стартовал, регистрируйтесь.
С наступающим Новым Годом!
Комментарии (33)
beduin01
25.12.2017 17:30-2>Go хорошо зашел, потому что на нём просто писать простыни кода
/fixed
>В нём осознанно мало синтаксического сахара, даже тернарного оператора нет. Мозг программиста отдыхает от творчества коллег и легче сосредоточиться на задаче.
Опять маркетинговый бред в стиле mail.ru
Go не позволяет делать элементарные обобщения. В итоге програмист вынужден писать тонны кода. Больше кода, больше ошибок, сложнее поддержка, тестирование, сопровождение.
Так что Go не простой язык. Go — ущербный язык. Можно код с Go сравнить с любым другим языком и убедиться в этом самостоятельно.TimsTims
25.12.2017 18:30На каждый пост о Go обязательно слетаются хейтеры :) Точно так же, как слетались и на PHP(вроде уже поутихли споры?)
Из всех хейтерских записей прихожу к выводу, что о любом языке можно накопать много того, что ТЕБЕ в нем не нравится, но это не означает, что другим это тоже не нравится.dborovikov
25.12.2017 19:20+1Я более-менее регулярно занимаюсь разработкой на Go уже год. И хочу сказать, что скорее соглашусь про простыни кода. Язык действительно бедный и приводит к написанию бойлерплейт-кода.
Ни многословность языка, ни компактность языка автоматически не делают код читаемым — тут важен баланс, и у Go он сбит в сторону излишней многословности.
Тем не менее Go — отличный инструмент, не за синтаксис его любим =) Отличный быстрый компилятор, отличный рантайм с low-latency gc и конечно же горутины!RPG18
25.12.2017 23:18Язык действительно бедный и приводит к написанию бойлерплейт-кода.
Все постигается в сравнении. Например кода на C/C++ то же будет предостаточно.
druidlab
26.12.2017 12:17+1 кода на с++ будет значительно больше
KosToZyB
27.12.2017 08:59поддерживаю. на C++ вам потребуется написать десятки классов для написания аналогичного http сервера, идущего в Go из коробки. но лучше не сравнивать эти языки, все таки для разных задач их лучше использовать.
RPG18
27.12.2017 10:50Если посмотреть на ранние видео badoo про go. То они начали с переписывания сервиса на си.
berezuev
25.12.2017 19:28Точно так же, как слетались и на PHP(вроде уже поутихли споры?)
Да какой утихло… Это целая дисциплина специальной олимпиады — рассказывать про минусы PHP, присущие версии 5.2 :)myrkoxx
26.12.2017 09:31>> рассказывать про минусы PHP, присущие версии 5.2 :)
особенно когда на улице 7.2 XDSimplevolk
26.12.2017 10:04а PHP сейчас как? Хорош? Есть классы и строгая типизация? Это не сарказм и не издевка.
VolCh
26.12.2017 11:05Добро пожаловать в третье тысячелетие — классы в PHP появились в версии 4, в конце второго тысячелетия. Приличные (с интерфейсами, константами, сокрытием членов и т. п.) в 5.0 в 2004, тогда же тайп-хинтинг (строгая типизация или явное приведение в зависимости от директивы) параметров функции/метода для объектных типов и массивов, позже почти для всех типов (для resource — обёртка/аналог файлового дескриптора пока нет вроде). Ещё нам завезли автозагрузку классов (часто во кодовой базе на десятки и более тысяч loc только два require), рефлексию, почти полноценную поддержку анонимных функций и замыканий (почти — обычные функции/методы не являются инстансами Closure, можно преобразовать, но не бесшовная интеграция), позднее статическое связывание, приличный уборщик мусора, которому можно доверять уборку в демонах, объектные API для баз данных (по крайней мере для всех популярных), много внутренних оптимизаций (наверное суммарно в разы поднята скорость и уменьшено потребление памяти по сравнению с PHP3, который вы застали :) ), стандарт де-факто менеджер пакетов composer, больше десятка стандартов PSR (стандарты именования и популярные интерфейсы) и прочая, и прочая, и прочая.
Simplevolk
26.12.2017 11:31Помню, во времена учебы в институте приобрел книгу «PHP 4 для профессионалов». С тех пор не трогал этот язык. Спасибо за подробные комментарии.
bano-notit
25.12.2017 23:42КДПВ сработало просто охренительно. Прочёл только жирный текст, зашёл, а тут курсы…
henu3detb
26.12.2017 00:12Это курс предназначен для людей с опытом в веб-программировании. Если вы пишите на PHP/Python/Ruby/JS (Node.js)
jahr
26.12.2017 00:28А с этим курсом Вы собираетесь поступить также, как и с курсами по дизайну интерфейсов и закрыть специализацию посередине, несмотря на то, что набрали кучу платных пользователей, которые оплатили первые курсы зря, потому что специализацию закончить не выйдет?
WinLin2
26.12.2017 12:181. "… в 90-е ему на смену пришел Perl"
2. moikrug.ru/vacancies/1000037877 «Perl разработчик (Новый проект)»:
«Мы стоим на пороге запуска нового проекта — аналог крупнейших мировых, не имеющих до сих пор аналогов в России IaaS/PaaS провайдеров.»
mail.ru в состоянии поиска?RPG18
26.12.2017 15:32Вроде почта была написана на Perl, а потом Новый выпуск Oh, My Code — Облако, Perl и хорошие программисты
OnYourLips
26.12.2017 14:27Go хорошо зашел, потому что на нём просто писать, просто читать.
Категорически не согласен. На нем проще писать и читать на небольших проектах, а вот на больших сложнее.
А его киллер фича — простота вхождения в технологию, позволяющая уже вчерашним новичкам писать проекты достойного качества.
khigor777
27.12.2017 16:55Спасибо, сморел Ваши курсы на youtube, понравилисось то что вы более полно расскрываете, то что нужно в работе и реально применяется, особенно тема про профайлинг.
VolCh
Я правильно понимаю, что попробовать свои силы стоит почти 80 баксов? )
Caravus
Гугл говорит что всего 60 баксов, чуть больше. 3 474 руб.
QtRoS
Вроде бесплатно можно посмотреть курс без домашних заданий (которые по названию и так понятно на что нацелены).
Vladgold
На курсере можно выбрать Audit и слушать бесплатно.
VolCh
Я про задания.
Vadem
Вы можете выполнять задания, но не сможете отправить задание на проверку если не приобретёте сертификат.
С заданиями есть тесты, так что и без проверки понятно правильно оно сделано или нет.
Но курс, похоже, действительно неплохой. Я бы точно прикупил сертификат если бы не знал Go.
VolCh
О, это сильно меняет дело. По интерфейсу сложилось впечатление, что бесплатно только теория.