Серверный программист. Выбор метода решения задачи

Технологии создания web-приложений. Языки HTML, DHTML, технология Flash. Достоинства и недостатки.

Веб-приложение - клиент-серверное приложение, в котором клиентом выступает браузер, а сервером - веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами.

HTML (язык разметки гипертекста) - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа, в удобной для человека форме.

DHTML(динамический HTML) – это набор средств, которые позволяют создавать более интерактивные Web-страницы без увеличения загрузки сервера. Другими словами, определенные действия посетителя ведут к изменениям внешного вида и содержания страницы без обращения к серверу.

DHTML построен на объектной модели документа (Document Object Model, DOM ), которая расширяет традиционный статический HTML-документ. DOM обеспечивает динамический доступ к содержимому документа, его структуре и стилям. В DOM каждый элемент Web-страницы является объектом, который можно изменять. DOM не определяет новых тэгов и атрибутов, а просто обеспечивает возможность программного управления всеми тэгами, атрибутами и каскадными листами стилей (CSS).

Технология Flash основана на использовании векторной графики в формате Shockwave Flash (SWF) разработанная компанией Macromedia. Это далеко не первый векторный формат, но именно его создателям удалось найти наиболее удачное сочетание между изобразительными возможностями графики, инструментальными средствами для работы с ней, а также механизмом включения результата в Web-страницы. Основным преимуществом Flash технологии является его межплатформенность, то есть этот формат может использоваться на любой аппаратно-программной платформе (в частности, как на компьютерах Macintosh, работающих под управлением операционной системы MacOS, так и на компьютерах IBM с ОС Windows). И еще одна весомая особенность Flash технологии: созданные на его основе изображения могут быть не только анимированы, но еще и дополнены интерактивными элементами и звуковым сопровождением.



HTML – hyper text markup language – язык гипертекстовой разметки (НЕ ЯЗЫК ПРОГРАММИРОВАНИЯ)

Тэги – инструмент оформления web-страниц ( текст - оформление текста в виде ссылки)

DHTML – Dynamic HTML

DHTML=HTML+CSS+Java Script+(XML) (НЕ ЯЗЫК ПРОГРАММИРОВАНИЯ)

CSS – Cascadin Style Sheets – язык таблиц каскадных стилей (для задания внешнего вида (шрифтов, цветов, расположения, отступов…)) web-страниц и применяется для отделения основного содержимого документа от оформления этого содержимого.

Преимущества DHTML:

Поддерживается всеми браузерами;

Использует стандартные технологии;

Файлы загружает быстрее, чем flash/java;

Не требует модулей расширения;

Прост в изучении;

Высокая скорость разработки web-страниц;

Недостатки DHTML:

Разный вид web-страниц в разных браузерах;

Ненадежная работа в связи с ошибками в браузерах;

Java Script и CSS чувствительны к ошибкам в синтаксисе.

Flash – платформа для создания мультимедийных приложений.

Преимущества Flash:

Платформенная независимость;

Распространенность и предоставление разработчикам огромнейшего количества инструментов.

Недостатки Flash:

Сложна в изучении;

Несовместимость программных компонентов.

Технологии создания web-приложений. Языки программирования (на стороне сервера и пользователя)

1 группа языков программирования в интернет – на стороне пользователя (в браузере)

Java Script, VB Script, java-апплеты

Программы, написанные на этих языках встраиваются в код web-страниц или выносятся в отдельный файл с вызовом web-страниц.

2 группа языков программирования в интернет – программы на которых выполняются на стороне сервера: PHP, CGI, ASP, Perl

Клиентские языки программирования

Самые распространённые из них - JavaScript и Visual Basic. Особенность таких языков заложена в их названии. Программы, написанные на клиентских языках программирования обрабатываются на клиентском компьютере. Говоря проще, скрипты обрабатывает браузер, стоящий на Вашем компе. Из этой особенности вытекают их плюсы и минусы.

Самым большим плюсом является то, что нет необходимости отправлять веб-документ для обработки на сервер. Эта особенность значительно повышает скорость чтения скрипта. Уменьшается трафик,что экономит деньги и снижается нагрузка на сервер. Так же нет надобности ставить дополнительное программное обеспечение для обработки скриптов, т.к. их обрабатывают браузеры.

