Алгоритм действий — это пошаговое объяснение, что делать в разных случаях: сдать налоговую декларацию, зафиксировать ДТП, подключить стиральную машинку, вырастить картошку. Один из способов алгоритм указать — составить блок-схему (или флоучарт). Ее определяют, как «графическое отображение решения задачи».
Простой способ прорисовать флоучарт — воспользоваться Google Диск. К тому же он позволяет создавать блок-схему командой: создайте проект и отправьте ссылку на него другим участникам, открыв доступ для редактирования.
- Выберите тему, которой будет посвящен флоучарт. Продумайте основную мысль, которую хотите передать в своём материале.
- Наберите в Word (или другом текстовом редакторе) тексты для блок-схемы. Они должны быть короткими, без воды. Пары предложений достаточно.
- Проверьте на ошибки. Иначе вам придётся переделывать блок-схему.
Открывайте Google Диск. Нажимайте «Создать» (кнопка вверху боковой колонки слева) или кликайте на правую клавишу мышки. Появилось всплывающее окно. Кликайте на «Еще», затем — Google Drawings (Google Рисунки).
Откроется новый документ. Назовите схему.
Вверху справа есть «Настройки доступа», если вам нужно подключить к работе над флоучартом коллег, нажимайте на них и указывайте, как команда может влиять: просматривать блок-схему, комментировать или редактировать.
Приступайте к созданию флоучарта. Установите фон: наведите мышку на поле, кликайте на правую клавишу, выбирайте «Фон».
Панель с инструментами размещена над рабочим полем. Набор функций стандартный: формы, стрелки, текстовое поле. Можно загрузить фотографию.
Работайте с каждым отдельным элементом: выделяйте цветом, меняйте сплошную линию на пунктирную. Увеличивайте или уменьшайте объекты. Стрелки могут быть прямыми, изогнутыми, ломаными, кривыми, рисованными.
Можно вставить отдельно форму, а затем добавить к ней текст. Или можно текст положить на подложку.
Добавляйте текст из подготовленного файла, распределяйте блоки по полю. Стрелками покажите, что за чем следует. При необходимости можете упорядочить элементы: на передний план или на задний.
Если стандартного поля мало — уменьшите масштаб и потяните за уголок в правом нижнем углу рисунка.
Когда флоучарт готов, нажимайте «Файл» в верхней панели, затем — «Скачать как». Выберите нужны формат: PDF, JPEG, PNG, SVG.
Если блок-схема нужна для публикации в интернете, нажимайте «Файл», затем — «Опубликовать в интернете». Выбирайте размер изображения, и — «Опубликовать». Чтобы получит код для вставки на сайт, переходите во вкладку «встроить».
Готово. Результат может выглядеть так.
Где может пригодиться флоучарт?
Алгоритмы легко отрабатывать на создании кулинарных рецептов или пошаговом обучении ваших пользователей. Вариантов таких инструкций множество:
- способы высадить картошку (да, их есть несколько);
- как записать ребенка в детский сад, школу, лагерь, кружок;
- как сдать налоговую декларацию, документы на регистрацию имущества, составить европротокол и пр.;
- как действовать при конфликтах с магазином, управляющей компанией, соседями, полицией.
От автора: приветствую вас, дорогой читатель. Что такое, по вашему, алгоритм создания сайта и из чего он состоит? В этой статье я попробую ответить на этот вопрос.
Хочу сразу сказать, что нет и не будет какого-то единого алгоритма в создании сайта, потому что сегодня его можно создать очень разными способами, в зависимости от ваших знаний, денежных вложений и потребностей.
Например, веб-ресурс можно создать в конструкторе, можно заказать его разработку команду профессионалов, можно воспользоваться услугами площадки, где можно даже бесплатно разместить свой проект. Но давайте подробнее рассмотрим сам алгоритм, чтобы вы четко понимали, чем какие этапы при создании ресурса нужно соблюсти.
Цель
Первый вопрос, на который нужно ответить: “Какова цель создания этого сайта?” Без ответа на него нет смысла двигаться дальше. Вы скажете, что это естественно, но много неплохих проектов сегодня уже заброшены просто потому, что не было четкой цели при их создании.
Вы должны определиться, какой именно вам нужен ресурс и что он будет давать людям, которые будут на него заходить. Например, если фрилансер хочет увеличить количество заказов, он может создать свой личный блог, где поделиться своими статьями и портфолио. В этом случае его цель – с помощью сайта привлечь к себе больше клиентов, поднять свою репутацию и профессионализм в глазах других людей.
Профессия Frontend-разработчик PRO
Готовим Frontend-разработчиков с нуля
На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и
дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…
Узнать подробнее
До 10 проектов в портфолио для старта карьеры
Подходит для новичков без опыта в программировании
Практика на вебинарах с разработчиками из крупных компаний
Определиться с именем
Доменное имя – это то, что закрепиться за вашим проектом на долгие годы, поэтому нужно очень ответственно подойти к его выбору. Оно должно отражать основную суть, идею сайта. Иногда особо думать над названием не надо. Например, если компания называется так то, то очевидно, что ее именем нужно назвать и сайт, главное, чтобы доменное имя не было занято, но если так, то можно подобрать близкое по звучанию слово, либо сделать имя из 2-3 слов.
Если вы создаете личный блог, то доменным именем может быть просто ваше имя и фамилия. В подборе имени вам могут помочь различные специальные инструменты.
Определиться с дизайном
Каким должен быть дизайн? Уникальным? Или подойдет шаблон? Во втором случае вы экономите массу времени и денег, но и не получаете тех преимуществ, которые могли бы получить при уникальном оформлении. Сегодня любому крупному проекту просто необходим свой собственный, уникальный дизайн, иначе он просто не будет воспринят серьезно.
Также в последние года все более важным становится, чтобы дизайн был адаптивным, то есть подстраивался и изменялся под мобильные устройства, чтобы просматривать сайт было удобно.
Решить, что будет наполнять сайт
По-хорошему, этот вопрос должен быть решен еще перед созданием дизайн, чтобы оформление можно было создать для разных типов страниц. Например, на блоге стандартно выделяют три разных типа страниц по структуре: главная, страница вывода постов и сам пост.
Если это интернет-магазин, то тут будет все по-другому. Вместо постов будут товары и их описание. Вместо вывода постов – каталог товаров и т.д.
Определить, какой функционал нужен на сайте
Один из самых важных этапов. Вы должны постараться выписать все, что должно быть у вас на ресурсе. Например, что такого должно быть в интернет-магазине? Желательно, там должна быть возможность оставлять отзывы на товары, перетаскивать их в корзину, рассчитывать общую стоимость заказа, сохранять этот результат до тех пор, пока пользователь не нажмет на кнопку оформления заказа. Очевидно, что должна быть система приема платежей, возможность посмотреть подробные характеристики, а может быть, даже сравнить товары.
В определении функционала вам может помочь просмотр других сайтов. Например, если вы хотите создать свой информационный проект, вам будет полезно глянуть, какие возможности есть у успешных проектов подобного типа, желательно с учетом вашей тематики.
Реализация дизайна, верстка и установка на движок
Обычно это выглядит так. Когда все продумано, остается нарисовать дизайн вашего проекта, утвердить его, сверстать с помощью html и css, после чего натянуть на движок, который вы выберете.
Движок тоже нужно выбирать исходя из того, какой вам нужен функционал. Например, хорошие блоги обычно держат на WordPress, интернет-магазин быстро и легко создается на OpenCart, многофунциональный Drupal подойдет для проектов, где нужно реализовать много возможностей и т.д. Так или иначе, вам полезно будет разбираться в движках хоть немного, либо проконсультироваться по этому поводу с человеком, который разбирается.
Покупка хостинга и публичная публикация в интернете
Все предыдущие этапы нужно выполнять на локальном сервере. Там вы можете экспериментировать сколько угодно, чтобы довести проект до нужного состояния. После того, как все готово, вы можете разместить свой проект в сети.
Для этого вы сами должны выбрать хостера, у которого купите место, а также сам тариф. Для более менее важных и серьезных проектов рекомендую сразу же брать виртуальный выделенный сервер. Позднее вы сможете сменить тариф на более мощный, если в этом будет необходимость.
Итак, вам нужно приобрести место на удаленном сервере, скопировать туда файлы движка, установить его, поставить разработанный шаблон и настроить сайт. На этом, конечно, работа ни в коем случае не заканчиваеся, потому что теперь вам предстоит наполнять проект, но все равно можно выдохнуть – самый ответственный этап позади.
Сегодня в сети много вспомогательных площадок и движков, благодаря которым алгоритм создания сайта для чайников заметно упрощается, но если вы хотите самостоятельно разобраться в этом деле и стать настоящим профессионалом в деле сайтостроения, то вам не обойтись без тщательного обучения. В этом вам может помочь наш проект.
Профессия Frontend-разработчик PRO
Готовим Frontend-разработчиков с нуля
На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и
дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…
Узнать подробнее
До 10 проектов в портфолио для старта карьеры
Подходит для новичков без опыта в программировании
Практика на вебинарах с разработчиками из крупных компаний
Многое из того, чтобы было написано в этой статье, вы также можете посмотреть в нашем видео об этапах создания интернет-ресурса, где все раскладывается по полочкам. Ну а на этом я буду заканчивать. Надеюсь, для себя вы узнали что-то новое. А если хотите узнавать еще больше, обязательно подписывайтесь на наш образовательный портал.
Какой алгоритм сайта использовать?
Какие технологии сайта наиболее эффективны?
Как узнать ценности клиентов — посетителей вашего сайта?
Как гибкие навыки помогают для достижения ситуации Win-Win?
Как с помощью Мини Задач и технологии АРИЗ оптимизировать сайт?
Какие бывают способы исследования тенденций?
Как достичь целей сайта?
Дата написание статьи: Октябрь 2017 Алгоритм Сайта.
Дата обновления статьи: Декабрь Январь 2018 2019
Алгоритм сайта:
Исследование тенденций
Для начала проведем сравнение таблица тенденций, для того чтобы понять в какой ситуации находится запрос Алгоритм Сайта, на основание этих тенденций и начинается построение Алгоритма сайта, мы изучаем тенденцию в которой придется находиться нашей статье для того чтобы понять стоит ли вступать в борьбу за посетителей на этом фронте (Для повышения конверсии сайта рекомендуем статью «Как продвижение являет на конверсию?» к прочтению). Итак, таблица по целевому запросу «алгоритм сайта» на октябрь 2017 года:
И такая же таблица но уже на декабрь 2018 года:
Что Вы видите? исследования тенденций год назад дали правильную оценку, тематика по «Алгоритму сайта» растёт и это означает что даный запрос может позволить достичь цели сайта в рамках этой темы. Но не будем торопиться с выводами, давайте про анализируем остальные тенденции по запросам чтобы отразить полноценную картину для построения технологии лидерства данной статьи.
Ранее мы исследовали запрос «ценности духа», однако тематика не напрямую понятна обычному обывателю, но убирать то исследование не будем, мы чтим свои старые работы.
А сейчас давайте посмотрим на другой запрос, наиболее близкий по целям сайта, это запрос «Ценности клиента»:
И давайте рискнем возьмем такой конкурентный запрос как «Технология сайта», о том для чего мы берем один высокочастотный запрос опишем дальше:
Далее мы действуем применяя платформу РААА и создавая гибкий процесс по созданию статей.
Ошибки при разработке Алгоритма сайта:
Первое, давайте точно определимся с терминами и этимологией:
Создание сайта — алгоритм разработки, алгоритм на английском это – algorithm произошедшей от латинского – algorizmus. Слово «алгоритм» получило распространение в русском языке в конце 20-х гг. XX в.
По всей видимости, данное слово заимствовано из английского языка и восходит к латинскому algorizmus, происходящему от имени турецкого математика Аль-Хорезми.
Абу́ Абдулла́х (или Абу Джафар) Муха́ммад ибн Муса́ аль-Хорезми́(перс. محمد بن موسی خوارزمی; араб.أبو عبد الله محمد بن موسی الخوارزمی; ок. 783, Хива, Хорезм (совр. Узбекистан) — ок. 850, Багдад (совр. Ирак)) — один из крупнейших средневековых учёных IX века хорезмийского[5] происхождения, математик, астроном, географ и историк.
Общепринятое значение слова «алгоритм» – «способ (программа) решения вычислительных и других задач, точно предписывающий, как и в какой последовательности получить результат, однозначно определяемый исходными данными». Сейчас слово наиболее популярно, поскольку является одним из основных понятий математики и кибернетики.
Алгоритм РААА предназначен для развития гибких навыков которые лучше всего формируются в измерительной процедуре поединка. Бой взвешивает физические и духовные силы противников. И уже сам факт измерения сил противников запускает древние механизмы инстинкта доминирования и мобилизации развития организма ради выживания. Именно поэтому алгоритм РААА способствует росту эффективности и результативности.
РААА в приложении к задаче создания сайта предполагает в основе информационный поединок. Особенностью алгоритма РААА концентрация и выход на модель ситуации «выиграл выиграл». Выиграл выиграл это самая сложная модель, когда побеждающий добивается выигрыша для обоих.
Для поединка необходим партнер оппонент, взаимодействуя с которым мы с читателем должны выиграть. Что укажет на то что мы выиграли? Только то что мы выйдем на первую позицию по запросу Алгоритм сайта, а читатель проголосует за это подняв стат вес статьи. (Как продвигать сайт без финансовых вложений? Как продавать через ТЕКСТ? читайте здесь)
Мы выбираем в качестве противника и берем его статью:
напоминаем, что мы играем на выиграл выиграл, а не на выиграл проиграл. Что это значит? А это значит, что Автор статьи уважаемый человек который заложил основание для поединка, и аудитория вместе с ним сделали большую работу теперь мы должны продолжить его дело и обеспечить дальнейший рост интереса аудитории к запросу «алгоритм сайта». Мы должны помочь автору в раскрытии темы. Как? Мы должны выявить ошибки слабые места и противоречия и сформулировать мини задачи, которые позволят посетителям понять какой же алгоритм сайта позволяет не только вывести его в топ по запросам семантического ядра, но и главное получить максимальный выигрыш, как для владельца сайта, так и для аудитории. Каждое предложение автора, с которым мы ведем поединок мы оставляем написанным черным шрифтом наши комментарии мы выделяем красным цветом.
Начинаем создавать алгоритм сайта по алгоритму РААА!
С чего начинает наш оппонент?
Разработка сайта – это кропотливая работа, в ней зачастую задействовано несколько человек.
Для успешного создания сайта необходимо изначально определиться:
- какие задачи в будущем будет выполнять сайт,
- на какую аудиторию он рассчитан какие посетители необходимы сайту?,
Сайту -площадке никто не нужен. Поэтому не нужно придумывать какой нужен посетитель, а исследуем тенденции в запросах аудитории на сервисах где есть численные данные по интересным для посетителей запросам и по характеру изменения частоты хэтих запросов определяем фазу в которой находится интерес потенциального клиента. (О том, как не допустить спада продаж, читайте статью)
Для чего это нужно
Сайт — это инструмент привлечения посетителей и в конечном счете клиентов. Но посетители сайта — это не всегда его клиенты К примеру клиентами могут быть рекламодатели, а посетители — это клиенты рекламодателя. Что важно понимать при определении аудитории? Аудитория как любой предмет в нашей жизни имеет бесчисленное количество свойств и сторон. На какие следует обратить внимание по алгоритму сайта? Что определяет эти стороны?
Эти стороны определяют цели сайта. Если вы собираетесь делать коммерческий сайт, то вы обречены на конкуренцию за ресурсы время внимание деньги посетителя. Раз так то сайт это плащадка для битвы идей и смыслов в сознании клиента за его ценности и интересы в выборе лучшего смысла.
Важно понимать какие проблемы у потребителя разрешает ваш товар или образ товара насколько потребитель понимает свои проблемы в какой фазе жизненного цикла осознания своих проблем он находится. А какие фазы есть и какие важны для реализации алгоритма построения сайта?
Частный случай одной гармоники жизни товара или гормоники потребности по факту форм кривой значительно больше, и они эти кривые циклично продолжаются так как на смену умершему товару и потребности приходит следующее поколение товаров или потребностей. ТОТ, КТО ПОНИМАЕТ ЭТО ОБРЕЧЕН НА ПОБЕДУ.
Где можно получить информацию о том какая фаза потребностей у вашего клиента? У нас для этого свяжитесь с нами, и мы вам ответим
Как использовать полученную информацию? Важно уточнять данные и управлять моделью спроса и получать желаемую и предсказуемою модель. Характер модели дает прогноз и возможность предсказать, а значит опередить конкурентов и иметь преимущество в осведомленности, а значит и выгодах. Вариантов в конкурентной борьбе действий и кривых может быть бесчисленное множество…
Переходим к следующей рекомендации
- что вы хотите донести до этой аудитории,
В этой рекомендации партнёра по поединку потерян правильный фокус. (Если вам интересно как повысить конверисю сайта БЕСПЛАТНО, рекомендуем эту статью к прочтению)
Важно не то что вы хотите донести и не важно определить хочет ли аудитория узнать это, а что важно? Важно понимать, что впереди и ради чего делается сайт. (Что делать, когда поступила заявка? КАК качественно ее обработать? Насколько эффективно обрабатывает заявки ваш сотрудник? Решение проблемы здесь)
Важна и информация о том где вы и аудитория будет с вами в гармонии. В какой гармонии? Признаком гармонии является соответствие потребности Аудитории получать от вас то что ей интересно то что вы ей даете, а Вам интересно давать то что интересно аудитории. Причем это важно только при том что то что вы хотите предложить существенно лучше, чем у ваших конкурентов. Вот тогда алгоритм создания сайта будет опираться на стратегию конкурентного преимущества! И тогда вы двигаетесь в нужном направлении алгоритма сайта.
Посмотрите, как соотносится продукт и потребность аудитории.
Насколько важна для нее информация которую вы хотите разместить на сайте? Почему это важно? Что бы не тратить время впустую если вы не будете обсуждать с аудиторией, то что для нее важно.
Как понять, что важно для аудитории? Насколько важно и как изменить эту важность? Для этого нужно делать замеры частотностей показов по тем запросам которые на ваш взгляд характеризуют ценности и интересы аудитории
Двигаемся дальше
Каковы будут особенности функционала сайта,
Как это делать? В рекомендации партнера не сказано. Разве это алгоритм? Указана ли здесь содержание и последовательность действий? Функционал сайта — это технология создания контента и управление действиями на сайте с его содержимым. Каким?
В функционале сайта состоят следующие процедуры с его содержимым
вывод товаров в интернет-магазине (Какие существуют причины спада продаж в интернете?);
добавление новых материалов на сайт; (о том, какие тексты являются наиболее эффективными и продающими читайте здесь)
управление через административную панель сайта материалами и элементами сайта;
вывод баннеров и модулей на определенные позиции;
смена слайдов в баннере, это увеличение картинок при клике во всплывающем окне, это создание и отправка по нужному адресу формы обратной связи и так далее.
Функционал сайта может быть ограничен возможностями системы управления сайтом (CMS), а может быть расширен за счет установки на сайт дополнительных компонентов, модулей, плагинов и виджетов. Любой функционал — и штатный, и дополнительный — нуждается в настройке. Так, например, после установки CMS Joomla нужно сразу же настроить встроенные плагины навигации сайта, создать и настроить меню, визуальный редактор для текстов, поставить плагины защиты от взлома сайта, и т.д. Таким образом определение функционала сайта это определение требований к технологии работы с сайтом всех заинтересованных лиц Владельца сайта исполнителей посетителей партнеров машин и т.п. как это сделать? Как угодно, История показывает, что обычно сайты создаются как угодно, но выдающиеся сайты делаются по специально созданному надежному как автомат Калашников алгоритму.
- кто и как будет поддерживать сайт, его функционирование, наполнение контентом, обновление.
Основных Вариантов поддержки сайта три
- Собственными силами
- Аутсорс – передача задачи поддержки профи
- Вовлечение посетителей к созданию содержания типа википедии
Оценим плюсы и минусы каждого из них
Вариант собственными силами
При принятие решений о формировании контента своими силами возникают в следующие проблемы.
1 собственные сотрудники компании не замотивированны на создание контента.
2 у сотрудников отсутствуют навыки написания оригинальных текстов.
3 в компании отсутствует специалист способный осуществлять сео оптимизацию.
4 в компании отсутствует Человек способный осуществлять редакцию созданных текстов.
5 в компании нет компетенции по управлению содержимым сайта.
Положительными моментами при принятии решений написание статей силами сотрудников собственной компании является:
1 в компании есть специалисты, которые разбираются в сути бизнеса.
2 при написании статей сотрудники развивают компетенции, связанные с коммуникациями
3 создание статей сотрудниками компании приводит к повышению их лояльности компании.
С какой скоростью можно создавать контент своими силами? По моим оценкам при использование речевых блокнотов можно добиваться скорости порядка 1000 знаков в минуту. К чему может привести такая скорость. 1000 знаков в минуту в принципе решает проблему продвижение сайта в интернете. Как? При обычный технологий создание текстов с помощью клавиатуры средняя скорость создания текста составляет в оптимуме 200 знаков в минуту. Понятно, что 1000 знаков превышает среднюю скорость работы с клавиатурой в пять раз. Таким образом получается, что использование речевого блокнота для создания текстового контента повышают производительность в 5 раз. Что такое превышение производительности в 5 раз? Это значит, что человек вооруженный речевым блокнотом способен генерировать текст в аудио режиме и способен заменить 5 копирайтеров. Ха-ха-ха.
Какие дополнительные бонусы может получить человек использующий речевой блокнот?
1 первым бонусом является развитие его речи. О чём идёт речь? Речь идёт о том, что человек неподготовленный не сможет с такой скоростью создавать текст. Только лишь специально тренированный человек сможет диктовать текст со скоростью порядка 1000 знаков в минуту. Следовательно, сам блокнот не является достаточным условием для того чтобы работать С такой скоростью. Что же ещё надо? Нужны компетенции. Какие? Компетенции по быстрому построению предложений. Что ещё нужно? Кроме того, что человек создающий контент должен обладать большой скоростью по созданию контента он должен уметь с такой же скоростью проверять создаваемые текста.
Вариант аутсорс — нанятая организация
При использовании нанимаемой компании резко возрастает стоимость контента. стоимость контента- содержание статей. При этом обязанность по приемке статьи от нанимаемых компании не снимается заказчика. А главное компания не использует возможности по развитию коммуникативных компетенций своего персонала.
Создание возможностей для посетителей
Стратегия привлечения посетителей сайта к созданию контента сайта является наиболее продуктивной. Почему? Потому что в этом случае участие посетителей в создании контента обеспечивает диалог между компанией потенциальными клиентами. Это с одной стороны резко удешевляет стоимость контента. С другой стороны, участие посетителей в создании контента это приводит к обмену информацией и в иврите ценностей и интересов аудитории сайта. Не забывайте, что после работы с вашим сайтом клиент отправит вам запрос на покупку/обсуждение деталей заказа/по какоим-то другим вопросам касаемых продаж. Что же тогда делать? ПОдходящий ответ может быть в этой статье.
Автор статьи: Тухватуллин Булат Рашитович — Телефон для консультаций +7 (937) 586-86-66
Как вычислить “корпоративного крота”? Как его распознать? Как с ним вести коммуникации? И самый главный вопрос: что сподвигло сотрудника на предательство?
Часто управленцы обходят эти вопросы стороной, убеждая себя тем, что их это не коснется.
На втором управленческом РУПОР-турнире “Расчеты войны” участникам была предоставлена возможность познакомиться с типичными стратегическими ошибками, приводящих к предательству ключевого персонала. Об этом читайте в статье «Второй управленческий РУПОР-турнир «Расчеты войны»«.
Последние новости:
Второй управленческий РУПОР-турнир «Расчтеты войны». Отчет
Отчет о первом управленческом РУПОР-турнире «Преддверие войны».
Читайте также:
Причины падения продаж в интернете
Как продвигать? Как выбрать способ продвижения?
Как повысить конверсию с помощью эффективного текста?
У меня падают продажи, в чем дело?
Отчет о первом управленческом РУПОР-турнире «Преддверие войны».
Согласование целей как средство удержания персонала. Ч.1.
Согласование целей как средство удержания персонала. Ч.2.
Как начать писать на JavaScript с нуля
Очень сложно представить современные сайты без интерактива с пользователем. Тогда бы они никак не взаимодействовали с нами, а любое нажатие приводило бы к полной перезагрузке страницы. Согласитесь, это очень скучно.
Рассмотрим, из чего состоят веб-странички. HTML (HyperText Markup Language) отвечает за придание странице структуры (показывает, где меню сайта, а где заголовок, логотип или статья) и контента (различные тесты, списки, изображения и т. д.). CSS (Cascading Style Sheets) отвечает за визуальную составляющую страницы: определяет, какого цвета и размера должен быть тот или иной блок, как его оформить и вывести пользователю.
Структура и оформление есть, но где же взаимодействие? Здесь на сцену выходит JavaScript. Виртуальный «диалог» с пользователем — от изменения части содержимого сайта в ответ на действия до современных игр в браузере — реализуется с помощью скриптов JavaScript. Этот язык программирования работает в браузере и позволяет взаимодействовать с веб-страницей в режиме реального времени, оживляя её и предоставляя пользователю обратную связь на все действия.
У JavaScript очень интересная история. Он — реализация стандарта ECMAScript, может работать не только в браузере. Но в статье мы рассмотрим только взаимодействие с браузером.
Создаём самый простой скрипт
В первом задании, которое традиционно выполняет студент при изучении языка программирования, нужно вывести на экран фразу «Hello, world». Это позволяет отработать самый важный аспект — вывод информации пользователю, а также познакомиться с базовой структурой программы. Поступим так же.
Есть множество способов что-то вывести на экран в браузере, но мы выберем самый простой. Откроем «Инструменты разработчика» (Developer Tools) в браузере Chrome. Сделать это можно через сочетание клавиш Ctrl + Shift + I или F12 (Cmd + Opt + I на macOS) или через меню браузера. В Google Chrome нужно нажать на три точки, в других браузерах эта настройка может выглядеть иначе. Далее выбираем пункт «Дополнительные инструменты» и «Инструменты разработчика».
У вас должно появиться примерно такое окно, как ниже. Какой именно сайт выбрать для работы, не важно, можете открыть и GeekBrains.
Нас интересует вкладка Console. В ней могут быть ошибки и предупреждения (красные или жёлтые надписи) — не обращайте на них внимания, они нам не помешают. Выполним задание — выведем «Hello, world» на экран. Для этого нам понадобится команда alert(). Она выводит текст, который передан в круглых скобках.
Обратите внимание на регистр — здесь он имеет значение. Также не упустите кавычки — любой текст мы обязаны обрамлять в двойные или одинарные кавычки.
Мы выполнили первое задание — вывели простой текст на экран.
Учимся писать чуть более сложные скрипты
На экране перед нами статичный текст, что не очень интересно. Хотелось бы больше взаимодействия с пользователем. Что, если мы будем спрашивать имя зашедшего на сайт и здороваться с ним?
Для этого нам нужно познакомиться с концепцией переменных в языках программирования. Переменная — это область в памяти компьютера, в которой хранится какое-либо значение. Мы можем использовать его как угодно.
Для создания переменной в JavaScript нужно применить ключевое слово let. Есть и другие, но не будем так глубоко погружаться в детали.
Требования к именованию переменных:
- Имя переменной не может начинаться с цифры.
- Имя переменной может содержать только буквы, цифры и символы «$» и «_».
- Здравый смысл подсказывает нам, что имя переменной должно отражать суть того, что в ней находится.
Создадим простую переменную, поместив в неё имя. Например, Иван.
Обратите внимание: мы объединили слово «привет» и переменную. Здесь имеет значение каждый символ: сначала alert, потом открывающая круглая скобка, которая говорит, что дальнейшие инструкции нужно вывести на экран. Затем кавычки, в которых заключён приветственный текст. Далее знак +, который подсказывает программе, что текст справа от знака нужно объединить с тем, что слева. И завершает это закрывающая круглая скобка.
Мы вывели имя из переменной на экран, но ведь было нужно показать имя, которое сообщит пользователь. Исправим это. Нам понадобится команда prompt(). Она задаст пользователю вопрос — запишем его в круглых скобках. Сохраним в переменную результат выполнения команды prompt().
Мы спрашиваем у пользователя имя, а когда он отвечает, здороваемся с ним. Ничего сложного.
Сохраняем наш первый скрипт
Мы написали программу (скрипт) в консоли браузера. Это было быстро и просто, но не очень практично — такой программой с пользователями не поделишься. Чтобы сделать это, сохраним программу в файл с расширением *.html. Имя можем дать произвольное. Так как HTML подразумевает определённую структуру контента, нужно её отчасти соблюсти, чтобы всё работало. Понадобятся теги <html> и <script>.
Редактировать и сохранять файлы со скриптами можно с помощью любого текстового редактора. Cамый простой и примитивный — «Блокнот», который поставляется вместе с Microsoft Windows. Есть и специальные редакторы кода, например, Visual Studio Code. В блоге даже выходила специальная подборка редакторов кода JavaScript — выбирайте и дерзайте 🙂
А если хотите извлечь из JavaScript максимум — приглашаем на факультет Fullstack JavaScript-разработки GeekBrains!
Написать программу для обращения к веб-странице
Допустим, надо написать программу, которя будет обращаться к определенной веб-странице, вводить выражение в форму и получать результат. Как такое делается?
bash + wget/curl + sed/awk
Такой большой, а не знаешь, как боты работают 🙂
или Mechanize (например, на перле)
или HtmlUnit
или PhantomJS
или Selenium
. тысячи их!
Боюсь твоих навыков для автоматического распознавания капчи просто не хватит, раз задаешь такие вопросы. Воспользуйся какой нибудь антикапчей. За деньги, да, но эффективно.
А так, любой скриптовый язык который умеет работать с http(s).
Сформировать и отправить POST-запрос согласно протокола должен уметь любой язык. Ты бы хоть намекнул, что есть в распоряжении.
Капчи там нет! Веб-страница ничем не защищена.
Готовой программы? У меня нет. Несколько лет назад ботоводил и эксплуатировал по этой схеме дырки в eRepublik. Алгоритм простой: формируем и отправляем post запросы, парсим пришедшие страницы.
А что такое post-запросы?
Метод запроса страницы в протоколе HTTP, подразумевающий отправку серверу некой информации (содержимое поля).
Смотри: Пример #1 Извлечь страницу и отправить данные методом POST
Я просто не в курсе. А как ему указать, содержимое какого поля мы хотим отправить?
Это на каком языке? Как эту программу запустить?
Так тебе нужно сэмулировать поведение пользователя (открыть страницу, заполнить поля) или тупо засабмитить форму?
Для второго вгет более чем подходит, как уже говорили. Для первого, если у тебя мак, лучше всего годится AppleScript, хотя штуки вроде нокогири тоже ок.
По-моему это очень толстый троллинг.
Подсмотреть на содержимое запроса при отправке его из браузера. Либо сниффером либо для удобства к браузерам можно прикручивать всякие плагины вроде Tamper data для Firefox.
А в чем различие? Есть страница, там форма. Если заполнить и отослать — все ок. Надо, чтобы это делалось автоматически.
Запустить в консоли?
Тогда такой файл:
после дать скрипту:
и запускать как обычно
А как потом ответ получить?
Спасибо, попробую разобраться.
Придёт в ответ на запрос.
Чтобы не тупить, рекомендую открыть и прочитать маны по html, bash, wget, sed.
Я не читал, просто поиском находил интересующие вопросы и быдлокодил на ходу.
Капчи там нет! Веб-страница ничем не защищена.
ну и в чём сложность? curl умеет и POST и GET запросы. У меня на форуме вроде валялся пример бота.
Логика такая: есть сайт. На нем 2 страницы — на 1й авторизация, а вторая — та, на которую нужно попасть после авторизации. Сначала проверяем, не существует ли у нас сохраненной куки для этого сайта. Если нет, то получаем куку — идем на страницу авторизации, заполняем форму, сабмитим ее, сохраняем куку на диске и загружаем ее. Затем переходим на требуемую страницу и выводим ее содержимое (print $content).
Если нужно выводить не всю страницу, а только что-то конкретное, тогда нужно парсить HTML — например, с помощью HTML::TreeBuilder::XPath.
Но если нужно только авторизоваться и вывести содержимое, то лучше через curl — намного проще.
Авторизации там тоже нет.
Да без разницы, тогда просто форму заполняешь и жмешь на кнопку.
Если тебе для «домашнего» применения, то можно просто делать скрипт на баше с использованием xdotool.
Поднимаешь систему в виртуалке с браузером.
Далее просто по заранее заданным координатам эмулитуешь свое тыканье.
Капчу можно тоже легко грабить скриншотом с экрана, распозновать уже сказали где.
Запалить такого «бота» почти нереально, и в случае очень очень хитрого сайта работать он будет куда надежнее.
Да, мой вариант на случай если защита таки есть и гемор есть с работой с curl.
Плюс он наверняка может быть проще, чем кодинг на любом языке 🙂
Ух ты. Пять звезд )
*facepalm*
Предлагаю прилюдно с позором сорвать звезды.
Здесь что, все — веб-дизайнеры?
Во-первых, это задача не для веб-дезингера; Во-вторых, она просто тривиальная.
1. Нужно открыть в браузере страницу с формой.
2. Открыть firebug (есть из-коробки в хроме и опере, в остальных легко прикручивается).
3. С включенным firebug (выбрать раздел network) отправляйте заполняйте форму и нажимаете кнопочку «отправить» или как она там называется.
4. Далее, в firebug-e появятся информация о всех запросах браузер списком, из этого списка нужно выбрать тот у которого «method: POST». Там будет информация о запросе, вам нужен раздел «Request body».
5. Из этого раздела нужно скопировать всю информацию в такой вот скрипт:
в строчку шесть. Ну и урл отредактировать (строчка 5).
6. нужно еще установить библиотеку python-requests. В suse это не проблема 😉
7. запустить скрипт из пункта 5:
Да, мой вариант на случай если защита таки есть и гемор есть с работой с curl. Плюс он наверняка может быть проще, чем кодинг на любом языке 🙂
может и проще, проблема в том, что там каую-нить точку дизайнер заменит, и бот в нужную кнопку не попадёт. Разве так сложно распарсить <form></form>?
причём тут дизайн? дизайн как раз тебе не нужен, нужно просто распарсить форму запроса, а вот шелуху дизайнера надо как раз выкинуть в /dev/null, боту должно быть наплевать, как кнопка выглядит, и где находится, его цель послать запрос «кнопка ХХХ нажата».
Ну мало ли что ТСу надо.
Попробуй написать на курле бота для сервисов гугла, с ноля, поймешь о каких ситуациях я говорю.
Попробуй написать на курле бота для сервисов гугла, с ноля, поймешь о каких ситуациях я говорю.
ну если посмотреть на посты ТСа, то там случай совсем примитивный, и ему достаточно 30и минутного вкуривания man curl. А с гуглом там случай ействительно сложный.
Да я просто увидел топик с обфусцированным js, и подумалось что моя рекомендация может быть полезна 🙂
Далее, в firebug-e появятся информация о всех запросах браузер списком, из этого списка нужно выбрать тот у которого «method: POST».
Так. Появились, но там только GET.
Похоже, вся инфа передается в имени URL. Как тогда обработать ответ?
так, ТС, сначала внимательно прочитай RFC по протоколу HTTP, потом обзорно про HTML в любой книжке для чайников. Если после этого не будет понятно, как написать сабжевую программу, то тут уже ничем помочь нельзя
Если в форме нет конфиденциальной информации, то можете скопипастить исходный код страницы с формой (до того как все заполнить и отправить) и выложить на пастебин, чтобы я посмотрел.
Если эту страницу не хочется «светить» — то все как я расписал, только в этом списке нужно найти ту страницу куда вас форма переправляет, там будет информация, которую нужно вставить в мой скрипт.
Всё! получилось. В выводе программы содержится нужная инфа. Осталось только выучить Питон, чтобы разобраться, как эту строчку вычленить из этого вывода и сделать программу интерактивной.
Если ответ приходит в формате html — то я недавно как раз об этом написал.
Если в другом формате — то либо соответствующую формату либу использовать, либо же через регулярки.
Управляем интернетом с помощью Python
Проблема: чтобы отправить задание на проверку в университет, мне приходится проходить через лабиринт веб-страниц настолько запутанный, что несколько раз я ошибался и отправлял задание не туда. К тому же, хоть эти дело пары минут, иногда оно кажется непреодолимым препятствием, например, когда ты закончил задание глубокой ночью и тебе в таком состоянии нужно еще напрячь мозг и вспомнить пароль.
Решение: автоматизировать отправку заданий с помощью Python! В идеале это выглядит так: я сохраняю задание, нажимаю пару кнопок и в считанные секунды это задание уже отправлено. Сначала я подумал, что такое волшебство возможно лишь в сказках, но потом я нашел Selenium — инструмент, который можно запрограммировать гулять по интернету за вас с помощью Python.
Каждый раз, когда нам приходится совершать одну и ту же последовательность действий, мы получаем прекрасную возможность перепоручить её выполнение программе, которая пройдет все шаги за нас.С помощью Selenium и Python достаточно единожды написать скрипт, и можно будет запускать его сколько угодно раз, что избавит вас от необходимости совершать рутинные бесполезные действия. В моем случае, этот скрипт еще и помог мне не ошибаться с адресом отправителя.
Далее я расскажу, как написать программу, которая научила браузер отправлять задания за меня. Для этого мы познакомимся с основами использования Python и Selenium для автоматизации работы в сети. Несмотря на то что этот код работает (я пользуюсь ей каждый день!), его нельзя бездумно скопипастить в свое приложение, потому что он заточен под мой проект. Тем не менее, общий подход, описанный здесь, можно применить к любому приложению. Весь код доступен на Github.
Подготовка
Прежде чем переходить к веселой части автоматизации веба, обозначим общую структуру наших действий. Сразу писать код без предварительного плана — значит потратить несколько часов в пустую. Я хочу написать программу, которая будет отправлять мои готовые задания в нужное место Canvas — систему управления обучением которую использует мой университет.
Структура папок (слева) и выполненное задание (справа)
Начнем с самого простого: мне нужно каким-то образом указать программе название задания и урока. Я поступил самым простым образом — создал папку для хранения выполненных заданий, а внутри неё завел дочерние папки для каждого урока. В этих вложенных папках я разместил выполненные задания, названные в соответствии с темой каждого урока. Программа может получать название класса из имени папки, а название задания из имени документа.
Первая часть кода — цикл, который проходит по папкам и ищет название задания и класса, которые мы храним в кортеже (tuple) Python:
Здесь мы задействуем файловую систему, и теперь программа знает, какой файл и куда отправлять. Следующий шаг — использовать selenium, чтобы выйти на нужную страницу и выгрузить задание.
Управляем интернетом с помощью Selenium
Перед началом использования selenium необходимо импортировать эту библиотеку и создать Selenium webdriver — браузер, которым мы будем управлять с помощью нашей программы. В моем случае я создаю движок (driver) Chrome и с помощью него открываю страницу, куда нужно отправить задание.
Как только мы открываем страницу Canvas, мы встречаемся с первым препятствием — формой авторизации. Чтобы пройти её, нам нужно ввести id и пароль и нажать на кнопку входа.
Веб драйвер можно сравнить с человеком, который видит указанную страницу первый раз: нам нужно предельно точно указать ему, куда кликнуть, что напечатать и какую кнопку нажать. Есть несколько способов указать веб драйверу, к какому элементу обратиться. Все они основаны на использовании селекторов. Селектор (selector) — это уникальный идентификатор элемента на странице. Чтобы найти селектор определенного элемента, в нашем примере пусть это будет CWRU ID, нужно исследовать веб-страницу. В Chrome это делается с помощью комбинации клавиш “ctrl + shift + i” или нажатием правой кнопкой мыши по элементу, а затем выбором пункта “Inspect” («Исследовать элемент») контекстного меню. В результате чего откроется инструмент разработчика Chrome ( Chrome developer tools) — чрезвычайно полезное средство для просмотра HTML-структуры любого сайта.
Чтобы найти форму с селектором “CWRU ID”, я кликнул по ней правой кнопкой мыши, нажал “Inspect” («Исследовать элемент») и в открывшейся панели инструментов разработчика увидел размещенный ниже код. Строка кода, соответствующая id выбранной нами формы, выделена цветом (это строка называется «HTML тег» (HTML tag).
Приведенный в примере HTML выглядит ужасающе, но мы можем проигнорировать бОльшую часть информации и сосредоточиться на частях id = «username» и name=»username» — их еще называют атрибутами HTML-тега.
Чтобы выбрать блок id с помощью нашего веб-драйвера Selenium, мы можем использовать атрибуты id or name , которые ранее нашли в инструментах разработчика. У веб-драйверов в Selenium есть много разных методов для выбора элементов на веб-странице и часто также несколько способов выбрать один и тот же элемент:
Наша программа теперь имеет доступ к id_box , и мы можем взаимодействовать с этим блоком различными способами, например, набрать на клавиатуре текст или щелкнуть по кнопке (если мы её предварительно показали драйверу).
Мы повторяем тот же процесс для формы с паролем и кнопки входа в систему, выбирая их в зависимости от того, что мы видим в инструментах разработчика Chrome. Затем мы отправляем информацию элементам или нажимаем на них по мере необходимости.
Как только мы вошли в систему, нас приветствует эта слегка неуклюжая панель:
Теперь нам снова необходимо сориентировать программу на веб-странице, указав именно те элементы, на которые нужно щелкнуть, а затем передать информацию для ввода. В этом случае я предлагаю программе выбрать курсы из меню слева, а затем класс, соответствующий заданию, которое мне нужно отправить:
Программа находит правильный класс, используя имя папки, которую мы сохранили на первом шаге. В этом случае я использую метод выбора find_element_by_link_text для поиска конкретного класса. «link text» элемента — это всего лишь еще один селектор, который мы можем найти, просмотрев страницу:
Этот алгоритм действий может показаться немного утомительным, но помните, что нам нужно запрограммировать его только один раз, когда мы пишем код! После этого мы можем запускать его столько раз, сколько захотим, и программа будет перемещаться по всем этим страницам вместо нас.
Мы используем одну и ту же последовательность «исследовать страницу — выбрать элемент — взаимодействовать с элементом», чтобы пройтись еще по паре экранов. Наконец, мы переходим на страницу отправки заданий:
На этом этапе я уже увидел, что близок к финишной черте, но вдруг этот экран озадачил меня. Я легко мог щелкнуть по «Выбрать файл», но как же мне выбрать файл, который нужно загрузить? Ответ оказывается невероятно простым! Мы находим Choose File с помощью селектора и используем метод send_keys для передачи точного пути файла (называемого file_location в коде ниже) в указанную форму:
Готово! Отправляя точный путь файла кнопке, мы можем пропустить весь процесс навигации по папкам, чтобы найти нужный файл. После отправки адреса загружаемого файла мы увидим следующий экран, показывающий, что наш файл загружен и готов к отправке.
Теперь мы выбираем кнопку «Отправить задание» («Submit Assignment») , кликаем на неё, и наше задание зачтено!
Рефакторим
Управление файлами всегда является критическим шагом, и я хочу убедиться, что я не отправляю повторно и не потеряю старые задания. Я решил, что лучшим решением будет сохранять один файл, который должен быть отправлен, в папку completed_assignments и перемещать файлы в папку submitted_assignments после того, как их засчитали. Последний кусочек кода использует модуль os для перемещения завершенного задания в нужное место и его переименования:
Весь этот код я вызываю с помощью небольшого скрипте, который я могу запустить из командной строки. Чтобы исключить ошибки, я отправляю только одно задание за раз, что не является большой проблемой, учитывая, что для запуска программы требуется всего 5 секунд!
Вот как это выглядит, когда я запускаю программу:
Пока программа выполняется, я могу видеть, как Python работает за меня:
Заключение
Технология автоматизации использования интернета с помощью Python отлично подходит для широкого круга задач, как общих, так и специфичных — таких, как моя область — data science. Например, мы можем использовать Selenium для ежедневной автоматической загрузки новых файлов с данными (при условии, что на сайте нет API). Хотя поначалу может показаться, что написание такого сценария — процесс трудозатратный, но его преимущество в том, что мы можем заставить компьютер повторять эту последовательность неизменным образом столько раз, сколько захотим. Программа никогда не потеряет фокус и не окажется случайно в Twitter. Он будет безукоризненно выполнять ту же последовательность шагов с идеальной точностью (правда это будет работать только до тех пор, пока сайт не изменится).
Я должен предупредить вас, что необходимо быть осторожным, прежде чем автоматизировать задачи повышенной важности. Задание из этого примера не связано с высоким риском, поскольку я всегда могу вернуться и повторно отправить задание, тем более что я обычно перепроверяю работу программы вручную. Веб-сайты меняются, и если вы не измените программу в ответ, вы можете получить скрипт, который сделает что-то совершенно иное, чем то, что вы изначально запрограммировали!
С точки зрения выгоды, эта программа экономит мне около 30 секунд для каждого задания. При этом на её написание я потратил 2 часа. Итак, если я использую её, чтобы отправить 240 заданий, то я существенно выиграю по времени! Тем не менее, главная отдача от этой программы заключается в том, что я разработал крутое решение проблемы и изучил много нового в процессе обучения. Возможно, я мог бы распорядиться своим временем более эффективно, потратив его на то, как выполнять задания, а не на то, как автоматически отправлять их. Несмотря на это, я испытал огромное наслаждение, занимаясь этой задачей. Не так много вещей может доставить удовольствие равное тому, которое мы получаем от успешного решения проблемы. И Python оказался довольно неплохим инструментом для этого.
Время на прочтение
5 мин
Количество просмотров 71K
Дисклеймер: этот текст меня заставило написать практически полное отсутствие вменяемых материалов по данной теме на русском языке. Этому плохо учат в вузах, об этом молчат самоучители PHP и официальный мануал, хотя это самый важный момент при разработке программы — создание архитектуры. Плохая архитектура может убить ваш проект, так что он никогда не увидит свет. Хорошая архитектура даже при плохом коде, а кто из новичков пишет хороший код, способна творить чудеса.
Разработка архитектуры должна начинаться в тот момент, когда вам в голову пришла идея «хочу сайт такой-то» или кто-то вложил идею «нужен сайт такой-то». К сожалению, большинство разработчиков сразу приступают к написанию кода, причём даже не того, какого нужно.
Прежде чем писать код, вооружитесь листочком с ручкой, вордпадом, вордом, райтером или даже вашим редактором кода и выполните пару шагов.
Шаг 1. Постановка главной задачи
Архитектура разрабатывается сверху вниз. Что это значит? Это значит, что сперва вы продумываете самые главные подсистемы, прежде чем приступить к обслуживающим их или более техническим.
Многие программисты начинают разработку сайтов с роутеров, подключения к БД, обработки ошибок, что приводит к необходимости переписывания их кода в будущем или обильной вставке в код костылей, как только они натыкаются на то, что не смогли предусмотреть.
Всё предусмотреть невозможно, для этого и нужно разрабатывать систему сверху вниз. Наличие работающих высокоуровневых классов практически автоматически определяет все необходимые требования к обслуге.
Это не единственный метод, но по опыт знаю, что самый оптимальный для тех, кто не чувствует себя, как рыба в воде среди паттернов проектирования или даже совсем про них не знает.
Итак, вам нужен блог, интернет-магазин, сайт стоматологической клиники.
Определитесь, что на вашем сайте самое главное, ради чего всё затевается.
Для блога — это, очевидно, записи. Для магазина — товары. Для сайта поликлиники — услуги.
Уже можем написать немного кода, с которого и начнётся разработка сайта:
class записи
{
}
или class товары {}, или class услуги{}
Это ваша главная подсистема. Сразу же можно написать, чем именно она будет управлять.
class запись
{
}
или class товар {}, или class услуга{}
Шаг 2. Определить, что ваша система умеет делать
Мы создали главную подсистему «записи». Следующий шаг: определить, что она будет уметь, чему мы хотим научить наш сайт.
Очевидно, она должна уметь создавать записи, удалять записи и получать записи.
Забудьте, что вы пишите код сайта, забудьте про пользователей, url-адреса, оформление страниц. Работайте с голыми данными: строками, числами, массивами, объектами.
Пишем код:
class записи
{
public function создать_запись() {}
punlic function удалить_запись() {}
public function получить_запись() {}
}
Шаг 3. Понять, с чем имеем дело
Что такое запись? Что такое услуга? Что такое товар? Для вас, как программиста — это просто совокупность данных. В третьем шаге определяем, что это за совокупность.
Не стремитесь предусмотреть всё, что понадобится когда-то в будущем. Берите самый-самый минимальный набор. Для этого мы и строим архитектуру приложения, чтобы в будущем её было легко нарастить.
Очевидно, запись — это заголовок и текст записи. Услуга и товар — название, описание и цена.
Компьютер — не очень умное создание, по сравнению с человеком, вы не сможете сказать ему: «а покажи-ка мне запись, ту, где про зелёного котёнка написано», поэтому ему всегда необходим какой-то уникальный код, чтобы он среди множества записей узнал именно ту, которую вы хотите.
Это либо порядковый номер (id), уникальный для каждой записи или некое, столь же уникальное, строковое значение.
Значит наша запись — это идентификатор записи (id), заголовок, текст.
Больше нам ничего не нужно.
Шаг 4. Определение необходимых знаний
Теперь для каждого действия системы нам нужно понять, что системе нужно знать, чтобы это действие выполнить.
Для действия «создать_запись» нужно знать заголовок и текст записи. Внутренний идентификатор нужен только компьютеру, поэтому пусть сам его и придумывает.
Для действий «удалить_запись» и «получить_запись» нужно знать только тот самый идентификатор записи, который был ей присвоен компьютером при создании.
class записи
{
public function создать_запись($заголовок, $текст) {}
punlic function удалить_запись($идентификатор) {}
public function получить_запись($идентификатор) {}
}
То, что получилось называется интерфейсом вашего класса/модуля/подсистемы.
Шаг 5. Определение результатов
Также, как мы узнали необходимые знания для выполнения того или иного действия, нужно понять, чем эти действия будут оканчиваться.
Если у компьютера всё получилось, то
- создать_запись: будет создана новая запись, а мы получим её идентификатор.
- удалить_запись: будет удалена конкретная запись, а мы получим сообщение ‘готово’
- получить_запись: получим нужную запись
Если у компьютера чего-то не получилось, то
- создать_запись: будет выброшено исключение.
- удалить_запись: будет выброшено исключение
- получить_запись: будет выброшено исключение
Для всех ситуаций, когда что-то не получилось поведение программы должно быть одинаковым во всех модулях/классах/подсистемах вашей системы. PHP предоставляет всего два варианта: trigger_error и throw new Exception. Можете придумать свой, но не стоит изобретать велосипеды, пока вы не научились ездить на существующих. throw new Exception — самый оптимальный вариант.
Читайте раздел «исключения» в официальном мануале.
Шаг 6. Снова с начала
В шаге первом, кроме создания системы управления записями, мы создали ещё класс и самой записи: class запись {}
Для неё нужно сделать тоже самое, что и для главной, те же самые шаги с 1 по 5.
Если вы всё сделали правильно, то у вас должно получиться что-то похожее.
class запись
{
public function получить_идентификатор() {}
public function получить_заголовок() {}
punlic function получить_текст() {}
public function изменить_заголовок($новый_заголовок) {}
public function изменить_текст($новый_текст) {}
}
Шаг 7. Пишем код
Теперь, когда всё создано можно приступать к кодированию. Если вы знакомы с PHP никаких проблем у вас не возникнет.
Сколько затратили времени? Совсем чуть-чуть, и ещё ощутите в будущем всюпользу от произошедшего.
То, что у вас получится в итоге скрывается под буквой M в страшной аббревиатуре MVC.
Заключение
Я не учёл много нюансов, их хватит на десять таких же статей, но базис для вашей разработки уже есть. Это — самые основы и это в любом случае лучше, чем мешать PHP с HTML в одном файле или плодить кучу функций по мере написания кода.
C M разобрались. Что касается V и C. Это тема для других статей. Поэтому вкратце. Если вы достаточно сообразительны, то другие статьи вам и не понадобятся.
C — это место, в котором система реагирует на действия пользователя. Вот там и нужно думать, что будет делать пользователь. Захотел пользователь создать запись в блоге, заполнил форму создания, а у вас уже всё готово, чтобы выполнить его команду. Захотел, прочитать запись и снова вы выполняете его просьбу в одну строчку. Там главная задача (шаг 1) — понять, что хочет пользователь.
V — изучите любой шаблонизатор: Smarty или Twig. Много споров ведётся про то использовать шаблонизаторы или нет, много убедительных доводов с той и с другой стороны. Правда в том, что для web-разработчика непростительно не уметь работать с шаблонизаторами. Поэтому осваивайте их, а потом уже откажетесь, если не понравится.
Как уже было отмечено выше, на русском языке почти нет достойный литературы на эту тему.
Единственную книгу, которую могу посоветовать прочитать: Стив МакКоннелл «Совершенный код».
Если кто-то знает другие материалы киньте в меня ссылочкой. С удовольствием прочитаю и буду рекомендовать новичкам.