Перейти к содержимому

Godoc golang как пользоваться

  • автор:

Пакеты и повторное использование кода

Go разработан как язык, который поощряет хорошие инженерные практики. Одной из этих практик, позволяющих создавать высококачественное программное обеспечение, является повторное использование кода, называемое DRY — «Don’t Repeat Yourself» — (акроним, в переводе с английского) — «не повторяйтесь!». Как мы уже видели в 7 главе, функции являются первым уровнем повторного использование кода. Но Go поддерживает ещё один механизм для повторного использования кода — пакеты. Почти любая программа, которую мы видели, включает эту строку:

import "fmt" 

fmt — это имя пакета, включающего множество функций, связанных с форматированием строк и выводом на экран. Данный метод распространения кода обусловлен тремя причинами:

  • Снижение вероятности дублирование имён функций, что позволяет именам быть простыми и краткими
  • Организация кода для упрощения поиска повторно используемых конструкций
  • Ускорение компиляции, так как мы должны перекомпилировать только части программы. Несмотря на то, что мы используем пакет fmt , мы не должны перекомпилировать его при каждом использовании

Создание пакета

Использовать пакеты имеет смысл, только когда они востребованы отдельной программой. Без неё использовать пакеты невозможно.

Давайте создадим программу, которая будет использовать наш пакет. Создадим директорию в ~/Go/src/golang-book под названием chapter11 . В ней создадим файл main.go с этим кодом:

package main import "fmt" import "golang-book/chapter11/math" func main() < xs := []float64avg := math.Average(xs) fmt.Println(avg) > 

А теперь создадим ещё одну директорию внутри chapter11 под названием math В ней мы создадим файл math.go с этим кодом:

package math func Average(xs []float64) float64 < total := float64(0) for _, x := range xs < total += x >return total / float64(len(xs)) > 

C помощью терминала в папке math запустите команду go install . В результате файл math.go скомпилируется в объектный файл ~/Go/pkg/os_arch/golang-book/chapter11/math.a (при этом, os может быть Windows , a arch , например, — amd64)

Теперь вернёмся в директорию chapter11 и выполним go run main.go . Программа выведет 2.5 на экран. Подведём итоги:

  • math является встроенным пакетом, но так как пакеты Go используют иерархические наименование, мы можем перекрыть уже используемое наименование, в данном случае настоящий пакет math и будет называться math , а наш — golang-book/chapter11/math .
  • Когда мы импортируем библиотеку, мы используем её полное наименование import «golang-book/chapter11/math» , но внутри файла math.go мы используем только последнюю часть названия — package math .
  • Мы используем только краткое имя math когда мы обращаемся к функциям в нашем пакете. Если же мы хотим использовать оба пакета, то мы можем использовать псевдоним:

import m "golang-book/chapter11/math" func main() < xs := []float64avg := m.Average(xs) fmt.Println(avg) > 

Документация к коду

Go позволяет автоматически создавать документацию к пользовательским пакетам так же, как и документировать стандартные пакеты. Запустите эту команду в терминале:

godoc golang-book/chapter11/math Average 

И вы увидите информацию о функции, которую мы только что написали. Мы можем улучшить документацию, добавив комментарий перед функцией:

// Найти среднее в массиве чисел. func Average(xs []float64) float64  

Если вы запустите go install , а потом перезапустите:

godoc golang-book/chapter11/math Average 

то вы увидите наш комментарий — Найти среднее в массиве чисел . Также вы можете увидеть документацию на интернет-странице, запустив в терминале команду:

godoc -http=":6060" 

и открыв этот адрес в браузере http://localhost:6060/pkg/ .

Вы увидите документацию по всем пакетам, установленным в системе, в том числе и про наш пакет.

Задачи

  • Зачем мы используем пакеты?
  • Чем отличаются программные сущности, названные с большой буквы? То есть, чем Average отличается от average ?
  • Что такое псевдоним пакета и как его сделать?
  • Мы скопировали функцию Average из главы 7 в наш новый пакет. Создайте Min и Max функции для нахождения наименьших и наибольших значений в срезах дробных чисел типа float64 .
  • Напишите документацию к функциям Min и Max из предыдущей задачи.