Недостатки клиентских языков программирования также вытекают из особенностей. Разные браузеры могут интерпретировать скрипты, исходя из своих индивидуальных предпочтений. Поэтому, результаты показа одних и тех же документов могут отличаться. Хотя, последнее время работа различных браузеров всё более унифицируется. Так же к недостаткам можно отнести и открытость кода таких языков для пользователей.

Серверные языки программирования соответственно работают на стороне сервера. Во взаимодействии с базами данных они поддерживают связь между пользователем и сервером. Получая запрос с адресом веб-документа от браузера, серверные программы связываются с базой данных. БД отдаёт информацию о веб-странице скриптам сервера, и те обработав её, отсылают для интерпретации браузеру клиента, который и выводит результат совместной работы на монитор.

Упрощённая схема такой работы изображена на рисунке:

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

Наиболее распространённые серверные языки программирования : C++, Perl, Java, Php, Python.

Web - мастеринг. Серверное web - программирование

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

Разработчики, программисты, верстальщики, оптимизаторы – ценные сотрудники в российских и международных компаниях. Им предлагают достойный оклад и заманчивые условия труда: корпоративные «плюшки», интересные проекты, карьерный рост, гибкий график. Благодаря стабильному спросу на свои услуги веб-мастер может позволить себе работать на фрилансе: самому выбирать заказчиков, не отчитываясь перед «дядей», сидя в любимом кресле дома или в отеле на берегу моря.

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

Наш курс «Web-мастеринг. Серверное web-программирование» поможет изучить механизмы работы веб-сервера и получить практические навыки администрирования. Он будет полезен выпускникам курсов направлений PHP, ASP.Net и др. и слушателям, которые только планируют это обучение. Курс может быть рекомендован выпускникам курсов по веб-направлению, если слушатели не проходили настоящий курс.

На занятиях Вы рассмотрите сервер IIS, входящий в состав линейки ОС Windows 8/7 и Windows Server 2012/2008 , а также сервер Apache версий 2.2-2.4 , часто применяемый на платформе Unix . Преподаватель уделит внимание важным темам, связанным с безопасностью: механизмы аутентификации, сценарии авторизации пользователей, настройка и использование SSL, работа с сертификатами SSL, использование модуля сервера Apache mod_rewrite.

Полученные знания Вы отработаете на практике: 24-часовой курс включает 13 лабораторных работ. Пройдя курс, Вы сможете самостоятельно администрировать серверы IIS и Apache 2.2-2.4, управлять кэшированием контента, использовать SSL и работать со спецификациями RFC. Ваши умения и навыки подтвердят престижные документы центра: свидетельство и удостоверение о повышении квалификации.

Успешная карьера веб-программиста начинается с этого курса! Записывайтесь на курс!

По окончании курса Вы будете уметь:

  • Знать и понимать протокол HTTP/1.1
  • Администрировать сервер IIS
  • Администрировать сервер Apache 2.2 - 2.4
  • Управлять кэшированием контента
  • Использовать обработчики и модули сервера
  • Понимать механизмы аутентификации пользователей
  • Использовать SSL
  • Работать со спецификациями RFC
Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.

Продажник

Для просмотра содержимого вам необходимо

Языки программирования, позволяющие работать с Интернет-технологиями, называют языками веб-программирования (далее для удобства - ЯВП). Некоторые из них когда-то создавались специально для конкретных ресурсов и широко известны стали гораздо позже. PHP, например.

WEB програмированиеВсе ЯВП делятся на серверные и клиентские:

Клиентские языки web-программирования


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

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

Программный код скрипта, созданного на клиентском ЯВП, может просмотреть кто угодно, например, щёлкнув правой кнопкой мыши на странице и выбрав в контекстном меню пункт «Просмотр кода страницы» или подобный ему (в зависимости от браузера).


Преимуществом клиентских скриптов является скорость работы. Скажем, программа должна проверить введённые пользователем вконтакте данные на корректность. В этом случае проверка выполнится тут же, не отправляя проверяемое на сервер и не принимая обратно отчёт. Экономия времени очевидна.

