Привет! У нас для вас подарок к новогодним праздникам. Сегодня мы запускаем первую часть нашего нового курса по 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)


  1. VolCh
    25.12.2017 17:29

    но и попробовать свои силы в решении практических задач. Ну и получить сертификат

    Я правильно понимаю, что попробовать свои силы стоит почти 80 баксов? )


    1. Caravus
      25.12.2017 21:48

      Гугл говорит что всего 60 баксов, чуть больше. 3 474 руб.


    1. QtRoS
      25.12.2017 23:40

      Вроде бесплатно можно посмотреть курс без домашних заданий (которые по названию и так понятно на что нацелены).


    1. Vladgold
      26.12.2017 12:17

      На курсере можно выбрать Audit и слушать бесплатно.


      1. VolCh
        26.12.2017 12:38

        Я про задания.


        1. Vadem
          26.12.2017 19:14

          Вы можете выполнять задания, но не сможете отправить задание на проверку если не приобретёте сертификат.
          С заданиями есть тесты, так что и без проверки понятно правильно оно сделано или нет.
          Но курс, похоже, действительно неплохой. Я бы точно прикупил сертификат если бы не знал Go.


          1. VolCh
            27.12.2017 15:33

            О, это сильно меняет дело. По интерфейсу сложилось впечатление, что бесплатно только теория.


  1. beduin01
    25.12.2017 17:30
    -2

    >Go хорошо зашел, потому что на нём просто писать простыни кода
    /fixed

    >В нём осознанно мало синтаксического сахара, даже тернарного оператора нет. Мозг программиста отдыхает от творчества коллег и легче сосредоточиться на задаче.
    Опять маркетинговый бред в стиле mail.ru
    Go не позволяет делать элементарные обобщения. В итоге програмист вынужден писать тонны кода. Больше кода, больше ошибок, сложнее поддержка, тестирование, сопровождение.

    Так что Go не простой язык. Go — ущербный язык. Можно код с Go сравнить с любым другим языком и убедиться в этом самостоятельно.


    1. TimsTims
      25.12.2017 18:30

      На каждый пост о Go обязательно слетаются хейтеры :) Точно так же, как слетались и на PHP(вроде уже поутихли споры?)
      Из всех хейтерских записей прихожу к выводу, что о любом языке можно накопать много того, что ТЕБЕ в нем не нравится, но это не означает, что другим это тоже не нравится.


      1. dborovikov
        25.12.2017 19:20
        +1

        Я более-менее регулярно занимаюсь разработкой на Go уже год. И хочу сказать, что скорее соглашусь про простыни кода. Язык действительно бедный и приводит к написанию бойлерплейт-кода.

        Ни многословность языка, ни компактность языка автоматически не делают код читаемым — тут важен баланс, и у Go он сбит в сторону излишней многословности.

        Тем не менее Go — отличный инструмент, не за синтаксис его любим =) Отличный быстрый компилятор, отличный рантайм с low-latency gc и конечно же горутины!


        1. RPG18
          25.12.2017 23:18

          Язык действительно бедный и приводит к написанию бойлерплейт-кода.

          Все постигается в сравнении. Например кода на C/C++ то же будет предостаточно.


          1. druidlab
            26.12.2017 12:17

            +1 кода на с++ будет значительно больше


            1. KosToZyB
              27.12.2017 08:59

              поддерживаю. на C++ вам потребуется написать десятки классов для написания аналогичного http сервера, идущего в Go из коробки. но лучше не сравнивать эти языки, все таки для разных задач их лучше использовать.


              1. RPG18
                27.12.2017 10:50

                Если посмотреть на ранние видео badoo про go. То они начали с переписывания сервиса на си.


      1. berezuev
        25.12.2017 19:28

        Точно так же, как слетались и на PHP(вроде уже поутихли споры?)

        Да какой утихло… Это целая дисциплина специальной олимпиады — рассказывать про минусы PHP, присущие версии 5.2 :)


        1. myrkoxx
          26.12.2017 09:31

          >> рассказывать про минусы PHP, присущие версии 5.2 :)

          особенно когда на улице 7.2 XD


          1. Simplevolk
            26.12.2017 10:04

            а PHP сейчас как? Хорош? Есть классы и строгая типизация? Это не сарказм и не издевка.


            1. Areso
              26.12.2017 10:20

              declare(strict_types=1);
              это из 7-ки.
              Классы еще в 5 подвезли.


            1. VolCh
              26.12.2017 11:05

              Добро пожаловать в третье тысячелетие — классы в PHP появились в версии 4, в конце второго тысячелетия. Приличные (с интерфейсами, константами, сокрытием членов и т. п.) в 5.0 в 2004, тогда же тайп-хинтинг (строгая типизация или явное приведение в зависимости от директивы) параметров функции/метода для объектных типов и массивов, позже почти для всех типов (для resource — обёртка/аналог файлового дескриптора пока нет вроде). Ещё нам завезли автозагрузку классов (часто во кодовой базе на десятки и более тысяч loc только два require), рефлексию, почти полноценную поддержку анонимных функций и замыканий (почти — обычные функции/методы не являются инстансами Closure, можно преобразовать, но не бесшовная интеграция), позднее статическое связывание, приличный уборщик мусора, которому можно доверять уборку в демонах, объектные API для баз данных (по крайней мере для всех популярных), много внутренних оптимизаций (наверное суммарно в разы поднята скорость и уменьшено потребление памяти по сравнению с PHP3, который вы застали :) ), стандарт де-факто менеджер пакетов composer, больше десятка стандартов PSR (стандарты именования и популярные интерфейсы) и прочая, и прочая, и прочая.


              1. Simplevolk
                26.12.2017 11:31

                Помню, во времена учебы в институте приобрел книгу «PHP 4 для профессионалов». С тех пор не трогал этот язык. Спасибо за подробные комментарии.


              1. Caravus
                26.12.2017 20:31

                больше десятка стандартов PSR (стандарты именования и популярные интерфейсы)

                Строго говоря PSR — рекомендации, не стандарты.
                Говорить «стандарты PSR» тоже самое что говорить «стандарты рекомендации по стандарту PHP».


                1. VolCh
                  27.12.2017 15:35

                  В том же смысле, что и RFC.


            1. filkt
              26.12.2017 12:18

              Классы есть давно, да и писать типизированный код вам ни кто не запрещает


  1. bano-notit
    25.12.2017 23:42

    КДПВ сработало просто охренительно. Прочёл только жирный текст, зашёл, а тут курсы…


  1. henu3detb
    26.12.2017 00:12

    Это курс предназначен для людей с опытом в веб-программировании. Если вы пишите на PHP/Python/Ruby/JS (Node.js)


  1. jahr
    26.12.2017 00:28

    А с этим курсом Вы собираетесь поступить также, как и с курсами по дизайну интерфейсов и закрыть специализацию посередине, несмотря на то, что набрали кучу платных пользователей, которые оплатили первые курсы зря, потому что специализацию закончить не выйдет?


    1. Mountwalker
      28.12.2017 21:42

      Нет, здесь будет только два курса, оба на Курсере


  1. Sora
    26.12.2017 12:18

    Почему не на stepik.org?


    1. Olga_ol Автор
      26.12.2017 12:18

      Пробуем новую площадку.


  1. WinLin2
    26.12.2017 12:18

    1. "… в 90-е ему на смену пришел Perl"
    2. moikrug.ru/vacancies/1000037877 «Perl разработчик (Новый проект)»:
    «Мы стоим на пороге запуска нового проекта — аналог крупнейших мировых, не имеющих до сих пор аналогов в России IaaS/PaaS провайдеров.»

    mail.ru в состоянии поиска?


    1. RPG18
      26.12.2017 15:32

      Вроде почта была написана на Perl, а потом Новый выпуск Oh, My Code — Облако, Perl и хорошие программисты


  1. OnYourLips
    26.12.2017 14:27

    Go хорошо зашел, потому что на нём просто писать, просто читать.

    Категорически не согласен. На нем проще писать и читать на небольших проектах, а вот на больших сложнее.
    А его киллер фича — простота вхождения в технологию, позволяющая уже вчерашним новичкам писать проекты достойного качества.


  1. khigor777
    27.12.2017 16:55

    Спасибо, сморел Ваши курсы на youtube, понравилисось то что вы более полно расскрываете, то что нужно в работе и реально применяется, особенно тема про профайлинг.