Команда go-doc: опции, ключи и примеры использования

Общие команды – Общие команды, присущие различным операционным системам.

go doc

  • Show documentation for the current package:
  • Show package documentation and exported symbols:
  • Show also documentation of symbols:
  • Show also sources:
  • Show a specific symbol:

Изображение Выучи 10 хороших привычек для работы в UNIX от IBM

Примеры кода, демонстрирующие общие подходы в программировании или же решающие небольшие прикладные задачи. Языки программирования и библиотеки, позволяющие эффективно решать задачи разработки. Объектно-ориентированное программирование, функциональное программирование и прочие подходы и …

Фото Код

Трюки Bash

Полезные заметки по работе с командной строкой: bash и прочие *sh. Однострочники, скрипты, позволяющие решать большие и малые задачи администрирования и настройки Юникс систем. Zsh для современного MacOS, Bash для …

Фото Трюки Bash

Заметки о настройке различных IT-штуковин. Настройка, допиливание, полировка. Конфигурируем приложения и тюнингуем сервера. Полезные параметры и ключи запуска программ. Увеличиваем скорость, уменьшаем отклик, ускоряем работу и улучшаем результаты работы. Объясняем …

Фото Настройки

Терминал/Консоль

Команды и инструкции терминала (консоли) Linux, MacOS, Windows и прочих операционных систем. Трюки и особенности командных оболочек, скрипты для администрирования Unix. Программирование и скриптование Windows и Linux, тонкая настройка Macos. …

Фото Терминал/Консоль

Также может быть вам интересно:

  • Как получить дерево директорий на Bash одним однострочником
  • Python: Функции
  • Python: Встроенные типы данных (list, set, dict, etc)
  • Python: типы данных, переменные, логическое ветвление и циклы
  • Как сделать свою middleware в Django (с примерами)

Свежее на «Цифре»
MessageId или как дебажить систему с минимумом проблем
Программы, 09.09.2023
Проверочный список для выпуска промышленных приложений с иллюстрациями
Работа и управление, 30.07.2023
В Google Pixel и Windows Snipping Tool есть возможность восстановления обрезанных изображений
Новости, 23.03.2023
Два подарка "под ёлочку" от Heroes of Might and Magic
Новости, 25.12.2022
Вышел Pulsar – редактор кода на основе Atom
Новости, 25.12.2022
Ленивый backup PostgreSQL
Программы, 17.12.2022
Google анонсировала OSV-Scanner: сканер уязвимостей в программных проектах
Новости, 16.12.2022

Фото Gitea запускает коммерческую версию, а недовольные – форк Forĝejo

Gitea запускает коммерческую версию, а недовольные – форк Forĝejo

На днях группа бывших разработчиков Gitea решили создать на базе хостинга кода Gitea свою версию проекта – "Forgejo". Причиной тому …

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо …

Фото Новый синтаксис старой команды with в Python 3.10

Новый синтаксис старой команды with в Python 3.10

Как же долго моё чувство прекрасного страдало… Но в Python 3.10 появился новый парсер синтаксических конструкций Python!

Фото Добавляем постраничную пагинацию на Django сайт

Добавляем постраничную пагинацию на Django сайт

На сайтах часто встречаются многостраничные объекты: список товаров, список заметок и т.д. Поэтому важно уметь добавить навигацию по страницам на …

Фото Новый оператор match-case в Python

Новый оператор match-case в Python

В новой версии Python (3.10) появится новый оператор. Новый оператор сопоставления по шаблону (match-case).

Фото Нет слов, одни. однострочники

Нет слов, одни. однострочники

На днях вышел пост со списком полезных однострочников для JavaScript программистов. Памятуя Perl-овую молодость, заглянул туда.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если …

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать …

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система …

Golang

godoc извлекает и генерирует документацию для программ Go.

Он работает как веб-сервер и представляет документацию как веб-страницу.

godoc -http=:6060

