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