ТУЛЬСКИЙ УНИВЕРСИТЕТ Частная образовательная организация высшего образования-ассоциация Кафедра Информатики и естественнонаучных дисциплин

Форма обучения Заочная (очная, заочная) Специальность Прикладная информатика Специализация Прикладная информатика в информационных системах

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

Тип ВКР Дипломный проект (дипломная работа, дипломный проект) Тема «Разработка web-cайта для строительной компании ИП «Xxx»

Обучающийся Черницин Николай Александрович ______(Ф.И.О.) (подпись) «___»______2016г.

Руководитель к.т.н., доц. Михед Антон Дмитриевич ______(Ф.И.О.) (подпись) «___»______2016 г.

Рецензент Богунов Алексей Викторович ______(Ф.И.О.) (подпись) «___»______2016г.

Председатель комиссии по предварительной защите

______(Ф.И.О.) (подпись) «___»______2016г.

Тула 2016

2

СОДЕРЖАНИЕ

Введение 4 1 Анализирование работы компании и требования к веб-сайту………. 7 1.1 Информация о компании……………………………………………….. 7 1.2 Цели и концепции дипломного проекта………………………………. 8 1.3 Обоснование создание дополнительной услуги на фирме…………... 8 1.4 Общее понятие сайтов………………………………………………….. 10 1.5 Технология создания web-сайтов……………………………………… 13 1.6 Средства для разработки Веб-сайтов………………………………….. 15 1.7 История PHP…………………………………………………………….. 18 2 Подготовка и разработка веб-сайта……………………………………. 22 2.1 Установка и настройка веб-сервера lamp для разработки на …… 22 2.1.1 Для начала устанавливаем необходимые пакеты…………………….. 22 2.1.2 Проверка работы сервера и phpmyadmin……………………………… 25 2.1.3 Делаем настройку сервера……………………………………………... 27 2.1.4 Добавляем наш сайт……………………………………………………. 28 2.1.5 Проверяем работу нашего сайта……………………………………….. 30 2.1.6 Могут появится следующие проблемы……………………………….. 30 2.2 Среда разработки……………………………………………………….. 32 2.3 Установка Phpstorm на Debian…………………………………………. 33 2.3.1 Установка Oracle …………………………………………………... 33 2.3.2 Установка Phpstorm…………………………………………………….. 34 2.4 Продуктивное использование PHPStorm……………………………… 38 2.4.1 Автогенерация кода…………………………………………………….. 38 2.4.2 Автоформатирование кода……………………………………………... 39 2.4.3 Подсказки (Code Completition)………………………………………… 39 2.4.4 Задачи (tasks)……………………………………………………………. 40 2.4.5 FTP, деплой и автодеплой…………………………………………...... 41 2.4.6 Консоль………………………………………………………………….. 42

3

2.4.7 Разновидность поиска………………………………………………….. 42 2.4.8 Дополнительные сочетания клавиш…………………………………... 43 2.5 Разработка сайта………………………………………………………... 43 2.6 Размещение сайта на хостинге………………………………………… 45 2.6.1 Размещаем веб-сайт…………………………………………………….. 45 2.6.2 Настраиваем наш домен для работы с DNS-серверами хостинга…… 46 2.6.3 Загрузите файлы сайта на хостинг…………………………………….. 47 2.6.4 Настраиваем веб-сервер для требований веб-сайта………………….. 48 2.6.5 Проверяем работоспособность сайта………………………………….. 48 3 Экономические затраты для реализации проекта…………………….. 49 3.1 Расчет себестоимости сайта……………………………………………. 49 3.2 Расчет стоимости хостинга…………………………………………….. 53 3.3 Итоги финансовых вложений………………………………………….. 54 Заключение……………………………………………………………………... 55 Список использованных источников…………………………………………. 56 Приложение А. Интерфейс сайта……………………………………………... 59 Приложение Б. Программный код веб-сайта………………………………… 60

4

ВВЕДЕНИЕ

Internet уже давно вошёл почти в каждый дом, в нашу жизнь, публикация любой информации в глобальной сети интернет стало нормой. Населений России имеет доступ к сети и на работе, появляется необходимость использовать это направление и в рекламных целях. Информационная система понимается как комплекс программ ориентированный на выполнение определенных функцией: сбор, накопление, обработку текстовой и/или фактографической информации, хранение и поиск данных. Большинство систем работает в режиме диалога с пользователем. Internet как канал коммуникации свойственны следующие отличительные параметры особенности: 1) Характеризуется быстротой распространения данных. Таким образом, опубликованное на информационном сайте сообщение может быть моментально растиражировано другими сетевыми изданиями, а затем даже в газетах и телевидение. Таким образом, это отличительная черта сети Internet, что дает подходящую среду для того, чтобы правильно созданное и запущенное сообщение быстро распространялось самостоятельно и не потребовало крупных материальных затрат на его поддержку; 2) Internet предоставляет отличную важность сфокусировать воздействие на определенную узкопрофильную, целевую аудиторию, в которой заинтересовано предприятие, выявить подгруппы в этой аудитории с целью формирования персонализированных обращений; стараясь так же учитывать индивидуальные характерные черты и свойства каждого посетителя. 3) Обобщая сведения различных исследований по изучению Internet-аудиторий, большая доля аудитории сети Internet являются активные слои населения, которые принимают участие в процессе принятия решений. 4) Общение в Internet интерактивна. Это предполагает возможность интенсивного взаимодействия между людьми. Интерактивность означает 5

возможность вступать в непосредственно прямой диалог с аудиторией, кроме того представители этой аудитории также имеют возможность общаться между собой. Кроме этого интерактивность дает возможность обратную связь, правильно анализировать сформировавшуюся обстановку и быстро реагировать в случае необходимости. 5) Предрасположенность пользователей Internet к получению информации оказывает содействие в более позитивном восприятии и высокой усвояемости использованного материала. 6) Данный глобальный виртуальный электронный рынок, не имеет ни каких территориальных либо временных ограничений. Электронное коммуникативное пространство в сравнение с печатным или телевизионным практически ничем не ограничено. Здесь возможно сколько угодно информации разместить, размер которой не будет урезан рамками эфирного времени передачи или количеством печатных знаков. 7) Сравнительно низкая цена коммуникации среди остальных СМИ. 8) Наличие у компании своего Веб-сайта на сегодняшний день считается не просто делом престижа, но необходимостью, даже если ее работа никак не связана с информационными технологиями или торговлей вInternet. В Internet при упоминании компании в статьях или новостях ссылки делаются на сайт этой компании. На данный период уже не встает вопрос: нужен сайт или нет, но очень важная тема, как сделать что бы сайт был максимально эффективным с точки зрения эффективной коммуникации и

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

− выбрать наиболее подходящие средства реализации; − продумать структуру и создать дизайн сайта; − систематизировать и структурировать собранный материал; − заполнить содержанием структуру коммерческого сайта. Предметом изучения будут являться образовательные ресурсы по теме «Информатика и программирование». Подробно не обходимо будет изучаться язык объектно-ориентированного программирования PHP: HypertextPreprocessor - «PHP: препроцессор гипертекста»; первоначально PersonalHomePageTools

7

1 Анализирование работы компании и требования к веб-сайту

1.2 Цели и концепции дипломного проекта

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

