Тег "веб разработка"

Паттерны для масштабируемых JavaScript-приложений ч.3

Мозговой штурм

Давайте немного подумаем, что мы хотим получить.

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

Для примера, у нас есть JavaScript-приложение, отвечающее за онлайн-пекарню. Одно из интересных нам сообщений может быть таким: «Партия из 42 батонов готова к доставке».

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

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

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

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

Читать дальше

Шаблон простого приложения

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

Читать дальше

Установка

Есть два способа, которыми Вы можете установить Yii:

  • С помощью Composer (рекомендуется)
  • Скачать шаблон приложения, содержащий в себе все зависимости, включая сам Yii фреймворк

Установка с помощью Composer

Рекомендуемый способ установки Yii, это использование пакетного менеджера Composer. Если у Вас не установлен Composer, можете скачать его по ссылке http://getcomposer.org/, или выполните следующую команду для скачивания и установки:

curl -s http://getcomposer.org/installer | php

(Строго рекомендуется выполнить глобальную установку Composer).

Если возникнут проблемы или Вам потребуется более детальная информация по установке Composer, обратитесь к официальному руководству:

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

В настоящее время, доступны два шаблона приложения Yii:

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

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

Читать дальше

Обновление с Yii 1.1

Между версиями 1.1 и 2.0 существует много различий, так как Yii был полностью переписан для версии 2.0. Таким образом, обновление с версии 1.1 не является таким же тривиальным как обновление между минорными версиями. В данном руководстве приведены основные различия между двумя версиями.

Если прежде вы не использовали Yii 1.1, вы можете сразу перейти к разделу «Начало работы».

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

Читать дальше

Что такое Yii

Yii - это высокопроизводительный, компонентный PHP фреймворк, предназначенный для быстрой разработки современных веб-приложений. Название Yii (произносится как Йии или [ji:]) на китайском языке обозначает простой или эволюционный. Yii, можно также расшифровать как акроним Yes It Is!

Для каких задач больше всего подходит Yii?

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

Читать дальше

Подробное руководство по Yii 2.0

Это руководство выпущено на условиях документации Yii.

Введение

Установка

Читать дальше

Паттерны для масштабируемых JavaScript-приложений ч.2

Давайте обсудим вашу существующую архитектуру

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

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

Читать дальше

Паттерны для масштабируемых JavaScript-приложений ч.1

Перевод статьи Эдди Османи "Patterns For Large-Scale JavaScript Application Architecture"

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

Вы можете скачать эту статью в форматах: epub, mobi, fb2 и pdf.

Оглавление

Читать дальше

Создание клиентского MVC приложения с помощью RequireJS

Как веб-разработчик, вы, наверное, часто писали код JavaScript в одном файле, и, когда количество кода становится все больше и больше, его трудно поддерживать. Для решения этой проблемы вы можете разделить свой ​​код на несколько файлов, добавить дополнительные теги script и использовать глобальные переменные для доступа к функциям, объявленным в других файлах. Но это загрязняет глобальное пространство имен и для каждого файла дополнительный запрос HTTP снижает пропускную способность, что увеличивает время загрузки страницы.

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

В этой пошаговой инструкции вы узнаете, как построить простое MVC (Model - View - Controller) приложение с помощью RequireJS. Вам не потребуются какие-либо предварительные знания в загрузке скриптов, основы мы рассмотрим в этой статье.

Читать дальше

Авторизация