7 правил написания программ, которые не умрут вместе с вами / Хабр
Ваши программы – это ваше наследие. Решайте сами, как долго оно будет существовать.
Жизнь заканчивается, но программы не обязательно должны умирать.
После серии моих твитов на тему того, как нужно писать программы, меня попросили раскрыть эту тему. Предупреждаю, что редко в каком проекте удаётся чётко следовать всем семи правилам. У меня самого это часто не получается. Но чем больше правил вы соблюдаете, тем больше ваши программы проживут. Каждый символ добавляет что-то к общей экосистеме, и наша задача, как инженеров, поддерживать экосистему в чистоте и порядке.
Что можно получить, выдавая хороший код? Разве не имеет права на жизнь подход в обучении под названием «двигайся быстрее, ломая всё на своём пути?» Нет. Обучиться писать код – это навык, это доступно каждому. Обучиться писать хороший код – это искусство. Это требует усилий, времени и целеустремлённости.
Разве вы хотите оставить после своей смерти миру ещё больше SEGFAULT-ов? Хотите ли вы, чтобы сисадмины занимались починкой систем, которые сломались из-за вашего дерьмового кода? Чтобы ваш менеджер проектов вспоминал вас как инженера, работа которого бесила пользователей?
Ничего плохого в быстром продвижении вперёд нет, но в какой-то момент нужно осознать, что низкокачественный код далеко вас не уведёт.
Когда вы приходите к врачу, тот сначала задаёт вам много вопросов, чтобы понять, что с вами случилось. Он не выписывает лекарства перед постановкой диагноза. Точно так же важно разобраться, действительно ли с вашим кодом что-то не так.
1. Накат обновлений отнимает много времени и сил?
2. Система рушится даже от небольшого обновления?
3. Выкатывали ли вы когда-нибудь сломанный код на продакшн, причём это становилось известно только после жалоб пользователей?
4. Знаете ли вы, что именно нужно делать, когда система падает? Как добраться до бэкапов и восстановиться из них?
Если вы ответили «да» – эта статья для вас. Читайте, а лучше прочтите два раза.
1. Делите на модули
Мозг человека – сложное устройство, сложнее любого процессора, при этом он не справляется с решением сложных задач. Допустим, сложно сразу умножить 13*35. Но если разделить эти операции на простые: 35*10 + 30*3 + 5*3 = 455, то подсчёт упрощается. Разбивая задачу на простые и независимые, мы приходим к ответу.
Так же и с программами. Разбейте программу на несколько частей, файлов, директорий. проектов. Все зависимости выведите в одно место, используйте принцип MVC или его вариант. Такой код и читать проще, и отлаживать легче. В большинстве случаев отладка приведёт вас к нескольким строкам кода, а не к файлу из тысячи строк. Накатывая апдейты одного модуля, вы не сломаете всю остальную систему.
2. Тестируйте
Фу, тесты. Брррррр!
Такая реакция естественна, потому что нас учили, будто тесты не являются частью программирования. Вас учат шаблонам в С++, но не тому, как их тестировать. В этом и проблема. Некоторые считают, что тесты над писать до самой программы.
Мне всё равно, когда вы пишете тесты, если вы их пишете. Не надо геройствовать, начните с простого (print(add(1, 1) == 2)), а затем уже переходите на фреймворк для тестов в вашем языке.
Тогда вы начнёте понимать сложность вашей программы, учиться делить её на модули, части, которые можно тестировать по отдельности. Получается, что используя тесты, вы уже будете выполнять два из семи правил.
3. Непрерывная интеграция
Тесты должны успешно отрабатывать, причём в разных окружениях (например, в разных версиях Python). Также тесты надо проводить после каждого изменения. Вместо того, чтобы делать это вручную из командной строки, удобнее и быстрее создать платформу для непрерывной интеграции.Непрерывная интеграция (НИ) – это практика разработки, при которой код интегрируется в репозиторий несколько раз в день. Каждый раз проверяется автоматически, что позволяет отслеживать проблемы на ранней стадии.
Для своих проектов я использую TravisCI и Drone.io. Когда я делаю новое дополнение кода, платформа делает билд и выполняет тесты.
4. Автоматизируйте
У больших проектов всегда есть куча мелких вспомогательных задач. Некоторые люди делают текстовики с командами и копируют их оттуда. Но проще освоить скрипты на bash (и/или Python). Вот некоторые задачи, которые необходимо автоматизировать скриптами:
— преобразование README.md в другие форматы
— автоматическое тестирование (включая создание тестовых серверов и данных, удаление временных файлов и т.д.)
— заливка кода на сервер разработки
— размещение программы на продакшене
— автоматическое обновление зависимостей
5.
ИзбыточностьПервое, что вы видите на git-scm.com:
Git – бесплатная распределённая система контроля версий с открытым исходным кодом, предназначенная для работы как с малыми, так и очень большими проектами, с высокой скоростью и эффективностью.
Распределённая. Это ключевое слово. Ущипните себя, если вы хоститесь только на гитхабе. Потому, что это единая точка отказа. Если гитхаб падает, или во время push-операции вы повредили файлы, ваш процесс разработки останавливается.
Залогиньтесь на Bitbucket и выполните следующее в вашем репозитории:
# rename origin remote git remote rename origin github # add the gitlab remote (for the love of everything that’s holy, use ssh) git remote add bitbucket <remote link for bitbucket> # push existing code to new remote git push -u bitbucket —all # let’s magic git config -e # add this in the file [remote “origin”] url = [email protected]:username/reponame. git url = <remote link for bitbucket>
Теперь, когда вы заливаете код, изменения идут как на Github, так и на Bitbucket. Никогда не знаешь, когда что-либо сломается. И всегда полезно иметь бэкапы. Вот, как это работает у меня:
— весь код живёт в директории Codebase в Dropbox. Автоматическая синхронизация.
— почти весь код живёт на Github
— самый важный код живёт на двух частных зеркалах – одно в школе, другое на моём AWS
Я потеряю свой код, только если настанет конец света.
6 Коммиты
Это должно быть вам знакомо. Загляните в историю, и вы увидите что-то вроде:
«исправил ошибку в модуле»
СЕРЬЁЗНО?!?!
Исправил? Какую ошибку? В каком модуле?
Многие расценивают систему контроля версий как бэкап, а не как способ хранить историю. История из таких сообщений бесполезна. Допустим, через неделю после этого коммита вы решили что-то вернуть назад, потому что оно привнесло в проект новый баг. Но поскольку описания действия нет, вам нужно просматривать все изменения. Именно для предотвращения этого и создавались системы контроля версий.
Чтоб не напрягаться, просто воспользуйтесь следующей шапргалкой:
— у каждого коммита должен быть смысл. Исправление ошибки, добавление новой функции, удаление существующей?
— включайте номер проблемы в сообщение о коммите
— включайте описание изменений. Это зависит от правил текущего проекта, но обычно вы упоминаете, что приводило к ошибке, как вы её исправили и как это тестировать
— пишите осмысленное сообщение:
добавил новую форму в заголовок, чтобы было легче собирать ссылки. закрыл #3
вместо
удалил всякое, ибо почему бы и нет, хех
7. Планируйте
Даже если вы выполняете все предыдущие правила и чувствуете себя богом программирования, всё равно может случиться всё, что угодно. Имейте план на самый плохой случай. Что, если трафик побьёт рекорды? Откуда вы возьмёте бэкапы, если система упадёт? Кому звонить ночью, если сервер навернётся?
Продумайте, но не перестарайтесь. Автоматизируйте всё, что возможно. Затем задокументируйте всё подробно. Так, чтобы тот, кто получит ваш код, тоже смог следовать плану. Иметь план – не только значит выглядеть умнее, это значит реально быть умнее.
Вот такие правила и определяют хорошую программу. Если вас они не убедили, ответьте мне на два вопроса:
1. Ожидаете ли вы от новичка, присоединившегося к вам, что он поймёт существующий код с лёгкостью?
2. Является ли рефакторинг кода простым и быстрым делом?
Если нет – перечитайте заново. Сохраните, поделитесь с командой.
Эти правила поначалу могут показаться очевидными. Так и есть. Плохой код постоянно создают, и, в конце концов, он умирает. Ваши программы – это ваше наследие. Решайте сами, как долго оно будет существовать.
Счастливого программирования.
5 способов быстрее научиться программировать
Изучение программирования — не то, чем можно заниматься между делом. Но не нужно тратить всю жизнь, чтобы понять основы. Есть множество способов облегчить себе обучение.
Нередко бывает, что новички начинают учиться, уже зная что-то о программировании. Сначала всё идёт хорошо, но по мере дальнейшего изучения начинаются проблемы. Почему? Новички быстро пробегают вступительную часть, думая, что и так всё знают, но на деле это бывает редко. Они знают часть материала, но этого недостаточно, чтобы хорошо понять основы.
В то же время нельзя прекращать развиваться. Вы можете двигаться медленно или быстро, но не пропускайте ни одну тему. Осваивая больше материалов, вы создаёте себе фундамент для будущего.
1. Изучайте примеры кода
Говоря о чтении, мы обычно подразумеваем чтение слов на странице, но программирование — это про чтение кода. Когда вы только учитесь программировать, вы должны изучать и пытаться понять каждый пример. Можно даже сперва читать и пытаться понять примеры кода, а уже потом читать текст. Это не всегда срабатывает, но зато учит смотреть код внимательно и вникать в каждую деталь.
2. Не просто читайте примеры кода — запускайте их!
Когда вы читаете обучающее руководство или учебник, легко посмотреть на пример и сказать: «Я понял, я понял. Да, в этом есть смысл». Конечно, вы могли понять его, но вы не знаете наверняка действительно ли вы поняли его правильно. Есть лишь один способ выяснить — сделать что-то с кодом.
Если вы до сих пор не сделали этого, установите среду разработки (IDE), которая поддерживает ваш язык программирования.
Затем перенесите пример в IDE — если вы набьёте его вместо того чтобы просто скопировать, вы действительно пройдётесь по нему от начала до конца. Ввод кода заставит вас уделять внимание деталям синтаксиса языка, например точкам с запятыми, которыми должна заканчиваться каждая строка.
Теперь скомпилируйте и запустите код. Убедитесь, что он делает именно то, что должен.
И наконец, измените его. Программа — самый легко изменяемый механизм на Земле. Вы можете экспериментировать и смотреть, что происходит. Изменения будут происходить мгновенно, без риска смерти или получения увечий. Самый простой способ изучить язык программирования — взять работающий код и изменить его.
3. Начните писать свой код как можно раньше
Как только вы что-то поймёте про язык — даже если от него у вас уже кружится голова — начните писать программы на нём. Иногда трудно найти идеи для программ. Это нормально, в самом начале вам не надо придумывать свою идею.
Вы можете найти источники идей в статье «Где новичку в программировании найти упражнения и идеи для проектов?»
Вы можете также воспроизвести упражнения из руководства или книги, которую вы читаете, не заглядывая в примеры. Это не так легко, как кажется. Ещё эта техника работает хорошо, если вы слегка измените код из примеров.
Если вы не хотите думать о маленьких программах, а хотите сразу писать нечто большее, вроде игр, вам надо начинать с маленьких кусочков, которые вы затем сможете использовать для создания игры. Независимо от того, будете вы их использовать или нет, вы получите ценнейший опыт.
4. Научитесь использовать отладчик
Отладчик позволит вам двигаться по коду строка за строкой. Вы сможете наблюдать значения переменных и видеть, выполнилось ли условие.
Отладчик позволяет быстро ответить на вопросы о том, что делает код.
Первое время исправление ошибок с отладчиком будет занимать много времени. Но по мере того, как количество ошибок в вашем коде будет расти, отладчик начнёт экономить уйму вашего времени. А количество ошибок, поверьте, будет измеряться десятками.
Новички часто не желают использовать отладчик. На самом деле, они усложняют жизнь самим себе, тратя годы на исправление очень простых ошибок. Чем раньше вы изучите отладчик, тем раньше это вам воздастся.
5. Ищите больше источников
Если вы что-то не понимаете, в первую очередь посмотрите альтернативные объяснения — интернет полон информации о программировании. Мы все воспринимаем новую информацию по-разному: может быть, вам для понимания нужны картинки, а кому-то другому — подробные инструкции или множество книг с детальными объяснениями.
Но если это не работает, то лучший способ разобраться с проблемой — спросить кого-то другого. Однако, если вы скажете «я не понимаю, пожалуйста, объясни», то, скорее всего, получите в ответ ссылку на тот же текст, который вы не поняли. Вместо этого, своими словами перескажите, как вы поняли текст. Чем больше вопрос раскрывает ваши мысли, тем легче будет знающему эксперту ответить на него. Программисты иногда кажутся раздражительными при ответе на вопросы. Но причина скорее в том, что они хотят продвинуться в диалоге, а это требует усилий от обеих сторон. Если вы зададите умный, подробный вопрос, который продемонстрирует, что вы думаете, то получите хорошие результаты.
На основе статьи «5 Ways To Learn Programming Faster».
Введение в программирование: как писать и выполнять код
Содержание
- Как писать код в среде Python
- Что такое текстовые редакторы и как их использовать
- Как написать свою первую программу
- Как запустить свой код
- Как писать код с помощью командной строки Python
- Как написать и запустить свой сценарий
- Какие другие среды программирования вы можете использовать?
Добро пожаловать в очередную статью из серии «Введение в программирование». Теперь, когда мы установили Python, пришло время начать писать компьютерный код, и пока мы это делаем, я хочу показать вам несколько способов написания и запуска кода Python.
- Введение в Python: почему новичкам стоит начать с Python
- Введение в Python: как подготовить компьютер к запуску Python
На очень высоком уровне программирование состоит из двух частей. Один пишет программа, а вторая
Как писать код в средах Python
Когда дело доходит до программирования на Python, существуют следующие типы «сред» для написания кода:
- Текстовые редакторы, такие как Sublime, Atom и Visual Studio Code
- Командная строка Python
- Так называемые «блокноты» (например, Jupyter, Google Colab)
Я расскажу об этом более подробно чуть позже. Прежде чем я это сделаю, давайте кратко поговорим о доступных вам вариантах запуска кода. Я расскажу о следующих способах: скрипты , командная строка Python и ноутбуки Jupyter .
Первое, что нужно помнить, это то, что то, как вы запускаете код, зависит от того, как вы его написали. Например, если вы пишете код в редакторе, обычно вы запускаете его с помощью командной строки. Командная строка Python и блокноты Jupyter позволяют нам писать и запускать код в одном и том же месте .
Что такое текстовые редакторы и как ими пользоваться
Давайте сначала поговорим о текстовых редакторах. Существует множество текстовых редакторов, но те, о которых я говорю, специально разработаны для написания компьютерного кода и имеют несколько приятных встроенных функций, которые значительно упрощают написание кода, например, комментарии к коду Python.
- Введение в программирование: комментарии к коду Python
Я не буду вдаваться в подробности об этих функциях, так как они могут немного отличаться друг от друга, но как минимум вы можете ожидать следующее:
- Автозаполнение
- Подсветка синтаксиса
- Поиск по ключевому слову
- Разведка проекта
Еще одна замечательная особенность современных редакторов кода заключается в том, что они имеют встроенную поддержку различных языков программирования. Это здорово, потому что, если вы хотите выучить другой язык программирования, вам не нужно будет также учиться использовать другой редактор.
Что касается редакторов, я бы рекомендовал Sublime, Atom и Visual Studio Code. Я использую в основном Emacs, но я бы не рекомендовал его новичкам, так как его кривая обучения довольно крутая. Как правило, все хорошие редакторы кода можно настроить с помощью подключаемых модулей в соответствии с вашими рабочими требованиями и стилем программирования.
Вы можете потратить некоторое время на изучение различных текстовых редакторов, прежде чем выбрать один из них для создания собственного. Как программист, вы будете проводить большую часть своего времени в выбранном вами редакторе, поэтому важно, чтобы вы знали его очень хорошо и со временем настраивали его в соответствии со своими рабочими процессами. Постоянное переключение редакторов в долгосрочной перспективе может привести к обратным результатам.
Хотя я использую Emacs для собственного программирования, в этой статье я буду использовать Atom в качестве редактора, так как его легче понять. Пожалуйста, не стесняйтесь следовать в своем собственном редакторе.
- Примечание: Очень важно всегда помнить о программах Python: файлы, в которых вы пишете свой код, должны сохраняться с расширением .py. Еще одна хорошая практика при именовании файлов, содержащих компьютерный код, — избегать использования пробелов. Это просто для того, чтобы их было легко набирать в командной строке. Возможно, сейчас это не имеет большого смысла, но поверьте мне — лучше избегать использования пробелов при именовании файла с компьютерным кодом. Если вам нужно разделить слова в имени, лучше всего использовать символы подчеркивания. Так, например, хорошим именем файла будет hello_world.py.
Как написать свою первую программу
Наконец, чтобы показать вам, как писать и запускать программу, вам нужно выбрать программу для написания.
Хотите верьте, хотите нет, но программа, которая часто используется для ознакомления новичков с языком программирования, — это программа, которая просто выводит слова «hello world». Согласно Википедии, традиция использования этой фразы восходит к влиятельной книге, опубликованной в 1970-х годах под названием « Язык программирования C» Брайана 9.0070 Керниган.
Я буду придерживаться этой традиции и напишу код на Python для программы, которая будет печатать фразу «привет, мир».
Теперь, в Python, как вы можете видеть здесь, я выполняю эту задачу, записывая в блокноте Jupyter:
print("hello world")
Хорошо, давайте напишем код. Вы начнете с открытия вашего редактора. Я использую Atom , но опять же, вы можете использовать Sublime или любой другой редактор, подходящий для написания компьютерного кода.
При открытии Atom показывает нам это окно с рядом опций и приветственным сообщением. Вы можете закрыть эти окна, наведя указатель мыши на вкладку в верхней части оконных панелей и нажав синюю кнопку x.
Источник изображения: Atom Editor, https://atom.io/
Теперь давайте щелкнем меню «Файл» и выберем в нем «Новый файл». Вы должны увидеть новое открытое окно, и именно здесь вы можете написать свой код.
Введите вашу программу:
print("hello world")
Источник изображения: Atom Editor, https://atom.io/
Когда вы закончите, вы можете сохранить файл, выбрав «Файл» > «Сохранить». Я сохраню это в папке Мои проекты/i2p.
Возможно, у вас нет папки или каталога i2p. Я настоятельно рекомендую вам организовать весь свой код, создавая разные папки для каждого проекта. В этом случае я пошел дальше и создал папку «Проекты» в своем домашнем каталоге, а внутри нее — папку i2p, что означает «введение в программирование». Возможно, вам будет проще следовать инструкциям, если вы создадите аналогичные папки на своем компьютере, но это не обязательно. Вы можете сохранить свой код в любом месте, если вы можете легко его найти.
Я сохраню этот файл как hello_world.py. Случилось интересное — теперь у нас есть цвета!
Источник изображения: Atom Editor, https://atom. io/
Это определенно выглядит намного лучше, чем раньше. Эти цвета являются подсказками о том, что представляет каждое слово. Эта функция называется подсветкой синтаксиса . Например, слово print, как мы узнаем позже, является функцией, поэтому в моем редакторе Atom оно выделено синим цветом. Выделение этих слов облегчает чтение и понимание кода, поэтому эта функция подсветки синтаксиса является одной из функций, которые делают текстовые редакторы, специализирующиеся на написании кода, гораздо более удобными для использования при программировании.
- Примечание. Многие редакторы кода используют расширение в конце имени файла, чтобы определить, какой язык программирования вы используете. Вот почему для Python важно добавлять расширение .py в конце имени файла. Без него Atom не будет автоматически знать, что вы используете Python, поэтому вы не получите подсветку синтаксиса.
Как запустить свой код
Отлично, вы написали свою первую программу и сохранили ее на нашем компьютере, теперь пришло время ее запустить. Кстати, эта программа «Hello World» — ваша первая 9-ка.0031 скрипт . Вы часто будете слышать, что определенные программы называются сценариями. Не позволяйте этому сбить вас с толку. Скрипт — это просто программа . Сценарий или программа просто указывает компьютеру, что делать. Так почему же у нас есть два имени для этого, программа и сценарий? Некоторые из них обусловлены историческими причинами, но обычно мы используем слово « script» для более простых программ и « program» для более сложных программ.
Когда вы запускаете свою программу, она читается и выполняется Python Interpreter — это часть программного обеспечения на вашем компьютере, созданная для понимания кода Python. Это программное обеспечение называется интерпретатором, потому что оно в основном интерпретирует (или переводит) код для компьютера. Ваш компьютер изначально не понимает язык Python. Он понимает только гораздо более старый и сложный язык, на котором людям очень сложно писать. Вот почему вам нужен переводчик.
Здесь очень уместна аналогия с человеческими языками. Если вы не говорите по-немецки и вам нужно поговорить с кем-то, кто говорит по-немецки, но не говорит по-английски, вам понадобится переводчик. Вы не говорите на языке компьютера, потому что это сложно, а ваш компьютер не говорит на Python, потому что на самом деле он слишком сложен и слишком близок к английскому, чтобы он мог его понять. Поэтому вам нужен интерпретатор Python для перевода между ними.
Итак, давайте запустим вашу самую первую программу. Для этого вам нужно открыть терминал, также известный как командная строка . Если вы не знакомы с командной строкой, обязательно прочитайте сообщения в моем блоге, в которых она представлена:
- Введение в программирование: использование командной строки. Часть 1
- Введение в программирование: как использовать командную строку — часть 2
Источник изображения: Atom Editor, https://atom. io/
Теперь, помните, когда он запускается, командная строка (или терминал, как я предпочитаю ее называть) переводит вас в ваш домашний каталог, но вы, возможно, сохранили свою программу в другом каталоге.
Самое время попрактиковаться в навигации по командной строке. Вы можете использовать cd для перехода в каталог. На своем компьютере я сохранил свою программу в Projects/i2p, так что вы можете просто ввести: cd Projects/i2p
Источник изображения: Atom Editor, https://atom.io/
Теперь запустите команду ls, и вы увидите сценарий hello_world.py, который вы сохранили ранее.
Источник изображения: Atom Editor, https://atom.io/
Итак, теперь, когда вы убедились, что находитесь в нужном каталоге, вы можете просто запустить этот скрипт.
Для этого просто введите python hello_world.py и нажмите Enter.
Источник изображения: Atom Editor, https://atom.io/
Вы видите, что интерпретатор Python прочитал код в вашем файле, выполнил его и вывел фразу «hello world», как она есть. было поручено сделать. В терминале python — это просто команда, как cd или ls. Команда python — это команда, которую вы используете для запуска интерпретатора Python.
Помните, что интерпретатор — это просто часть программного обеспечения, которое находится на вашем компьютере, читает файлы, содержащие код Python, и выполняет код внутри них. В этом случае за командой python следует имя файла, содержащего код, который вы хотите запустить, а именно hello_world.py. Если раньше вы давали файлу программы другое имя, то вам следует использовать его вместо hello_world.py.
Это все, что нужно для запуска скрипта. Вы в основном пишете код в редакторе по вашему выбору, сохраняете файл с расширением .py (без пробелов в имени), затем открываете окно терминала и используете команду python, чтобы указать интерпретатору Python прочитать вашу программу и выполнить его.
Как писать код с помощью командной строки Python
Оказывается, интерпретатор Python может делать больше, чем просто запускать код, который вы написали и сохранили в виде скрипта Python. На самом деле, это также позволяет вам писать код и сразу же его выполнять. Давайте посмотрим, что в действии.
Вернемся к терминалу и немного поиграем с командой python. Как вы видели ранее, вы знаете, что если после него указать имя файла, содержащего код Python, он просто прочитает файл и выполнит код внутри него.
Но что, если вы вообще не вводите имя файла, а просто набираете python и нажимаете Enter? Давайте попробуем и посмотрим, что получится:
Источник изображения: Atom Editor, https://atom.io/
Это прямо здесь режим командной строки интерпретатора Python. Когда он запускается, вы можете видеть, что он выводит кучу полезной информации, например версию Python. Ранее я упоминал, что интерпретатор Python — это программа, которая может читать и запускать программы Python. Это можно сделать двумя способами: либо прочитав и запустив файл, как вы видели выше, либо прочитав и запустив команды, которые вы вводите непосредственно в этой командной строке Python.
В командной строке Python нельзя запускать такие команды, как cd или ls, поскольку они не являются допустимым кодом Python. Это команды, которые понимает операционная система вашего компьютера . Однако в командной строке вы можете ввести и запустить любой допустимый код Python.
- Примечание. В начале вы можете спутать командную строку Python с обычной командной строкой, но вот хитрость: если вы видите знак с тремя стрелками (>>>) в начале каждой строки, вы находитесь в командной строке Python и можете набирать и запускать код Python. Если вы его не видите, значит, вы находитесь в обычной командной строке и не можете вводить и запускать код Python, но можете вводить и запускать такие команды, как cd и ls.
Итак, возможно, вам интересно, если вы находитесь в командной строке Python, можете ли вы запустить код, который вы написали в своем файле сценария? Конечно вы можете. Давай попробуем.
Я наберу print(‘hello world’) и нажму Enter, и как только я нажму Enter, я увижу, что интерпретатор Python прочитал введенную мной команду и выполнил ее. Это довольно круто, правда?
Источник изображения: Atom Editor, https://atom.io/
Почему существует два способа запуска кода с помощью интерпретатора Python?
Ну, режим командной строки всегда полезен, если вы хотите быстро что-то попробовать, потому что вы можете написать код и тут же его запустить. Но если у вас есть более сложная программа, состоящая из нескольких строк кода, использовать командную строку очень неудобно. Кроме того, в командной строке Python нет хорошей подсветки синтаксиса, встроенной в редакторы, которые мы видели ранее.
Кроме того, командная строка Python не позволяет сохранять код. Он не позволяет выполнять поиск по коду и не имеет номеров строк, что упрощает работу пользователя при написании кода.
Как написать и запустить сценарий
Теперь, когда у вас есть два способа написания и выполнения кода, вы можете написать его в виде сценария и запустить этот сценарий в командной строке или использовать командную строку Python для писать и выполнять код немедленно.
Файловый метод удобен, потому что вы получаете подсветку синтаксиса, поиск в файлах и т. д., но он также может немного раздражать, потому что вам нужно переключиться на командную строку, чтобы запустить любой код, который вы пишете. Второй метод, командная строка Python, позволяет очень легко писать код Python и сразу же запускать его, но у него нет подсветки синтаксиса или других полезных функций, и его становится очень трудно использовать при написании более длинных программ.
Как новичок, вы, вероятно, задаетесь вопросом, как объединить преимущества файлового метода с преимуществами терминального метода Python. Это возможно? Да, это так!
Введите ноутбуков Jupyter . Прежде чем я подробно расскажу об этом третьем способе написания и запуска кода, давайте закроем командную строку Python. Вы можете сделать это, набрав quit(). Не забудьте скобки. Это немного сложнее, но для справки вот две шпаргалка по Python:
- Памятка по Python
- Памятка по скобкам
Итак, как только я наберу это и нажму Enter, вы увидите, что я вернулся в свою обычную командную строку, потому что три угловые стрелки (>>>) исчезли.
Источник изображения: Atom Editor, https://atom.io/
Какие другие среды программирования вы можете использовать?
Чтобы узнать больше о блокнотах Jupyter, очень мощной среде программирования, ознакомьтесь с нашим подробным руководством по использованию блокнотов Jupyter. На протяжении этого Введение в программирование серии вы будете в основном использовать среду Jupyter, поэтому стоит потратить время на ее изучение и знакомство с ней.
- Как писать и выполнять код в Jupyter Notebooks
Вот и все о том, как писать и запускать. Как обычно, ключом к обучению является практика. Поскольку печать — это единственное, что я пока рассмотрел, просто потратьте несколько минут и напишите код, который печатает разные фразы. Это может показаться глупым, но идея состоит в том, чтобы познакомить вас со средой ноутбука Jupyter, которую мы будем использовать на протяжении всей этой серии статей. И не беспокойтесь, достаточно скоро вы сможете писать гораздо более сложный код.
В этой статье довольно много информации, если вы новичок, так что обязательно прочитайте ее несколько раз, если вам нужно, и следуйте на своем компьютере, пока не освоитесь, делая все, что я показал вам до сих пор.
- Прочитайте следующую статью из серии: Введение в программирование: что такое типы данных? > >
Как писать программы — Cprogramming.com
Алекс Аллен
В повседневной жизни мы все постоянно вносим небольшие исправления. Даже войдя прямая – сложная задача, когда нет обратной связи о том, на самом деле идут прямо. Если вы готовите соус, вы постоянно будете проверьте консистенцию смеси, чтобы убедиться, что она не слишком водянистая. Ты может обнаружить, что даже когда вы пишете, вы возвращаетесь и исправляете свои предложения или реструктурируйте абзацы, прежде чем вы закончите свою часть.
Короче говоря, в повседневной жизни почти все, что мы делаем, требует постоянной обратной связи. правильно ли мы поступаем. Почему программирование должно быть другим? Очень немногие из нас, особенно когда только начинают, создадут программу, которая просто Работает. Вместо этого мы получим массу ошибок компилятора, и как только мы поработаем через них программа возможно будет работать некорректно. Если вы написали сотни строк кода, то у вас могут быть десятки или даже сотни ошибки компилятора для сортировки, и как только вам удалось их пройти, вы все равно столкнетесь с утомительной рутиной отладки, потому что вы не будет знать, где в этих 200 строках кода находится ваша ошибка.
Начать малый
Ключ к тому, чтобы избежать этого разочарования, — начать с малого, если только у меня нет очень хорошее представление о том, что нужно сделать, первое, что я делаю, когда запуск любой программы означает получение простой программы, которую я могу запустить. Эта программа вероятно, мало что делает; он может просто отображать экран приветствия. Но это что-то делает, и это означает, что у меня нет ошибок компилятора, с которыми можно было бы разобраться в ту часть кода. Более того, я знаю, что это работает, потому что я это вижу и Проверь это.
Из чего состоит хорошая исходная структура? Мне нравится иметь какой-то базовый результат и возможно какой-то вклад. Если я работаю над сетевым приложением, моя первая цель просто отправить один пакет по сети с одного компьютера на другой. Делает эти вещи помогают проверить ваши основные предположения о том, как все работает. Если вы не можете заставить работать базовый ввод, то маловероятно, что вы даже сможете чтобы протестировать остальную часть вашей программы.
Встроенные приращения
Когда у меня работает простая программа, я пытаюсь добавить небольшие фрагменты кода, которые достаточно автономны, чтобы их можно было легко протестировать. Это придает мне уверенности что мое новое дополнение действительно будет работать правильно. Еще одно преимущество заключается в том, что если у меня будут только небольшие дополнения к моему коду, то я ограничу количество раздражающие сообщения об ошибках, с которыми мне приходится иметь дело в свое время. я ненавижу иметь дело с пятьдесят сообщений об ошибках столько же, сколько и все остальные, но я предпочел бы иметь дело с пятьдесят ошибок кусками по три-четыре, чем все сразу!
Во многих случаях будет очевидно, какую часть вашей программы вы должны написать next (возможно, потому что все остальное будет зависеть от этого фрагмента кода). В В некоторых случаях вы можете позволить себе роскошь выбора между двумя или более возможными следующие шаги. В этих случаях я обычно предпочитаю решать самые простые задачи. во-первых, потому что я не хочу, чтобы он сидел и беспокоил меня, пока я пытаюсь думать о более сложной проблеме. Я хочу посвятить всю свою умственную энергию трудному проблему, в то время как я могу позволить себе немного побеспокоиться о сложной проблеме, пока я решить проще.
Если вы не знаете, что написать дальше, не бойтесь писать на самом деле потребуется более простой код, чем вы ожидаете. Это нормально писать некоторые базовые функции без заполнения всех деталей, если этого достаточно чтобы вы могли проверить предположение о более важной части кода. Конечно, не всегда понятно, что важнее, но, как правило, будь то, что лежит в основе программы. В игре это может быть игра двигатель; в программе ИИ это может быть алгоритм обучения. В сети приложение, это может быть возможность создания сетевого подключения. Отдавайте приоритет ядру программы, а не функциям, которые никогда не будут использоваться!
Наконец, после добавления фрагмента кода я тестирую его, чтобы убедиться, что он работает. как и ожидалось. Если это не так, то, по крайней мере, я знаю, что ошибка должна быть в код, который я только что добавил. (Бывают, конечно, времена, когда это не случае, но по большей части это правда.) Это означает, что когда я отлаживаю, Я могу игнорировать большую часть своего старого работающего кода и сосредоточиться на том, что происходит, когда выполняется новый код.
Возвращение
Одна из замечательных особенностей постепенного создания — это то, что вы получаете обратную связь. от того, действительно ли вы решаете проблему. После каждого небольшого изменения вы можете проверить свои неявные предположения о том, что должно происходить. Иногда вы можете обнаружить, что то, что вы ожидали, очень отличается от того, что произошло на самом деле. Например, у вас может быть неверный предположения о том, насколько быстрой будет ваша программа. Если требуется час, чтобы начать вверх, то это признак того, что что-то не так! Лучше поймать его, когда вы сначала начать, чем после того, как вы написали целую программу, основанную на этом предположение.
Более того, даже если вам не нужно возвращаться назад, у вас будет более твердое понимание того, что вы делаете. Как только вы сможете играть с рамки вашей программы, гораздо проще получить представление о том, что остальные этого следует делать.
Сосредоточенность
Основная причина поэтапного построения заключается в том, что это позволяет вам сосредоточиться на одном часть вашей программы за раз.