1.3 Обоснование создание дополнительной услуги на фирме Отдел выписки Для большего удобства привлечения потенциальных клиентов было решено создать Веб-сайт. Удобство для постоянных клиентов состоит в том, что клиенты смогут узнать информацию о ценах, услугах, специальных акциях, все это возможно просто зайдя на сайт компании в Интернете. Там же они смогут больше узнать о фирме, оставить заявку на оказание услуг, оставить отзыв о компании и др. Одним из важных фактов, что на сайте возможно ознакомится с услугами круглосуточно. 6 Компания “Xxx”, на данный момент времени, не планирует выход на международный уровень, ведь создания крупного Веб-сайта, оказание услуг не только на территории Российской Федерации, но и за рубеж необходимы достаточно крупные вложения средств как на сам сайт, так его оптимизацию и рекламу.

8

Заинтриговав клиента, относительно дешевыми ценами, широким спектром услуг, быстрой и качественной работой. У компании в собственности имеются все необходимые для работ инструменты и оборудование, материалы для строительства и ремонта можно заказать у наших партнеров, поэтому создание сайта увеличит имидж фирмы, обеспечит объем работы за счет привлечения новых клиентов. Привлечение клиентов на сервер. Для крупной компании может быть эффективнее иметь свой Веб-сайт с брэндовым именем, индивидуальным дизайном, подробным и точным описанием своих услуг. Коротко об основных инструментах Internet-маркетинга, с помощью которых возможно решение — это задачи: − Индексирование сайта в поисковых системах таких как Google, Bing, Яndex, Mail.ru, Рамблер; − Реклама тематических сайтах; − контекстная реклама; − участие в баннерообменных сетях; − обмен баннерами, кнопками, ссылками. На сегодняшний день не все направления деятельности Веб-сайт может окупить затраты на его создание и поддержку его работы. Проблема усложняется отсутствием хороших специалистов по Internet-маркетингу. Далее будет меры, полезные не только компаниям, имеющим свой Веб- сайт. Только имея просто выход в сеть Internet можно помещать информацию о компании и ее услугах в онлайновые: − прайс-листы и базы данных; − каталоги; − форумы; − новостные сайты; − доски объявлений.

9

1.4 Общее понятие сайтов

Информация, доступная пользователям Internet, находится на компьютерах (web-серверах), на которые устанавливается специализированное программное обеспечение. Большая часть этой информации изображена в виде веб-сайтов. Каждый страница имеет свое имя (адрес) в Internet. Веб-сайт - это информация, представленная в виде, которая находится на web-сервере и имеет свой адрес. Пользователь для просмотра web-сайтов использует специализированные программы, которые называются браузерами (Opera, Chrome, Mozilla). В зависимости от имени (адреса) сайта мы набираем в строке "Адрес", браузер будет открывать в своем окне информацию сайта. Веб-сайт составляется из связанных между собой web-страниц. web- страница является текстовым файлом с расширением *.html, который в свою очередь содержит текстовую информацию и специальные команды - HTML- коды, определяющие, как и в каком виде эта информация будет отражаться в окне браузера. Вся аудио-, видео- и графическая информация непосредственно в web-страницу не входит, а является отдельными файлами с расширениями *.gif, *.jpg (графика), *.mp3 (звук), *.avi (видео). Любая страница веб-сайта имеет свой собственный Internet адрес, который состоит из имени файла и адреса сайта, принадлежащего данной странице. Таким образом, веб-сайт - это информативный источник, состоящий из между собой связанных гипертекстовых документов (web- страниц), расположенных на web-сервере и имеющий индивидуальный адрес. Увидеть веб-сайт может абсолютно любой человек, подключенный к сети Internet. Одним из первых сайтов был info.cern.ch появился 6 августа в 1991 году, сайт до сих пор работает, так же он хранится в архиве интернета, как сейчас выглядит первый сайт изображено на рисунке 1.1

10

Рисунок 1.1- Самый первый сайт в сети Интернет

Его создателем быль, Тим Бернерс-Ли, опубликовал же он на нём описание технологии WorldWideWeb, которая основана на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML. На сайте присутствовали принципы установки и работы серверов и браузеров. Этот сайт стал так же первым в мире интернет- каталогом, так как Тим Бернерс-Лиразмещал на нём список ссылок на другие сайты. С октября 1994 года и по настоящее время Тим Бернерс-Лидействущий глава Консорциум Всемирной паутины (WorldWideWebConsortium), который занимается внедрением стандартов Интернета. В сети Internet на данный момент времени работает большое количество сайтов. У них нет единой общепринятой классификации, хотя, попытки предпринимались. Но оказалось, что не так просто всё многообразие сайтов в сети свести к определённым видам, поскольку признаков, по которым ресурсы различаются друг от друга, можно найти много и каждый сайт обладает не одним, а целым набором признаков. Попробуем отметить ряд основных признаков, внутри любого из которых проведём собственную классификацию.

11

Классификация сайтов по технологиям: 1) статичные сайты; Единственной технологией был язык html. Информация на тких страницах всегда постоянна и изменяется только при правке кода самой страницы. Это не крайне удобно, подобный подход не позволяет осуществлять генерации страниц «на ходу», исходя из запросов пользователей, и серьёзно ограничивает функциональные возможности. Плюсами такого метода является быстрота и простота создания сайтов, не прихотливость к аппаратной части. 2) динамичные сайты; Динамичные страницы физически не существуют на сервере, а формируются, исходя из определённых входных данных. Подобное достигается благодаря языкам веб-программирования, основными являются PHP, Perl. У таких сайтов есть возможность предоставлять пользователю интерактивность: осуществлять общение с другими пользователями, отправлять и сохранять какую-то информацию, осуществлять поиск по сайту, и многое другое. Обновление информации проходит проще и, как правило, не требует специальных навыков. Минусом таких сайтов может стать их требовательность к ресурсам и их сложнее создавать. − флеш-сайты; Технология Flash дает возможность делать сайты веб-сайты с анимацией и звуком. Красивый внешний вид будет, наверное, одном плюсом у таких сайтов. Их создание довольно трудоёмко и сложно, они имеют довольно большой вес, долго погружаются. Классификация сайтов по принадлежности: − личные; − коммерческие; − государственный. 12

Классификация сайтов по масштабности и уровню решаемых задач: − простые сайты; Это будет частные сайты или сайт визитка для − тематические сайты; Сайты с информацией или форумы интересные определенному кругу людей − многофункциональные сайты (порталы); Это крупные порталы, например, Яndex, Mail или соц. сети Одноклассники и Вконтакте. Помимо перечисленных классификаций есть и другие сайты, которые «призваны» причинять вред людям, при их посещающие. К ним относятся носители троянских программ, носители вирусов, спама. В основном такие сайты не несут никакой полезной информации. Схему классификации можно увидеть на рисунке 1.2

Рисунок 1.2 – Схема классификации сайтов

1.5 Технология создания web-сайтов

Создание Веб-сайтов как работающих информационных систем – составляющий процесс, привлекающий деятельность разных экспертов.

13

