Веб-программирование с азов: Введение

101

Урок 1

У нас на AppleInsider.ru можно научиться многому. Например, вы запросто разберетесь с монтажом видеороликов в Final Cut Pro X вместе с Александром Кипровым в серии видеоуроков «Final Cut Pro X с любовью«, а ребята из Webparadox предлагают окунуться в мир программирования для iOS в реалити-шоу «Научи меня Xcode«. На этом мы не останавливаемся и представляем вам первый урок по программированию Web-приложений, подготовленный специально для AppleInsider.ru Борисом Надыкто.

Компьютеры — наиболее динамичная среда в мире. С момента их появления в виде громадных и дорогих мега-калькуляторов и до сегодня, когда ультрабук тоньше журнала имеет мощность выше, чем все существовавшие в 60-ых ЭВМ мира. Первым популярным ПК стал Apple I, имеющий 4 КБ оперативной памяти и 1 мГц процессор. Вышел в мир он в 1976 году. Теперь такие цифры являются просто смешными для нас. Это и есть доказательством сверхдинамичности рынка компьютеров. В истории компьютеров было много вех и знаковых событий, но мы коснемся только двух.

Первой стало создание сети ARPANET в 1969 году. Претерпев много изменений, она и стала сетью Интернет, которая изменила мир больше, чем открытие огня и изобретение колеса. Второй вехой стала презентация iPhone в 2007 год, которая задала тон индустрии компьютеров на мобильные устройства и отход от не мобильных ПК. Эти два события очень тесно сплетены. iPhone сыграл большую роль в популяризации Интернета и упрощении к нему доступа, а без Интернета сама концепция мобильных устройств потеряла бы целый ряд преимуществ и никогда не прогремела бы так. Изначально первый iPhone не поддерживал установку приложений. Стивен П. Джобс считал, что приложения нативного типа испортили бы совершенную красоту iPhone. А какую альтернативу он предлагал? Веб-приложения! Что это такое?

Веб-приложение — это такое же приложение, как и у вас стоят на iУстройствах, но файлы которого хранятся на удаленном сервере. Основным плюсом этих приложений есть полная кроссплатформенность. Веб-приложения часто путают с флеш-приложениями. Между ними есть кардинальная разница. Веб-приложение полностью исполняется браузером и иногда частично сервером, а Flash-приложения исполняются на ВМ Abobe Flash. Минусов у Flash много, поэтому мы будем изучать инструменты для создания настоящих web-приложений. Да, это первая статья курса о веб-программировании на AppleInsider.Ru!

По его окончанию вы сможете создавать уникальные веб-приложения. Стандартный веб-сайт уже представляет собой смесь огромного множества языков программирования, таблиц, файлов дизайна. Базой является язык разметки HTML. Чтобы вам было понятно, как работает веб-сайт или веб-приложение, я и пишу этот курс. Для удобства он будет разбит на части по технологиям, которые мы будем изучать. Технологии этого курса: PHP,JavaScript, XML, SQL, HTML. Наиболее важной частью интерактивного или динамичного сайта есть скрипты. Сначала мы рассмотрим PHP (так как он самый простой), затем JavaScript (имеет больше возможностей, но труднее).

Для начала нам нужно установить интерпретатор PHP. Для Windows вы можете скачать Denwer, для OS X 10.x-MAMP, для Linux-пакет php 5.6 с зависимостями. Стандартный веб-сайт уже представляет собой смесь огромного множества языков программирования, таблиц, файлов дизайна. Базой является язык разметки HTML.

Старт веб-сервера

Я использую Mac и расскажу, как все проходит на нем. В приложении запустите веб-сервер нажатием по большой кнопке в углу. Теперь перейдите в Настройки — Сеть — AirPort и посмотрите свой IP-адрес. У меня он 192.162.0.111. Он написан под окошком выбора сети в виде фразы: Компьютер подключен к сети и имеет адрес 192.162.0.111. Теперь перейдите по адресу: ваш IP:8080. Работает? Если нет, значит нужно читать справочники. Если да, то идем в папку htdocs в одной папке с приложением. Там есть страница index.html. Ее и откроет браузер при обращении к вашему серверу. Она и будет содержать наш код. А теперь давайте учить PHP!

