Проект сайта: проект, дизайн, наполнение и многое другое

Содержание

Серьезное проектирование серьезных сайтов. Часть 1. Аналитика

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

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


Вступление

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

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


Процесс проектирования

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


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

1. Сбор требований (брифинг).

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

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

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

Третье. Спросите про целевую аудиторию (ЦА): кто именно будет пользоваться сайтом, и какую полезность он получит. Ответ «все пользователи интернета» — недопустим, это будет означать, что инициатор проекта не понимает, для кого именно он создает этот проект, а значит и непонятно, как его делать. Это, как играть в дартс с закрытыми глазами: где цель известна, а прицелиться нет возможности. На этом этапе в идеале выяснить стандартные параметры ЦА: пол, возраст, регион и т.д. Обязательно нужно выделить ядро ЦА. Кроме этого нужно понимать какими устройствами и ПО пользуется ЦА. Этап глубокой работы с ЦА будет в одном из последующих этапов, а пока нужно понимать, как это видит инициатор проекта.

Четвертое. Узнайте, кто являются прямыми и косвенными конкурентами. Ответ «конкурентов нет», скорее всего, говорит о том, что человек не изучил конкурентную среду. Почти всегда есть конкуренты. Даже если идея проекта уникальная, ЦА уже пользуется какими-то сайтами, а значит, как минимум, есть косвенные конкуренты.

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

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

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

2. Цели проекта и клиента.

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

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

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

На выходе у нас получается тестовый документ с двумя списками: цели клиента и цели проекта. Этот документ должен утвердить заказчик.

Пример:

Проект: социальная сеть владельцев домашних животных.

Цели заказчика: получение прибыли

Цели проекта:


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

3. ЦА и персонажи.

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

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

Социально-демографические характеристики: пол, возраст, образование, уровень дохода, род занятий. Информация, которая нам нужна для закладывания правильной основы. Например, сайт для подростков 15-18 лет будет отличаться от сайта для пожилых людей в возрасте 60+ лет.

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

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

Географические характеристики: страна, город, район. Учитывая то, что мы все же в Интернете, для нас это маловажный критерий, однако иногда стоят задачи по проектированию национальных сайтов или сайтов с геолокацией, тогда важность этого критерия резко вырастает. Кроме этого, если есть географическая привязка, это может повлиять на контент, о котором тоже нужно думать при проектировании.

После подробного портрета ЦА мы можем приступать к персонажам. Это очень полезный прием для дальнейшей генерации идей. Имея понимание, кто наша ЦА в общем, мы её должны разбить на группы типовых пользователей будущего проекта. Исходя из тематики проекта, группы можно объединять по роду деятельности, владению каким-то предметом, потребностям и т.д. Например, для тематической социальной сети ИТ специалистов группы могут быть следующими: системный администратор, программист, директор ИТ компании и т.д. Задача проектировщика создать список основных целевых групп сайта, начиная от самой большой группы пользователей (ядро) и по убыванию. Нужно не забыть, что кроме обычных пользователей могут быть еще собственные сотрудники, партнеры, рекламодатели и многие другие неочевидные пользователи.

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

Для полного понимания ЦА, иногда проводят интервью с пользователями, это уже сфера маркетинговых исследований.

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

На выходе у нас получается два документа: общий портрет ЦА и описание персонажей для каждой целевой группы. Эти документы должен утвердить заказчик.

Пример:

Проект: социальная сеть владельцев домашних животных.

Рис. 1. Персонаж


4. Исследование конкурентов.

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

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

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

Есть разные методы оценки, мне импонирует старый добрый SWOT-анализ, он позволяет увидеть сильные и слабые стороны конкурентов, а что еще важнее – возможности для своего проекта.

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

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

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

На выходе мы получаем файл с полным анализом конкурентов, обычно вполне хватает 5 популярных тематических проектов в рунете и 5 западных. По каждому конкуренту должен быть SWOT-анализ с 4мя разделами. И, конечно, должен появиться первый список идей для проектируемого проекта. Документ с анализом конкурентов должен утвердить заказчик.

Пример:

Проект: социальная сеть владельцев домашних животных.

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

http://www.dogster.com/ — международный, популярный, высокое качество.

http://www.dogster.ru/ — российский, средняя популярность, среднее качество.

http://www.catster.com/ — международный, популярный, высокое качество.

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

5. Задачи-проблемы-решения (для пользователей).

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

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

Имея ряд тематических задач, под каждую из них мы должны выявить преграды (проблемы). Например, у задачи «найти подрядчика» может быть несколько проблем: «Как отличить качественного подрядчика от некачественного?», «Как найти подрядчика, самого близкого по географическому признаку?», «Как сделать рассылку запроса сразу всем потенциальным подрядчикам одновременно?» и т.д. Делая все это, идеи сами будут приходить в голову, для большинства проблем есть очевидные решения, но об этом ниже.

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

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

Пример:

Проект: социальная сеть владельцев домашних животных.

Рис. 2. Задачи-проблемы-решения


6. Сценарии поведения.

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