Данный тип деятельности называется веб-разработка. Владелец будущего сайта (частное лица или компания) делают сайт сами, либо обращаются в специализированные конторы, к фрилансерами т. п. Заключается договор между заказчиком и исполнителем, делаются технические задания либо устная договорённость. Заказ может быть, как разработка полностью сайта вплоть до регистрации домена, так и оптимизация редизайн существующего. В крупных компаниях для разработки и поддержке сайта предпочитают нанять штатных сотрудников и поручить проект им. Не последнею роль в этом выполняют «тестеры» конечного продукта. Работа над сайт идет всегда, если вы видите сайт без изменений несколько лет, то он больше никому не нужен. Основную роль так же играют и браузеры. Браузер — это программа, не обходимая для просмотра веб-сайтов. Браузеры развивались с самого зарождения сети Internet и постепенно становились одними из самых необходимых программ. Все самые востребованные браузеры распространяются абсолютно бесплатно. На рисунке 1.3 можно увидеть топ 5 популярных браузеров.

Рисунок 1.3 –Топ 5 браузеров в мире на апрель 2016 год, по данным StatCounter 14

1.6 Средства для разработки Веб-сайтов

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

Рисунок 1.4 - Логотип PHP

Последнее время о PHP в сети можно услышать плохие отзывы. Одна из проблем всех этих статей, что люди, которые их написали, застряли еще в старых временах PHP и они не хотят понимать, что PHP развивается очень быстро, как сам язык так и само сообщество. Самое главное что PHP развивается значительно быстрее, чем любой другой язык или платформа. Безусловно, с первого публичного релиза 8 июня 1995 года PHP ушел далеко вперед. Того как приступить к рассказу о достижениях PHP сообщества за последнее время, предлагаю посмотреть на некоторые цифры: PHP как основной язык используется на 82,4% среди всех сайтов, где язык платформы известен, это можно увидеть на рисунке 1.5

15

Рисунок 1.5 - Процент сайтов с использованием различных серверных языков программирования по данным W3Techs.com

Wordpress используется в 27,2% среди всех сайтов мира. Если же мы посмотрим на топ 5, то на первом месте будет Wordpress 58,5%, на втором Joomla с 7,2%, на третьем Drupal с 4,8%, на четвертом Magento с 2,7% и на пятом Blogger с 2,4% (таблица 1.1)

Таблица 1.1 - Топ 5 продуктов, все написаны на PHP

Применение Изменения с1 Рынок Изменения с 1 ноября 2016 акций ноября 201

1. WordPress 27,2% + 0,2% 58,5% -0,2%

2. Joomla 3,4% + 0,1% 7,2% -

3. Drupal 2,2% - 4,8% -

4. Magento 1,2% -0,1% 2,7% -

5. Blogger 1,1% - 2,4% -0,1%

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

16

сайты быстрее, чем любая другая технология, позволяет поднимать сайты дешево и быстро. На данный момент PHP используется тысячами разработчиков. К крупнейшим сайтам, написанных полностью на PHP или с использованию других языков, относятся Facebook (социальная сеть), Wikipedia (Свободная энциклопедия), 4chan (анонимный веб-форум) и др. Так же входит в LAMP — это набор программного обеспечения для создания и хостинга веб-сайтов, назван по первым буквам входящего в пакет компонентов ( – операционная система Linux, Apache – веб-сервер, MySQL - СУБД, PHP – язык программирования для создания веб-сайтов). На рисунке 1.6 можно увидеть схему комплекса LAMP. Также существует множество других вариантов: − LEMP — Nginx вместо Apache (Nginx читается Engine-X) − LNMP — другой вариант названия 'Nginx вместо Apache' − BAMP — BSD вместо Linux − MAMP — Mac OS X вместо Linux. − SAMP — Solaris вместо Linux − WAMP — Windows вместо Linux − WASP — Windows, Apache, SQL Server и PHP − WIMP — Windows, IIS, MySQL и PHP − PAMP — Personal Apache MySQL PHP — набор серверов для платформы S60. Специфика платформы накладывает свой отпечаток на работу комплекса. Так, в частности, модули PHP получают и возвращают строки только в кодировке UTF-8. − FNMP — FreeBSD и Nginx вместо Linux и Apache. − XAMPP — кроссплатформенная сборка веб-сервера, X (любая из четырёх операционных систем), Apache, MySQL, PHP, Perl

17

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

1.7 История PHP

Давайте вспомним немного историю появления версий PHP. Первая версия PHP как я уже писал появилась 8 июня 1995, датский программист Расмус Лердорф (Rasmus Lerdorf), его фото можно увидеть на рисунке 1.7, создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Расмус назвал этот набор Personal Home Page (Личная Домашняя Страница). Через некоторое время Perl — интерпретатора скриптов — перестало хватать, и Расмус создал с использованием языка новый интерпретатор шаблонов

18

PHP/FI (Personal Home Page / Forms Interpreter — «Личная Домашняя Страница / Интерпретатор форм»). Новый язык отличался от своего первого вариант простым и ограниченным синтаксисом.

Рисунок 1.7 - Расмус Лердорф создатель языка PHP

Однако в 1997 году после довольно длительного публичного тестирования вышла уже вторая версия, написанного на C — PHP/FI 2.0. Пользовались её около 1 % (приблизительно 50 тысяч) всех интернет- доменов мира. Начиная с PHP 3.0 была продела большая работа по ее переработке. В 1997 разрабочики из израильского технологического института Энди Гутманс (Andi Gutmans) и Зеев Сураски (Zeev Suraski), полностью переписали интерпретатор. Они сочли что PHP/FI 2.0 не подходит для разработки приложений электронной коммерции, над которой они как раз в это время работали. Для совместной работы над PHP 3.0 Зеев, Энди и Расмус объединились и объявили PHP 3.0 официальным преемником PHP/FI, спустя 9 месяцев тестирования в июне 1998 года было объявлено об официальном выходе PHP 3.0. Уже к концу 1998 года PHP пользовались десятки тысяч пользователей. Около сотни тысяч веб-сайтов сообщали что используют язык программирования PHP. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.

19

