tip-топ. Или не тип-топ?

Недавно узнал, что у сайта http://golang.org есть особенная версия — http://tip.golang.org

Там находится всякая документация относительно последней версии (tip, по-старинке — head: последний коммит) языка из репозитория.

Вот, например, когда я последний раз его обновлял, я удивился, что там больше нет Makefile (помните — еще недавно мы их учились писать). Теперь все возложили на утилиту go. И сборку, и установку, и тестирование, и форматирование кода.

Так вот, на мой взгляд это ужасно. От Go я такого не ожидал. Теперь ВСЕ исходники на Go должны лежать в одной папке, путь к этой папке должен быть в переменной $GOPATH, и билдить надо с помощью «go build»:

$ cd ~/projects/golang
$ export GOPATH=~/projects/golang
$ mkdir -p src/myapp
$ vim src/myapp/myapp.go
...
$ go build myapp

И после go build в текущей папке получим бинарник myapp. Вот и вроде бы проще стало, и зависимости легче отслеживать, но зачем навязывать мне структуру всех МОИХ проектов? Надеюсь, до Go 1 еще одумаются. Подробности — тут. Сейчас эту тему обсуждают в google groups, там можно найти пару полезных советов.

P.S. А еще есть сайт — http://weekly.golang.org

Реклама

4 comments on “tip-топ. Или не тип-топ?

  1. По-моему круто. А в чём минус-то? Что нельзя городить вложенные директории с сорцами?

    • Ну во-первых, навязывается структура папок (напр., раньше у меня Go-проекты и все остальные лежали на одном уровне иерархии, в папке ~/src). Теперь, чтобы не добавлять каждый из них в $GOPATH, сложил их все вместе в ~/src/golang, а внутри еще папка src, и уже в ней проекты. Во-вторых, вы правы, вложенность.
      В-третьих теперь все файлы в папке билдятся, даже те которые не нужны. Раньше у меня в проекте был файл storage.go и storage-gae.go (второй не входил в Makefile, а лежал в рядышком папке и нужен был только для GAE). Теперь так нельзя.

      Да и в целом. Раньше чтобы начать работу — создал папку, скопировал шаблонный Makefile — и пиши. А теперь для самого первого проекта — укажи GOPATH, не переноси эту папку никуда (я люблю проекты-черновики создавать в /tmp, а если все заладится — переносить в ~/src). Усложнили. И еще, go build выполняется медленнее старого make.

      • Дмитрий:

        Взгляните в сторону вот этого проекта http://code.google.com/p/gomake/

      • Спасибо за gomake, интересная штука!
        Но боюсь что я останусь со стандартной «go build», потому что ее вроде бы починили, и теперь текущая папка добавляется в GOPATH автоматом. Ну и как пишут на сайте gomake, текущая версия не собирается новым Go, а значит придется подождать.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s