Делая сценарии, мы можем выявить недостатки идей. Например, проектируя карточку товара в интернет-магазине, проектировщик мог забыть сделать функцию выбора разных модификаций одного итого же продукта: вроде магазин без этого работать сможет, но с существенным недостатком. Проектировщик делает сценарий с целью купить модель «Х»: заходим на главную, выбираем раздел каталога, выбираем нужный товар, выбираем модификацию «Х»… и вот тут он понимает, что возможности выбрать модификацию в проекте нет и её нужно доработать.

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

К этому этапу мы еще вернемся, когда будут готовы прототипы интерфейса, чтобы окончательно проверить правильность идей.

На выходе мы имеем специальный документ с множеством сценариев поведения, а также улучшенные старые и новые идеи.

Пример:

Проект: социальная сеть владельцев домашних животных.

Цель: выбрать пса

Сценарий: заходит на главную страницу, находит раздел Зоопедия, переходит на главную страницу раздела с рубрикатором по животным и породам, а также специальным разделом с общей информацией, переходит в раздел с общей информацией, где на видном месте есть ссылка на статью о выборе животного, переходит в статью и читает её, в конце статьи видит блок «Читайте также», в котором видит еще несколько статей с более углубленной информацией, делает предварительный выбор из 3х пород собак, переходит на главную Зоопедии и открывает страницы с подробной информацией о выбранных породах, на каждой из страниц он видит ссылки на продавцов этой породы, окончательно определяется с выбором и переходит в магазин.

При написании этого сценария были придуманы идеи: рубрикатор в Зоопедии, блок «Читайте также», ссылки на продавцов со страницы определенной породы.

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

В комментариях можно задавать вопросы.

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

P.P.S. Чтобы получать наши новые статьи раньше других или просто не пропустить новые публикации — подписывайтесь на нас в Facebook, VK, Twitter

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

Оригинал статьи тут: http://seclgroup.ru/article-serjoznoe-proektirovanie-serjoznix-saitov.html

Автор:
Никита Семенов (Facebook, VK, LinkedIn)
CEO
Компания «SECL GROUP» / «Internet Sales Technologies»

Восемь идей для создания первого сайта — Блог HTML Academy

Не можете придумать, с чего начать практиковать свои навыки HTML, CSS и JavaScript? Вот несколько интересных идей, которые, вероятно, не приходили вам в голову.

Множество начинающих веб-разработчиков понимают, что им нужна только практика, практика и ничего кроме практики изученных навыков. Разработка реального проекта поможет найти трудности, которые не опишет ни один учебник или интерактивный урок. Практика поможет стать увереннее, если вы собираетесь использовать HTML, CSS, JavaScript в своей карьере. Но опыт, который может быть действительно полезен, трудно получить.

Я часто вижу новичков, спрашивающих на Reddit, Quora, Facebook и других интернет-площадках о том, за какой проект им взяться. Поэтому представляю вам восемь весёлых идей, которые помогут проверить навыки и подготовят к трудностям, с которыми сталкиваются веб-разработчики. Все они строго фронтенд: HTML, CSS, JS и jQuery. Они настолько прекрасны в своей нелепости, что будут выгодно выделять ваше портфолио на фоне остальных. Ведь если добавлять в него проекты «как у всех», то будет трудно выделиться среди большого количества однотипных работ других разработчиков.

1. Мясная лавка Большого Дейва

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

Тип сайта: малый бизнес.

Ключевые функции:

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

Ключевые дизайнерские решения:

  • Как вы планируете отделять гараж и ресторан, чтобы посетители легко могли выбрать то, что им нужно? Будут ли они иметь схожую конструкцию или разную тематику?
  • Кто будет целевой аудиторией? Это, определённо, мужчины. Но это будут мотоциклисты старой закалки или молодые городские хипстеры?
  • Много ли изображений вы планируете использовать? Это может быть одна доминантная картинка, соответствующая уникальной концепции сайта.
  • Какой будет цветовая схема? Более агрессивные сочетания вроде красного и чёрного, или что-то ещё?
  • Каким способом люди будут пользоваться этим магазином? Могут ли это быть байкеры, которые путешествуют на дальние расстояния? Байкеры, которые хотят перекусить, пока их мотоцикл в ремонте? Или больше случайных посетителей, которых привлекла необычная концепция места?

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

Политические хокку

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

Тип сайта: блог.

Ключевые функции:

  • Интерфейс блога с серией хокку, которые легко просматривать.
  • Смешные иллюстрации кандидатов с их хокку, удобные для чтения.
  • «Бесконечная» прокрутка или новая страница для каждых 20-50 хокку.
  • Использование Google Form для того чтобы другие тоже могли отправить своё изображение или хокку.

Ключевые дизайнерские решения:

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

Что вы изучите: блоги супер просты — их читают и смотрят фотографии. Существует реальный потенциал для взаимодействия. Это означает, что ваши объявления должны быть исключительно эффективны. Необходимо создать последовательную тему с объявлениями. Если пользователи будут посещать ваш сайт в период выборов, то они хотят видеть смешные посты постоянно. И вы можете сделать это несколькими путями. Кстати, можете попробовать сделать это в стиле твитера.

