Метка «web-разработка»

Рэми Шарп — создатель таких сайтов: сonfwall, jsbin.com, html5demos.com, responsivepx.com, nodemon, mit-license.org, snapbird.org, 5 minute fork и jsconsole.com! Предлагаю вашему вниманию перевод статьи Реми Шарпа "Почему я люблю работать с вебом"

«Легко значит скучно. Вот почему я люблю веб и браузеры» – автор

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

Круто, конечно, если посетитель использует современный, мощный настольный компьютер. Но так же вероятно и то, что он просматривает веб-сайт с рабочего компьютера, используя старый, встроенный браузер Internet Explorer 8.

Дуглас Крокфорд как-то сказал:

«Веб — это наиболее враждебная среда разработки, которую только можно представить».

И он чертовски прав. Это та враждебность, которая даёт мне доступ в мир. Это та «враждебность», которую я называю своим ежедневным вызовом.

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

Node.js — это платформа, созданная на Chrome's JavaScript runtime для сборки сетевых приложений, нацеленная на простоту использования. Node.js использует событийно-ориентированную, неблокируемую I/O модель, что делает его лёгким, эфективным и идеальным для создания приложений, работающих в реальном времени и на разных устройствах.Читать полностью »

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

  • Настройка серверной стороны веб-сайта.
  • Установка на сервере необходимого программного обеспечения.
  • Разработка макета веб-сайта.
  • Постраничная вёрстка веб-сайта.
  • Настройка вёрстки под мобильные устройства.
  • Установка CMS системы на сервер.
  • Настройка CMS системы.
  • Интеграция дизайна в CMS систему.Читать полностью »

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

image
Читать полностью »

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

Идея: А что если бы был некий единый стандарт, унифицированный файл в корне сайта для указания всех прав заинтересованных сторон и который бы автоматически подхватывался браузером и выводился в удобочитаемом виде?
Читать полностью »

image

Ура! Наконец, это произошло… Как вы уже прочли в заголовке, официально вышла версия Brackets 1.0. Был удивлён, не увидев новости на своём любимом Хабре, и вот, решил сам взяться за перо. Редактор Brackets с открытым исходным кодом (поддерживающийся компанией Adobe) уже не раз упоминался на Хабре (вот пример), хотя многие считали его «пока сыроватым». Я изначально влюбился именно в этот редактор кода (и полностью доволен его официальным релизом).
Читать полностью »

Браузер Google Chrome поставляется с превосходными инструментами для разработчика, они же есть в Яндекс.Браузере, новой Опере, и в других браузерах, основанных на базе Chromium.

Среди них есть потрясающие инструменты для работы с памятью, ознакомиться с которыми можно в статье пользователя Panya«Как находить и устранять утечки памяти на примере Яндекс.Почты».

Javascript хранит объект в памяти до тех пор, пока на него есть хоть одна ссылка. Как только вы удаляете все ссылки на объект, он уничтожается сборщиком мусора.

Таким образом, чтобы удалить объект, нужно удалить все ссылки на него.

Это кажется очень простым, но есть несколько достаточно неожиданных «мест» где могут храниться ссылки на объекты, тем самым задерживая их удаление, и создавая утечку памяти.Читать полностью »

Mojolicious — восхитительный современный веб-фреймворк для Perl. Из недостатков я могу назвать только два: политика в отношении обратной совместимости и документация.

Содержание

  1. Недостатки
  2. Роутинг: внутреннее устройство
  3. Роутинг: настройка
  4. Параметры HTTP-запроса
  5. Парсинг
  6. Tips & Tricks
    1. Поддержка неблокирующих приложений в режиме CGI
    2. Как работает Mojo::UserAgent при тестировании своего приложения
    3. ojo и Mojolicious::Lite
    4. Переменные окружения

Недостатки

В официальном FAQ написано: "… we will always deprecate a feature before removing or changing it in incompatible ways between major releases … as long as you are not using anything marked experimental, untested or undocumented, you can always count on backwards compatibility …". Для начала, вторая фраза противоречит первой. Далее, вот цитата из Guides::Contributing «Features may only be changed in a major release or after being deprecated for at least 3 months.». Честно говоря, 3 месяца это и так смешной срок когда речь идёт об обратной совместимости, но похоже что даже этот срок соблюдается не всегда (поддержку «X-Forwarded-HTTPS» сделали deprecated два месяца назад, а удалили месяц назад — да, это был «major release» поэтому формально правила не нарушены, но общее отношение к обратной совместимости вполне показательно). Как много разработчиков обновляет фреймворк чаще чем раз в 3 месяца, да ещё и при этом тщательно вычитывает Changes или логи своего приложения на предмет deprecated-предупреждений? При этом, в течении последнего года было deprecated примерно 20 функций/фич. На практике, конечно, всё не так плохо, как это звучит — что-то ломается не так уж часто (лично меня за последний год коснулась только замена $app->secret() на $app->secrets()). Но факт остаётся фактом — обратную совместимость ломают, ломают часто, причём без по-настоящему веских причин: например, в случае с secret() абсолютно ничего не мешало добавить в код

sub secret { shift->secrets([shift]) }

либо просто добавить поддержку дополнительных параметров в secret() вместо добавления новой функции secrets() реализовав нужную фичу вообще не ломая совместимость.

Что касается документации, то многие считают её отличной, даже одним из серьёзных достоинств Mojolicious, но никак не недостатком. Проблема с документацией в том, что она вся сосредоточена на примерах. Это реально круто, когда ты начинаешь изучать фреймворк. Это экономит кучу времени, когда тебе нужно сделать фичу и ты быстро гуглишь пример аналогичной фичи в официальных guides. Но как только ты выходишь за рамки стандартных задач и возникает необходимость понять, как что-то устроено идеологически или архитектурно, какие конкретно параметры может принимать эта функция и что конкретно она может возвращать в разных ситуациях — выясняется, что для многих модулей Mojolicious такая документация отсутствует в принципе. И не потому, что эта информация относится к «недокументированным возможностям» — почти всё это мельком упоминается здесь и там в разных примерах, а значит считается «документированным». Нередко есть несколько способов получить доступ к определённым данным (параметры запроса, тело ответа, etc.) но не описано чем они друг от друга отличаются и в каких ситуациях правильнее пользоваться какими способами. И последнее — алфавитный порядок функций в доке, серьёзно?! Нет, я понимаю, все люди разные и кому-то наверняка это удобно, но многим всё-таки на порядок проще воспринимать документацию в которой функции сгруппированы по задачам. (Хотя в коде, особенно при чтении его через браузер, где не так удобно пользоваться поиском как в Vim, алфавитный порядок функций неожиданно оказался довольно удобным — кроме new/DESTROY/AUTOLOAD — их всё-таки лучше размещать в начале.) В результате, чтобы разобраться приходится вычитывать код (некоторые предпочитают вместо этого смотреть тесты!), что не так просто — во-первых он не является эталоном читабельности: автор любит использовать фишки перла, которые позволяют писать код компактно (и нередко такой код быстрее работает), но читабельность это ухудшает; во-вторых активное использование и наследования и обмена событиями между объектами усложняет понимание того, что и как происходит внутри 104 классов, из которых состоит Mojolicious-5.

С проблемой обратной совместимости мы мало что можем сделать (хотя, наверное, можно сделать плагин к Mojolicious, который будет её эмулировать по мере возможности). Зато вторую проблему решить не сложно — недостающую документацию можно написать самостоятельно. По мере изучения Mojolicious я планирую описывать некоторые вещи, которые, по-хорошему, должны быть в официальной документации, отсюда и название этой статьи.
Читать полностью »

20 сентября 2014 в Москве пройдет международная конференция Meet Magento Russia.

image

Конференция посвящена самой популярной платформе электронной коммерции в мире — Magento Commerce, на базе которой построены магазины таких мировых брендов как Gant, Paul Smith, 20th Century Fox, Mothercare, Harper’s BAZAAR, Nike, Philips, Auchan, Olympus, Tool King, Angry Birds, Men's Health.
Читать полностью »

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