Изучаем Python — страница 59 из 61


Программисты общаются в реальном времени на каналах IRC. Если вы зашли в тупик, а поиск в Интернете не принес результатов, обращение на канал IRC может оказаться лучшим вариантом. Многие люди, проводящие время на этих каналах, вежливы и доброжелательны, особенно если вы можете точно описать, что вы пытаетесь сделать, что уже было сделано и какие результаты вы получили.

Создание учетной записи IRC


Чтобы создать учетную запись на IRC, зайдите на сайт http://webchat.freenode.net/. Выберите имя пользователя, заполните поле c кодом проверки (captcha) и щелкните на кнопке Connect. Появляется сообщение, приветствующее вас на сервере IRC freenode. В поле в нижней части окна введите следующую команду:

/msg nickserv register пароль адрес_электронной_почты

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

/msg nickserv verify register имя код_проверки

Скопируйте эту строку на сайт IRC с именем, которое вы выбрали ранее, и полученным кодом проверки. Теперь все готово для присоединения к каналу.

Выбор канала


Чтобы присоединиться к основному каналу Python, введите команду /join #python. На экране появляется подтверждение о том, что вы присоединились к каналу, а ­также общая информация о канале.

Канал ##learnpython (с двумя символами #) обычно тоже активно работает. Этот канал связан с http://reddit.com/r/learnpython/, поэтому вы также будете видеть здесь информацию о сообщениях на r/learnpython. Канал #pyladies предназначен для женщин, изучающих Python, а также для людей, помогающих женщинам-­программистам. Если вы работаете над веб-приложениями, также можно при­соединиться к каналу #django.

После присоединения к каналу вы сможете читать разговоры других пользователей, а также задавать вопросы.

Культура IRC


