Рубрика «Веб-разработка» - 70

Это реальная история, случившаяся с нашим сайтом во время празднования Дня Благодарения.

Сайт перестал работать внезапно, ничего не предвещало такого оборота.

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

Привет!

image

Речь пойдёт об облаках, одноранговых сетях, web технологиях, анонимности и защищённости данных в сети.
Читать полностью »

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

FutoIn — с одной стороны, это «клей» из стандартов/спецификаций разных мастей для унификации программных интерфейсов различных существующих проектов по устоявшимся типам, с другой — это концепция для построения и масштабирования компонентов проекта и инфраструктуры, написанных на разных технологиях, без потребности в добавления этого самого «клея».

AsyncSteps — это спецификация и реализация программного интерфейса для построения асинхронных программ в независимости от выбранного языка или технологии.

Цели, поставленные для концепции:

  • реализация (с оговорками) должна быть возможна на всех распространённых языках программирования с поддержкой объектов и анонимных функций. Репрезентативный минимум: С++, C#, Java, JavaScript, Lua (не ООП), PHP, Python;
  • написанная программа должна легко читаться (сравнимо с классическим вариантом);
  • должны поддерживаться исключения языка (Exceptions) с возможностью перехвата и разворачиванием асинхронного стека до самого начала;
  • требуется удобство для написания асинхронных библиотек с единым подходом для вызова, возврата результата и обработки ошибок;
  • предоставить простой инструмент для естественного распараллеливания независимых веток программы;
  • предоставить простой инструмент создания асинхронных циклов с классическим управлением (break, continue) и меткой для выхода из вложенных циклов;
  • предоставить место для хранения состояния исполняемой бизнес-логики;
  • возможность отменять абстрактную асинхронную задачу, правильно завершая выполнение (освобождая внешние ресурсы);
  • возможность легко интегрироваться с другими подходами асинхронного программирования;
  • возможность ограничивать время выполнения задачи и отдельно каждой подзадачи;
  • возможность создавать модель задачи для копирования (улучшения производительности критичных частей) или использования как объект первого класса для передачи логики в качестве параметра (а-ля callback);
  • сделать отладку асинхронной программы максимально комфортной.

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

image
День 18 ноября 2014 года стал датой публичного релиза редактора Optimizely’s для iOS. Это было весьма значимым событием, так как релиз ознаменовал собой окончание многомесячного публичного бета-тестирования, на протяжении которого сотрудники компании получили массу пользовательских отзывов, в соответствии с которыми занимались внедрением множества недостающих функций (о том, как зарабатывать на продукте или сервисе до его запуска — здесь). Но до момента запуска приложения оставалась одна проблема, в процессе решения которой сплотилась вся команда: они не чувствовали гордости за свой продукт. Для исправления этой проблемы ребята и вышли за рамки концепции MVP (англ.: «Minimum Viable Product» — «Минимально жизнеспособный продукт»), расширив её до MVPP: «минимально жизнеспособный продукт, которым мы гордимся» (англ.: «Minimum Viable Product we’re Proud of»). Ниже — история о том, как все это было, чему сотрудники из Optimizely научились по ходу работы, а также — советы по разработке, которые должны помочь читателям создавать классные продукты. Советы с точки зрения тех, кто только что прошёл этот путь.Читать полностью »

От редактора Smashing Magazine:

На прошлой неделе Microsoft сделала самое значимое объявление для веба с тех пор, как в 1995 году запустила Internet Explorer: новый браузер под кодовым названием “Project Spartan”. Что это означает для нас, как разработчиков и дизайнеров? Какой движок рендеринга будет использовать Spartan и как он будет влиять на нашу работу? Мы поговорили с Джейкобом Росси, старшим инженером в команде веб-платформы Microsoft о новом браузере, используемом движке рендеринга и о том, заменит ли он в последствии Internet Explorer. Эта статья, написанная Джейкобом, является результатом нашего обсуждения и проливает свет на некоторые аспекты браузера, которые могут быть вам полезны.

Подробности о новом движке рендеринга Microsoft для «Project Spartan» - 1
Project Spartan, новый браузер от Microsoft, официально объявленный на прошлой неделе.

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

Эта статья рассказывает внутреннюю историю движка рендеринга Spartan: как он появился и как 20-летняя история платформы Internet Explorer (Trident) помогла нам определиться с подходом к его проектированию.
Читать полностью »

Существуют разные подходы для организации sass-архитектуры, какую бы вы не выбрали, главное, чтобы она была.

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

Bem, Smacss, Oocss, Organic-css должны давать вам гибкость мысли, чтобы построить свой проект.
Читать полностью »

Первые конструкторы появились около 15 лет назад. Не так давно, но и не недавно, учитывая, что первый сайт появился в девяносто первом. С тех пор они претерпели немало изменений и сейчас большинство конструкторов работают по SaaS модели (англ. Site as a Service — сайт как сервис/услуга). Это значит, что сайт можно создать с помощью веб-приложения, которое разрабатывается и поддерживается поставщиком услуг, который сам следит за его работоспособностью и занимается обновлением ПО и оборудования. Поддержание работоспособности системы, техническая поддержка и иногда некоторые другие работы входят в оплату, которая обычно взимается с клиентов помесячно. При этом конечный пользователь не приобретает лицензию на программу, что позволяет ему значительно сэкономить. Но при этом нужно понимать, что конструктор – это, по сути, аренда сайта, а не его покупка.

Эволюция SAAS конструкторов сайтов - 1
Читать полностью »

Аннотация

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

С PHP дело обстоит сложнее: уже писали про статический анализ PHP кода, но в целом инструментарий тут гораздо беднее, и динамическая природа языка делает процесс разработки-тестирования сложнее. Для сравнения, в той же Java компиляция проекта сама по себе помогает найти ошибки, а в PHP типизация слабая, поэтому даже тесты могут пропустить ошибки.
Читать полностью »

Сегодня Rob Eisenberg представил свой JavaScript-фреймворк.

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

LessПримерно полгода назад я прочитал статью «Почему стоит использовать препроцессоры». В ней автор описывает преимущества препроцессоров на примере реализации кастомных кнопок. Статья оказалась познавательна и очень интересна. Автор приводил в примеры разные препроцессоры и объяснял, почему остановился на Sass. На счет цвета карандашей и вкуса я не в праве спорить, у каждого свои взгляды. Но еще тогда мне показались не справедливыми описания о том, что Less не достаточно мощный. Еще тогда хотелось сделать что-то подобное, воплотить идею автора на других препроцессорных языках (Less, Stylus). На момент прочтения статьи времени что-то сделать свое не было. И вот недавно, в один из выходных, я вспомнил об этой статье и решил реализовать идею автора — только средствами Less. Делать что-то новое я не видел смысла, поэтому решил помочь автору в развитии проекта, сделал форк с его репозитория, проделал необходимую работу и создал pull request.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js