1. Синтаксис

Все языки программирования имеют какие-либо символы, по которым интерпретатор или компилятор (2) определяет, что нужно сделать (закончить или начать часть кода, ограничить запись значения в переменную). При неправильном распределении знаков программа просто не будет собрана и выполнена.

Синтаксис

Начнем с обозначения начала и конца скрипта PHP:

< ?php //Код ?>

Все, что находится внутри < ?php…?> будет распознано как скрипт и выполнено. Остальные особенности синтаксиса мы будем учить в тех частях, в которых они нам понадобятся.

2. Переменные

Переменные

Что такое переменные, думаю все знают еще из школы. В них с помощью знака = мы можем заложить любое значение. Также можно указать и тип значения переменной. Присваивание значения переменной в PHP выглядит так:


...
$1=15
//Все переменные должны начинаться со знака доллара.
...

Если требуется удалить значение переменной, то мы используем команду unset();

< ?php
unset (

3. Оператор

Операторы

Знак, который выполняет операции с числами и переменными:

* — умножение;
— — минус;
/ — деление;
+ — сложение;
== — сравнение;
< — меньше; > — больше;
=> — больше или равно;
< = — меньше или равно;
% — остаток от деления;
++ — инкримент. Увеличивает значение переменной на 1;
— — декримент. Уменьшает значение переменной на 1;
+= — увеличение значения переменной на указанную величину.
*= — умножение значения переменной на указанную величину.
-= — уменьшение значения переменной на указанную величину.
/= — деление значения переменной на указанную величину.

Есть еще много операторов двоичной системы, которые я не указываю.

4. Функции

Команды компьютеру — почти самое важное. Допустим, нам надо сообщить пользователю результат работы программы. Мы используем функцию echo()! Пример:

< ?php $1=15; $2=20; $3=$1+$2; echo $3; ?>

После функций ставим ;!

При назначении или выводе переменной мы заключаем значение для вывода или записи в ‘1’, если это только текст, в «1», если это переменные и текст или 1, если это только переменные.

Также вы можете создавать свои функции командой function():

< ?php function XXX($x) { команды } ?>
Очень удобно! Теперь мы можем сделать так: < ?php function printer ($1,$2) { $3=$1+$2; echo $3; } printer (500,900); printer (50,90); ?>

Набор функций PHP мы плотнее изучим в следующей статье курса.

5. Комментарии

Для легкости чтения и поддержки программы желательно вставлять в нее комментарии. Комментарии вставляются в ваш код, но не исполняются. Пример:

< ?php $chislo=5 //Мы назначили переменной значение #Теперь $chislo=5 /*что мы будем делать дальше? Мы будем учить массивы! Длинный комментарий. Простые только на одну строку, а этот на две*/ ?>

Комментарий

6. Массив

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

< ?php $1=array ('1', '2','3'); /*Для проверки мы используем функцию count, которая считает количество элементов*/ echo count $1; ?>

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

Массив

7. Константы

Есть переменные, значения которых мы менять не можем. Это константы. Есть встроенные константы (число Пи, например), и можно создавать свои константы командой define();

< ?php define ("author",”AvS") echo "author"; $author=PG; //Вылезет ошибка, так как константу менять нельзя ?>

8. Рекурсия

Рекурсия — это обращение к функции внутри нее же. Подробнее мы ее практическое применение изучим в следующем курсе. Для начала хватит. В следующем уроке курса мы изучим больше функций, узнаем несколько маленьких хитростей, напишем первую полезную программу на PHP и узнаем больше о рекурсии.

Домашнее задание:

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

Короткий FAQ:

Q: Что такое типы и типизация из части про переменные?

A: Во многих языках требуется ручное указание типа переменной. А типы обозначают то, что будет содержать переменная (строку, число, переключатель). PHP сам это определяет.

Q: Что я смогу создать по окончанию курса о PHP?

A: Программу на PHP практически любой сложности

Q: Что я смогу создать по окончанию курса?

A: Интерактивный веб-сайт, движки…

Q: Как веб-программирование связанно с тематикой сайта?

A: Одной из важнейших частей iOS является простота использования Интернета. Пользователи iУстройств активней всех серфят по Интернету. Даже iPhone изначально задумывался, как платформа только для веб. Также много небольших плюсов, например, веб-приложения позволят молодому разработчику не тратить деньги на публикацию приложения App Store.

Q:На кого рассчитан курс?

A: На вообще не умеющих программировать и незнакомых с веб-технологиями людей. До скорого и спасибо за рыбу!

Примечания:

1: Скрипты-сценарии. Короткие программы, работающие только из одного файла с кодом.

2: Компилятор — программа, которая собирает в один пакет все файлы приложения (изображения, музыку, код) и преобразует код в доступный для исполнения.

3: PHP — язык программирования, заточённый под создание веб-сайтов.

4: var= классическое имя переменной.

Boris Nadykto, ApplevsGoogle

101 комментарий

  1. 0
    Руслан

    Отлично ребята
    Но хотелось бы тоже в видео формате!
    Но все равно спасибо!

  2. 0

    Учат програмированиюю, когда у них сайт построен на wordpress?? #рукалицо (отправлено из приложения AppleInsider.ru)

  3. 0
    Алексей

    Возникла проблема на первом же шаге.
    В статье написано: «Теперь перейдите по адресу: ваш IP:8080. Работает? Если нет, значит нужно читать справочники.»
    У меня не работает, так какие справочники читать?

  4. 0

    «Научи меня Xcode« — исправьте кавычку.

  5. 0
    Фатер

    Ребята, зачем это здесь?

  6. 0
    Игорь

    Ну и что? Весьма качественно построен между прочим

  7. 0
    fatalstrike

    Отличная идея, продолжайте выпускать уроки как можно чаще! (отправлено из приложения AppleInsider.ru)

  8. 0
    ApplevsGoogle

    Кто решил задачку?

    • 0

      ApplevsGoogle, Непонятно, какой формат выводимых данных. Нужно вывести «1 < 3 < 5", или вывести "1" если первый аргумент — самый большой, или каким-то другим способом?

      • 0
        ApplevsGoogle

        oioki, Допустим у нас есть три пары чисел
        3 и 5;
        4 и 3;
        8 и 7;
        Ваша функция должна принимать эти пары и давать вывод:
        3>5=false;
        4>4=true;
        8>7=true;

  9. 0

    Никогда не любил веб приложения. Считал их всегда как «baby software» (c). Выглядят убого. Функционал стремится к 0, ряшек нет. УГ короче. (отправлено из приложения AppleInsider.ru)

    • 0

      Zhukov, Вокруг вас веб-приложения. Твиттер, Фэйсбук. Или вы думали, что веб-приложение — это программа, которую из браузера юзать можно? (отправлено из приложения AppleInsider.ru)

  10. 0

    Научить людей программировать с помощью статьи это жестоко. Максимум — заинтересовать, иначе получится обычный быдлокодер, не знающий распоследнего мердж-сорта. (отправлено из приложения AppleInsider.ru)

    • 0

      ablay, Молодцы, конечно, но не серьезно это как-то 🙂 (отправлено из приложения AppleInsider.ru)

    • 0
      ApplevsGoogle

      ablay, Извините, а вы ожидали сразу стать супер-мега-гига программистов прочитав 15 статей?

      • 0

        ApplevsGoogle, Я имел ввиду, что такие статьи потеряли смысл (имхо, конечно). А я все это по книжкам учил и документацию читал, поэтому ни на что там не надеялся 😉 (отправлено из приложения AppleInsider.ru)

    • 0

      ablay, знаете, в этом то и дело. С одной стороны, новичку не хватит и одних лишь статей, чтобы научиться кодить. Но с другой стороны, опытному программисту достаточно знать синтаксис и уметь работать с документацией, чтобы написать что угодно. (отправлено из приложения AppleInsider.ru)

  11. 0
    Редактор

    когда новые уроки?

  12. 0
    ApplevsGoogle

    Раз в неделю.

  13. 0
    Ильнар Тухбатов

    вот еще кому интересно видеокурсы по Web
    Школа московская вроде, «Специалист»
    http://nnm-club.ru/forum/viewtopic.php?t=332197
    Этенншшн! торрент трекер

  14. 0

    Спасибо, мне понравилось. Кому не очень — поступайте на ПММ, вам там более расширенно расскажут. (отправлено из приложения AppleInsider.ru)

  15. 0
    Boris Dzhuguryan

    Спасибо за такие статьи (отправлено из приложения AppleInsider.ru)

  16. 0
    Завен

    Думаю при создании сайта а уж тем более учить новичков сразу с пхп ?))) это как надеть штаны через голову))) всю жизнь начинали с разметки хтмл потом цсс а уж потом либо яву либо пхп =)) ибо так легче усваевается))

  17. 0
    yaiznasilovalviku

    echo — это конструкция языка, а не функция. Понятие компиляции в php вообще отсутствует. Для улучшенной читабельности кода лучше используйте highlight.js. А вообще для самых начинающих в веб-разработке нужно было начать только с HTML и CSS, далее можно JS, а уже потом и PHP

  18. 0

    Объясните зачем ставить MAMP?
    Apache и PHP уже изначально есть в OS X и нужно их просто включить, причем делается это 2-мя строчками в терминале.
    А вот MySQL придется скачать и установить.

  19. 0
    Egorkaololo

    Только Adobe, а не Abobe

  20. 0

    3: PHP — язык программирования, заточённый под создание веб-сайтов.

    куда это он заточЁн?

  21. 0

    Я думаю благодаря этим урокам начищающие поймут как просто программировать на вэб (отправлено из приложения AppleInsider.ru)

  22. 0
    guyvernk

    Выкинуть и забыть. Пхп ненужен. Питон или руби — пишите про них и то полезнее будет (отправлено из приложения AppleInsider.ru)

    • 0
      Antervis

      guyvernk, вы сайты будете на питооне или на руби писать? (отправлено из приложения AppleInsider.ru)

    • 0
      ApplevsGoogle

      guyvernk, Вам не нужен, а более 70% сайтов на PHP. Хотя нет, лучше для начала взять Perl! (отправлено из приложения AppleInsider.ru)

      • 0
        guyvernk

        ApplevsGoogle, Миллионы мух не могут ошибаться))) пхп устарел 100 лет назад. Как только завезут гринтреды(ява ерланг) асинхронность(нодажс питон) так и приходите. Как только хотябы p10k решат -пишите. В то время как нормальные языки решают p100k да и p1m… В похопе даже прекомпиленых шаблонов не завезли (отправлено из приложения AppleInsider.ru)

    • 0
      yaiznasilovalviku

      guyvernk, Чем PHP так плох? На нем вполне можно создавать как и простые, так и высоконагруженные сайты, да и к тому же огромное количество хостингов поддерживает его.

    • 0

      guyvernk, После C++, PHP пошел как по маслу. Плюс у php большее сообщество и больше инструментов для работы. Ruby замечательный, но пока не вижу смысла переходить на него. (отправлено из приложения AppleInsider.ru)

  23. 0

    Спасибо! Нужная инфа!

  24. 0
    Игорь

    Xcode понятно, это среда разработки от Apple.
    FCPX тоже понятно, монтажка от Apple.
    Но.. эти руки мне кажется выбиваются из темы ресурса. ИМХО, если хочется написать что-то про веб связанное именно с Apple, то есть масса материала и по этой теме. Например мета тэги:
    apple-touch-icon, user-scalable=no и другие вещи связанные с версткой под iOS.

  25. 0
    Александр Прокудин

    Мне кажется подобные материалы совершенно неуместны в этом интернет-журнале.

  26. 0
    thed00ker

    Растите нам, фронтенд/бэкенд девелоперам, смену? 🙂 (отправлено из приложения AppleInsider.ru)

  27. 0

    Ребята! Начинание ваше отлично и уверен, что оно будет полезно многим. Но…

    В статье есть несколько моментов, которые взрывают мозг.

    1. «Теперь перейдите в Настройки — Сеть — AirPort и посмотрите свой IP-адрес. У меня он 192.162.0.111. Он написан под окошком выбора сети в виде фразы: Компьютер подключен к сети и имеет адрес 192.162.0.111. Теперь перейдите по адресу: ваш IP:8080.» — лучше было бы сделать скриншот.

    2. Количество восклицательных знаков зашкаливает. Местами они мешают пониманию. Вот например, «echo()!» — далее в коде у вас идет echo уже без скобок и без восклицательного знака. И еще тут — «После функций ставим ;!» только «;» или «;!» — это ж программирование — темный лес — там все возможно!

    3. Следующий абзац ввел меня в транс минут на 5. Я честно перечитал его несколько раз. Понятнее не стало.
    Цитирую:
    «При назначении или выводе переменной мы заключаем значение для вывода или записи в ’1′, если это только текст, в «1″, если это переменные и текст или 1, если это только переменные.»

    Вот что здесь что? Почему сначала ’ потом ′? Таже непонятка с двойными кавычками. Концовка фразы взрывает мозг окончательно. Такое ощущение что здесь упехнут большой кусок информации.

    4. Почему на схемах одни линии сплошные, а другие прерывистые. Я догадываюсь, что это какая-то программистская нотация, но простым людям об этом ничего не известно. В статье по этому поводу не слова.

    5. Абзац про рекурсию совершенно невнятный. Статья бы ничего не потеряла если бы его не было, а так еще одно новое слово на бедного читателя.

    6. Фраза «До скорого и спасибо за рыбу!» что это? какаю рыбу? или это какой-то мем, мне темному не известный?

    7. Ну и в целом по статье в нескольких местах знаки препинания стоят не так как принято. Нет пробелом после точек, двоеточий, запятых и т.д.

    Не гноблю, уважаю, хочу что бы вы стали еще лучше!

  28. 0
    ApplevsGoogle

    1. Посмотреть мануалы по определению IP можно в Google, вот я и не стал на этом останавливаться.
    2. За знаки извините, я думал так отметить наиболее важные места.
    3. Без 1 стало б нечитабельно.
    4. На схемах разные линии из-за моей косорукости.
    5. Я посчитал, что ее необходимо упомянуть, но понять ее смысл можно только зная функции.
    6.»До скорого и спасибо за рыбу!»- фраза из «Автостопом по Галактике». Она довольно известна. (отправлено из приложения AppleInsider.ru)

  29. 0
    Руслан

    Вообще то php уже встроен в os x, его нужно только активировать в apache, хотя это немного геморно

  30. 0
    Человек с айпадом

    по-моему переменные, начинающиеся с цифры это уже взрыв мозгов

    • 0
      stepa.razrob

      Человек, Дело в том что в приложениях очень много переменных разных типов,
      И чтобы понимать ставят символы в начале.
      Пример: ( Только пример! В коде такого нет)
      Тип числовой. Имя хотим например «Телевизор»
      Будет: «чТелевизор»
      Тип буквенный.
      Будет «бТелевизор» (отправлено из приложения AppleInsider.ru)

  31. 0
    stepa.razrob

    Замечательная статья !
    У меня только одна просьба- вас просят делать видео, я ничего не говорю делайте, но окончательно на видео не переходить пожалуйста, просто когда интернета нету, видео не грузит.
    И ещё один вопрос я не до конца понял отличие между Flash и Web приложениями. Спасибо. (отправлено из приложения AppleInsider.ru)

    • 0
      ApplevsGoogle

      stepa.razrob, Видео делать не буду. Но если что, учтем.Flash appы исполняются в виртуальной машине Флещ, а веб-приложения на технологиях HTML5 очень легки, работают почти во всех браузерах и могут работать везде. Флеш очень тяжел, не работает на моб. устройствах и очень уязвим.

Авторизуйтесь Чтобы оставить комментарий