godoc [flag]
-v режим с подробным выводом -timestamps=true показать временные метки (timestamps) со списком каталогов -index включить идентификатор и индекс полнотекстового поиска (окно поиска не отображается, если -index не установлен) -index_files="" шаблон glob с указанием индексных файлов; если не пустой, индекс читается из этих файлов в отсортированном порядке -index_throttle=0.75 значение указателя дроссельной заслонки; значение 0 означает, что время не выделяется для индексатора (индексатор никогда не завершится), значение 1,0 означает, что создание индекса выполняется с полной скоростью (другим goroutines может не хватить времени, пока индекс строится) -index_interval=0 интервал индексации; значение 0 устанавливает 5 минут, отрицательные значения индексов - только один раз при запуске -play=false включить песочницу -links=true связать идентификаторы с их объявлениями -write_index=false записать индекс в файл; имя файла должно быть указано с -index_files -maxresults=10000 показано максимальное количество результатов полнотекстового поиска (полнотекстовый индекс не создается, если maxresults 

По умолчанию godoc просматривает пакеты, которые находит через $GOROOT и $GOPATH (если установлены). Это поведение можно изменить, указав альтернативный $GOROOT с флагом -goroot.

Когда установлен флаг -index, индекс поиска сохраняется. Индекс создается при запуске.

Индекс содержит информацию как по идентификатору, так и по полнотекстовому поиску (поиск по регулярным выражениям) Максимальное количество отображаемых результатов полнотекстового поиска можно установить с помощью флага -maxresults; если установлено значение 0, полнотекстовые результаты не отображаются, и создается только индекс идентификатора, но не создается индекс полнотекстового поиска.

По умолчанию godoc использует системные GOOS/GOARCH. Вы можете указать параметры URL "GOOS" и "GOARCH", чтобы настроить вывод на веб-странице целевой системы.

Режим представления веб-страниц, обслуживаемых godoc, можно контролировать с помощью URL параметра "m"; в качестве значения он принимает список имен флагов через запятую:

all показывать документацию для всех объявлений, а не только экспортируемых methods показывать все встроенные методы, а не только те, которые не были экспортированы анонимными полями src показывать исходный код, а не извлеченную документацию flat представить плоский (без отступа) список каталогов с использованием полных путей

Например, https://golang.org/pkg/math/big/?m=all показывает документацию для всех (не только экспортируемых) объявлений пакета big.

По умолчанию godoc обслуживает файлы из файловой системы базовой ОС. Вместо этого .zip-файл может быть предоставлен с помощью флага -zip, который содержит файловую систему для обслуживания. Пути к файлам, хранящиеся в .zip-файле, должны использовать косую черту ('/') в качестве разделителя пути; и они должны быть без корней. Для $GOROOT (или -goroot) должен быть указан путь к каталогу файла .zip, содержащий корневой каталог Go. Например, для файла .zip, созданного командой:

zip -r go.zip $HOME/go

можно запустить godoc следующим образом:

godoc -http=:6060 -zip=go.zip -goroot=$HOME/go

Документация godoc конвертируется в HTML или в текст с использованием пакета go/doc. Godoc также показывает пример кода, который запускается пакетом тестирования

  • Команды Go: введение
  • Инструмент go, команды
  • Команды go: go doc, показать документацию для пакета или символа

Пакеты. GoDoc. Golang. Урок 6

Иконка канала Python для начинающих: от нуля до профи

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- https://itvdn.com/ru/video/golang?utm_source=yb_promo_golang Цель урока обучить учащегося работать с некоторыми стандартными библиотеками go. А также пользоваться утилитой GoDoc. Благодарим всех за лайки, перепосты, добавление в избранное! Также подписывайтесь на нас в социальных сетях: https://vk.com/itvdn https://www.facebook.com/ITVDN.EDU https://twitter.com/ITVDN/ https://www.linkedin.com/company/itvdn https://plus.google.com/u/0/+ItvdnEDU . Свои предложения присылайте на почту: support@itvdn.com

Показать больше

Войдите , чтобы оставлять комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *