Веб разработка это – Как стать профессиональным веб-разработчиком: практическое руководство / Habr

Содержание

WEB дизайн и WEB разработка в чём разница и отличие

Привет, Друзья! Сегодня мы поговорим о том, что такое WEB дизайн и WEB разработка и в чём между ними разница. Итак поехали!

WEB дизайн и WEB разработка в чём разница и отличие

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

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

Что такое WEB дизайн

Веб-дизайн (web design) – это комплексная процедура, суть которой заключается в профессиональном управлении всеми процессами, напрямую или косвенно связанными с визуальной эстетикой и удобством использования сайта. Дизайнеры, отталкиваясь от нужд заказчика, стратегии развития веб-площадки и отраслевых стандартов занимаются созданием макетов веб-страниц, планированием общей концепции площадки, формированием отдельных графических компонентов, разработкой логотипа и остальных компонентов, неразрывно связанных с визуальными аспектами. Результатом качественной работы веб-дизайнера является красочный, многофункциональный, логический понятный и комфортный пользовательский интерфейс.

Инструменты и профессиональные навыки, которые отличают WEB-дизайнера от веб-разработчика:
  1. Выполнение многоэтапного и сложного графического дизайна.
  2. Размещение различных кнопок, всплывающих окон, рекламных баннеров и форм для подписки на сайте.
  3. Применение для проектирования профессионального программного обеспечения (Photoshop, Illustrator).
  4. Использование готовых стилей и компонентов для создания уникального внешнего вида сайта.
  5. Брендинг, развитие корпоративного стиля, формирование запоминающегося дизайна логотипа.
  6. Создание макетов, каркасов и раскадровок отдельных веб-страниц.
  7. Добавление анимированных компонентов.
  8. Адаптивный дизайн, обеспечивающий комфортный просмотр сайта на различных устройствах.

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

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

Что такое WEB разработка

WEB-разработка (web development) – это процесс профессионального программирования сайта, который регулирует все последующие этапы, связанные с формированием HTML-кода, добавлением различных функциональных компонентов и скриптов, влияющих на показатели юзабилити и технической стабильности. Задачей разработчика считается создание инфраструктуры для реализации оптимального функционала сайта, на который в будущем крепятся визуальные компоненты, обеспечивающие интерактивные возможности.

Процесс WEB-программирования можно разделить на две категории:
  1. Внешняя или клиентская разработка (front-end) – это код, отвечающий за определение того, как веб-сайт будет фактически отображать разработанные дизайнером макеты и выбранные графические компоненты.
  2. Внутренняя или серверная разработка (back-end) – отвечает за управление базами данных. Благодаря правильному программированию сайт будет открывать доступ к определенному контенту, обеспечивая получение и передачу данных на внешний интерфейс для последующего отображения.

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

В своей работе WEB-разработчики используют:
  1. Технологии по кодированию с применением HTML и языков программирования.
  2. Таблицы стилей CSS для формирования внешнего вида документов.
  3. Объектно-ориентированный язык программирования JavaScript.
  4. Препроцессоры CSS (Less, Stylus или Sass).
  5. Фреймворки и библиотеки стилей (AngularJS, JQuery, ReactJS, Ember).
  6. Распределённые системы управления версиями Git и GitHub.
  7. Разнообразные тактовые редакторы, а также расширения и плагины для браузеров.

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

WEB-дизайн или WEB-разработка что выбрать

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

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

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

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

Обучение SEO

Более подробно о том, как выводить сайты в ТОП 10 поисковых систем Яндекс и Google, я рассказываю на своих онлайн-уроках . Все свои интернет-проекты я вывел на посещаемость более 1000 человек в сутки и могу научить этому Вас. Кому интересно обращайтесь!

На этом всё, всем удачи и до новых встреч!

hozyindachi.ru

разработка — это… Что такое Веб-разработка?


Веб-разработка

