Книги онлайн и без регистрации » Психология » Первые 20 часов. Как быстро научиться... чему угодно - Джош Кауфман

Первые 20 часов. Как быстро научиться... чему угодно - Джош Кауфман

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 29 30 31 32 33 34 35 36 37 ... 68
Перейти на страницу:

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

Одно из приложений, которым я пользуюсь, называется Backpack [33] и разработано компанией 37signals. Основное преимущество Backpack — возможность создавать страницы, содержащие все что угодно: текст, списки, изображения, файлы и так далее. Сохранив информацию о странице в Backpack, впоследствии вы можете получить к ней доступ с любого компьютера, поскольку вся информация хранится в базе данных приложения.

Я спрашиваю себя: могу ли я сам создать нечто подобное? Попробовать стоит… но с чего начать?

Изучая Jekyll, я прочел статью программиста Тома Престона-Вернера, создателя Jekyll, под названием «Начни разработку с Readme» («Readme Driven Development») [34]. Идея статьи заключалась в том, что вопреки волнам увлечения проектным менеджментом, которые каждые несколько лет захлестывают индустрию программного обеспечения, лучший способ создать приложение — начать с написания ознакомительного документа Readme.

Файл Readme программисты включают в корневой каталог приложения вместе с программным кодом. В нем содержится информация по установке, настройке и использованию программы.

Файлы Readme очень важны, поскольку многие программы требуют пояснений. Без этого документа зачастую бывает трудно понять, как пользоваться программой. Самостоятельный просмотр кода не так эффективен, как чтение подробного объяснения, написанного создателем программы.

Том утверждает, что сначала нужно написать файл Readme, а уж затем браться за саму программу. Большинство программистов поступают с точностью до наоборот: сначала пишут программу, а затем (возможно) ознакомительный файл. И упускают благоприятную возможность: разработка документации помогает понять, как именно будет работать программа. Файл Readme может быть не только полезным документом, но и средством разработки.

Такой подход мне нравится. Один из приемов, которые я освоил в процессе работы над «Сам себе MBA», заключался в написании рекламных материалов до, а не после создания коммерческого предложения. Выясняя, что требуется потенциальным покупателям, и включая это в рекламный материал, вы получаете более полное представление о том, каким должен быть продукт, чтобы привлечь внимание клиентов. Разработку самого предложения определяет маркетинговое исследование.

Я взял блокнот и составил список функций, которые я хотел бы иметь в своем приложении, а также характеристик программы.

● Программа представляет собой простое приложение, предназначенное для создания заметок.

● Приложение предназначено для одного пользователя.

● Приложение использует среду Sinatra и базу данных для создания, сохранения, обновления и удаления записей на странице.

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

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

● У приложения привлекательный внешний вид.

● Приложение может без труда размещаться на Heroku или любом другом ресурсе.

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

В интернет-программировании подобные приложения называются «CRUD» — аббревиатура от английского «создание чтение обновление удаление». Стоит отметить, что эти функции совпадают с командами GET, POST, PUT, DELETE, и поэтому написать такое приложение можно и с использованием маршрутов Sinatra. Разница, причем существенная, заключается в использовании базы данных.

Какие возможности работы с базами данных предоставляет Heroku? Не знаю. Придется вновь заглянуть в документацию.

По умолчанию Heroku использует базу данных под названием Postgres [35]. Каждому новому приложению автоматически назначается маленькая база данных разработки. Мне это подходит, но как ею пользоваться и какими средствами протестировать программу на моем компьютере?

За ответами на эти вопросы я решил обратиться к Stack Overflow. Общее мнение: решение подобных задач значительно облегчает применение базы данных под названием DataMapper [36].

DataMapper относится к классу программ, получивших название «объектно-реляционного отображения», или сокращенно ORM [37]. Метод ORM решает насущную проблему программистов: базы данных зачаcтую используют собственный язык, отличающийся от языка, на котором пишется приложение. В большинстве баз данных используется язык SQL [38], однако существуют и сотни других языков.

Предположим, что мы пишем программу для сайта Amazon.com и хотим вывести на экран список книг Дж. К. Роулинг, автора серии о Гарри Поттере. Команда на языке SQL будет выглядеть так:

SELECT * FROM Book WHERE author = "J.K. Rowling" ORDER BY

title;

Данная команда извлекает из базы данных все записи, в поле «author» которых содержится «J.K. Rowling», и располагает их в алфавитном порядке по названию книги.

К сожалению, заставить SQL или любой другой язык запросов базы данных корректно работать с такими языками, как Ruby, — сложная задача. Непросто писать программу на одном языке, не говоря уже о нескольких языках одновременно.

Здесь на помощь приходит ORM: она позволяют программисту писать программу на одном языке, который ORM затем переводит на язык базы данных. Так гораздо проще.

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

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

$ gem install data_mapper

Поскольку объем библиотеки DataMapper очень велик, ее можно устанавливать по частям. Этот принцип называется «модульностью», и он может служить признаком профессионального программирования. Вот как выглядит команда загрузки всех отдельных библиотек:

$ gem install dm-core dm-aggregates dm-constraints dm-migrations dm-transactions dm-serializer dm-timestamps dm-validations dm-types

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

Использование DataMapper

Теперь, когда библиотека DataMapper установлена, я должен научиться с ее помощью 1) связываться с базой данных и 2) создавать базу данных для хранения и извлечения нужной мне информации.

1 ... 29 30 31 32 33 34 35 36 37 ... 68
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. В коментария нецензурная лексика и оскорбления ЗАПРЕЩЕНЫ! Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?