Чтобы помощь была эффективной, необходимо кое-что знать о культуре IRC. Если вы сосредоточитесь на трех вопросах, приведенных в начале приложения, это определенно станет значительным шагом на пути к успешному решению. Люди охотно помогут вам, если вы сможете точно объяснить, что вы пытаетесь сделать, что уже пробовали сделать и какие именно результаты при этом получили. Если вам нужно поделиться кодом или выходными данными, участники IRC используют внешние сайты, предназначенные для этой цели (например, https://bpaste.net/+python/). Тем самым предотвращается загромождение канала кодом и упрощается чтение опубликованного кода.

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

Приложение Г. Git и контроль версий


Программы контроля версий позволяют взять создать «моментальный снимок» состояния программы, находящейся в рабочем состоянии. При внесении изменений в проект (например, при реализации новой возможности) существует возможность возврата к предыдущему работоспособному состоянию, если в новом состоянии проект работает не так, как ожидалось.

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

В этом приложении вы узнаете, как установить Git и использовать эту систему для управления версиями программ, над которыми вы работаете. В настоящее время Git является самой популярной программой контроля версий. Многие расширенные возможности Git предназначены для групп, совместно работающих над большими проектами, но базовые функции также хорошо подходят для разработчиков-одиночек. Контроль версий в Git основан на отслеживании изменений, вносимых в каждый файл проекта; если вы совершите ошибку, то сможете просто вернуться к ранее сохраненному состоянию.

Установка Git


Git работает во всех операционных системах, но способы установки в конкретных системах различаются. Ниже приведены инструкции для каждой операционной системы.

Установка Git в Linux


Чтобы установить Git в Linux, введите следующую команду:

$ sudo apt-get install git

Все, теперь вы можете использовать Git в своих проектах.

Установка Git в OS X


Возможно, программа Git уже установлена в вашей системе; попробуйте ввести команду git --version. Если в выводе будет указан конкретный номер версии, Git устанавливается в вашей системе. Если в сообщении будет предложено установить или обновить Git, просто выполните инструкции на экране.

Также есть другой способ: зайдите на сайт https://git-scm.com/, перейдите по ссылке Downloads и выберите подходящую программу установки для вашей системы.

Установка Git в Windows


Вы можете установить Git в системе Windows с сайта http://msysgit.github.io/.

Настройка Git


Git следит за тем, кто вносит изменения в проект, — даже если над проектом работает всего один человек. Для этого Git необходимо знать ваше имя пользователя и пароль. Имя пользователя должно быть указано обязательно, но ничто не мешает вам ввести фиктивный адрес электронной почты:

$ git config --global user.name "имя_пользователя"

$ git config --global user.email "username@example.com"

Если вы забудете это сделать, Git запросит информацию при первом закреплении.

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


Для начала создадим проект для работы. Создайте в системе папку с именем git_practice. В этой папке разместите файл с простой программой Python:

hello_world.py

print("Hello Git world!")

Эта программа поможет нам изучить базовую функциональность Git.

Игнорирование файлов


Файлы с расширением .pyc автоматически строятся на основе файлов .py, и отслеживать их в Git не нужно. Эти файлы хранятся в каталоге с именем __pycache__. Чтобы приказать Git игнорировать этот каталог, создайте специальный файл с именем .gitignore (с точкой в начале имени и без расширения) и включите в него следующую строку:

.gitignore

__pycache__/

В результате Git будет игнорировать любые файлы, находящиеся в каталоге __pycache__. Файл .gitignore избавляет проект от излишнего «балласта» и упрощает работу с ним.

примечание

Если вы используете Python 2.7, замените эту строку на *.pyc. Python 2.7 не создает каталог __pycache__; каждый файл .pyc хранится в одном каталоге с соответствующим файлом .py. Звездочка (*) приказывает Git игнорировать все файлы с расширением .pyc.

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

Инициализация репозитория


Теперь, когда у вас имеется каталог с файлом Python и файлом .gitignore, можно переходить к инициализации репозитория Git. Откройте терминал, перейдите в каталог git_practice и выполните следующую команду:

git_practice$ git init

Initialized empty Git repository in git_practice/.git/

git_practice$

Из выходных данных видно, что Git инициализирует пустой репозиторий в каталоге git_practice. Репозиторий представляет собой набор файлов программы, который активно отслеживается системой Git. Все файлы, используемые Git для управления репозиторием, хранятся в скрытом каталоге .git/, с которым вам вообще не придется работать. Просто не удаляйте этот каталог, иначе вся история проекта будет потеряна.

Проверка статуса


Прежде чем делать что-либо, проверьте статус проекта:

git_practice$ git status

(1) # On branch master

#

# Initial commit

#

(2)# Untracked files:

# (use "git add ..." to include in what will be committed)

#

# .gitignore

# hello_world.py

#

(3)nothing added to commit but untracked files present (use "git add" to track)

git_practice$

В Git ветвью (branch) называется версия проекта, над которым вы работаете; из ­вывода видно, что текущей является ветвь с именем master (1) . Каждый раз, когда вы проверяете статус своего проекта, программа должна сообщать, что текущей является ветвь master. После этого мы видим, что система готова к исходному закреплению. Закреплением (commit) называется «моментальный снимок» проекта на определенный момент времени.

Git сообщает, что в проекте имеются неотслеживаемые файлы (2), потому что мы еще не сообщили Git, какие файлы должны отслеживаться. Затем мы узнаем, что в текущее закрепление еще ничего не добавлено, но существуют неотслеживаемые файлы, которые следует добавить в репозиторий (3).

Добавление файлов в репозиторий


Добавим в репозиторий два файла и снова проверим статус:

(1) git_practice$ git add .

(2)git_practice$ git status

# On branch master

#

# Initial commit

#

# Changes to be committed:

# (use "git rm --cached ..." to unstage)

#

(3)# new file: .gitignore

# new file: hello_world.py

#

git_practice$

Команда git добавляет в репозиторий все файлы проекта, которые еще не отслеживаются (1) . Закрепление при этом не выполняется; команда просто сообщает Git, что эти файлы нужно отслеживать. При проверке статуса проекта мы видим, что Git находит изменения, которые необходимо закрепить (2). Метка new file означает, что эти файлы были только что добавлены в репозиторий (3).