Веб-разработка — процесс создания веб-сайта или веб-приложения. Термин включает в себя веб-дизайн, программирование для веб на стороне клиента и сервера, а также конфигурирование веб-сервера.

Основные этапы веб-разработки

На сегодняшний день существуют несколько этапов разработки web-сайта:

  • Проектирование сайта или веб-приложения (сбор и анализ требований, разработка Технического Задания, проектирование интерфейсов)
  • Разработка креативной концепции сайта
  • Программирование (разработка функциональных инструментов) или интеграция в систему управления содержимым (CMS)
  • Создание дизайн-концепции сайта
  • Создание макетов страниц
  • Создание мультимедиа и FLASH-элементов
  • Вёрстка шаблонов и страниц
  • Оптимизация и размещение материалов сайта
  • Тестирование и внесение корректировок
  • Открытие проекта на публичной площадке
  • Обслуживание работающего сайта или его программной основы

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

Основные профессии

Нередко веб-специалисты совмещают в себе сразу несколько специальностей.

Литература

  • Марко Беллиньясо. Разработка Web-приложений в среде ASP.NET 2.0: задача — проект — решение = ASP.NET 2.0 Website Programming: Problem — Design — Solution. — М.: «Диалектика», 2007. — С. 640. — ISBN 0-7645-8464-2
  • Олищук Андрей Владимирович. Разработка Web-приложений на PHP 5. Профессиональная работа. — М.: «Вильямс», 2006. — С. 352. — ISBN 5-8459-0944-9
  • Гото Келли, Котлер Эмили. Веб-редизайн, 2-е издание. — СПб.: «Символ-Плюс», 2006. — С. 416. — ISBN 5-93286-082-0

Ссылки

Категории:
  • Всемирная паутина
  • Веб-разработка

Wikimedia Foundation. 2010.

  • Союз Т-11
  • Китаб