Но в этом и минус – клиентский скрипт вообще ничего записать на сервер не может. Поэтому создать, допустим, гостевую книгу с помощью клиентского ЯВП не получится, ведь для этого нужно сохранять сообщения в файле на сервере.


В пример ЯВП можно привести Java Script, который оказал значительное влияние на становление Си-Шарп (вот c# форум), и Visual Basic Script. Для изучения клиентских ЯВП и работы с ними необходим браузер, их поддерживающий. Подойдут, например, Internet Explorer, Mozilla или Opera.

Серверные языки web-программирования


Сервер – это компьютер, на котором размещён сайт, и программное обеспечение, обрабатывающее запросы браузера к страницам сайта.

Обработка скриптов на серверных ЯВП отличается от клиентских:
пользователь пытается перейти на страницу (вводит url в адресную строку или переходит по ссылке);
все скрипты, связанные с этой страницей обрабатываются на сервере;
пользователю отображается html-документ.

То есть, увидеть код скрипта на серверном ЯВП посетителю страницы не удастся. Таким образом, работоспособность скрипта напрямую зависит теперь не от пользовательского браузера, а от сервера, на котором размещён сайт.


Стоит также упомянуть понятие СУБД (Система Управления Базами Данных). В общем-то, это тоже сервер. Создатель сайта при покупке хостинга получает Базу Данных (БД), в таблицах которой может хранить различную информацию, к которой в любой момент можно обратиться. Если вернуться к нашему примеру, в одной из таких таблиц могут находиться сообщения пользователей, оставленные в гостевой книге.

Конечно, кто-то скажет, что хранить сообщения можно и текстовом файле. Но информацией, сохранённой в БД, легче управлять – можно связывать таблицы, хранить зашифрованные пароли и многое другое.

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


В последнее время широкое применение получили СУБД, обращение к которым происходит посредством структурированного языка запросов - Structured Query Language (SQL). Очевидно, что для работы с такими базами данных необходимо непосредственное знание SQL. К таким СУБД относятся, например MySQL и PostgreSQL .

Среди серверных ЯВП наиболее распространены PHP, SSI и Perl.

Для изучения серверных ЯВП и работы с ними нужно несколько больше, чем для клиентских – сервер, интерпретатор языка и СУБД.

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

Web-mastering

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

Разработчики, программисты, верстальщики, оптимизаторы – ценные сотрудники в российских и международных компаниях. Им предлагают достойный оклад и заманчивые условия труда: корпоративные «плюшки», интересные проекты, карьерный рост, гибкий график. Благодаря стабильному спросу на свои услуги веб-мастер может позволить себе работать на фрилансе: самому выбирать заказчиков, не отчитываясь перед «дядей», сидя в любимом кресле дома или в отеле на берегу моря.

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

Наш курс «Web-мастеринг. Настройка web-серверов» поможет изучить механизмы работы веб-сервера и получить практические навыки администрирования. Он будет полезен выпускникам курсов направлений PHP, Python, Rubyи др. и слушателям, которые только планируют это обучение. Курс может быть рекомендован выпускникам курсов по веб-направлению, если слушатели не проходили настоящий курс.

На занятиях вы рассмотрите свободный сервер Nginx, а также сервер Apache версий 2.2-2.4, часто применяемый на платформе Unix. Преподаватель уделит внимание важным темам, связанным с безопасностью: механизмы аутентификации, сценарии авторизации пользователей, настройка и использование SSL, работа с сертификатами SSL, использование модуля сервера Apache mod_rewrite.

Полученные знания вы отработаете на практике: 24-часовой курс включает 13 лабораторных работ. Пройдя курс, вы сможете самостоятельно администрировать серверы Nginx и Apache 2.2-2.4, управлять кэшированием контента, использовать SSL и работать со спецификациями RFC. Ваши умения и навыки подтвердят престижные документы центра: свидетельство или удостоверение о повышении квалификации.

Успешная карьера веб-программиста начинается с этого курса! Записывайтесь на курс!

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

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

Спокойствие, сейчас коллективный разум сделает выбор за вас.

В первой части поговорим о языках веб-пространства. Какой предъязыковой расклад надо знать и каков порядок изучения? Об этом далее.

Передовая, тыл и неочевидный выбор

Первый выбор, который надо сделать - сфера ответственности.

Front-end разработчики
Иногда их еще называют веб-дизайнерами, но это неправильно. Задача front-end разработчика сводится к созданию интерфейса, он отвечает за то, чтобы веб-страница загружалась быстро, не тормозила и код на ней работал правильно.

Backend-разработчики
Люди, ответственные за скрытую от глаз функциональность и обработку данных. Их работа - написание серверного кода.

Full-stack специалисты
Они востребованы наибольшим образом просто потому, что способны в одиночку выполнить все пожелания заказчика.

Конечно, проще всего поставить себе задачу разобраться со всем, но это лишь рассеет ваше внимание на ранних этапах, а на более поздних вы и так познаете необходимость хотя бы поверхностного изучения всех процессов. Поэтому пойдём по порядку и начнём с front-end.

Лицо, которое надо продать

Самое главное, что не надо делать человеку, желающему стать front-end разработчиком, так это искать минимальный список предъявляемый список требований к специалисту. В этом случае велик риск наткнуться на статьи, подобные статье «Frontend-разработчики должны быть в теме всего ». Всё что там написано - абсолютная правда, но прийти к этому надо начиная с малого, а малое - это 3 основных кита frontend-а: HTML, CSS и JavaScript. Базу для дальнейшнего обучения вы можете получить на .

Ещё несколько лет назад, изучив HTML и CSS в формате нескольких умных книг, а JS на уровне jQuery, можно было всерьёз претендовать на позицию junior-a. Однако сегодня времена изменились, а требования сильно возросли. Впрочем, знания HTML и CSS по-прежнему можно уложить в пару хороших книг:

  • «Изучаем HTML5 » Брюс Лоусон, Реми Шарп,
  • «CSS. Рецепты программирования » Кристофер Шмитт.

На JavaScript придётся потратить достаточно много времени. Здесь мало будет изучить теорию, например по книге «JavaScript: Сильные стороны ». Необходимо несколько месяцев набивать руки и тренировать мозги на практике, в том числе используя упомянутый jQuery.

Кроме теоретических и практических знаний, front-end специалист должен очень хорошо знать последние интернет-тенденции и уметь профессионально их применять. Ведь это именно та зона ответственности, по которой подавляющее большинство заказчиков будет оценивать весь проект на момент сдачи.

Обработать, прикрутить и создать

Базовый язык для любого back-end разработчика - PHP. Это некоторая основа, знать которую в совершенстве, как и делать основным инструментом, совсем не обязательно, но на базовом уровне понимать обязаны. Для этого можно хотя бы внимательно изучить книгу «PHP: правильный путь ».

Что касается актуальных языков, то выбирать скорее всего придётся из Ruby и Python, причём выбор этот - чистая вкусовщина. Даже здесь на периодически вспыхивают споры, но даже в споре за удобство изучения однозначного победителя найти невозможно. По Python полезно будет прочитать книгу с незамысловатым названием «Изучаем Python », по Ruby - «Rails 4. Гибкая разработка веб-приложений ».

Ещё один язык из разряда must know - всё тот же JavaScript с его производными jQuery и Ajax. В данном случае интересует именно back-end разработка, поэтому тратить время на общее изучение языка не имеет смысла, а вот посещение ресурсов вроде блога Антона Шевчука может оказаться крайне полезным.

Ну и конечно потребуются знания в области баз данных. Как минимум, это означает изучение SQL, как максимум - опыт работы с популярными БД.

Один за всех

Правда профессии веб-разработчика в том, что так называемых «сферических» специалистов здесь практически нет, да и рядовые заказчики далеко не всегда понимают эти деления, поэтому в том или ином виде к full-stack-у придётся прийти довольно быстро. Соответственно перечитайте предыдущие 2 раздела, посетите ещё раз и начинайте грызть гранит программной науки.

Знания не о языках

Помимо самих языков, необходимо изучать все прилагающиеся к ним профильные надстройки. Особенно это касается JavaScript (AngularJS, Knockout, Backbone) и CSS (Bootstrap, Foundation). Кроме того вам необходимо набить руку с системами контроля версий Git и SVN.

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