ADV.Systems

09 Июл 2017

Технологии

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

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

Можно сразу разделить их по категориям: — Языки разметки
— Языки программирования
— Базы данных

Можно смело утверждать, что основой web-интерфейса является язык гипертекстовой разметки документа. Гипертекст распознаётся браузером на компьютере клиента и собственно правильность его синтаксиса определяет корректное отображение страницы.

После морально устаревшего, разработанного в 1969г. SGML, который стал прародителем большинства современных языков разметки, предназначенного для работы с перфокартами его место уже долгие годы занимает HTML.

HTML и его разновидности используются на сегодняшний день повсеместно. Специфика синтаксиса модификаций вроде XHTML, DHTML и так далее, для нас, как для дизайнеров, не сильно важна. Это не наш круг обязанностей, так что не будем писать мануал для верстальщиков. Наша задача чётко осознавать возможности языка и его предназначение.

Языки разметки.

В качестве примеры разберём простейшие конструкции, написанные с учётом спецификации W3C:

HTML 4.0 (HyperText Markup Language)

HTML является языком для описания структуры веб-страниц. HTML предоставляет пользователям возможность:

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

XHTML (Extensible Hypertext Markup Language)

XHTML представляет собой вариант HTML который использует синтаксис XML, (Extensible Markup Language). XHTML имеет все те же элементы в качестве варианта HTML, но синтаксис немного отличается. Поскольку XHTML является приложением XML, вы можете использовать другие инструменты XML с ним (например, XSLT, языка, предназначенного для преобразования XML содержания).

DHTML (Dynamic HyperText Markup Language)

Язык сценариев DHTML позволяет изменять отображение и соответственно функциональность Wеб-страницы. Это язык, который в первую очередь, влияет на внешний вид и функциональность статичного содержимого HTML. Таким образом, динамические характеристики DHTML заключаются в том, что все его функции сосредоточены на управлении интерфейсом ресурса. При этом нельзя сказать чтобы DHTML каким-то образом участвовал в генерации страницы, как это делают серверные скрипты.

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

CSS 2.1 (Cascading Style Sheets)

CSS это язык для описания правил отображения веб-страниц. Включает в себя цвет, расположение и информацию о шрифте, а также о стилях и классах элементов HTML вёрстки. CSS является независимым от HTML и может быть использована с любым основе XML язык разметки. Разделение HTML с CSS позволяет сделать код вёрстки гораздо более гибким. Так же необходимо учитывать, что файл CSS кэшируется браузером и позволяет ускорить загрузку страницы. Необходимо так же отметить, что наряду с CSS 2.1 - наиболее стабильно отображающейся в браузерах, не так давно появился стандарт CSS 3.0, который поддерживается пока далеко не всеми новыми браузерами, однако весьма впечетляет по своему функционалу. Так в частности это лишь частичный список нововведений: анимация, трансформация объектов, введение переменных, множественные элементы фона, прозрачность, тень от текста и многое другое.

HAML (HTML Abstraction Markup Language)

С мая 2006 года начал развиваться альтернативный язык — HAML. Отличительной чертой этого языка является значительное упрощение конструкций.

 !!!
%html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"}
%head
%title BoBlog
%meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}     = stylesheet_link_tag 'main'
%body
#header
%h1 BoBlog
%h2 Bob's Blog
#content
- @entries.each do |entry|
.entry
%h3.title= entry.title
%p.date= entry.posted.strftime("%A, %B %d, %Y")
%p.body= entry.body
#footer
%p         All content copyright © Bob 
Подобная конструкция отдаёт в браузер следующую страницу:
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>BoBlog</title>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
<link href="/stylesheets/main.css" media="screen" rel="Stylesheet" type="text/css" />
</head>
<body>
<div id='header'>
<h1>BoBlog</h1>
<h2>Bob's Blog</h2>
</div>
<div id='content'>
<div class='entry'>
<h3 class='title'>Halloween</h3>
<p class='date'>Tuesday, October 31, 2006</p>
<p class='body'>
Happy Halloween, glorious readers! I'm going to a party this evening... I'm very excited.
</p>
</div>
<div class='entry'>
<h3 class='title'>New Rails Templating Engine</h3>
<p class='date'>Friday, August 11, 2006</p>
<p class='body'>
There's a very cool new Templating Engine out for Ruby on Rails. It's called Haml.
</p>
</div>
</div>
<div id='footer'>
<p>
All content copyright © Bob
</p>
</div>
</body>
</html>

JavaScript

