Понятие базы данных лучше всего иллюстрирует стопка учетных карточек. Предположим, вы хотите создать адресную книгу, в которой указаны имя, номер телефона, адрес электронной почты, пол и возраст всех ваших друзей.
Каждый друг получает свою учетную карточку, в которой записывается информация о нем. Если кто-то из друзей, к примеру, меняет адрес электронной почты, вы можете стереть старую информацию с карточки и заменить ее новой. Взглянув на любую учетную карточку, вы видите всю информацию сразу.
Стопка учетных карточек аналогична базе данных. Каждая карточка в стопке называется
Пока понятно? А вот теперь самое интересное. Представьте, что ваша стопка учетных карточек стала волшебной. Вы можете разговаривать с ней, приказывая показать вам карточки, отвечающие определенным условиям, например:
покажи мне карточку Джона Смита;
покажи мне все карточки женщин;
покажи мне все карточки людей, которым больше пятидесяти лет.
Очень удобно, правда? В сущности, именно для этого и служат базы данных — предоставляют вам способ хранения структурированной информации, а также способ ее извлечения в любой удобной форме.
Каждая разновидность данных, которую мы заносим в карточку, называется
Базы данных — самый распространенный способ хранения информации в интернет-приложениях. Если вам нужно хранить такие данные, как имя пользователя, адрес электронной почты, и другие подобные сведения, для этого прекрасно подойдет база данных. После того как Джон Смит войдет в ваше приложение, вы можете извлечь его имя из записи в базе данных, а затем вывести на экран: «Привет, Джон Смит!»
Другой распространенный способ хранения информации в интернет-приложениях — куки-файл. Это очень маленький текстовый файл, сохраняемый на компьютере пользователя. Куки-файлы удобны для хранения небольшого объема данных непродолжительное время.
В случае нашей программы для адресной книги можно хранить куки-файл, созданный в тот момент, когда Джон Смит входит в систему. Куки-файл Джона содержал бы такую информацию: username = johnsmith и loggedin = true. Если Смит покинет приложение, а затем снова вернется, программа распознает куки-файл и откроет доступ без повторной регистрации. Можно сделать так, чтобы куки-файлы хранились определенное время, что удобно для этого типа программирования. (Если вы увидите на сайте сообщение «Запомнить этот пароль», то происходит именно запись куки-файла.)
В данном случае мы производим разбиение на основные элементы. Это ни в коем случае не исчерпывающий список уникальных характеристик веб-программирования, однако его вполне достаточно, чтобы получить представление, чему мне нужно научиться. Это переменные, условные операторы, исключения, локальная/рабочая среда, базы данных и куки-файлы.
Видите, насколько полезным оказалось подобное разбиение? Я начал с туманного представления о том, чем я хочу заняться, а теперь у меня есть конкретный список навыков, которые нужно освоить.
Тем не менее я еще не готов приступать к работе. Помните, я говорил о том, что компьютеры не понимают человеческого языка? Мне нужно выбрать язык программирования, чтобы писать команды программы, а для этого потребуются дополнительные исследования.
Выбор языка для программирования интернет-приложений
В нашем распоряжении есть тысячи самых разных языков программирования, и каждый день появляются новые. У этих языков свой синтаксис, который по большей части определяется тем, для каких задач создавался язык. Каждый язык оптимизирован для решения определенного класса задач.
Прежде чем приступать к изучению программирования, я решил потратить час на просмотр самых популярных сайтов для программистов и выяснить, какие языки рекомендуются разработчикам интернет-приложений. Эти предварительные исследования помогут мне решить, какой язык мне нужно освоить и какие начальные навыки мне потребуются для практических занятий.
Два самых популярных сайта для программистов — это Stack Overflow [7] и Hacker News [8], и поэтому за советом в выборе языка я обратился именно к ним.
Stack Overflow представляет собой диалоговый сайт, место, на котором задают вопросы типа: «Как мне сделать Х?» Опытные и знающие программисты обычно отвечают на вопросы — дают конкретные советы, излагают подходы, указывают, как исправить ошибку, — что делает сайт лучшим помощником в решении сложных задач программирования.