Практически после официального релиза PHP 3.0 Зеев Сураски и Энди Гутманс начали заниматься переработкой ядра PHP. Основными задачами было улучшение модульности базиса кода PHP и увеличение быстродействия сложных приложений. В то время PHP 3.0 не имел хорошей поддержки модулей и приложения не всегда работали стабильно. В середине 1999 года был представлен новый движок Zend Engine (от имён разработчиков, Зива и Энди, который отлично справлялся с поставленными задачами. В мае 2000 года на этом движке на свет появился PHP 4.0, так же появились некоторые ключевые функции, такие как несколько новых языковых конструкций, буферизация вывода, поддержка сессий и более безопасные способы обработки вводимой пользователем информации. Было запланировано что выход обновлений для PHP 4.0 будет в конце 2007 года, однако до 8 августа 2008 года все еще выходили критические обновления безопасности и уже с 9 августа 2008 года поддержка версий PHP 4.x была прекращена. Начиная с пятой PHP (появившейся на свет 13 июля 2004 года) ввели стабильную объектную модель. Изменения так же коснулись и движка Zend (Zend Engine 2), что довольно хорошо сказалось на эффективности интерпретатора. Появилась поддержка разметки XML. Однако нововведения, были выполнены с расчётом сберечь максимальную совместимость с кодом на предшествующими версиями языка. В данный период времени последней стабильной версией является PHP 5.6.29 (8 декабря 2016). В строенный в PHP веб-сервер, сильно упрощающий локальное тестирование, и он запускается в течение пары миллисекунд. С октября 2006 года PHP 6.0 находилась на стадии разработки. В ней так же были сделаны множество новшеств, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, magic_quotes_gpc и register_globals из 20

конфигурационного файла php.ini. Большие силы были сосредоточены на поддержке Юникода. Но из-за сложностей с поддержкой Юникода в марте 2010 года разработка PHP 6 была признана не перспективной. Исходный код PHP 6 перемещён на ветвь, а основной линией разработки стала версия 5.4. В 2014 году было голосование, согласно результатам следующая версия получила название PHP 7. Было запланировано что новая версия выйдет примерно в середине октября 2015 года. В марте 2015 года Zend представили инфографику в которой описаны основные нововведения PHP 7. Выход PHP версии 7.0.0 был объявлен 3 декабря 2015 года. Новая версия находится в экспериментальной ветке PHP, которая называлась phpng (PHP Next Generation — следующее поколение), и упор делается на увеличение производительности и уменьшение потребления памяти. В новой версии добавили возможность указать тип возвращаемых из функции данных, добавили контроль передаваемых типов для скалярных данных, а также новые операторы. Последней стабильной версией является PHP 7.0.14 (8 декабря 2016 года) и PHP 7.1.0 (1 декабря 2016 года) Хороший язык — это хорошо, но отличная экосистема — это еще лучше. И экосистема PHP очень сильно развилась за последние годы. Git повсюду, и в мир PHP он влился довольно быстро. Практически все основные PHP библиотеки, фреймворки и продукты используют Git, включая сам PHP.

21

2 Подготовка и разработка веб-сайта 2.2 Установка и настройка веб-сервера lamp для разработки на php

Многие новички в веб-разработке переходят на дистрибьюторы на основе Linux лишь с целью того, чтобы создать собственный веб-сервер для отладки и тестирования своих умений и проектов. Чаще всего эти проекты, как и в моём случае на PHP. Мы уже заранее знаем, что сайт наш должен будет доступен по адресу individom.ru, а папка с файлами сайта будет располагаться по пути /home/user/server/ individom.ru. Веб-сервер будет устанавливаться на Debian. Во время процесса настройки будем использовать текстовый редактор scratch-text-editor. Конечно возможно использования любого другого текстового редактора.

2.2.1 Для начала устанавливаем необходимые пакеты

В терминале мы пишем: sudo apt-get install apache2 mysql-server php5 phpmyadmin Во время установки пакетов нам так же будет необходимо сделать их первоначальную настройку в псевдографическом режиме терминала. У нас появляется окошко, как на рисунке 2.1, там нам потребуется указать пароль для MySQL пользователя «root».

Рисунок 2.1 - Ввод пароля для MySQL пользователя root 22

и подтверждаем его как на рисунке 2.2:

Рисунок 2.2 - Подтверждение пароля для MySQL пользователя root

Дальше будет настройка phpmyadmin. Тут нам зададут вопрос, какой мы хотим использовать веб-сервер для запуска phpmyadmin. В нашем случае отмечаем apache2 как показано на рисунке 2.3 нажав на клавишу пробел и затем enter.

Рисунок 2.3 - Выбор веб-сервера

В следующем окне мы увидим предупреждение о настройке базы данных, это видно на рисунке 2.4, если это необходимо нажимаем enter.

23

Рисунок 2.4 - Предупреждение о возможности настроить базу данных если это не обходимо

Мы конечно же подтверждаем настройку базы данных при помощи dbconfig-common, смотрите рисунок 2.5

Рисунок 2.5 - Подтверждаем настройку при помощи dbconfig-common

Теперь нам потребует ввести пароль, введенный выше в следующих появившихся окнах, смотрим рисунки 2.6, 2.7, 2.8

Рисунок 2.6 - Вводим пароль администратора базы данных 24

Рисунок 2.7 - Пароль для регистрации phpmyadmin для сервера баз данных

Рисунок 2.8 - Подтверждаем введенный ранее пароль

На этом этапе установка завершена.

2.2.2 Проверка работы сервера и phpmyadmin

Для проверки пробуем переходим по адресу localhost в любом удобном браузере. Если же сервер установился нормально, то мы увидим тестовую страницу сервера как на рисунке 2.9

Рисунок 2.9 - Тестовая страница нашего сервера 25

Теперь что бы попасть к phpmyadmin нам нужно перейти по ссылке localhost/phpmyadmin. Откроется страница как на рисунке 2.10. Здесь мы вводим наш логин «root» и пароль, которые мы вводили ранее.

Рисунок 2.10 - Вот так выглядит страница авторизации phpmyadmin

Здесь же можно поменять язык интерфейса phpmyadmin. После авторизации мы попадем на страницу управления нашими базами данных, смотрите рисунок 2.11

26

Рисунок 2.11 - Так выглядит главная страница phpmyadmin

2.2.3 Делаем настройку сервера

Необходимо создать ссылку на phpmyadmin в /var/www

sudo ln -s /etc/phpmyadmin /var/www

Теперь нужно открыть конфигурационный файл сервера, как он выглядит можно увидеть на рисунке 2.12

sudo scratch-text-editor /etc/apache2/apache2.conf

и добавить в конец этого файла строку:

ServerName localhost:80

27

Рисунок 2.12 - Так выглядит файл конфигурационный файл /etc/apache2/apache2.conf

2.2.4 Добавляем наш сайт

Следующим шагом мы открываем файл hosts и добавляем наш сайт, что должно у нас получится видно на рисунке 2.13

sudo scratch-text-editor /etc/hosts

так же дописываем в файл строку

127.0.1.1 individom.ru

28

Рисунок 2.13 - Файл Host /etc/hosts

Теперь делаем в любой папке конфигурационный файл нашего сайта название пишем «individom.ru», внутрь файла пишем: ServerAlias individom.ru www.individom.ru DocumentRoot /home/user/server/individom.ru AllowOverride All далее нужно его скопировать копируем его с правами superuser в /etc/apache2/sites-available sudo cp путь_к_файлу /etc/apache2/sites-available/

Запускаем наш сайт: sudo a2ensite individom.ru Запускаем модуль mod-rewrite (данный модуль нужен для реализации ЧПУ): sudo a2enmod rewrite Теперь перезапускаем наш сервер: sudo /etc/init.d/apache2 restart 29

2.2.5 Проверяем работу нашего сайта

Делаем файлик index.php в папке нашего веб-сайта (/home/user/server/individom.ru), содержание делаем, например, такое:

Теперь открываем адрес individom.ru в любом браузере. Мы должны увидеть нашу тестовую страничку, значит все работает правильно, должно выглядеть как на рисунке 2.14

Рисунок 2.14 - Тестовая страница нашего веб-сайта

2.2.6 Могут появится следующие проблемы 1) Phpmyadmin оказался не доступен по адресу localhost/phpmyadmin Что бы исправить данную ошибку нужно переконфигурировать phpmyadmin командой: sudo dpkg-reconfigure phpmyadmin 2) Наш веб-сайт не отрывается так как запрещен сервером Для того что бы исправить такую проблему необходимо к имени конфигурационного файла веб-сайта в /etc/apache2/sites-available добавить расширение .conf, название файла должно иметь следующего формата «individom.ru.conf» содержание самого файла нужно отредактировать:

30

ServerAlias individom.ru www.individom.ru DocumentRoot /home/user/server/individom.ru AllowOverride All Require all granted

