Теперь у вас должно быть достаточно знаний, чтобы написать практически любую программу на Go. Но опасно делать выводы о том, что теперь вы стали компетентным программистом. Программирование — это большое мастерство, достаточно простое, если имеются знания. В этой главе я дам вам несколько советов о том, как лучше освоить ремесло программирования.
Учитесь у мастеров
Частью становления хорошего художника или писателя является изучения работ мастеров. Это ничем не отличается от программирования. Один из лучших способов стать квалифицированным программистом — это изучение исходного кода, созданного другими людьми. Go отлично подходит для этой задачи, поскольку исходный код всего проекта находится в свободном доступе.
Например, мы могли бы взглянуть на исходный код библиотеки io/ioutil
по
адресу: http://golang.org/src/pkg/io/ioutil/ioutil.go
Читайте код медленно и осознанно. Постарайтесь понять каждую строку и не
забывайте про прилагаемые комментарии. Например, в методе ReadFile
есть
комментарий, который гласит:
// It's a good but not certain bet that FileInfo
// will tell us exactly how much to read, so
// let's try it but be prepared for the answer
// to be wrong.
Этот метод наверняка раньше был проще, чем он есть в данный момент. Это отличный пример того, как программы могут развиваться после тестирования и насколько важно обеспечить комментарием внесённые изменения. Весь исходный код всех пакетов можно найти по адресу: http://golang.org/src/pkg/
Делайте что-нибудь
Один из лучших способов оттачивания своих навыков - это практика написания кода. Есть много способов сделать это: вы могли бы поработать над сложными задачками по программированию на таких сайтах, как Project Euler или попробовать себя в более крупном проекте. Возможно, вы захотите написать веб-сервер или даже написать небольшую игру.
Работайте в команде
Большая часть программных проектов в реальном мире созданы командами программистов. Поэтому умение работать в команде имеет большое значение. Если у вас есть заинтересованный друг или одноклассник — возьмите его и объединитесь в команду для работы над общим проектом. Узнайте, как разделить проект на части и тогда сможете работать над ним в разное время.
Второй вариант заключается в работе над открытым проектом. Найдите какую-нибудь стороннюю библиотеку, напишите новую функциональность (или исправьте ошибки) и отправьте её мейнтейнеру. У Go есть растущее сообщество, которое взаимодействует с помощью списков рассылки.