EkzoMan
О веб-разработке для самых маленьких. Перезагрузка
Доброго времени суток, дорогие друзья и подписчики.
Вы, наверное, подумали, что автор сдулся. Но нет, я был в отпуске. А после отпуска на работе накопились дела, которые не позволяли вернуться.
Текучку закрыл, собрался с мыслями и вернулся к вам. Итак, для начала объясню смысл слова "Перезагрузка" в названии.
У меня было достаточно времени чтобы обдумать всё. И я пришел к выводу, что неправильно подошел к вопросу.
В предыдущих постах было много претензий со стороны читателей. Некоторые были конструктивными и я учту из. Другие, уж простите, немного бредовые. Учитывая изначально обозначенный круг аудитории (а именно уже практикующие программисты), просьба описать установку локального веб-сервера выходит за рамки статьи. Те, кто собирается выполнять проекты с популярных фриланс платформ, должны знать как выполнять такие простые действия. А также всё зависит от ОС, которой пользуетесь вы. Нет, ну честно, всем ли будет интересно, если я вам напишу 5 команд, которые необходимо ввести в терминале Linux? Особенно если вы пользуетесь MacOS.
С другой стороны, покажу и расскажу как настроить инструменты разработки. Данная тема, действительно, поможет быстрому старту.
И на сладкое. Я решил перезагрузить идею цикла. Вместо создания скучного сайта-визитки, мы возьмём макет реального задания с фриланс-сайта и сделаем проект на его основе.
Представляю вам макет главной страницы взятого проекта.
Небольшие допущения, которые будут в работе:
1. Некоторые изображения будут заменены, так как исходников у нас нет. А пихать картинки с нарисованными кнопками и текстом - не наш выбор.
2. Шрифты будем подбирать максимально похожие, но расхождения всё равно могут быть.
3. В шаблоне есть варианты для мобильной версии. Мне не всё в них нравится, поэтому их тоже немного переделаем.
Что ждёт вас дальше? Мы пройдём следующий путь:
1. Установим и настроим редактор для дальнейшей работы.
2. Создадим каркасный дизайн (wireframe) из представленного шаблона.
3. Разрежем и подготовим макет. Создадим необходимые заготовки для верстки (less файлы).
4. Создадим базовый шаблон для Wordpress с базовым дизайном.
5. Добавим шаблоны нестандартных страниц.
6. Сверстаем блоки заказов и обратной связи.
7. Установим плагины для работы с формами обратной связи и заказов.
Вот такая перезагрузка у нас получается.
Вместо нового поста
Уважаемые пикабушники, добрый день.
К сожалению в ближайшие пару дней я не смогу дописать очередной пост так как готовлюсь к отпуску.
Но зачем терять время? Давайте устроим голосование/обсуждение пока мы не ушли слишком далеко.
Поступают запросы на более широкое освещение темы разработки сайтов. Начиная с настройки локального веб-сервера, выбора инструментов для разработки и создания макетов. Честно скажу, что не вижу смысла расписывать настолько глубоко, так как туториалов по этой теме в сети очень много. Да и тема изначально была заявлена немного в другой плоскости. А именно - помощь молодым сайтостроителям, которые уже изучили базовые вещи (html,css,javascript) и инструменты (wamp,brackets,sublime etc.), сделать первый шаг в прикладную разработку.
Если большинство моих читателей решит, что нужно писать посты в расширенном варианте с остановкой на каждом инструменте и шаге, я готов пойти на встречу.
Так что до понедельника буду ждать ваши отзывы.
Всем бобра!
О веб-разработке для самых маленьких (часть 1). От идеи до макета
Доброго времени, уважаемые пикабушники.
Предыдущий пост был воспринят неоднозначно. Но такая реакция была ожидаема. Читатели ждали быстрого погружения в разработку, а получили размышления на обозначенную тему.
Но хороший программист тратит только 30% времени на написание кода. Остальное время будет потрачено на подготовку. Такой подход позволяет избежать большого количества проблем на завершающем этапе разработки.
Не буду долго томить вас, и начнём нашу работу.
Для начала давайте создадим папку для рабочего проекта. Назовём её first_template (оригинальность зашкаливает). И внутри создадим следующую структуру
Самое главное для продуктивной работы - создавать для себя уровни абстракции на каждом этапе работы.
Не имеет большого значения, делаете ли вы заказ или разрабатываете сайт "для себя". Первым и самым важным этапом, по моему скромному мнению, является создание прототипа на wireframe'ах (далее визуальных моделях). Уже предчувствую огромное количество критики в свою сторону, но я готов объяснить почему именно так стоит делать.
Если у вас нет готового дизайна от заказчика (или если вы делаете сайт с нуля) - данный подход позволит представить общую структуру будущего сайта и согласовать нюансы с заказчиком.
С другой стороны, даже если заказчик вам предоставил готовый дизайн, не стоит сразу бросаться переносить всё это в html. Визуальная модель поможет создать абстракцию на уровне функциональных блоков. Такими блоками будут хидер, подвал, графические блоки страниц, формы и т.п. При этом ваше внимание не будет отвлекать цвет и графическое наполнение.
Написание html и css удобнее делать иерархически. Это позволит вам структурировать конечный код и сохранять его чистоту.
Для создания визуальной модели можно воспользоваться любым удобным редактором. Для примера можете воспользоваться сервисом wireframe.cc (не реклама. выдаётся первым в поисковиках и, как бонус, можно рисовать без регистрации).
Давайте набросаем простую модель с следующими блоками:
1. Горизонтальное меню
2. Графический блок с нашим суровым красноглазым лицом нашей фотографией
3. Блок с последними выполненными работами
4. Блок с списком наших услуг
5. Форма заказа разработки
И получается примерно такая картинка
Описывать принцип работы с wireframe редактором не имеет смысла, так как всё сводится к перетаскиванию блоков на рабочее поле.
Не надо добиваться идеальной точности. Важна структура, которую мы будем переносить в макет и далее в шаблоны.
Результат сохраняем в first_template\temp\images\wireframe.jpg
Наша визуальная модель готова. Как только вы получите удовлетворительный результат, настаёт время переноса этой модели в графику (если нет готового дизайна).
Для начала мы создадим следующий уровень абстракции в который добавим только цвета и графические изображения.
Не заостряйте внимание на нарисованном макете. Во-первых, у меня извращённое чувство прекрасного. Во-вторых, всё сделано на коленке за 15 минут свободного времени. Да и не имеет значения данный дизайн, так как он сделан исключительно для демонстрации.
Наш макет начинает обрастать деталями. В отличии от визуальной модели, теперь мы видим графическое наполнение наших блоков.
Фиксируем завершенный этап работы и положим его в first_template\temp\images\design_clean.jpg
Теперь наступает, по моему скромному мнению, самый занудный этап создания макета. Мы добавим текст и детали. А не люблю этот этап я из-за типографии. Подгонка шрифтов, отступов и т.д. вгоняет меня в тоску-печаль.
Для ускорения наполнения шаблона лучше всего текстовые блоки заполнять стандартной рыбой lorem ipsum. Я же для наглядности написал более-менее осмысленный текст.
Наш макет начал походить на сайт. На текущий момент мы сделали всё, что нам необходимо для того, чтобы приступить к созданию наших шаблонов (не путать с шаблоном для wordpress. до него ещё не дошло). Сохраняем последний макет в first_template\temp\images\design.jpg
И также сохраняем исходник в формате редактора, которым вы создавали этот макет (Photoshop,GIMP, etc.). Он нам понадобится для быстрого внесения изменений или доработок, если в них будет необходимость.
Вот мы и подготовили минимальный набор для того чтобы приступить непосредственно к разработке. Чем больше материалов вы подготовите на этом этапе тем проще вам будет и скорость работы будет выше. Я же показал самый минимальный набор, который необходим на этапе подготовки и создания макетов.
Вопрос к аудитории.
Уважаемый подписчик @zlobak сделал ряд замечаний. Основное замечание, что посты получаются не совсем познавательными. В них не хватает таких вещей, как:
1. Установка и настройка локального сервера
2. Установка и настройка рабочего окружения
3. Посты не для новичков, которые ничего не понимают в разработке (хотя я писал, что на них и не рассчитано)
Буду признателен если вы выскажите своё мнение о том, стоит ли настолько глубоко расписывать? Потому что для этого мне придётся или на работе ставить весь стандартный набор WAMP и т.д. Или поднимать виртуальную машину с windows так как дома сижу на linux.
О веб-разработке для самых маленьких (часть 0.1). Подготовка
Доброго времени суток, уважаемые пикабушники.
Для начала позвольте ещё раз сказать для кого пишется данный цикл. Я затеял это для того, чтобы помочь молодым разработчикам и сайтостроителям вступить в мир веб-разработки. Многие из них научившись базовым понятиям и техникам не знают как сделать свой первый шаг.
Второй задачей, которую я поставил перед собой, является демонстрация того, что отсутствие опыта работы с другими языками программирования не является сдерживающим фактором. Как я уже написал, моим основных языком программирования является C# (до этого был pascal и vb). С PHP я практически не сталкивался, поэтому на своём примере покажу с какой стороны подойти к новому для себя языку.
Также считаю необходимым сказать следующее. В комментариях было предложение начать с поднятия локального сервера и его настройки. Так как я обозначил аудиторию (разработчики, владеющие базовыми навыками и знаниями), то подразумевается, что читатель знаком с WAMP, Brackets, Sublime Text, VSCode и другими сопутствующими инструментами. Да и на просторах интернета туториалов по их установке и настройке слишком много, чтобы добавлять ещё один фантик в мусорную кучу.
Данный пост немного опишет основные моменты дальнейшей работы. Он практически не несёт в себе полезной информации с точки зрения разработки, а является вступлением.
Итак, прежде чем приступить к прототипированию и созданию макетов, нам необходимо определиться с тематикой нашего тестового сайта.
В реальной жизни на этом этапе разработчик получает ТЗ от заказчика, проводятся обсуждения и совещания для согласования деталей и особенностей проекта. После чего мы как разработчики переходим к этапу подготовки и планирования. Почему не надо сразу бросаться в пучины графических редакторов и написания кода? Как показывает практика, такой подход чреват огромным количеством переделок на ходу и тратой лишнего времени на внесение изменений в уже сделанный проект.
Но в данном случае, мы будем выступать как в роли заказчика, так и в роли исполнителя. Поэтому первый этап будет довольно большим и отнимет много времени.
Начнём с выбора тематики. Можно придумать много интересных тем, выбрать что-то необычное. Но данный цикл рассчитан на начинающих и мы будем немного приземлёнными. Разработка огромного портала для нас сложна (пока), а набираться опыта и заработать деньги хочется. Давайте начнём с создания личного сайта, на котором разместим информацию о себе, наших навыках, портфолио и ещё какой-нибудь полезную информации. Постойте, не бросайте в меня помидоры. Позвольте обосновать такое решение.
Разберемся в происходящем.
Вы - молодой разработчик, только вступивший на путь самурая сайтостроения. Подавляющая часть заказчиков (для упрощения будем рассматривать заказчиков с фриланс бирж) требуют от потенциального исполнителя примеров работ. Некоторые, особо упоротые важные заказчики ещё хотят знать о вашем опыте и стеке технологий, которым вы владеете. Конечно, вы можете каждый раз отправлять заготовленный шаблон с этой информацией, но это не для джедаев. Да и где на первых порах взять это портфолио? Для привлечения заказчика нужно выделиться из толпы. Как минимум ваш сайт - первый пример того, как вы умеете верстать и создавать сайты.
Давайте приступим к самому важному этапу - подготовке.
Самое важное, что нужно решить сейчас - структура сайта. Вы можете сказать "что там думать? нужен крутой, красочный лендинг и поехали!". Но если останавливаться только на лендинге, то создание сайта на CMS не имеет смысла, так как такую работу можно сделать быстрее и намного проще в любом конструкторе. Да и сайты с "бесконечной прокруткой" не очень информативны.
Я не оспариваю важность лендинга. Лендинг/домашняя страница - лицо сайта которая может привлечь или отпугнуть посетителя. Поэтому без этого важного кирпичика мы не можем обойтись. Но и делать сайт, состоящий только из лендига не самый лучший вариант.
Давайте набросаем список страниц, которые должны присутствовать на нашем будущем сайте.
1. Лендинг (без него никуда)
2. О нас (здесь мы напишем кто мы и что умеем)
3. "Стек" (назовём пока так. здесь напишем те технологии и языки программирования с которыми работаем)
4. Портфолио
5. Форма обратной связи/заказа
Теперь можно выбрать концепцию дизайна. Что я имею в виду? Как ни странно, нужно определиться с выбором цветовой гаммы для сайта, общими блоками, которые будут присутствовать на каждой странице (например, заголовок и подвал), типографией. Данный этап очень важен, так как он определит внешний вид будущего сайта и удобство для посетителей.
Давайте сделаем сайт белым, а функциональные блоки будут синими (у меня этот цвет является любимым. вы можете выбрать на свой вкус).
На главной странице сайта мы разместим следующие блоки:
1. Наша опухшая рожа самую красивая фотография с небольшим текстом, описывающим нас
2. Последние N выполненных работ с комментариями заказчиков
3. Расценки на работу
4. Форма заказа/обратной связи
Больше блоков делать не будем (я уже писал о лендингах с "бесконечной прокруткой"). Остальная информация отправится на свои страницы.
Вот мы и определились с "скелетом" для нашего проекта. Также на данном этапе необходимо выбрать CMS на основе которой будет выполняться разработка. В вступительной статье я уже назвал её, так что мы будем работать с wordpress.
Что дальше?
Следующим этапом будет прототипирование нашего будущего сайта. Под прототипированием я подразумеваю создание визуальной модели (Wireframe) наших страниц. Этот этап важен для общего понимания строения наших страниц. Также данный метод позволит быстро внести изменения в структуру, если что-то нам не понравится. И на основе таких моделей гораздо проще разрабатывать макеты в графических редакторах.
О веб-разработке для самых маленьких (часть 0)
Доброго времени суток, уважаемые пикабушники.
Матёрым и написавшим 100500 строк кода программистам сразу могу посоветовать не тратить время на чтение. Этот материал будет для вас скучен.
Этим постом я начинаю серию, в которой постараюсь рассказать начинающим веб-разработчикам (и просто интересующимся) о процессе создания сайтов. Очень часто на форумах и специализированных порталах появляется один и тот же вопрос от новичков в мире программирования и сайтостроения о том как начать. Именно это я и постараюсь рассказать.
Сразу договоримся, что рассказывать азы html, css, javascript и сопутствующих технологий я не буду. Этой информации в сети и книгах дох... очень много.
За основу возьмём CMS Wordpress как самую популярную систему управления сайтами. Объясню почему.
Во-первых, большая популярность системы означает, что в сети полно информации и документации.
Во-вторых, огромное количество плагинов, позволяющих получить 80% функционала не тратя время на самостоятельную разработку.
В-третьих, мне просто самому интересно с ней разобраться.
В-четвёртых, самостоятельная разработка даже простейшей CMS займет неоправданно много времени.
Ах, да! Забыл сказать, что я практически не владею PHP. Зачем же я ввязываюсь во всё это не имея опыта разработки на PHP? Хочу показать новичкам, что знание одного языка программирования (в моём случае С#) не является преградой в работе с другими языками. Так что я вместе с вами изучу этот популярный язык программирования.
Цикл будет состоять из следующих больших тем:
1. Идея. От задачи до макета.
2. Погружение. От макета до прототипа.
3. Внедрение. От прототипа до шаблона.
4. Развертывание. Структурирование и наполнение.
5. Развитие. Разработка собственных дополнений.
6. Заключение.
Также, будут небольшие отступления от основной идеи, если понадобится немного порассуждать о тех или иных шагах и решениях.
Если вам интересно, ждите новые посты. Постараюсь не затягивать с публикациями.
