А запуск веб-сайта будет уже по имени конфигурационного файла sudo a2ensite individom.ru.conf 3) Не проходит наш логин и пароль при попытке авторизоваться в phpmyadmin Исправление такой нужно сделать большие изменения в конфигурационный файл phpmyadmin. Открываем этот файл: sudo scratch-text-editor /etc/phpmyadmin/config.inc.php

Ищем строки: $cfg['Servers'][$i]['controluser'] = $dbuser; $cfg['Servers'][$i]['controlpass'] = $dbpass;

после них дописываем следующие две строки: $dbuser = 'root'; $dbpass = 'kenny'; После проделанных действий phpmyadmin распознает наш логин и пароль. На этом мы закончили установку и проверку работы нашего сервера, конфигурационный файл с настройками PHP php.ini находится в /etc/php5/apache2/.

31

2.3 Среда разработки

Многие программисты любят пользоваться IDE при разработке своих приложений. Существует множество сред разработки для PHP, например: , PhpStorm (IntelliJ IDEA), Che, KDevelop, PhpED Professional. Есть которые только для определённой ОС, а есть так же и кросс-платформенные. Во-первых, они предлагают довольной большой функционал для работы с разными языками, в нашем случае с PHP, а это — хорошая возможность быстрого доступа к описанию функций, подсветка синтаксиса. Здесь можно настроить дебаггер, сервер для локального тестирования приложения. Так как у нас используется операционная система Debian, то нам нужна либо кросс-платформенная либо только с поддержкой Linux, мой выбор пал на PhpStorm, логотип программы можно увидеть на рисунке 2.15

Рисунок 2.15 - Логотип IDE приложения PhpStorm PhpStorm — коммерческая кросс-платформенная интегрированная среда разработки с интеллектуальным редактором, которая глубоко понимает код, поддерживает версии PHP 7.0, 5.6, 5.5, 5.4 и 5.3 обеспечивает лучшее в индустрии автодополнение кода, рефакторинги, предотвращение ошибок налету и поддерживает смешивание языков. Разработана компанией JetBrains на основе платформы IntelliJ IDEA. Поддержка PHPDoc, code (re)arranger, форматтера кода с конфигурацией стиля кода и другие возможности помогают разработчикам писать хороший и легко-поддерживаемый код. 32

Поддерживаются технологии веб-разработки, включая HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, шаблоны Jade, Zen Coding, Emmet, и JavaScript. PhpStorm включает в себя всю функциональность WebStorm (HTML/CSS редактор, JavaScript редактор) и добавляет полнофункциональную поддержку PHP и баз данных / SQL. А еще PHPSTORM работает на Java, настройки приложения очень гибкие и позволят менять практически весь функционал под себя. Лицензия постоянная, включает год бесплатных обновлений (с даты покупки), так же переход с текущей на улучшенную. В нашем случаи будет интересна «Академическая лицензия» (бесплатная, для студентов и преподавателей). Phpstorm одна из самых удобных IDE, поэтому нужно знать, как установить приложение в системе Debian.

2.4 Установка Phpstorm на Debian 2.4.1 Установка Oracle Java

Так как IDE работает на Java, поэтому для начала необходимо установить Oracle (Sun) JDK. Удаляем все предыдущие версии. sudo apt-get remove openjdk* Добавляем репозитарий Java, обновляем индекс sudo apt-get install software-properties-common sudo add-apt-repository ppa:webupd8team/java sudo apt-get update Далее устанавливаем Java командой sudo apt-get install oracle-java8-installer

33

Установщик вычислит место, необходимое для программы, после чего предложит продолжить установку, нажимает согласиться и окончания установки. Использовав следующие две команды правильно переменное окружение Java. sudo apt-get install oracle-java8-set-default source /etc/profile

После окончания установки проверяем, все ли успешно: java –version

Увидим что-то похожее на: java version «1.7.0_80» Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

2.3.2 Установка Phpstorm

Последнею версию можно скачать с официальный сайт https://www.jetbrains.com/phpstorm/download/ последняя версия на данный момент 2016.1.2, мы будем использовать wget для загрузки: wget https://download-cf.jetbrains.com/webide/PhpStorm-2016.1.2.tar.gz После окончания загрузки, открываем терминал и изменяем рабочий каталог в каталог загрузки, а затес извлекаем файл .tar.gz с помощью команды: tar xvf PhpStorm-2016.1.2.tar.gz Новая папка с названием PhpStorm-145.1616.3 сразу в рабочем каталоге, это лучше, чем перемещать каталог PhpStorm-145.1616.3 в /opt. sudo mv PhpStorm-145.1616.3/ /opt//

34

Создаем sudo ln -s /opt/phpstorm/bin/phpstorm.sh /usr/local/bin/phpstorm Теперь в терминале набираем phpstorm, что бы запустить приложение phpstorm

Нам предлагают импортировать настройки программы, так как мы устанавливаем её впервые выбираем второй пункт и нажимаем ОК, как выглядит это окошко показано на рисунке 2.16

Рисунок 2.16 - Окно с предложением импортировать настройки

Читаем и соглашаемся с политикой конфиденциальности, смотреть рисунок 2.17

35

Рисунок 2.17 - Политика конфиденциальности PhpStorm

Активируем бесплатную пробную 30 дневную версию, как показано на рисунке 2.18

Рисунок 2.18 - Активация лицензии

Читаем и соглашаемся с лицензионным соглашением, смотреть рисунок 2.19

36

Рисунок 2.19 - Лицензионное соглашение

В следующем окне выбираем тему, цвет, шрифт и нажимаем ОК, как оно выглядит можно посмотреть на рисунке 2.20

Рисунок 2.20 - Первичные настройки PhpStorm

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

37

2.4 Продуктивное использование PHPStorm

2.4.1 Автогенерация кода

Существует множество обыденных вопросов, которые выполняются фреймворком, но иногда требуют ручной работы. IDE может помочь в этом, [CTRL]+N, например: Создание геттеров и сеттеров (Getters & Setters) По имеющимся переменным класса можно сгенерировать набор геттеров и\или сеттеров, при этом в появившемся окне можно сдать выбор для каких именно.