3. Склад туалетной бумаги

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

Тип сайта: интернет-магазин.

Ключевые функции:

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

Ключевые дизайнерские решения:

  • Пользователи могут никуда ехать, чтобы купить туалетную бумагу. Почему они должны выбрать ваш сайт? Может быть, из-за юмористических объявлений? Или простого процесса покупки? Возможности подписаться? Подумайте, как сделать сайт уникальным среди всех остальных сайтов в сфере электронной коммерции.
  • Кто ваши клиенты? Мамочки? Элитные рестораны? Роскошные отели? Гермофобы? Это во многом будет определять то, какая продукция будет на вашем сайте.
  • Как будете структурировать посадочные страницы? Хотите чтобы пользователи переходили сразу в интерфейс покупок или иметь главную страницу, которая представит весь сайт?

Что вы изучите: электронная торговля — огромная индустрия и есть множество различных маленьких решений, которые формируют позитивный и удобный пользовательский опыт. Пройдя все необходимые шаги, чтобы сделать процесс покупки лёгким — вы получите ценный опыт. Подумайте об Amazon.com — хотите ли вы быть как они? Как быстро пользователи смогут найти продукт, который им нужен?

Сайт для вдохновения: diapers.com.

4. Персональный сайт Марио

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

Тип сайта: персональный сайт.

Ключевые функции:

  • Как и любой персональный сайт, он должен рассказывать обо всех достижениях и навыках.
  • Расскажите историю Марио визуально, ведь он мультипликационный персонаж. Не только рассказывайте о его опыте работы, но и используйте небольшие визуальные анимации, чтобы привнести в достижения жизнь.
  • Берите измеримые величины, чтобы показать достижения в его карьере: как много спас принцесс? Сколько игр продалось? И тому подобное.

Ключевые дизайнерские решения:

  • Какая цветовая гамма ассоциируется с игрой о Марио? Возможно, вы захотите её использовать, как и характерный шрифт.
  • Как использовать анимацию, чтобы дальше рассказать его историю? Может захотите использовать jQuery UI для этого.
  • Какие образы ассоциируются с Марио? Как легко вы можете добавить эти образы?
  • Вы можете создать ощущение приключения при посещении сайта? Или, возможно, покажете хронологию событий на протяжении всей его истории?

Что вы изучите: надеюсь, вы хотите, чтобы персональный сайт рассказывал историю о вас. Этот проект позволит рассказать историю персонажа с таким количеством достижений, что всё это показать нереально. Конструкция персонального сайта должна быть индивидуальна для каждого, и Марио, безусловно, имеет собственный уникальный стиль. Кроме того, вы узнаете, как добавить анимацию, которая прибавит ценность для истории и порадует пользователей — создав особое впечатление, не заставляя при этом читать много текста.

5. Избегатель общения

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

Тип сайта: блог.

Ключевые функции:

  • Список историй с заголовком по теме. Например, пьяный человек говорил сам с собой в поезде в 15:00. Если повезёт, то с фотографиями.
  • Возможность упорядочить посты по местоположению, времени суток и места (улица, кафе, автобус и так далее).
  • Использование Google Form, чтобы пользователи могли делиться своими историями.
  • Группировка сообщений по категориям так, чтобы пользователи могли видеть такие истории, как «Каких людей стоит избегать в Лондоне в 3 ночи?»

Ключевые дизайнерские решения:

  • Какие занятия достойны поста? Нужно учитывать только действительно прискорбные публичные поступки. Например, случайно услышали политическую позицию и несогласны с ней. Или хотите рассказать про неприятных людей в баре?
  • Как вы сможете защитить частную жизнь людей так, чтобы не превратиться в сайт для домогательств?
  • Это будет весёлый ресурс или сайт об ужасных людях?

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

6. Производство змеиного масла

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

Тип сайта: малый бизнес.

Ключевые функции:

  • Десятки природных веществ, которые, по вашему утверждению, будут иметь чудесные свойства исцеления различных недугов.
  • На странице «О нас» расскажете о своём фальшивом опыте и как лекарство спасло вашего двоюродного брата.
  • Возможность сортировать лекарства по болезни: хотите вылечить рак? Артрит?
  • Отзывы клиентов по каждому продукту, где они рассказывают свою историю.

Ключевые дизайнерские решения:

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

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

7. Кто недоволен музыкой? Викторина

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

Тип сайта: интерактивная викторина.

  • Серия вопросов, которые появляются по одному. Каждый предоставляет множественный выбор ответов, которые определяют следующий вопрос. Например, если вы ответили «я люблю рэп» в первом вопросе, то следующий вопрос будет «Кто вам нравится больше из этих пяти исполнителей?» или «Какой именно рэп вы любите?».
  • Когда страница закончится, то нужно показать каких людей бесит твоя музыка и почему. Вы можете использовать небольшие юмористические видео с YouTube или GIF-картинки для того, чтобы пользователи весело отреагировали на результат.
  • Смешные картинки с небольшими вопросами увеличат комичность сайта. Он не должен быть серьёзным.