Смотреть что такое «Веб-разработка» в других словарях:

  • Веб-сайт — Запрос «сайт» перенаправляется сюда; см. также другие значения. Веб сайт (от англ. website: web  «паутина», «сеть» и site  «место», букв. «место в сети») или просто сайт  в компьютерной сети объединённая под одним адресом (доменным …   Википедия

  • Разработка веб-сайтов — Веб разработка процесс создания веб сайта или веб приложения. Термин включает разработку приложений электронной коммерции, веб дизайн, программирование для веб на стороне клиента и сервера, а также конфигурирование веб сервера. Содержание 1… …   Википедия

  • Веб-разработчик — Веб разработка процесс создания веб сайта или веб приложения. Термин включает разработку приложений электронной коммерции, веб дизайн, программирование для веб на стороне клиента и сервера, а также конфигурирование веб сервера. Содержание 1… …   Википедия

  • Разработка — может означать: Процесс проектирования и конструирования изделия (см. Разработка нового продукта и Разработка с общедоступными наработками) Итеративная разработка Разработка алгоритмов Разработка программного обеспечения Разработка приложений для …   Википедия

  • Веб-портфолио — У этого термина существуют и другие значения, см. Портфолио. Веб портфолио (веб портфель, web portfolio)  это веб базированный ресурс, который отражает рост учебных или профессиональных достижений владельца. Веб портфолио школьника и… …   Википедия

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

  • Веб-приложение — Веб приложение  клиент серверное приложение, в котором клиентом выступает браузер, а сервером  веб сервер. Логика веб приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен… …   Википедия

  • Веб-приложения — Веб приложение клиент серверное приложение, в котором клиентом выступает браузер, а сервером веб сервер. Браузер может являться реализацией так называемых тонких клиентов. Браузер способен отображать веб страницы и, как правило, входит в состав… …   Википедия

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

  • Веб-мастер — Веб мастер  человек, занимающийся разработкой веб сайтов в Интернете или корпоративных приложений в интернете. Веб мастер  это «управляющий» сайтом. В зависимости от размера коллектива разработчиков, он может объединять в себе… …   Википедия

Книги

  • Веб-разработка Исчерпывающее руководство, Макдональд М.. Можно без труда создать добротный веб-сайт, вооружившись обычным компьютером и некоторыми амбициями. Хотите сделать собственный блог, интернет-магазин, форум, ресурс с рекламой мероприятия?… Подробнее  Купить за 1585 руб
  • Javascript и jQuery. Интерактивная веб-разработка, Дакетт Джон. Эта книга предназначена для веб-дизайнеров и программистов, контент-менеджеров и редакторов контента, маркетологов и менеджеров по электронным продажам, блогерови любителей. Мы не только… Подробнее  Купить за 1029 грн (только Украина)
  • Веб-разработка с применением Node и Express Полноценное использование стека JavaScript, Браун И.. JavaScript— самый популярный язык написания клиентских сценариев. Это основополагающая технология для создания всевозможных анимаций и переходов. Без JavaScript практически невозможно… Подробнее  Купить за 917 руб
Другие книги по запросу «Веб-разработка» >>

dic.academic.ru

Проектирование и разработка веб структуры сайтов и приложений: основные правила

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

Приложение и сайт: есть ли разница в структуре

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

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

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

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

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

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

Многогранная структура

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

Все, из чего состоит сайт

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

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

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

система управления базой данных. Это компонент web-структуры, который хранит всю необходимую информацию для работы приложения. Новичкам сложно понять, для чего он нужен: можно ведь просто создать папку с нужными файлами и ссылаться на них в коде. Но если бы такой подход использовали при создании ВКонтакте, вы бы увидели этот сайт примерно в 2028 году. К тому же, работал бы он медленно и не всегда корректно. СУБД позволяет не только оперативно работать с готовыми данными, но и постоянно пополнять базу. Наиболее популярными СУБД являются MySQL и MariaDB.

Все эти элементы взаимодействуют между собой при работе веб-приложения. Пользователь при помощи браузера взаимодействует с сервером. Браузер, получив данные от юзера, отправляет соответствующий запрос на сервер. Сервер запрашивает соответствующую программу, которая решает, как поступать с данным запросом. Если ей нужно дать информативный ответ, она вызывает СУБД и получает его. Имея достаточное количество данных, серверная программа генерирует HTML-код и отправляет браузеру для отображения на пользовательском девайсе.

Для каждой из сторон этого процесса характерны свои языки программирования. Для фронтенда это формальные HTML/CSS + JavaScript. Для серверной части все гораздо разнообразнее. По сути, на «бэке» можно использовать любой из языков общего назначения, но, как правило, это PHP, Java, Python, Ruby и С-подобные PL.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Семантическая структура

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

Семантическая структура — единственный из элементов, вид которого нужно подбирать согласно тому, какое предназначение имеет сайт или приложение. К примеру, web-структура интернет-магазина и блога — радикально разные вещи.

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

Наиболее распространенной является древовидная структура. Видели генеалогическое древо? Схема точно такая же, только «родитель» один — главная страница. Здесь все подразделы логически распределены. Такое проектирование наиболее предпочтительно для всех веб-проектов. Даже если у вас простая визитка и несколько ссылок в меню — лучше создавать ее на основе «дерева». Например, у вас сайт тату-салона. Логично будет поделить блоки на мастеров, им дать ссылки на эскизы и работы, а остальные ветки распределить на ценовую политику и отзывы на работу.

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

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

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

Файлы в системе

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

Как вы уже понимаете, здесь находятся различные мультимедийные файлы, которые будет отображать сайт, а также все остальные документы, с которых он состоит. Здесь и HTML/CSS разметка, и клиентские сценарии, с которыми взаимодействуют пользователи.

На самом деле, не существует универсального совета по созданию толковой структуры для сайта. Но некоторым принципам все же нужно следовать. Для начала необходимо распределить данные по категориям. Не стоит хранить музыкальное оформление, иллюстрации и видеоролики в «корне» вместе с index.html. Будет намного лучше, если для каждого вида данных вы создадите отдельную папку. Еще лучше, если внутри таких папок вы создадите еще и подвиды.

При проектировании приложения становится понятно, что все изображения нельзя хранить в одном месте. Некоторые из них вы будете использовать при создании «каркаса» продукта. Сюда входят фоновые изображения, логотип, «менюшки», если они нарисованы, и прочее. Также будут и «контентные» изображения. К примеру, для оформления статьи — фотографии создателя и прочие иллюстрации.

Толковая web-структура отличается также и тем, что имена папок и файлов в ней несут смысловую нагрузку. Ни к чему называть каталог «one» и помнить его содержание. Если есть возможность разгрузить голову — сделайте это. Тем более, если после вас с проектом будет работать другой разработчик. Ему безымянное проектирование доставит немало хлопот. Также стремитесь называть все английскими словами. Русскоязычный человек без труда поймет, что находится в папке predriyatiye. Но для иностранца это будет бессмысленный набор символов, который он не сможет перевести без посторонней помощи.

Структурный помощник

Для человека, который никогда не работал с web-структурой, ее написание кажется непосильным логическим трудом, особенно если есть трудности с объектным мышлением. Но, как уже говорилось в одной из наших статей, выдумка велосипеда — порок веб-разработчика. Если что-то уже написано до вас — лучше использовать это решение (совершенствуйте его!).

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

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

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Смотреть

webformyself.com

Как самостоятельно учиться веб-разработке / PAYSTO corporate blog / Habr

В возрасте двенадцати лет, после того, как я открыл для себя функцию «Сохранить как веб-страницу» в Microsoft Word, я начал осваивать веб-разработку. Вначале я изучил HTML, затем CSS и JavaScript, после чего нахватался по чуть-чуть из PHP и Rails (сегодня мне нравится Meteor). Все эти годы я подумывал о том, чтобы получить формальное образование, и я даже видел в этом некоторые плюсы, однако, в конце концов:

1. Это было слишком дорого.
2. Мне довольно сложно получать образование в формате учебной аудитории.
3. Я уже довольно многого добился на тот момент.

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

1. Ограничить интересную для вас область веб-разработки

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

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

С этой точки зрения, правда, нет универсального решения. После того, как вы познакомились с HTML и CSS, просто выберите то, что вам интереснее. Может быть, нужно узнать, при помощи чего созданы ваши любимые веб-сайты. Вы обнаружите, что почти повсеместно используется Rails, но и программная оболочка JavaScript укрепляет свои позиции. Я работаю с Meteor, так как мне нравятся ее свойства в реальном времени. Ваши соображения при этом не важны. Просто попробуйте следовать собственным интересам, так как лишь это будет поддерживать вашу мотивацию.

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

2. Игнорируйте большинство «руководств» от маститых веб-разработчиков

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

1. Не забывайте, что вы – новичок.
2. От того, кто только начал схватывать основы, требуется слишком многое.
3. Могут присутствовать предпочтения, основанные на проблемах, с которыми вы можете никогда не столкнуться (например, масштабирование на миллионы пользователей).

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

А теперь о том, как я это вижу:

Не имеет значения, начнете ли вы изучать PHP, Rails или JavaScript, или что-нибудь еще. Почему? Потому, что переучиться с одного языка на другой совершенно ничего не значит по сравнению с пропастью между тем, чтобы не быть веб-разработчиком и быть веб-разработчиком.

Есть опытные веб-разработчики с прекрасными советами, однако, когда вам предлагают совет, спросите себя: «А действительно ли это наилучший способ для новичка изучить этот процесс? Или, быть может, это просто разработчик хочет, чтобы новички так научились?»

3. Задайте себе четкое (и выполнимое) задание

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

1. Ощутить радость творения.
2. Обнаружить пробелы в своих знаниях.
3. Изучить действенные способы решения проблем.

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

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

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

4. Стремитесь к четкому дневному графику

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

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

Существует, однако, альтернативный вариант:

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

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

5. Запаситесь достаточным количеством учебных материалов

Возможно, вы видели видеоролик Айра Гласс (Ira Glass), посвященный написанию кода, в котором он заявляет, что люди «делают огромное количество работы».

Эта простая вера ведет к состоянию мастерства, а идея легко применима к веб-разработке. Для того чтобы стать веб-разработчиком, необходимо писать много кода, однако многие люди не осознают, что код не обязательно должен быть собственным. Огромное значение имеет следование коду, взятому из книг, учебных материалов и видеоуроков – например, как на сайте SitePoint и в книгах и курсах с сайтов вроде Learnable.

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

Что не учитывает большинство людей:

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

Учитывая сказанное выше, преимущество от следования указаниям в большом количестве учебных материалов заключается в том, что:

• Вы можете посмотреть, как разные разработчики решают разные задачи.
• Вы можете посмотреть, как разные разработчики решают одинаковые задачи.

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

1. Определения ядра поставленной задачи.
2. Обрисовки в общих чертах того, что требуется для решения этой задачи.

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

Вывод

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

Полезные решения Paysto для читателей Мегамозг:

habr.com

Веб-приложение — Википедия

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

Веб приложения стали широко использоваться в конце 1990-х — начале 2000-х годов.

Существенное преимущество построения веб-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того, чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создаётся один раз для произвольно выбранной платформы и на ней разворачивается. Однако различная реализация HTML, CSS, DOM и других спецификаций в браузерах может вызвать проблемы при разработке веб-приложений и последующей поддержке. Кроме того, возможность пользователя настраивать многие параметры браузера (например, размер шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе приложения.

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

На 2015 год технологию Adobe Flash не поддерживают Chrome, Safari, и другие популярные браузеры.[1]

В связи с архитектурным сходством с традиционными клиент-серверными приложениями, в некотором роде «толстыми» клиентами, существуют споры относительно корректности отнесения подобных систем к веб-приложениям; альтернативный термин «полнофункциональное приложение интернета» (англ. Rich Internet Applications).

Веб-приложение состоит из клиентской и серверной частей, тем самым реализуя технологию «клиент-сервер».

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

Серверная часть получает запрос от клиента, выполняет вычисления, после этого формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.

Само веб-приложение может выступать в качестве клиента других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержимым статей Википедии: множество её участников могут принимать участие в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и не загружая дополнительных исполняемых модулей для работы с базой данных статей.

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

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

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

На стороне клиента используется:

  • Для реализации GUI
  • Для формирования запросов, создания интерактивного и независимого от браузера интерфейса:
  1. ↑ Собственно, ASP.NET vNext и создана для того, чтобы позволить исполнять .NET приложения на любых платформах, а не только на IIS.
  • Марко Беллиньясо. Разработка Web-приложений в среде ASP.NET 2.0: задача — проект — решение = ASP.NET 2.0 Website Programming: Problem — Design — Solution. — М.: «Диалектика», 2007. — С. 640. — ISBN 0-7645-8464-2.
  • Олищук Андрей Владимирович. Разработка Web-приложений на PHP 5. Профессиональная работа. — М.: «Вильямс», 2006. — С. 352. — ISBN 5-8459-0944-9.

ru.wikipedia.org

выбери себе приключение / Авито corporate blog / Habr

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

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

upd — немного дополнил текст до ката.


Предположим, что я и мой друг Валерка решили сделать стартап. Uber for X, или там еще что-нибудь в таком духе. Собрались в баре, обсудили эту идею, клёвая тема. Надо сделать. Три месяца не спали, не ели, не выходили из дома. Разрабатывали. Запустили и поняли, что это никому не нужно.

Печаль. Попробуем еще раз. На этот раз мы изучили рынок, посмотрели, какие потребности у пользователей, какие проблемы. Мы сделали какой-то прототип совсем на коленке, быстро и бесплатно за два вечера. Прототип взлетел. Круто, идем дальше.


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


Язык

По порядку. На каком языке писать? Можно взять модный функциональный: Haskell, Erlang, Lisp (очень модный среди дедушек старше 70). Либо очередного убийцу JS, который очень клевый, компилируется в JS, имеет все нужные фичи. Но скорее всего, нам некого будет нанимать через год, потому что очередной убийца JS не взлетит, и придется переучиваться заново или переписывать проект.

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

Еще варианты? Можно взять Perl, но тогда будет некого нанимать ещё вчера. Ещё?
Java. Java — норм. Как язык не очень, на мой субъективный взгляд, но JVM — отличная виртуальная машина, все ок, быстро работает, но железа все равно нужно много. А ещё пока мы на Java писали абстрактный билдер фабрики стратегий вместо того, чтобы делать фичи, пользователи ушли к конкурентам.

Ладно, у нас есть еще Python. В принципе, у него всё ок. Но мы запускаем приложение на Python, оно использует одно ядро из 56, в остальном… все ок. Либо можно взять что-то современное: Go, Rust, еще что-то. Но они слишком низкоуровневые, и мы просто долго делаем фичи… Какой-нибудь язык нам всё равно придется выбрать. Пусть в итоге это будет JS, сойдет.


База данных

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

Ок, давайте возьмем реляционную базу. MySQL, PostgreSQL, или Oracle, если денег хватит. С реляционными базами можно однажды прийти на работу и обнаружить себя в аду из транзакций и хранимок. Это не обязательно произойдёт с нашим проектом. Но если произойдет, то эти хитросплетения логики будет невозможно тестировать. А ещё если вдруг мы достигнем вертикального предела нашего большого золотого сервера, на котором мы хостим базу, потом будет довольно сложно их разделять. Долго делаем фичи.

Ладно. Базу взяли какую-нибудь, бахнули перед ней ORM, чтобы проще было с одного SQL на другой переезжать. Когда-нибудь (spoiler: никогда).


Архитектура

Какую взять архитектуру? Ребята на Хабре пишут, что микросервисы – это клёво. Олег Бунин говорит: «берите микросервисы».

Если начать с микросервисов, то с восьмидесятипроцентной вероятностью границы у них будут неправильные, потому что не до конца продумали доменную модель и плохо поняли, где надо резать, а где не надо. Плюс все берут микросервисы, деплоят их пачками по всему своему кластеру, и через месяц возникает вопрос: «а как это всё теперь тестировать?». Сервисы уже работают в продакшене, а мы их не тестируем. Используя привычные методологии (пирамида тестирования, ручные интеграционные тесты, end-to-end тесты), тестировать микросервисы сложно. Поэтому мы долго делаем фичи.

Ок, тогда давайте бахнем монолит. Это самая правильная идея для стартапа. Очень долго можно жить с отличным монолитом и не иметь проблем. Но если мы решим сильно расширить команду, то надо быть осторожнее. Монолит нормально масштабируется, пока разработчиков 20, 30, 50. Дальше скорость доставки фич падает экспоненциально, а мы теряем пользователей.


Где запускать проект?

Это всё надо где-то запускать. 2018 год, самый логичный вариант сделать это в облаке. Запустишь не в облаке — пацаны засмеют. Но, во-первых, есть федеральный закон 152, значительно ограничивающий выбор облачных провайдеров, у которых можно хоститься. Во-вторых, очень легко приватный ключ от своего аккаунта на Amazon случайно закоммитить в Github, и кто-то обязательно придёт и потратит все ваши деньги. А если этого не произойдёт, то в какой-то момент вас разорят облачные тарифы.

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



Разработка

Допустим, мы разобрались с языками, базами и тем, где хостить проект. Настало время набирать команду. Можно взять несколько очень крутых ребят, которые все проблемы решат: стократные разработчики, бэкенд-ниндзи, вы понимаете. Возможно, это прокатит. Но на деле вероятно, что приглашённые звёзды будут:


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

В итоге… да-да, долго делаем фичи. Еще вариант — взять обычных девчонок и ребят, которые просто будут писать код, делать фичи нормально. Но если взять много не очень опытных разработчиков с разным бэкграундом, они могут писать код в разном стиле, делать штуки по-разному, и при достаточном размере команды всем будет тесно, все будут у друг друга фигурные скобочки переставлять в пуллреквестах. Это не очень эффективно. Как это можно решить? Начальник может читать весь код. Я могу читать все пуллреквесты, а мой друг и ко-фаундер Валерка потом второй раз будет перечитывать (на всякий случай, мало ли). Понятно, это не масштабируется и все медленно делают фичи.

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

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


Quality Assurance

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

Плюс еще есть подходы, когда ты минимизируешь mean time between failures вместо mean time to recover. Mean time between failures — это когда QA специалист говорит: «не будем релизить, у меня чутье плохое, баги будут, давайте через две недели выкатим». А mean time to recover — это когда вы катите что-нибудь, сразу видите на метриках, что что-то сломалось, и через две минуты все откатили, пофиксили и все ок. Но чтобы можно было проект через две минуты откатить, надо всё покрыть нормальными метриками, а это не всегда тривиально. А если метрики в плачевном состоянии, и мы выкатим плохой релиз, мы можем узнать об этом после того, как все пользователи уйдут от нас к конкурентам.

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

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

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


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

А ещё — всё это интересно. Интересно решать проблемы, которые уже кто-то решал, новые проблемы еще интереснее решать. Интересно делиться знаниями.

habr.com

[Перевод] Современный веб-разработчик, или 6 вещей, которые вы должны знать, чтобы выжить

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

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

1 – Улучшайте качество кода (JavaScript и CSS)

Если вы не пишете грамотный HTML и CSS, вам не выжить.
  • Изучите все основные возможности JavaScript
  • Затем приступайте к продвинутым возможностям языка
  • Как только вы будете чувствовать себя уверенно в чистом JS ознакомьтесь с языками более высокого уровня абстракции, например CoffeeScript или TypeScript. Совершенствуйте использование необходимых JavaScript библиотек, вот список минимально необходимых:
  • JQuery – Вы ведь уже давно его выучили, да?
  • Require.js — JavaScript загрузчик файлов и модулей.
  • Underscore.js – отличная библиотека утилит
  • modernizr – детектор поддержки возможностей HTML/CSS браузерами.
  • history.js – эмуляция HTML history API, работа с историей браузера.

И вот еще немного:

2 – Создавайте адаптивный дизайн

Сегодня все больше и больше трафика потребляется с помощью мобильных устройств, поэтому большинство веб-сайтов по умолчанию должны выглядеть хорошо на устройствах любого форм-фактора. Если вам как и мне некогда создавать все эти веб-страницы используя media queries, облегчите свою жизнь. Освойте фреймворки адаптивного дизайна.
Адаптивный дизайн (Responsive Web Design, RWD) это подход к веб-дизайну когда сайт разрабатывается чтобы обеспечить оптимальный вид — легкось чтения и навигации без использования увеличения, поворота устройства, и прокрутки — для широкого круга устройств (от монитора до мобильных устройств)

Лично я пользуюсь Twitter Bootstrap и Zurb’s Foundation. Я очень долго работаю с Bootstrap, и приятно удивлен фишками Foundation.

Обязательно к прочтению:


3 – Изучите наиболее полезные JavaScript MVC фреймворки

Станьте первоклассным JavaScript разработчиком. Имеется множество Javascript MVC фреймворков для клиентской части, но выучите хотя бы 5 (Да, по меньшей мере 5). Я собрал для вас стартовую подборку.

Чтобы сравнить и сопоставить их возможности, посмотрите на TodoMVC – очень крутая и полезная штука. Это проект, который создан чтобы помочь вам сделать выбор из зоопарка MVC фреймворков, в зависимости от ваших целей.
4 – Разберитесь в работе REST и HTTP

Вы должны понимать как работают веб-службы Restful и профессионально владеть созданием и управлением серверной частью сайта. К примеру, пользуйтесь Node.js. Если вы используете .NET, начните с Web APIs. Более того, разберитесь как работает REST. Потратьте время на изучение Hypermedia. Не останавливайтесь на теории, выполните несколько примеров. А затем, обьедините ваши знания REST веб-сервисов с одним из упомянутых выше MVC фреймворков, и сделайте какой-нибудь проект с использованием этих технологий. Используйте правильные HTTP запросы.

Обязательно к прочтению:


Эти статьи сойдут для начала. Также, обратите внимание на готовые реализации например Meteor, SignalR.
5 – Будущее за HTML5

Стандарт HTML5 очень динамично развивается, но многое уже утверждено. Наряду с разработкой сайтов, HTML5 предоставляет множество контейнеров (например PhoneGap и т.д.) которые позволяют упаковывать ваши приложения в браузер — контейнеры для мобильный устройств (так называемые гибридные приложения), для распространения их как нативных приложений через привычные каналы дистрибуции.
HTML5 это язык разметки для структурирования и представления контента в сети и явлется основной технологией Интернета. Это пятая ревизия стандарта HTML (создан в 1990 и стандартизирован как HTML4 в 1997) и, по состоянию на ноябрь 2012, находится в разработке.Основной целью является улучшить язык, добавив поддержку современного медиа-контента с сохранением читабельности кода людьми и стабильно распознаваемым компьютерами и др. устройствами (веб-браузеры, парсеры, и т.д.).

Есть много классных статей по HTML5:

Ознакомьтесь с самыми полезными и впечатляющими HTML5 Javascript API и преимуществами языка. Обратите внимание на Web Sockets, Application Cache, Canvas API, Vide/Audio и т.д. Начните для начала с какого-нибудь популярного шаблона, можете использовать для создания шаблонов, например Initializr.
Ищите в этих технологиях то, что вам реально пригодится в работе.
  • Несколько примеров использования возможностей HTML5
  • Пользуйтесь чем-то вроде html5please или CanIUse, они помогут вам быть в курсе последних изменений в стандарте, которые вы можете использовать, для улучшения вашего дизайна.
  • Также, посмотрите, как большие игроки рынка используют HTML5 как платформу для построения кросс-платформенных гибридных приложений — не только для web, а и для десктопов и мобильных устройств.
  • Google Chrome Packaged Applications
  • Firefox OS

6 – Оптимизируйте

Оптимизируйте все, что вы делаете, во время разработки, и по окончании ее.
  • Структурируйте и улучшайте ваш CSS и Javascript код.
  • Пользуйтесь инструментами инспекции кода вашей страницы, и проверяйте производительность JavaScript
  • Google Chrome’s speed tracer
  • YSlow
  • Когда необходимо, мониторьте сетевой трафик, это может понадобиться в любое время – для этого попробуйте инструменты вроде Fiddler
  • Пользуйтесь полезными сервисами, например Screenfly для проверки отображения веб-страницы на устройствах разного форм-фактора
  • Используйте симуляторы, например Ripple чтобы проверить поведение вашего веб-сайта на мобильных устройствах.

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

Перевод статьи Anoop Madhusudanan «Changing Times For Web Developers – 6 Tips You Should Read To Survive»

habr.com

Отправить ответ

avatar
  Подписаться  
Уведомление о