Создание PHPDoc По факту данное действие подобно действию, когда перед существующим методом начать писать /** и нажать Enter. Возможно выбрать одну или несколько функций и на основании атрибутов и содержимого будет сформирован Doc Block. Переназначение и реализация при наследовании (Override & Implementation) При создании класса потомка или реализации абстрактных методов, чтобы не допускать ошибку, как правило нужно идти в класс предок запоминать название и атрибуты метода. Есть другой вариант: [CTRL] + I – Имплементация [CTRL] + O – Переназначение После нажатия клавиш появляется окошко где можно выбрать методы, которые будем реализовывать. Уже после выбора сгенерится метод с соблюдением приватности и имена атрибутов, к примеру: public function createTable($drop = false) { return parent::createTable($drop); } 38

2.4.2 Автоформатирование кода

Когда программист пишет код сам, форматирование кода получается само, но есть ситуации, когда нужно сменить Code Style либо открываешь чужой код, возникают проблемы. Можно конечно смириться, а можно просто нажать [CTRL] + [ALT] + L и PHPStorm отформатирует код в соответствии с выставленными настройками в (Preferences -> Project Settings -> Code Style -> PHP) По-умолчанию, нажатие клавиш форматирует файл целиком. Можно выбрать только область, то форматируется только selection. А если выбрать весь проект или папку, можно сразу все привести в нужный порядок. Для каждого языка можно выбрать свой стиль, смотрите рисунок 2.21

Рисунок 2.21 - Изменение стиля PHP

2.4.3 Подсказки (Code Completition)

Значимой функцией PHPStorm считается способность давать подсказки к названиям и атрибутам методов. Крайне это важно для ООП, когда цепочки по 3-4 наследующихся класса способны запутать. При нормальной архитектуре проекта PHPStorm может самостоятельно, однако бывают случаи, когда она не справляется, например:

39

− Класс 'B’ extends ‘A’. В классе 'A’ метод foo() возвращает $this, в классе 'B’ реализация метода отсутствует. Вызвав из объекта ‘B’ метод foo() IDE будет думать что возвращен был объект A. − Функция может вернуть несколько типов − При нативной шаблонизации средствами PHP. Где-то в дебрях системы в шаблон передается переменная $some, но внутри шаблона об этом неизвестно. − Объект является элементом массива $var = $arr[‘object’]; Вот разные варианты решения: - Для функций нужно писать PHPDoc с параметром @ return. /** @return SomeClass */ function a() {[…]} - Для переменных также можно указать комментарий: /** @var $my_var SomeClass */ Тогда ниже для $my_var будет доступны подсказки - Для методов над классом можно указать PHPDoc /** @method B foo() Описание метода */ class B extends A {[…]} - Если функция возвращает массив объектов /** @return SomeObject[] */

2.4.4 Задачи (tasks)

Часто можно встретить проблему, когда работа проводится над несколькими задачами одновременно либо кто приходит и просит срочно устранить ошибку в программе прямо сейчас. Весьма легко забыть закоммитить нужный файл или наоборот, в коммит попадают лишние файлы или изменения которых там быть не должно. Избежать такой ситуации и внести порядок в работе можно с помощью Tasks. У каждой задачи есть свой Change-лист, в нём указаны файлы с

40

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

2.4.5 FTP, деплой и автодеплой

Во многих проектах работа ведется по FTP или SFTP. IDE имеет удобный функционал для работы с ними. Сохранив доступы к серверу и настроив mapping появляется возможность выгружать и загружать (upload & download) файлы на сервер нажатием сочетаний клавиш. Чтобы все работало — нужно нажать «use this server as default». Как выглядит окно с настройками FTP можно посмотреть на рисунке 2.22

Рисунок 2.22 - Настройка FTP

Есть еще такая функция как автодеплой. В настройках (Preferences -> Project Settings -> Deployment -> Options) отмечаем пункт “Upload changed files automatically to default server” в любой режим кроме Never + галочку

41

Upload external changes мы получаем автоматическую синхронизацию всех изменений. Очень удобно что IDE при нажатии [CTRL] + S сохраняет сразу все файлы.

2.4.6 Консоль

Многие фреймворки применяют консоль с целью быстрого выполнения частых действий. PHPStorm поддерживает подсказки и автодополнение консольных команд в Command Line Tools Console [CTRL] + [SHIFT] + X Это можно сделать как для своего проекта, так и для часто используемых команд UNIX или GIT, нужно выбрать исполняемый файл и создать специальный XML файл, вариант кода изображен на рисунке 2.23

Рисунок 2.23 – Код для специального XML файла

2.4.7 Разновидности поиска

[ALT] + N – Find by Class Name Поиск по имени класса. Очень актуально в работе с большими проектами, когда всё зарыто вглубь директорий. Еще есть «умный поиск», т.к. ищется как по части названия класса, так и по первым буквам, например, SomeVeryLongClass будет найден по «SVLC», пример можно увидеть на рисунке 2.24

42

Рисунок 2.24 - Пример «умного поиска»

[CTRL] + [SHIFT] + N – Find by File Name Поиск по имени файла. Аналогично поиску по имени класса использует «умный поиск». Для поиска по вложенности лучше использовать слеш: some/deep/dir/with/file.txt найдется по «s/d/d/w/f». CTRL] + [SHIFT] + [ALT] + N – Find Symbol Поиск любой функции/метода и констант, подходит, когда помнишь имя метода, а класс нет.

2.4.8 Дополнительные сочетания клавиш

[CTRL] + [SHIFT] + A — поиск по командам PHPStorm Alt + ~ — менюшка с git коммандами. С помощью [CTRL] + [SHIFT] + 0...9 можно оставлять метки. Вернуться на метку можно с помощью [CTRL] + 0...9. [CTRL] + [ALT] + T - Окружение выделения предзаданными штуками, типа тегов или if-else, в зависимости от контекста. [ALT] + [Home] — быстрая навигация по пути к файлам.

2.5 Разработка сайта

Все начинается с создания стартовой страницы, ниже представлен код часть стартовой страницы, а как это выглядит в PHPStorm представлено на рисунке 2.25

43

Xxx

44

Рисунок 2.25 - Наглядный пример кода в PHPStorm

2.6 Размещение сайта на хостинге

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

2.6.1 Размещаем веб-сайт

1) Необходимо войти в панель управления (https://hosting.nic.ru), используем для входа наш номер договора и пароль; 2) Идем в «Веб сервер» → «Сайты»;

45

3) В пункте «Новый сайт» вводим «individom.com» и нажимаем «Создать», как показано на рисунке 2.26

Рисунок 2.26 - Создаем наш сайт

4) Соглашаемся с включением автоматической поддержки DNS, так как не будем поддерживать домен на внешних серверах, как выглядит окошко можно увидеть на рисунке 2.27

Рисунок 2.27 - Предложение об автоматической поддержке DNS

2.6.2 Настраиваем наш домен для работы с DNS-серверами хостинга

1) Идем в «Для клиентов» на сайте https://www.nic.ru, указываем там номер своего договора и пароль; 2) Выбираем в пункте «Услуги» пункт «Мои домены»; 3) Ищем столбик «DNS-серверы домена» и идем по ссылке «Делегировать» или «Изменить»;

46

4) В пункте «Использовать DNS-серверы услуг RU- CENTER» выбираем «Хостинг». После чего для домена DNS-серверы будут: ns3.nic.ru ns4.nic.ru ns8.nic.ru 5) Теперь жмем кнопку «Сохранить изменения» как на рисунке 2.28. Проделанные изменения вступят в силу от 6 до 12 часов.

Рисунок 2.28 - Настройка DNS-серверов

2.6.3 Загрузите файлы сайта на хостинг

Сразу после создания веб-сайта на данном хостинге должен появиться каталог с его названием. Нам нужно разместить в каталоге individom/docs файлы нашего сайта. Можно это сделать при помощи FTP-клиента.

47

2.6.4 Настраиваем веб-сервер для требований веб-сайта

Для того что бы настроить веб-сервер нужно зайти в раздел «Веб- сервер» — «Управление модулями». Для настройки PHP нажимаем на имя версии как на рисунке 2.29

Рисунок 2.29 - Настройка веб-сервера

2.6.5 Проверяем работоспособность сайта

Пробуем открыть http://individom/. Открывается главная страница или мастер установки CMS. Если потребуется выполняем инструкции мастера.

48

3 Экономические затраты для реализации проекта

3.1 Расчет себестоимости сайта