Ключевые дизайнерские решения:

  • Как будет создаваться плавный переход между вопросами? Какая анимация будет использована?
  • Как вы будете показывать пользователям на каком они шаге? Типа 1 из 5.
  • Как будете делать ответы весёлыми? Пользователи на вашем сайте здесь для развлечения, и они будут надеяться на смешной результат в конце теста.
  • Какие картинки смогут вызывать смех? Какие весёлые факты можно подключить? Иногда это называют «подсказкой».

Что вы изучите: полезные технические навыки, например: HTML5 и jQuery UI. А также освоите простые паттерны создания полноценных веб-приложений и это будет реальная практика.

8. Моя хроника потери веса

Идея: все мы иногда едим пищу, которую не должны есть. Но она такая вкусная. Это даст возможность писать обо всей еде, которую вы съели и пожалели об этом, так как теперь наберёте вес. Но она была такая вкусная. Можно оформить некоторые фразы, как фальшивые некрологи. Например, сожаления о том, что этот замечательный пирог погиб из-за вас.

Тип сайта: персональный блог.

  • Каждый раз, когда вы едите пищу, из-за которой чувствуете себя виноватым, размещайте её фотографию и свои мысли по этому поводу. Фотография может содержать тарелку с крошками или само блюдо.
  • Теги еды на основе времени суток или вида пищи.
  • Google Form, чтобы другие пользователи могли также поведать свои истории.
  • Список полезных ресурсов, таких как диетические форумы или фитнес-приложения.

Ключевые дизайнерские решения:

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

Что вы изучите: юмор в интернете может быть коварным. Главное — придерживаться одной определённой концепции и контента, чтобы пользователи всегда были уверены в том, что их ожидает на сайте. В то же время юмористические сайты могут быть очень «вирусными», так как люди будут делиться шутками с друзьями.

Заключение

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

Идеи ничего не стоят

Если нет нужных навыков, чтобы собрать сайт. Научитесь этому на интерактивных курсах — 11 глав бесплатно, -30% на подписку в первую неделю.

Регистрация

Нажатие на кнопку — согласие на обработку персональных данных

Мой подход к проектированию веб-сайтов / Хабр

Прелюдия

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

В рамках данной статьи я поделюсь своим опытом проектирования сайтов средней сложности. Данный подход зарекомендовал себя понятным как разработчикам, так и клиентам. Я не собираюсь открывать Америку, представленные ниже инструменты всем прекрасно знакомы. Суть данной статьи как раз в том, что бы продемонстрировать насколько просто можно представить достаточно сложные задачи.

Всё начинается с…

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

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

2) «Неидеальный вариант» обычно хочет, что бы всё летало, в каждом углу были анимированные часики, но при этом никак не может определиться что же за информацию необходимо разместить на сайте. А нам ведь совсем не нужен вариант, что в середине работы мы вдруг узнаем, что подробный каталог продукции, который мы обсуждали и уже практически реализовали технически, на самом деле будет статической страничкой с прайс-листами, а всё, что нам так усердно рассказывал заказчик — это внутренняя структура прайс-листов, которую мы и не увидим никогда! Для того, что бы избежать данных трений, с такими заказчиками приходится совместно заниматься разработкой технического задания.
Но текст является не лучшим способом преподнесения информации, а главное не самым интуитивным. Поэтому прежде, чем задокументировать в строчках будущий проект бывает неплохо его доступно проиллюстрировать и обсудить.

… И тут на помощь приходят они!

Mindmap, создаем структуру сайта

Основной плюс создания структуры сайта с использованием карт памяти заключается в простоте и интуитивности данного решения. Заказчики обычно очень положительно реагируют на “данные картинки”, особенно если они оформлены должным образом без использования техники “вырви глаз, заметь меня”.

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

Пример 1:

На данной схеме приведена структура неповторимого сайта DevSite, который отличается от всех своей уникальностью и новаторской структурой.

Описание схемы:

  • элементы желтого цвета — это сущности, физические разделы сайта
  • элементы серого цвета — условные разделы для группировки в нем элементов (раздел Пользователи)
  • черные прямоугольники — функциональные элементы страницы, которые несут за собой некоторую логики или действия
  • восстановление пароля в разделе пользователи является всплывающим окном или вы уже догадались?

Пример 2:

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

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

БД

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

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

Ну и конечно же не малую роль играет удобство, лично мне намного приятнее слепить БД в софте типа MySQL Workbench и экспортировать результат в SQL, предварительно проставив связи, ключи свойства и визуально проверив результат. В любом случае это намного удобнее, чем самый распространенный способ заполнения БД в phpMyAdmin

Скрин таблицы из MySQL Workbench

Прототипирование, создание wireframe’ов