Cкриптовый язык, чаще всего использующийся при создании сценариев поведения браузера, встраиваемых в веб-страницы. Является одной из реализаций языка ECMAScript. Предпосылкой появления языка JavaScript стало желание дать разработчикам HTML-документов возможность динамически управлять всеми объектами, описываемыми в коде Web-страницы. Разработанный Бренданом Айхом из компании Netscape язык был включён в браузер Netscape Navigator начиная с версии 2.0B3 в декабре 1995 года. Первоначально язык назывался Mocha, затем он был переименован в LiveScript. На синтаксис оказали влияние языки С# и Java

AJAX (Asynchronous Javascript and XML)

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

1). Использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
— с использованием XMLHttpRequest (основной объект);
— через динамическое создание дочерних фреймов;
— через динамическое создание тега <script>

2). Использование DHTML для динамического изменения содержания страницы;

В качестве формата передачи данных обычно используются JSON или XML.

Плюсы:

Экономия трафика

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


Уменьшение нагрузки на сервер

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


Ускорение реакции интерфейса

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

Java

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

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

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

SSI (Server Side Include)

Несложный язык для динамической «сборки» веб-страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML-документа. Реализован в веб-сервере Apache при помощи модуля mod_include. Включённая в настройках по умолчанию веб-сервера возможность позволяет подключать HTML-файлы, поэтому для использования инструкций файл должен оканчиваться расширением .shtml, .stm или .shtm.

Синтаксис SSI позволяет включать в текст страницы другие SSI-страницы, вызывать внешние CGI-скрипты, реализовывать условные операции (if/else), работать с переменными и т.п. Благодаря крайней простоте языка, сборка SSI-страниц происходит очень быстро, однако многие возможности полноценных языков программирования, например, работа с файлами, в SSI отсутствуют.

PHP (Personal Home Page Tools)

В области программирования для Сети, PHP — один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата .pdf и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков наиболее популярных. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.

Perl

Высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language «практический язык для извлечения данных и составления отчётов». Крайне важной частью Perl являются регулярные выражения. Благодаря этому Perl очень эффективен для обработки текстов. Большая часть работы с регулярными выражениями производится при помощи операторов.

Ruby

Динамический, рефлективный, интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, LISP, Dylan и CLU.

Python

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

Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Питоне организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).

Эталонной реализацией Питона является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Он распространяется свободно под очень либеральной лицензией, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции), LLVM и других. Проект PyPy предлагает реализацию Питона на самом Питоне, что уменьшает затраты на изменения языка и постановку экспериментов над новыми возможностями.

ASP (Active Server Pages)

Технология, разработанная компанией Microsoft, позволяющая легко создавать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере Microsoft IIS. ASP не является в полной мере языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули на стороне сервера во время процесса формирования веб-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонентов. Технология ASP получила своё развитие в виде ASP.NET — новой технологии создания веб-приложений, основанной на платформе Microsoft .NET.

Базы данных:

txtDB (Text Data Base)

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

— Все данные хранятся в строках
— Все данные только добавляются...
— Все данные парны — ключ/значение (например, животное: собака, имя: Bob).
— Все это хранится в удобном для человека виде в текстовых файлах.
— В качестве разделителя используется символ | или ::

В расширенном варианте возможно изменение/удаление строк, кодирование и декодирование... (прим. автора)

XML

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

MySQL

Cвободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

MSSQL (Microsoft SQL Server)

Реляционная база данных, разработанная компанией Microsoft, поддерживающая языки запросов T-SQL и ANSI SQL. Microsoft, Sybase и Ashton-Tate первоначально объединились для создания и выпуска на рынок первой версии под названием SQL Server 1.0 для операционной системы OS/2 в 1989г., которая была по существу такой же, как Sybase SQL Server 3.0 на Unix, VMS и т.д. Microsoft SQL Server 4.2 была выпущена в 1992 году. (поставлялась в комплекте с Microsoft OS/2 1.3). Позже Microsoft SQL Server 4.21 для Windows NT была выпущена в то же время как Windows NT 3.1. Microsoft SQL Server v6.0 была первой версией предназначенной для платформы NT, и уже не поддерживает Sybase.

PostgreSQL

Cвободная объектно-реляционная система управления базами данных (СУБД). Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird). Существует в реализациях для следующих платформ: Linux, Solaris/OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6.

Oracle Database или Oracle DBMS

Платная объектно-реляционная система управления базами данных (СУБД). Oracle Corporation — одна из крупнейших американских компаний, разработчик систем управления базами данных, инструментов для разработки баз данных, а также ERP-систем. Ведёт свою историю с 1977 года, имеет подразделения в более чем 145 странах по всему миру.

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