Для создания сайта можно прибегнуть частному веб-разработчику, компания занимающемся созданием сайтов, нанять работника в штат. Так как наша цель сокращение расходов и увеличение прибыли, лучше всего нанять частное лицо для данной работы, а поддержку сайта потом передать хостингу. Когда мы наймем частное лицо, веб-разработчик нам просто озвучит стоить его работы, мы точно не знаем один будет работать разработчик или у него есть своя команда. Поэтому мы будем разбирать от куда появляется это стоимость по универсальной и удобной формуле (3.1):

А=В:С, (3.1)

где А - зарплата веб-разработчика за час; В - это средняя зарплата веб-разработчика; С - число 36, высчитанное соотношение себестоимости часа разработки сайта к средней зарплате веб-разработчика. Если взять состав работ при разработке веб-сайта, то получим: − анализирование требований, проектирование возможностей; − проектирование архитектуры и интерфейсов; − разработка документации; − разработка сайта; − тестирование сайта; − запуск в работу, профессиональное тестирование; − сопровождение (исправление кода, поддержка), порядка 30% от емкости работы. Большинство компаний-разработчиков в финальную стоимость не включают сопровождение в состав работ. Что в конечном итоге приводит к 49

тому что заказчику приходится отдельно оплачивать исправление каждой ошибке в коде. Хороший же веб-разработчик предпочитает работать с наивысшей степенью ответственности, поставлять заказчику протестированный продукт и обеспечивать полную техническую поддержку. Часто заказчик скорее всего заплатит за поддержку выше требуемого, чем будет оставлять такие проблемы себе. Оплата работы будет включать в себя: − зарплата, плюс налог 13%; − премия; − пенсионный фонд и фонд социального страхования 14% − Мед. страховка 1% от зарплаты; − Питания 2% от зарплаты. Из производственного календаря берем количество рабочих дней за год, вычитаем из них отпуск 20 дней и делим на 12 месяцев. Вовремя отпуска люди не работают, а отпускные платятся. Получается:

(247-20)/12=18,9… дней в месяц сотрудник работает.

Полный рабочий день 8 часов. Помимо самих разработчиков в работу над проектом еще вовлечены проектировщики, тестировщики, и группа внедрения. Соотношение их зарплат примерно таково: − Зарплата специалистов внедрения сколько же, как и у разработчиков. − Проектировщики – 75%. − Тестировщики – 50% от зарплаты разработчиков. Сами веб-разработчики примерно 2,5 часа в рабочий день сопровождают код, а 5,5 часов в день занимаются разработкой. Тестировщики – тоже 5,5 часов в день тоже занимаются разработкой.

50

Проектировщики и группа внедрения все 8 часов в день занимаются непосредственно своими работами. На примере мы возьмем зарплаты программистов Java с портала Superjob.ru от 120 000 рублей в месяц, на рисунке 3.1 можно увидеть полученную таблицу.

Рисунок 3.1 - Калькуляция стоимости часа разработки

Разумеется, что веб-разработчики должны где-то сидеть (хорошо если это кондиционируемое помещение), должны быть быстрые каналы связи для работы с серверами, приложениями. При профессиональной квалификации сотрудника будет и определенный уровень затрат на него. Не стоит забывать и об таких условия как социальный пакет. Всё это приводит к тому, что методологию будет включены такие расходы как административные и общехозяйственные. Мы считаем их за последние полгода и делим на количество производственного персонала, получается 20%, относительно заработной платы разработчиков. Для того чтобы дать работу веб-разработчику в течение одного часа, проектировщик потратит треть часа на проектирование требований, а тестировщики полчаса потратят на тестирование. Все это можно увидеть в таблице на рисунке 3.2, и из нее очевиден вывод: один час непосредственной разработки требует одного часа дополнительных затрат. Стоит заметить, что специалист по техническому описанию, готовящий документацию, получает обычно точно такую же зарплату, как и тестировщик.

51

Рисунок 3.2 - Калькуляция затрат на оплату труда одного часа работы специалиста

Теперь остается всего один пункт, округляем до 36 и сможем все это записать в формулу Час = ЗП/36. Таким образом если использовать данные с Superjob.ru, а там у нас была зарплата 120 000 рублей в месяц, то получается, что один час работы веб-разработчика будет стоить заказчику 3 342 рубля включая НДС. Мы помним, что компания делает заказ сайта у частного лица и веб- разработчик сообщает что сможет сделать за неделю. Если веб-разработчик будет работать над сайтом по трудовому кодексу, то он затратит на его создание 40 часов. Теперь не трудно посчитать по формуле (3.2)

А=ВхС, (3.2)

где А – общая стоимость работы; В – общие рабочие часы; С – Стоимость часа работы. Когда мы поставим наши значения в формулу, то получим следующие данные: 40 часов*3 342 в час=133680 рублей

52

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

3.2 Расчет стоимости хостинга

Рассмотрим размещение на хостинге RU-CENTER, а также его ценовую политику. RU-CENTER предлагаю гибкую ценовую политику, посмотрим, что они могу предложить. Как видно на рисунке 3.3 нам подходит «Тариф 200», в это тарифе есть поддержка PHP и баз данных, большой нагрузка на сайт не предвидится так как веб сайт служит дополнительной рекламой компании.

Рисунок 3.3 - Ценовая политика RU-CENTER

Дальше при заключении договора об оказание услуг будут уже обговорены дополнительные опции, которые также понесут дополнительные траты: − дальнейшая поддержка сайта; − обеспечение резервного копирования; − защита от DDOS-атак; − обеспечение стабильного канала связи 53

Таким образом ежемесячная стоимость содержания веб-сайта составляет уже 3500 рублей в месяц.

3.3 Итоги финансовых вложений После проведенного анализа, было установлено что создания сайта для компании очень выгодное предложение. При подведении итогов было установлено, сама разработка сайта компании «Xxx» при заявленных её требованиях к разработке и содержанию обойдется в 133680 рублей, а ежемесячные вложения в поддержку работоспособности сайта 3500 рублей. Данные цифры существенно снижают затраты фирмы, на рекламу которые она ранее затрачивала при использовании теле- радио эфиров. Безусловно компания не будет полностью отказываться от других вариантов рекламы, она лишь снизит количество эфиров или же будет использовать для раскручивания веб-сайта так как на нем больше информации, и она может обновляться моментально по требованию компании.

54

ЗАКЛЮЧЕНИЕ

У компании «Xxx» появился отличный веб-сайт, который выполняется роль визитки и служит привлечению привлечением клиентов, которые ищут компании через сеть Internet. Цели, поставленные компанией передо мной выполнены полностью: − привлечение потенциальных клиентов; − поиск партнёров по бизнесу; − уменьшение затрат на рекламу; − круглосуточная реклама. Цели, поставленные передо мной для выполнения дипломной работы выполнены: − изучены материалы по теме дипломной работы; − определены требования к веб-сайту; − выбраны наиболее подходящие средства реализации; − продумана структуру и создан дизайн сайта; − систематизирован и структурирован собранный материал; − заполнена содержанием структура сайта. Дипломная работа выполнена в соответствии с требованиями технического задания и методическими указаниями. В дальнейшем компания «Xxx» может развернуть интернет-магазин и осуществлять торговлю товарами для строительства, инструментами и т.д. А также развернуть свою сферу деятельности в другие регионы, для чего конечно потребуется усовершенствования и доработка сайта и также заключения новых договоров с хостингом или переход к другому. Были вычислены экономические затраты на реализацию данного проекта, которые составляю 133680 рублей единовременной выплаты разработчику сайта, а также ежемесячные вложения в поддержку работоспособности сайта в размере 3500 рублей.

55

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Антонова Г.М., Байков А.Ю. Современные средства ЭВМ и телекоммуникаций: Учебное пособие. – М.: Академия, 2013. – 250 с. 2. Артеменко Ю. Н. MySQL Справочник по языку. - М.: Вильямс, 2005. - 360 с. 3. Аткинсон Л. MySQL. Библиотека профессионала. - М.: Вильямс, 2002. - 624 с. 4. Бейли Л., Моррисон М. Изучаем PHP и MySQL. – М.: Эксмо, 2010. - 768 с. 5. Вайк А. JavaScript. Энциклопедия пользователя. - Краснодар: ООО ТИД, 2001. - 480 с. 6. Васвани В. Zend Framework. Разработка веб-приложений на PHP. – Спб.: Питер, 2012. – 431 с. 7. Голицына О. Л. Языки программирования. – М.: Форум, 2008. – 400 с. 8. Гост 19.001 - 77. Единая система программной документации: Общие положения. - М.: Изд-во стандартов, 1994. 9. Гост 19.102 - 77. Единая система программной документации: Стадии разработки. - М.: Изд-во стандартов, 1994. 10. Гост 19.105 - 78. Единая система программной документации: Общие требования к программным документам. - М.: Изд-во стандартов, 1994. 11. Гост 19.201 - 78. Единая система программной документации: Техническое задание. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1994. 12. Гост 19.002-80. Схемы алгоритмов и программ. Правила и выполнения — М.: Изд-во стандартов, 2002. 13. Диго СМ. Проектирование и эксплуатация баз данных. - М.: Финансы и статистика, 1995. -540 с. 56

14. Дейт К. Дж. Введение в системы баз данных. - 6-е изд. - М.: Вильяме, 2000. – 290 с. 15. Дронов В. А. JavaScript в web-дизайне: Наука и техника. - М.: Вильяме, 2004. – 180 с. 16. Дунаев В. Самоучитель JavaScript. – М.: Пресс, 2005. – 600 с 17. Ильин И.А. Комплексная защита информации. – М.: Просвещение, 2011. – 219 с. 18. Клецова Т.В., Белоусов С.Г. Построение, оформление и защита выпускной квалификационной работы. - СПб.: Питер, 2014. – 95 с. 19. Коробов Н. А., Комлев А. Ю. Информационные технологии в торговле. - М.: Академия, 2011. - 176 с. 20. Курочкина В.М. Язык компьютера. - М.: Мир, 2011. — 240 с. 21. Леки-Томпсон Э., Айде-Гудман Х. и др. PHP 5 для профессионалов. –М.: Диалектика, 2006. - 608 с. 22. Леонтьев Б.В. Web-Дизайн: Тонкости, хитрости и секреты. – Спб.: Ручь, 2001. -170 с. 23. Львов М.Р., Рамзаева Т.Г. и др. Правовая защита информации: Учебное пособие для студентов технических институтов по специализации «Организация и технология защиты информации». – М.: Просвещение, 2012. – 415 с. 24. Мазуркевич А. М. Еловой Д. С. PHP: Настольная книга программиста. – Минск: ООО Новое издание, 2003. – 120 с. 25. Николенко Д. В. Практические занятия по JavaScript. –М.: Наука и техника, 2000. – 80 с. 26. Никсон Р. Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript. –Спб.: Питер, 2011. - 688 с. 27. Ньюман К. Освой самостоятельно PHP. 10 минут на урок. – М: Вильямс, 2006. -132 с. 28. Перовская Е.В. Формирование навыков специалиста по защите информации // Учёные записки института непрерывного педагогического 57

образования. – Выпуск 7: В 3 кн. – Великий Новгород: НовГУ им. Ярослава Мудрого, 2011. – Кн. 1. – С. 162-165. 29. Прохорено Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. – СПБ.: БХВ-Петербург, 2010. – 120 с. 30. Скляр Д., Трахтенберг А. PHP. Сборник рецептов. – Спб.: БХВ- Петербург, 2007. - 669 с. 31. Соколов С. А. HTML и CSS в примерах, типовых решениях и задачах. Профессиональная работа. – М.: Вильямс, 2010. – 416 с. 32. Ульман Л. MySQL Руководство по изучению языка. –М.: ДМК Пресс, 2003. – 320 с 33. Фленов М. Е. PHP глазами хакера. –Спб.: БХВ-Петербург, 2005. – 450 с. 34. Шарма В., Шарма Р. Разработка Web-серверов для электронной коммерции. Комплексный подход. - М.: Вильямс, 2009. - 400 c. 35. Чиртик А. В. Популярный самоучитель HTML. – СПб.: Питер, 2013. – 348 с. 36. Guide P. PHP Advanced and Object-Oriented Programming: Visual QuickPro. London. 2012. Р. 504. 37. SuehringS., Valade J. PHP, MySQL, JavaScript & HTML5 All-in- One For Dummies. Wiley. 2013. P. 720.

58

ПРИЛОЖЕНИЕ А (справочное) Интерфейс веб-сайта

59

ПРИЛОЖЕНИЕ Б (справочное) Программный код веб-сайта

Xxx

Xxx

Ваш дом индивидуален!

Почему мы?
Отвечая на вопрос «Почему мы?», наша компания с уверенностью может сказать: «Xxx» – это принципиально новый уровень услуг по ремонту и строительству домов, коттеджей и бань, начиная от разработки дизайна Вашего дома до дизайна мебели и дизайна интерьеров. Мы разрабатываем индивидуальные решения в области архитектуры, дизайна и оформления помещений. Широкая специализация нашей компании позволяет обеспечивать комплексный сервис. Вы можете обратиться к нам, если Вам необходима профессиональная разработка дизайн-проекта, проектирование и изготовление авторской мебели, ремонт и отделка помещений, проектирование и строительство различных объектов. Мы работаем как с частными лицами, так и с коммерческими организациями. Широкий спектр услуг дает возможность воплощать в жизнь любые идеи, делая 61

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

Несъемная Опалубка

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

Панели – 3D

Такие панели относятся к самым современным технологиям. Они собой объединяют два способа, при помощи которых возводятся конструкции: — Каркасно-панельный; — Монолитный.

Каркасная технология

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

62

Партнерам

Предложение для сотрудничества
Компания «Xxx» заинтересована в расширении своих возможностей.
Нам требуются партнёры работающие в области производства строительных материалом, оборудования, производящие оборудования для домов и бань.
Мы внимательно рассматриваем каждую заявку потенциального партнера и принимаем по ней взвешенное решение.
Наши критерии при принятии решения о заключении дилерского договора:

  • Вы являетесь юр. лицом или ИП (индивидуальным предпринимателем)
  • Вы готовы выделить минимум одного специалиста, который будет заниматься обучением нах специалистов работе с нашими материалами, оборудованием.
  • Если Ваша компания соответствует озвученным критериям, Вы имеете все шансы стать нашим партнёром.

Каков порядок Ваших действий?

  • Пришлите заявку на заключение дилерского соглашения по факсу электронной почте [email protected]
  • Мы рассматриваем Вашу заявку в течение 1 дня, после чего извещаем Вас о результатах рассмотрения
  • При положительном решении мы высылаем Вам комплект документов для подписания партнерского соглашения