Этот этап довольно накладен и прибегать к нему стоит тогда, когда это действительно нужно. В основном имеет смысл на сайтах и сообществах с большими объемами информации, а так же на страницах с большим количеством управляющих элементов. Часто имеет смысл прибегнуть к созданию wirefram’ов для отдельных элементов системы, как например системы фильтрации и гибкого поиска или наоборот для очень общих элементов, таких как расположение больших блоков на сайте (меню, контент, столбцы, думаю понятно).

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


Скриншот с tarekshalaby.com по наводке google image search

В качестве инструмента не буду советовать какой-то конкретный, так как сам ещё окончательно не определился. Лично приходилось работать с настольным приложение Balsamic Mockups и веб-сервисом Hotgloo. Hotgloo конечно интересен тем, что можно сделать макеты с переходом по ссылкам и пародиями на такие действия как “положить товар в корзину”, но мне не очень нравится его ценовая политика, а иногда просто удобнее использовать настольное приложение.


Скриншот с оффсайта Balsamic Mockups

В Заключение

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

Спасибо за чтение и желаю Вам интересных и красивых проектов в 2011 году!

что предусмотреть на всех этапах — Офтоп на vc.ru

Советы от руководителя команды разработки компании Dfaktor Романа Гришина.

Роман Гришин

«Сначала сделали, потом подумали», — это распространённый способ создания многих вещей в России. В частности, сайтов компаний и интернет-магазинов, порталов и агрегаторов. Эта статья будет полезна тем, кто:

  • выбирает подрядчиков на создание сайта, но не понимает, как оценить адекватность предложений на рынке;

  • хочет грамотно продумать проект до его запуска;
  • уже имеет сайт, но не удовлетворён его работой, посещаемостью или конверсией.

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

Шаг первый: поставить цель

Все начинается с цели. Определите, зачем вы создаёте сайт и, если это не просто сайт «для галочки», как тоже бывает, подумайте, как вы планируете привлекать на него пользователей и получать доход.

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

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

Этот шаг прост и очень важен.

Шаг второй: определить целевую аудиторию

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

Например, так: «Наша аудитория — это 70% мужчин в возрасте от 18 до 25 лет. Они импульсивны, целевое действие хотят выполнить сразу, не вникая в контент».

Эти данные будут

Разработка сайта в Москве — создание сайтов под ключ

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

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

Что входит в комплексный подход:

  • Проект, который решит поставленные бизнес-задачи с учетом особенностей ниши и пользовательского опыта.
  • Адаптивный дизайн. Мы создаем по-настоящему уникальные дизайны на мировом уровне, а не на уровне других сайтов в топе выдачи.
  • Расширенные возможности: стабильная работа при большом количестве информации, возможность подключения дополнительных сервисов и передачи данных между разными системами.
  • Продвижение сайта: увеличение конверсии, грамотная оптимизация под поисковые системы Яндекс и Google, генерация лидов.
  • Функционал любой сложности
  • Все наши сайты адаптивные, со встроенным алгоритмом распознающим устройство и подстраивающим под него необходимый дизайн в точно рассчитанной конфигурации

Сегодня сайт в немалой степени определяет статус компании, наличие собственного многофункционального сайта стало необходимостью для всех.

Мы подберем правильные решения для вас и пользователей.

Реализуйте вместе с нами самые смелые и сложные идеи!

8 учебных проектов / Блог компании Edison / Хабр

«Мастер совершает больше ошибок, чем новичок — попыток»

Предлагаем 8 вариантов проектов, которые можно сделать «по фану», дабы получить реальный опыт разработки.

Проект 1. Клон Trello


Клон Trello от Indrek Lasn .

Что вы освоите:

  • Организация маршрутов обработки запросов (Routing).
  • Drag and drop.
  • Как создавать новые объекты (доски, списки, карточки).
  • Обработка и проверка входных данных.
  • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
  • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

Тут пример репозитория, сделанного на React+Redux.

Проект 2. Панель админа



Github Repository.

Простенькое CRUD приложение, идеально подходит для изучения основ. Научимся:

  • Создать пользователей, управлять пользователями.
  • Взаимодействовать с базой данных — создавать, читать, редактировать, удалять пользователей.
  • Проверка ввода и работа с формами.

Проект 3. Трекер криптовалют (нативное мобильное приложение)



Github repository.

На чем угодно: Swift, Objective-C, React Native, Java, Kotlin.

Изучим:

  • Как работают нативные приложения.
  • Как извлекать данные из API.
  • Как работают нативные макеты страниц.
  • Как работать с мобильными симуляторами.

Попробуйте вот это API. Найдете лучше — напишите в комментах.

Если интересно, вот тут туториал.

Проект 4. Настроить собственный конфиг webpack с нуля



Технически, это не приложение, но очень полезная задача, чтобы понять как работает webpack изнутри. Теперь это будет не «черный ящик», а понятный инструмент.

Требования:

  • Компилировать es7 в es5 (основы).
  • Компилировать jsx в js  — или  -  .vue в .js (придется выучить загрузчики)
  • Настроить webpack dev server и hot module reloading. (vue-cli and create-react-app use both)
  • Использовать Heroku, now.sh или Github, научиться развертывать webpack проекты.
  • Настроить свой любимый препроцессор, чтобы компилировать css  —  scss, less, stylus.
  • Изучить как использовать изображения и svgs с webpack.

