1.3 Языковые средства разработки систем голосования

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

Примером таких языков могут послужить PHP, PERL , JavaScript, python, С++, BASIC, если его интпретаор установлен на сервере. Также осуществить голосование на сайте можно с помощью технологии AJAX основанной на JavaScript .

PHP - скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. PHP поддерживается подавляющим большинством хостинг-провайдеров.

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

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

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

·          Автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

·          Файловые функции успешно обрабатывают как локальные, так и удалённые файлы;

·          Автоматическая отправка HTTP-заголовков;

·          Работа с cookies и сессиями;

·          Обработка файлов, загружаемых на сервер;

·          Работа с HTTP заголовками и HTTP авторизацией;

·          Работа с XForms;

·          Работа с удалёнными файлами и сокетами

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу Tiobe, базирующемся на данных поисковых систем, в декабре 2009 года PHP находится на 3 месте среди языков программирования (уступая Java и C), поднявшись за год на две позиции. К крупнейшим сайтам, использующим PHP, относятся Facebook, В контакте, Wikipedia, YouTube. [10]

Синтаксис PHP подобен синтаксису языка С. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl. Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Perl - это сокращенное название языка программирования Practical Extraction and Report Language - практический язык извлечений и отчетов. Язык Perl родился в недрах операционной системы Unix как реакция одного талантливого программиста на ограниченную возможность стандартных средств системного администрирования в этой операционной среде. [1]

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

Начнем с того, что у языка Perl имеет место характерная особенность от других языков, используемых для написания Web-приложений. Обработка команд в нем происходит как одно целое, независимо от их последовательности. Поэтому, дать какую-либо точную характеристику или формулу для синтаксиса языка Perl нельзя. Он имеет свободный формат, как например в языке С++ (при программировании на сервере почти не используется из-за уязвимости в плане безопасности) и по своей "архитектуре" очень похож на язык С++.

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

Perl не имеет конкретных и точных правил, распространяющих на все эго элементы. Все сделано для удобства программиста.

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

Вторым преимуществом использования Perl для решения соответствующих задач (мы имеем в виду сетевые возможности) является его доступность для большинства серверных платформ:

·          практически все варианты UNIX;

·          MS-DOS;

·          Windows NT;

·          Windows 95/98;

·          OS/2;

·          Macintosh.

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

·          полнотой;

·          простотой использования;

·          эффективностью.

Под полнотой Perl понимается его способность решать все возникающие в системе UNIX в связи с ее администрированием задачи.

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

И в завершение перечисления достоинств Perl обратим внимание на пятое преимущество использования: так как изначально этот язык являлся свободно распространяемым, то вся наработанная документация также доступна совершенно бесплатно, а так как Perl, как язык сценариев очень популярен, то в Internet находится море документации по его применению для решения разнообразных задач. [5]

Наиболее широко Perl используется для разработки инструментов системного администрирования, однако в последнее время он получил огромную популярность в области разработки Internet-приложений: CGI-сценарии, системы автоматической обработки электронной почты и поддержки узлов Web. [8]

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

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

Python поддерживает динамическую типизацию, то есть тип переменной определяется только во время исполнения. Поэтому вместо «присваивания значения переменной» лучше говорить о «связывании значения с некоторым именем». Все значения в Питоне являются объектами, в том числе функции, методы, модули, классы.

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

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

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

Развитие языка происходит согласно чётко регламентированному процессу создания, обсуждения, отбора и реализации документов PEP (Python Enhancement Proposal) — предложений по развитию Python. [3]

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

ü   использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:

ü   с использованием XMLHttpRequest (основной объект);

ü   через динамическое создание дочерних фреймов;

ü   через динамическое создание тега <script>.

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

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

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

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

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

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

Недостатки:

ü   Отсутствие интеграции со стандартными инструментами браузера

ü   Динамически загружаемое содержимое недоступно поисковикам (если не проверять запрос, обычный он или XMLHttpRequest)

ü   Старые методы учёта статистики сайтов становятся неактуальными

ü   Усложнение проекта

JavaScript – объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.

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

Основные архитектурные черты:

ü   динамическая типизация,

ü   слабая типизация,

ü   автоматическое управление памятью

ü   прототипное программирование,

ü   функции как объекты первого класса.

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.

JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

ü   объекты, с возможностью интроспекции;

ü   функции как объекты первого класса;

ü   автоматическое приведение типов;

ü   автоматическая сборка мусора;

ü   анонимные функции.

В языке отсутствуют такие полезные вещи, как

ü модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;

ü   стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных;

ü   стандартные интерфейсы к веб-серверам и базам данных;

ü   система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.


