Чтение онлайн

на главную - закладки

Жанры

Первые 20 часов. Как быстро научиться… чему угодно
Шрифт:

Первоначально я собирался прочесть «Красноречивый Ruby» и «Программирование на Ruby», выполнить упражнения из «Сложного способа выучить Ruby», а затем попытаться написать первую «настоящую» программу. Однако к десятому уроку я заметил кое-что важное: мне становится скучно, и я теряю интерес.

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

Мне нужно заканчивать с исследованием и приступать к практике.

Мне не нужно читать все эти книги, инструкции, пособия и другие источники информации, чтобы приступить к программированию. Я должен писать реальные программы, а если возникнут трудности, обращаться к источникам информации.

Пора замарать руки…

Приложение № 1: статический сайт в среде Sinatra

Я уже придумал свою первую интернет-программу: приложение в среде Sinatra, которое служит основным HTML-сайтом. Вот мой целевой уровень мастерства для этого приложения.

1. Создать рабочее приложение в среде Sinatra, способное предоставить простой сайт пользователю (читателю).

2. Проверить приложение на своем компьютере и убедиться в его работоспособности.

3. Разместить это приложение на сервисе Heroku, сделав «живым», чтобы им могли пользоваться реальные читатели.

Вот и все. Никаких изысков. Простое приложение в среде Sinatra, запущенное на сервере общего пользования.

С чего я должен начинать? Обратимся к списку десяти основных принципов приобретения навыка.

1. Выберите привлекательный проект.

2. Сосредоточьтесь на каком-то одном навыке.

3. Определите целевой уровень мастерства.

4. Разбейте навык на элементы.

5. Приготовьте все необходимое для занятий.

6. Устраните препятствия для занятий.

7. Выделите специальное время для занятий.

8. Создайте быстрые петли обратной связи.

9. Занимайтесь по расписанию, короткими интенсивными интервалами.

10. Уделяйте внимание количеству и скорости.

У меня есть один четко описанный проект. Я разбил навык на составляющие и знаю, как будет выглядеть моя программа, когда я закончу работу. Теперь перейдем к необходимым инструментам: нужно ли мне что-то еще для успешного осуществления проекта?

Как выяснилось, нужно. У меня нет учетной записи на Heroku. Но это легко исправить: я захожу на сайт Heroku.com, щелкаю на кнопке Sign Up, ввожу адрес своей электронной почты и придумываю пароль.

Поскольку я уже установил на компьютере Heroku Toolbelt (программу, использовавшуюся для установки git), то библиотека Heroku загружена в мой компьютер, и с этим проблем не будет.

Судя по инструкции, мне нужно сделать еще одну вещь, чтобы связать мой компьютер с Heroku: сгенерировать «SSH key», специальный файл,

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

К счастью, в Heroku есть указания на то, как это сделать [27]. Я ввожу команду для генерации ключа:

$ ssh-keygen — t rsa

…команду для входа в Heroku:

$ heroku login

…и команду, которая добавляет ключ к моей учетной записи в Heroku:

$ heroku keys: add

Отлично: я в системе. Как мне теперь приступить к написанию программы?

Создание простого приложения

Пришло время просмотреть документацию по сервису Heroku. Отлично: там есть два руководства, которые представляются мне полезными:

«Ruby на Heroku для начинающих» («Getting Started with Ruby on Heroku») [28];

«Развертывание приложений на основе Rack» («Deploying Rack-Based Apps») [29].

Судя по тому, что написано в этой документации, я должен сделать следующее.

1. Создать файлы с программами на своем компьютере.

2. Добавить их в «репозиторий git». (Понятия не имею, что это…)

3. Использовать команду git push heroku master, чтобы отправить готовое приложение на Heroku.

К счастью, в руководстве есть пример, и это приложение, написанное в среде Sinatra! Похоже, все проще, чем я думал…

Я создаю на своем компьютере новую папку. Эта папка называется «корневой», и в ней будут храниться все файлы программы.

Далее я открываю текстовый редактор (я пользуюсь редактором TextMate [30]) и, следуя инструкции, создаю три файла:

application.rb

config.ru

Gemfile

Ядро программы будет находиться в application.rb. Приложения, написанные на языке Ruby, всегда оканчиваются расширением. rb.

В файле config.ru будут храниться параметры конфигурации Rack. Не забывайте, что Sinatra построена над интерфейсом Rack, и поэтому вполне логично, что у него есть отдельный файл конфигурации. Эти файлы оканчиваются расширением. ru.

Gemfile — это место, где указываются библиотеки, используемые программой. Ваша программа может иметь только один такой файл, и поэтому он всегда называется одинаково — «Gemfile». Все довольно просто.

Документация по Heroku рекомендует после создания этих файлов написать простейшую программу «Hello, World!», чтобы проверить настройки. Вот что должно быть в файле application.rb:

require 'sinatra'

get '/' do

"Hello, World!"

end

А так выглядит файл config.ru:

Поделиться:
Популярные книги

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода