За несколько лет, читая новости и события в мире Web разработки, у меня нарисовалась розовая мечта: написал один раз — работает везде и всегда. При этом очень часто встречаю негативные отзывы о разработке мобильных приложений на HTML5 ( тут и комментарии на статьи 1 и 2 ). Основные доводы бастующих: несоответствие родному интерфейсу, глючность и тормознутость, проблемы с хранением данных и тд и тп. Ни в коем случае не хочу запустить очередные холи вары на эту тему. Но мечта живет и ее можно подтвердить или отвергнуть только после собственного наступления на грабли.
Итак, цель – написать на HTML5 мобильное приложения для сбора заказов торговым агентом в торговых точках. Я сталкивался с данными решениями разных компаний, поэтому знаком с предметной областью, и эта тема идеально подходит для мечты.
Читать полностью »
Рубрика «Веб-разработка» - 207
Мобильное приложение HTML5: ошибка или успех. Попытка №0
2013-07-02 в 13:37, admin, рубрики: .net, breeze, javascript, odata, PhoneJS, Веб-разработка, метки: breeze, odata, PhoneJSАрхитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть первая
2013-07-02 в 8:40, admin, рубрики: badoo, nginx, php, php-fpm, pinba, web-разработка, архитектура приложений, баду, Блог компании Badoo, бэкап, Веб-разработка, высокие нагрузки, Программирование, метки: badoo, nginx, PHP, php-fpm, pinba, web-разработка, архитектура приложений, баду, бэкап, высокие нагрузкиНекоторое время назад зам.главы московского офиса разработки Badoo Алексей Рыбак и ведущие IT-Компот записали выпуск подкаста «Архитектура высоконагруженных приложений. Масштабирование распределенных систем".
Сейчас мы сделали расшифровку подкаста, привели ее в удобный для чтения вид и разбили на 2 части.
О чем говорили в первой части:
- Общая информация о проекте Badoo: стек технологий, характер и объем нагрузки, посещаемость.
- Горизонтальное масштабирование проекта:
— веб-сервера, кеширование, мониторинг etc;
— подводные камни при масштабировании проекта;
— масштабирование баз данных, как правильно делать шардинг.
Ещё один пример использования замыканий в PHP
2013-07-02 в 7:00, admin, рубрики: php, Веб-разработка, замыкания, транзакции, метки: PHP, замыкания, транзакции На Хабре уже было несколько статей с примерами использования замыканий в PHP. Некоторые из них были достаточно абстрактными, некоторые нет. Я приведу ещё один способ применения замыканий в реальных условиях.
Читать полностью »
Единая облачная PaaS-платформа для ASP.NET, PHP, Node.js и Python
2013-07-02 в 5:26, admin, рубрики: ASP.NET, bitbucket, Git, github, Mercurial, node.js, php, python, tfs, web sites, windows azure, Блог компании Microsoft, Веб-разработка, метки: ASP.NET, bitbucket, Git, github, mercurial, node.js, PHP, python, tfs, web sites, windows azureВ этой статье мы поговорим про анонсы и коммерческую доступность сервиса Windows Azure Web Sites.
Windows Azure Web Sites
Windows Azure Web Sites — это сервис предназначенный для быстрого создания новых или размещения существующих веб-приложений в надежном, масштабируемом облачном окружении.
Ключевыми особенностями Windows Azure Web Sites являются:
- Поддержка разнообразных платформ и языков программирования для размещения веб-приложений;
- Непрерывная интеграция со службами и системами контроля версий;
- Публикация готовых приложений, фреймворков и CMS за две минуты из галереи шаблонов;
- Масштабирование по требованию и автоматическое масштабирование вычислительных ресурсов на основе заданных правил;
- Подробные мониторинг, ведение логов и диагностика через панель администрирования;
- Удобное конфигурирование, поддержка SSL, привязка собственных доменов, поддержка 32 и 64-битного размещения;
- Гибкое ценообразование: бесплатный тариф, быстрое масштабирование сайта на другие тарифы при росте приложения.
Построение масштабируемых приложений на TypeScript — Часть 2.5. Работа над ошибками и делегаты
2013-07-01 в 21:19, admin, рубрики: Events, generic, javascript, TypeScript, Веб-разработка, Программирование, метки: delegaте, Events, generic, TypeScript Часть 1: Асинхронная загрузка модулей
Часть 2: События или зачем стоит изобретать собственный велосипед
К сожалению, московская жара серьезно повлияла на мою внимательность во время написания второй части статьи, что привело к одной неприятной ошибке — неправильной типизации параметров обобщенного класса событий, которую призван исправить данный пост.
Но просто написать работу над ошибками было бы не интересно. К счастью, процесс ее исправления сам по себе подкинул пару интересных находок и мыслей, которые я хотел бы вынести на суд сообщества.
Итак, мой WinAmp играет коллекцию хитов Ozzy Osbourne, а всех интересующихся прошу под кат.Читать полностью »
Riak-js. Основы использования и трудности поиска
2013-07-01 в 19:17, admin, рубрики: json, map reduce, node.js, nosql, riak, search, баги, Веб-разработка, метки: json, map reduce, node.js, riak, search, багиMeta
Доброго времени суток!
В данный момент я работаю над достаточно большим проектом, состоящим из нескольких модулей, и использующий разные технологии. Но сам сайт, а точнее его back-end написан целиком на Node.js, а Riak является основным хранилищем. Ничего не буду писать про сам Riak, на хабре и так есть отличная обзорная статья.
Как и для любой другой NoSQL базы данных, чтобы интегрировать функциональность БД в Node.js вам необходимо использовать драйвер или клиент этой базы данных, кому как нравится называть. Вам это надо для удобства пользования и составления запросов к БД, конечно вы можете это делать и напрямую, используя незатейливую команду curl.
Сразу хочу оговориться, что клиенты или драйвера для различных NoSQL БД называют по-разному, я же буду говорить или как об ORM или как о клиенте конкретной ДБ. Кстати, имено так о себе и пишут в Riak-js репозитории:
Node.js client for Riak.
Вот некоторые, а возможно что и все Node.js клиенты для riak
- riak-js — используемый в нашем проекте
- Simpleriak
- Riak-PB — использует protobuff, может быть немого быстрее
Из-за незначительного опыта работы с последними двумя, сказать мне вообщем-то про них нечего, поэтому дальше речь пойдет только riak-js.
Особенности npm и хранение node_modules в git
2013-07-01 в 9:16, admin, рубрики: Git, javascript, node.js, npm, web-разработка, Веб-разработка
Для управления зависимостями в проекте, node.js, как и многие другие платформы, предоставляет собственный пакетный менеджер — npm. И несмотря на то, что он внешне похож, например, на Ruby Gems, и вроде бы выполняет те же самые функции, npm обладает некоторыми особенностями, которые стоит учитывать при разработке приложений на node.js. Одна из таких особенностей — это способ хранения директории node_modules в проекте. Многие, по аналогии с другими системами, оставляют в проекте только package.json с зафиксированными версиями модулей, а node_modules добавляют в .gitignore. Такая стратегия не всегда верна, если мы обратимся в FAQ на npmjs.org, то увидим там следующее:
Q: Стоит ли хранить node_modules в git?
A: Mikeal Rogers очень хорошо ответил на этот вопрос:
http://www.mikealrogers.com/posts/nodemodules-in-git.html
tl;dr
- Храните node_modules в git для проектов, которые требуется разворачивать, таких как вебсайты и приложения.
- Добавляйте node_modules в .gitignore для библиотек и повторно используемых модулей.
- Используйте npm для управления зависимостями в dev окружении, но не в скриптах используемых для деплоя.
Под катом перевод статьи Mikeal Rogers, в котором подробно описывается, с чем связан такой непривычный подход.
Читать полностью »
Когда встроенного MVC не хватает
2013-07-01 в 5:11, admin, рубрики: django, python, Веб-разработка, динамическое программирование, фреймворки, метки: Django, python, динамическое программирование, фреймворкиОдним из главных преимуществ фреймворков является их предопределённая архитектура. Открываешь незнакомый проект и сразу знаешь, где и как искать код связи с БД, или HTML, или схему url. Кроме того, она позволяет разработчику не задумываться над структурой хранения кода и при этом быть уверенным, что проект будет выглядеть более менее адекватно. Но хочу рассказать о случае, когда реализация MVC в Django, а именно распределение логики по файлам models, forms, views, templates оказалась неудобной и какую на её основе построили альтернативу.
Встала у нас задача сделать движок для статистической отчетности на Django. Мы создали селекторы для получения данных из Oracle и виджеты для отображения этих данных в виде таблиц или графиков (с помощью HighChart). Но это всё чисто технологические решения, без особой магии. Если появятся интересующиеся, расскажу в отдельном посте. А сейчас хотелось бы обратить внимание на более необычную часть проекта. На предоставление составителям отчетов удобного способа эти отчеты составлять.
Читать полностью »
Построение масштабируемых приложений на TypeScript. Часть 2 — События или зачем стоит изобретать собственный велосипед
2013-06-30 в 18:12, admin, рубрики: javascript, TypeScript, Веб-разработка, события, метки: javascript, TypeScript, событияВ первой части статьи я рассказывал об асинхронной загрузке модулей при помощи Require.js и стандартных языковых средств TypeScript. Неосторожно я раньше времени задел тему организации работы с абстрактными событиями о чем мне очень быстро напомнили в комментариях. В частности был задан вопрос зачем придумывать собственный велосипед, если существует давно проверенный и отлично работающий Backbone.Events и/или прочие аналоги.
Если вас интересует ответ на этот вопрос, альтернативная реализация на TypeScript и не пугает чтение кода, то прошу под кат.Читать полностью »
Дайджест интересных новостей и материалов из мира PHP за последние две недели №20 (18.06.2013 — 30.06.2013)
2013-06-30 в 18:06, admin, рубрики: codeception, laravel, phalcon, php, php 5.5, php.net, phpunit, PuPHPet, silex, symfony 2, wordpress, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: codeception, laravel, phalcon, PHP, php 5.5, php.net, phpunit, PuPHPet, silex, symfony 2, wordpress, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »