—»     —»   Создаем идеальное приложение
  Раздел: Web-приложения   Нет комментариев  

Создаем идеальное приложение



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

Создаем идеальное приложение

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

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

* Языки программирования (ваши навыки и знания, которые хотите использовать)
* Среда разработки (строительные леса в цифровом коде, которые помогут стандартизировать производство различных частей вашего приложения)
* Корневые библиотеки (встроенные коды, которые уже кто-то создал и проверил их надежность)
* Архитектурный стиль (подходы к интеграции воедино различных частей приложения и его интерфейса)

Распределение задач

Распределение задач является хорошей практикой при создании компьютерных программ: речь идет о подряде на разработку кода нескольких исполнителей так, чтобы задания не перекрывали друг друга. Различные части приложения могут быть написаны на разных языках программирования, причем программистами с разным уровнем навыков. Отдельные части модуля приложения могут иметь различные характеристики – один код может не сильно влиять на всю систему в целом (как, например, инструмент основного товара, «ваш волшебный алгоритм»), тогда как другой способен вносить изменения на регулярной основе, как текст, отображающийся на веб-странице.

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


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

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

Изначально, в сети Интернет при разметке страниц обычно использовали такой язык программирования, как Perl, или собранные программы, как C. Вот школьный пример Perl:

Call acme.com/example.pl to invoke
#!/usr/bin/perl
# example.pl
# business logic / user data
$message='.NET magazine rocks!';
# begin HTML mark-up
print "Content-type: text/htmlnn";
print "<html><head>n";
print "<title>CGI Test</title>n";
print "</head>n";
print "<body>n";
# embed user data
print "Today this site thinks $message";
# finish mark-up
print "</body>n";
print "</html>n";

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

В этом примере, печать сообщения и будет логическим «секретным соусом», из которого и состоит сайт. Код разметки и логика бизнеса смешиваются в единое целое. Если вам нужно сделать какие-нибудь визуальные изменения, например, расположение стола, то, по логике, нужно изменить данные координат стола в таблице, одновременно разработчикам нужно провести в одном скрипте и кодировку и его тестирование. Для этого им нужно время, чтобы одновременно провести такие изменения. (Рисунок 1)

Создаем идеальное приложение
Рисунок 1. В этом примере серверный узел и разметка в HTML объединяются для создания единого кодированного изображения. Таким образом, и те и другие разработчики должны протестировать один и тот же скрипт.

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

Различные компьютерные разработки помогут внедрить модель 'Модель-представление-контроллер' и добиться разделения проблемы на составляющие ее части. Они разделяют логику работы сервера от разметки в HTML на два различных вида кодировок, а также учитывают моменты их пересечения; код фреймворка начинается как часть сервера и управляется общим циклом запрос/ответ. (Рисунок 2).

Создаем идеальное приложение
Рисунок 2. Структура интернет-разработки поможет вам использовать модель 'Модель-представление-контроллер' и добиться разделения проблемы на составляющие ее части.

Если вы работаете на Java, то Apache Wicket на данный момент имеет самый чистый HTML код, который структурирован логически правильно; другие конструкции включают Apache Tapestry и Apache Struts.

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

Интерфейс (Пользовательская часть)

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

Термин «веб-приложение» в последнее время становиться достаточно широким, а огромное количество различных технологий поставит перед вами вопрос, какую из них выбрать. Желаете ли вы создать приложение на широкодоступных стандартах, не ограниченных лицензиями технологиях, таких, например, как Flash? Вы хотите, чтоб оно работало в мобильных приложениях (по всей видимости, да)? Вы хотите совместимое с iOS и Android приложение, чтоб воспользоваться преимуществами таких устройств или использовать стандартный HTML? Должны ли вы приспосабливать приложение для работы в различных типах браузеров или же пользователи сами будут менять браузер, только чтобы воспользоваться вашим приложением?

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

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

Административная часть

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

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

Создаем идеальное приложение
Подумайте над тем, чтобы сделать язык программирования Google’s Go, чтоб он был языком программирования всей базовой системы.

Любой выбор вида языка программирования приемлем при выборе определенных задач, которые вы ставите при разработке приложения. «Традиционные» веб-языки (PHP, Java, .NET, Python) поставляются с многочисленными готовыми структурами программного обеспечения и библиотеками. Однако, некоторые из этих языков, зависимо от их возраста, могут быть достаточно громоздкими.

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

В последние годы наблюдается переход языковых платформ от Java и .NET на такие, как Ruby on Rails и Grails. Для упрощения процесса разработки, они используют «обычную кодировку».

Стратегия интеграции

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

HTML и javascript – в браузерах очень мощные. Вам нужно, например, использовать код javascript для браузера, чтобы подключить Facebook и получать информацию о друзьях и подавать информацию на вашей странице (см. рисунок 3).

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

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

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

Создаем идеальное приложение
Рисунок 4. Интеграция как платформа. Предоставление доступа к API и изоляция интеграционных процессов помогает разделению процессов.

Построение платформы

Для приложения больше не требуется быть единой платформой. Успех Twitter был прежде всего обусловлен не самим сайтом, а платформой, построенной вокруг API. Клиенты Twitter и построенные на нем платформы появились благодаря открытому доступу к его услугам.

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

Такие сервисы как LinkedIn, Twitter и Facebook содержат множество технологических точек, которые могут предоставлять одну и ту же услугу («API»). Доступ может происходить через легкий вход RESTful или через более тяжелые сервисы SOAP (особенно, например, если для безопасного и безотказного взаимодействия требуется использование цифровых сертификатов). Структура данных может меняться: от созданной на основе JSON, до схем визуального воспроизведения XML.

Базы данных и структура

Сердцем вашего сервиса являются его данные. Традиционный подход заключается в использовании системы управления реляционными базами данных (СУБД). Моделирование связи и сущности таблиц баз данных и манипулирование данными SQL само по себе является таковым. Целью СУБД является обеспечение программистов интуитивно понятным взаимодействием с данными и, в то же время, скрыть как данные хранятся и обслуживаются (это в компетенции администраторов баз данных).

Самым популярным открытым ресурсом баз данных является MySQL (mysql.com). Многими его соперниками, такими как IBM DB2, Microsoft SQL Server и Oracle Database предпринимаются усилия стать такими же, как MySQL, что де-факто создает стандарт СУБД для веб-приложений. Facebook больше всего протестирован пользователями, тогда как инженеры Twitter раскрывают информацию о том, как устроена их архитектура программного обеспечения при ведении поиска со встроенным в нем MySQL.

Создаем идеальное приложение
GitHub является одним из самых известных пользователей Ruby on Rails, платформы для веб-приложений, созданной Дэвидом Нейнемеиром Ханссоном на 37signals. Также им пользуются Twitter, Groupon и Basecamp.

Не все ваши данные нуждаются в обработке и управлении СУБД. На самом деле, если у вас много объектов с данными, связанных с пользователем, такие как большие файлы, документы с данными или бинарных объектов в PDF, фото и другие медиа-файлы, тогда стоимость аппаратных средств и обслуживания может стать слишком большой.

Существуют новые подходы для обработки данных веб-приложений. В них нет такой жесткой структуры данных (и взаимодействия между ними), которые предлагают другие решения при работе с большими массивами информации в каркасе приложения. Например, такие базы данных NoSQL как Apache Cassandra - имеет ключи значения для хранилища баз данных, или Apache CouchDB, где сохраняется документационная информация. NoSQL DBs хорош при работе с большим массивом данных, например, для сайтов с высоким трафиком и потоковыми медиа-приложениями.

Когда вам нужно хранить неотформатированные объекты, такие как фото- и медиа-материалы, и вы хотите, чтобы ресурсы сервера использовались эффективно, то стоит рассмотреть технологию файловой системы с высокими распределяющими способностями. Hadoop – это больше чем просто распределяющая файловая система, она была навеяна опытом работы файловой системы Google File и сфокусировалась на файлах, где мало текстовой информации, но часто просматривают большие медиа-объекты, такие как клипы. Hadoop предлагает процесс MapReduce для обработки больших наборов данных, когда это необходимо для функционирования вашего приложения.
При любом подходе по обработке базы данных, вам надо учитывать ту технологию программирования, на которую вы ссылаетесь при хранении и обработке данных. Данные должны быть преобразованы таким образом, чтобы они подходили для рендеринга на веб-странице. Такой процесс должен быть совместим с процессами работы веб-страницы (javascript/JSON) или логикой работы сервера (PHP и т.д.) Установленные по всему миру СУБД будут помогать фреймворкам, в то же время для установки новых NoSQL потребуется использовать больше элементов программирования.

Новые технологии

Необходимо отметить, что новые технологии уже не за горами. Мы уже говорили о росте использования баз данных NoSQL и распределительных файловых систем. Node.js – это следующее поколение в реализации высокой пропускной способности веб-серверов. Поставленный на стороне сервера javascript предлагает модульный подход при создании сетевого каркаса приложения – он помогает использовать большее количество подключений пользователей, чем традиционный Apache или Tomcat, размещая сервера на базе идентичного оборудования. Сейчас пришло время для node.js; другие фреймворки, такие как Netty, создаются вместе с различными протоколами и интегрированными библиотеками.

Создаем идеальное приложение
Cisco’s WebEx использует Apache’s Cassandra для распределения пользовательских потоков активности.

Функциональные языки программирования, такие как Erlang (и такой его гибрид, как Scala), в последнее время используются в основном для управления административной панелью. Утверждается, что такие языки лучше использовать при работе на многоядерных архитектурных моделях сервера, где они будут иметь больше преимуществ, когда разворачиваются в облаке. Часть сайта Twitter располагалась на стандартной структуре Ruby on Rails, а затем перешел на систему Scala.

Можно использовать и другие языки программирования административного ядра, в том числе Google’s Go и X10, которые предназначены для панельного программирования.

Заключение

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

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

Новость отредактировал Design FactoRy - 11 июля 2017, 20:06
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Опубликовал Design FactoRy   Прочитано (раз): 7193   |   Нет комментариев
Автор перевода — CoolWebmasters.Com ©   |   Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Назовите месяц February по-русски
Подтверждение кода безопасности :

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


Конкурсы для школьников
Портал для школьников и учителей
talantoha.ru
Веломастерские в москве
веломастерские в москве
velo03.ru
Купить перчатки аиба
Боксерские перчатки Adidas. Купить по отличным ценам. Доставим завтра
shop.fightclubs.ru
Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Сентябрь 2017    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930