Тут потрясный ресурс для полных новичков.

Проект 5. Клон Hackernews



Каждый джедай обязан сделать свой собственный Hackernews.

Что вы освоите по дороге:

  • Как взаимодействовать с hackernews API.
  • Как создать одностраничное приложение.
  • Как реализовать такие фичи, как просмотр комментариев, отдельных комментариев, профилей.
  • Организация маршрутов обработки запросов (Routing).

Проект 6. Тудушечка



TodoMVC.

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

Научитесь:

  • Создавать новые задачи.
  • Проверять заполнение полей.
  • Фильтровать задачи (завершена, активна, все). Используйте filter и reduce.
  • Понимать основы Javascript.

Проект 7. Сортируемый drag and drop список



Github repository.

Очень полезно, чтобы понять drag and drop api.

Научимся:

  • Drag and drop API
  • Создавать rich UIs

Проект 8. Клон мессенджера (нативное приложение)



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

Что изучим:

  • Web sockets (мгновенные сообщения)
  • Как работают нативные приложения.
  • Как работают шаблоны в нативных приложениях.
  • Организация маршрутов обработки запросов в нативных приложениях.

Этого вам хватит на месяц-другой.

Перевод выполнен при поддержке компании EDISON Software, которая профессионально занимается разработкой приложений и сайтов на PHP для крупных заказчиков, а так же разработкой облачных сервисов и мобильных приложений на Java.

Пошаговый алгоритм создания архитектуры PHP-сайта / Хабр

Дисклеймер: этот текст меня заставило написать практически полное отсутствие вменяемых материалов по данной теме на русском языке. Этому плохо учат в вузах, об этом молчат самоучители 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-разработчика непростительно не уметь работать с шаблонизаторами. Поэтому осваивайте их, а потом уже откажетесь, если не понравится.

Как уже было отмечено выше, на русском языке почти нет достойный литературы на эту тему.
Единственную книгу, которую могу посоветовать прочитать: Стив МакКоннелл «Совершенный код».

Если кто-то знает другие материалы киньте в меня ссылочкой. С удовольствием прочитаю и буду рекомендовать новичкам.

Развертывание Project Web App с новым семейством сайтов — Project Server

  • 4 минуты на чтение

В этой статье

Сводка: Узнайте, как развернуть экземпляр Project Web App вместе с сайтом Project Web App в новом семействе сайтов.
Применимо к: Project Server 2016, Project Server 2019

Создать веб-сайт верхнего уровня

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

Для создания веб-сайта верхнего уровня

  1. На веб-сайте центра администрирования SharePoint в разделе Управление приложениями щелкните Создать семейства веб-сайтов .

  2. Выберите веб-приложение из раскрывающегося меню Веб-приложение .

  3. Введите заголовок для семейства веб-сайтов в поле Заголовок .

  4. В разделе Выбор шаблона выберите шаблон для сайта.

    Примечание

    Project Servers 2016 или 2019 не требует определенного шаблона. Вы можете выбрать подходящий для вашей организации.

  5. В разделе Основной администратор семейства сайтов введите имя учетной записи, которую вы хотите использовать для администратора сайта.

  6. Щелкните ОК .

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