ГЛАВА 2 РАЗРАБОТКА СИСТЕМЫ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ НА СТРАНИЦЕ ПРОМО-САЙТА ОЛИМПИАДЫ «МАСТЕРА PHOTOSHOP»

2.1 Требования к организации голосования

Выбор идеологии Интернет-конкурса, проходящего в первый раз, включает в себя несколько принципиальных моментов:

1.         Формулировка задач, стоящих перед Интернет-конкурсом.

2.         Разработка методики оценки сайтов.

3.         Источник и порядок финансирования Интернет-конкурса.

4.         Бюджет Интернет-конкурса.

5.         Выбор доменного имени Интернет-конкурса (URL) и его названия.

6.         Призовой фонд Интернет-конкурса.

7.         Чем конкретно будут награждены победители Интернет-конкурса.

8.         Бюджет рекламы Интернет-конкурса.

9.         Сроки проведения Интернет-конкурса.

10.      Место проведения Интернет-конкурса.

11.      Выбор членов жюри Интернет-конкурса.

12.      Место проведения церемонии вручения наград победителям.

13.      Выбор разработчика Интернет-конкурса.

14.      Найм сотрудников, отвечающих за поддержку Интернет-конкурса.

15.  Выбор программного обеспечения, на основе которого будет создаваться Интернет-конкурс.

16.      Выбор сервера, на котором будет размещён Интернет-конкурс.

17.      Подбор контента Интернет-конкурса.

18.  Выбор ключевых слов и ключевых словосочетаний, по которым Интернет-конкурс должны находить в Интернет.

Под идеологией Интернет-конкурса мы понимаем идеологии непосредственно сайта, с помощью которого проводится Интернет-конкурс.

Голосование (опрос) может быть 3-х различных видов:

1.         с возможностью выбора только одного варианта ответа;

2.         с возможностью выбора нескольких вариантов ответа;

3.         с возможностью присвоения каждому ответу определенного балла (от 1 до 10).

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

Автор голосования может устанавливать дополнительные функции:

ü   время жизни голосования;

ü   возможность повторного голосования одного и того же участника;

ü   возможность ввода комментариев к голосованию;

ü   описание предыстории вопроса.

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

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

Если позволяет тема опроса, то обязательно надо дать возможность посетителям оставлять свои комментарии, что расширит "круг поиска" для поисковых систем;

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

Даже если переходов на сайт автора опроса будет мало (или их не будет вообще), все равно некоторая выгода будет присутствовать всегда, поскольку прямая ссылка на сайт будет давать некоторый прирост посещаемости. Причем этот прирост будет тем больше, чем, дольше будет "жить" конкретный опрос. Чем популярнее тема опроса, тем большая вероятность получения целевых посетителей.

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

В параметрах голосований можно:

ü   задавать теги форматирования текста для заголовка и вопросов голосования;

ü   изменять длину и ширину полосок графика;

ü   выбирать различные стили полосок графика или использовать свои картинки;

ü   изменять надпись на кнопке отправки данных или заменять ее своей картинкой;

ü   включать или отключать проверку ip адресов голосующих, чтобы запрещать или разрешать голосовать повторно;

ü   включать или отключать показ результатов голосования;

ü   выбирать один из видов сортировки результатов голосования: по возрастанию результатов, по убыванию результатов, сортировать вопросы в алфавитном порядке и в обратном, не сортировать;

ü   изменять тэг BODY, оформляя каждое голосование под дизайн вашей странички.

Дополнительные возможности:

ü   удобное администрирование - создание, просмотр, редактирование, удаление голосований, настройка шаблона;

ü   ведение и просмотр логов;

ü   возможность показывать результаты нескольких голосований на одной странице (например, для показа результатов прошедших голосований);

ü   разрешать пользователю выбирать только один ответ (radiobutton) или несколько (checkbox) из предложенных вами.

Новые возможности:

ü   запрещать повторные голосования вообще или на какое-то время (задается в минутах);

ü   адавать теги форматирования системных сообщений в каждом голосовании;

ü   выводить системные сообщения ("Вернуться", "Спасибо, ваш голос был принят" и т.д.) на разных языках (также Вы можете добавлять новые языки или полностью переписать под свои нужды все системные сообщения).

ü   подключать к голосованиям html-шаблоны с дизайном вашего сайта, чтобы голосования выводились встроенные в ваш дизайн;

ü   добавлена форма вывода вопросов голосования в форме select (выпадающее меню);


Информация о работе «Разработка системы электронного голосования на странице промо-сайта олимпиады "Мастера Photoshop"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 75031
Количество таблиц: 0
Количество изображений: 0

0 комментариев


Наверх