Для установки разрешений на чтение на веб-сайте верхнего уровня

  1. Перейдите к корневому сайту (то есть https: //).

  2. Вверху страницы щелкните Поделиться .

  3. В диалоговом окне «Поделиться» щелкните Показать параметры .

  4. В разделе «Выберите группу или уровень разрешений» выберите Посетители [Читать] .

  5. В текстовом поле Введите имена или адреса электронной почты введите Все.

  6. Нажмите Поделиться .

Создание сайта Project Web App

Важно

При создании нового сайта Project Web App в сочетании с новым семейством сайтов мы рекомендуем использовать отдельную базу данных контента SharePoint Server 2016 или 2019 для сайта Project Web App и связанных с ним рабочих областей проекта.Чтобы правильно изолировать сайт Project Web App в собственной базе данных контента, необходимо развернуть Project Web App в то время, когда другие администраторы не создают новые сайты в веб-приложении, в котором вы развертываете Project Web App.

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

Создание сайта Project Web App состоит из пяти основных шагов:

  1. Создайте базу данных контента для размещения сайта Project Web App и связанных с ним рабочих областей проекта.

  2. Создайте сам сайт Project Web App.

  3. Заблокируйте базу данных контента Project Web App, чтобы предотвратить добавление дополнительных семейств сайтов.

Важно

Убедитесь, что другие администраторы не добавляют семейства сайтов в веб-приложение, в котором вы планируете развернуть Project Web App, пока вы выполняете процедуры, описанные в этом разделе.

Для создания базы данных контента

  1. В центре администрирования SharePoint в разделе Управление приложениями щелкните Управление базами данных контента .

  2. Щелкните Добавить базу данных содержимого .

  3. В разделе Веб-приложение выберите веб-приложение, в котором вы планируете развернуть сайт Project Web App.

  4. В разделе Имя базы данных и проверка подлинности введите имя сервера базы данных, на котором вы планируете развернуть базы данных Project Web App, и введите имя базы данных.

  5. Щелкните ОК .

После создания и настройки базы данных контента следующим шагом будет создание самого сайта Project Web App.

Чтобы создать сайт Project Web App в новом семействе сайтов, запустите командлет New-SPSite Microsoft PowerShell, чтобы создать сайт в только что созданной базе данных контента, а затем запустите Enable-SPFeature, чтобы включить сайт Project Web App. особенности коллекции.

Убедитесь, что у вас есть следующие членства:

    Фиксированная роль сервера
  • securityadmin на экземпляре SQL Server.
  • фиксированная роль базы данных db_owner для всех баз данных, которые необходимо обновить.
  • локальная группа администраторов на сервере, на котором вы выполняете командлеты PowerShell.

В командной строке PowerShell выполните следующие команды, чтобы создать сайт Project Web App.

  New-SPSite -ContentDatabase ContentDBName -URL SiteCollectionURL / PWASiteName -Template pwa # 0 -OwnerAlias ​​domain \ user
Enable-SPFeature pwasite -URL SiteCollectionURL / PWASiteName
  

Например:

  New-SPSite -ContentDatabase PWA_Content -URL https: // contoso-appsrv1 / sites / PWA -Template pwa # 0 -OwnerAlias ​​domain \ user
Включить-SPFeature pwasite -URL https: // contoso-appsrv1 / sites / PWA
  

После подготовки сайта Project Web App убедитесь, что он был создан в созданной вами базе данных контента.Используйте командлет Get-SPSite, передав новую базу данных контента в качестве параметра:

Чтобы проверить расположение сайта Project Web App

В командной строке PowerShell введите следующую команду и нажмите клавишу ВВОД:

  Get-SPSite -ContentDatabase 
  

Команда должна возвращать URL-адрес вашего сайта Project Web App и никаких других URL-адресов.

Примечание

Если в базе данных контента перечислены дополнительные URL-адреса, помимо URL-адреса сайта Project Web App, удалите сайт Project Web App и перезапустите процедуру с новой базой данных контента.

После того, как сайт Project Web App окажется в нужной базе данных контента, необходимо заблокировать базу данных, чтобы предотвратить добавление SharePoint Server дополнительных семейств сайтов в базу данных. Это выполняется путем настройки максимального количества сайтов для базы данных контента на один.

Примечание

Настройка этого параметра не предотвращает создание новых сайтов рабочей области проекта.

Для блокировки базы данных контента

  1. В центре администрирования SharePoint в разделе Управление приложениями щелкните Управление базами данных контента .

  2. В столбце Имя базы данных щелкните ссылку для созданной базы данных контента.

  3. В разделе настроек емкости базы данных :

  4. В поле Число узлов до появления события предупреждения Поле, тип0.

  5. В поле Максимальное количество сайтов, которое может быть создано в этой базе данных , введите 1.

  6. Щелкните ОК .

Теперь вы можете получить доступ к новому сайту Project Web App.

См. Также

Развертывание Project Web App в существующем семействе сайтов (Project Server 2016)

Проектные форумы

,Параметры подготовки сайта проекта

(параметры Project Server 2013) — Project Server

  • 4 минуты на чтение

В этой статье

Сводка: Используйте параметры подготовки сайтов проекта в центре администрирования, чтобы настроить автоматическое создание сайтов проектов для проектов в Project Server 2013.
Применимо к: Project Server 2013

Параметры подготовки сайта проекта являются частью раздела «Операционные политики» параметров сервера Project Server 2013. В Project Server 2013 эти параметры доступны в центре администрирования SharePoint. Чтобы получить доступ к этому параметру, вы должны быть администратором фермы.

Настройка параметров подготовки сайта проекта

На странице «Параметры подготовки сайтов проекта» можно настроить параметры для сайтов проектов, которые создаются для проектов.Вы можете настроить следующие параметры:

URL сайта

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

Для указания информации URL сайта

  1. В центре администрирования SharePoint щелкните ** Управление приложениями **.

  2. На странице «Управление приложениями» в разделе «Приложение-служба» щелкните Управление приложениями-службами .

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

  4. На странице «Управление веб-приложениями Project» щелкните раскрывающееся меню для экземпляра PWA, для которого вы хотите получить доступ к параметрам подготовки сайта, и щелкните Управление .

  5. На странице «Параметры сервера» в разделе «Операционные политики » щелкните «Параметры обеспечения сайта проекта ».

  6. На странице «Параметры подготовки сайтов проекта» в разделе «URL-адрес сайта » укажите веб-приложение по умолчанию, из которого будут создаваться сайты проекта. Выберите веб-приложение из меню Веб-приложение по умолчанию .

  7. В поле URL-адрес сайта введите путь URL-адреса (например, PWA).

  8. Выберите Ограничить создание сайта проекта семейством сайтов по умолчанию , если вы хотите, чтобы сайты проекта создавались только с указанными вами параметрами URL-адреса сайта.

  9. Нажмите Сохранить .

Свойства сайта по умолчанию

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

Для настройки свойств сайта по умолчанию для сайтов проекта

  1. В центре администрирования SharePoint щелкните ** Управление приложениями **.

  2. На странице «Управление приложениями» в разделе «Приложение-служба» щелкните Управление приложениями-службами .

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

  4. На странице «Управление веб-приложениями Project» щелкните раскрывающееся меню для экземпляра PWA, для которого вы хотите получить доступ к параметрам подготовки сайта, и щелкните Управление .

  5. На странице «Параметры сервера» в разделе «Операционные политики » щелкните «Параметры обеспечения сайта проекта ».

  6. На странице «Параметры обеспечения сайта проекта» в разделе « Свойства сайта по умолчанию » выберите язык по умолчанию для сайтов проекта из раскрывающегося списка Язык шаблона сайта по умолчанию .

    Примечание

    В раскрывающемся списке «Язык шаблона сайта по умолчанию» доступны следующие языки:> Язык базовой установки Project Server 2013.> Язык всех установленных языковых пакетов Project Server 2013.> Например, если вы устанавливаете языковой пакет Project Server 2013 для испанского языка в базовой установке Project Server 2013 на английском языке, вы можете выбрать английский или испанский язык в раскрывающемся меню «Язык шаблона сайта по умолчанию». Выбор того или иного варианта определит язык по умолчанию, на котором будет отображаться пользовательский интерфейс Project Web App для вновь подготовленных экземпляров Project Web App.

  7. Нажмите Сохранить .

Настройки создания сайта

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

Для настройки параметра создания сайта

  1. В центре администрирования SharePoint щелкните ** Управление приложениями **.

  2. На странице «Управление приложениями» в разделе «Приложение-служба» щелкните Управление приложениями-службами .

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

  4. На странице «Управление веб-приложениями Project» щелкните раскрывающееся меню для экземпляра PWA, для которого вы хотите получить доступ к параметрам подготовки сайта, и щелкните Управление .

  5. На странице «Параметры сервера» в разделе «Операционные политики » щелкните «Параметры обеспечения сайта проекта ».

  6. На странице «Параметры обеспечения сайта проекта» в разделе «Параметры создания сайта » выберите один из трех параметров Режим обеспечения :

  7. Нажмите Сохранить .

См. Также

Управление подключенными сайтами SharePoint в Project Server 2013

,

Настройка еще одного сайта Project Online — ProjectOnline

  • 2 минуты на чтение

В этой статье

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

Чтобы настроить другой сайт Project Online:

  1. Где войти в Office 365 для бизнеса со своей рабочей или учебной учетной записью.

  2. Щелкните значок средства запуска приложений в верхнем левом углу и выберите Admin .

    Совет

    Плитка Admin отображается только администраторам Office 365.

  3. В левой нижней части навигации выберите Показать все , разверните Центры администрирования и откройте центр администрирования SharePoint .

  4. В центре администрирования SharePoint выберите Активные сайты .

  5. На странице Активные сайты выберите Создать , а на странице Создать сайт выберите Другие параметры .

  6. На странице Другие параметры в меню Выберите шаблон , выберите Сайт Project Web App .

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

  8. Выбрать Готово .

Примечание

После настройки сайта подождите 15 минут, прежде чем использовать его, чтобы Project Online могла завершить установку.

,

Добавить Project Online в семейство сайтов — ProjectOnline

  • 2 минуты на чтение

В этой статье

Добавление Project Online в существующее семейство сайтов помогает использовать уже настроенные разрешения и пользователей.Он также позволяет вам переносить задачи SharePoint в Project Online и делиться своими корпоративными проектами на вашей группе или на сайте проекта.

Чтобы включить Project Online в существующем семействе сайтов:

  1. Войдите на сайт портала Microsoft Office 365.

    Совет. Если вы не уверены в своем идентификаторе пользователя, обратитесь к сообщению электронной почты «Начало работы с Microsoft Office 365», которое включает ваш идентификатор пользователя и другую информацию об учетной записи.

  2. Щелкните средство запуска приложений, а затем щелкните Admin .

  3. В центре администрирования в разделе Центры администрирования выберите SharePoint .

  4. В центре администрирования SharePoint выберите Классические функции .

  5. На странице Классические функции , в разделе классических семейств сайтов выберите Открыть .

  6. Наведите указатель мыши на URL-адрес семейства веб-сайтов, в котором вы хотите включить Project Online, а затем установите флажок, который отображается слева от URL-адреса.

Важно

Вы можете добавить Project Online только в семейство сайтов, которое использует шаблон Classic Team Site или Project Site .

  1. Щелкните Project Web App на ленте, а затем щелкните Добавить .

  2. В появившемся диалоговом окне щелкните Включить , чтобы добавить Project Online в семейство сайтов.

    Примечание

    После настройки сайта подождите 15 минут, прежде чем использовать его, чтобы Project Online могла завершить установку.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *