Skip to Content

Мокирование в приложениях web mvc

Другие статьи по юнит-тестированию:

Проекты с примерами из статьи:

Зачем нужны моки
Юнит-тестирование класса, работа которого не зависит от поведения других классов — несложная задача. Мы можем написать что-то вроде:

assertEquals(4, calculator.add(2, 2));

Но приложение web mvc, как правило, состоит из нескольких независимых слоев:
Архитектура MVC-приложения

Читать далее

Проекты. Система тестирования «Мои достижения»

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

  • За полгода работы сервиса учениками школ пройдено более 20 тыс. тестов.
  • В сервисе содержатся тесты для каждого с 1 по 11 класс средней школы. Охватывается от 3 до 10 школьных предметов для каждого класса.
  • В системе реализована подробная аналитика. Сервис отражает результат каждого тестирования, показывает прогресс по каждому предмету, подробно — более, чем по 50 элементам — показывает уровень освоения материала по предмету.
  • В системе реализован специальный модуль для организации онлайн видеоконференции между учеником и экспертом Московского центра качества образования. Ученик и эксперт могут совместно работать с тестом, просматривая, обсуждая и внося правки в ответы.

Хочу работать на таких проектах.

Читать далее

Коллекции в .NET

Коллекции – структуры данных для работы с наборами однотипных объектов.

Когда решается, какую именно структуру использовать для хранения или передачи коллекции, стоит подумать о следующем:

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

Читать далее

AbstractCalendar.JS. Когда нужно больше, чем Datepicker

В некоторых проектах возникает необходимость разработать календарь с необычным функционалом или дизайном. Чтобы сделать это, можно использовать готовые компоненты (например, jQuery UI Datepicker), либо писать код календаря с нуля. Для упрощения такой задачи можно использовать утилиту AbstractCalendar.JS.

Читать далее

Автоответчик в Gmail, Яндекс.Почта и Mail.ru

Современные почтовые веб-клиенты предоставляют обширные возможности автоматической обработки входящей почты. Одной из таких возможностей электронной почты является автоответчик. В данной статье мы расскажем как сделать автоответчик на все входящие письма и для конкретных адресов в трех самых популярных почтовых веб-клиентах: Google mail (Gmail), Яндекс.почта (Yandex) и Mail.ru.

Gmail

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Яндекс.Почта

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Mail.ru

Автоматические ответы на все входящие письма
Автоматические ответы на входящие письма от конкретных адресатов
Полезно знать

Читать далее

Что такое Elm? Часть 2 — архитектура

elm

Архитектура Elm

В предыдущей части мы познакомились с синтаксисом и основами языка. Теперь посмотрим, как строятся приложения, написанные на Elm.

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

Elm предоставляет для этого модуль Html.App. Для более легкого понимания, напишем небольшое приложение.

Читать далее

Ускорение приложений Angular с помощью ручной генерации HTML-кода

angularjs_logo-svg

Другие статьи по AngularJS:

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

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

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

Читать далее

FAQ по Skype: 25 секретов эффективной работы в Skype

В статье собран минимально необходимый набор полезных советов, нюансов и приемов, позволяющих эффективно использовать Skype — самый популярный инструмент корпоративного общения.

Skype для опытных пользователей

Как отключить рекламу в Skype?
Как написать текст жирным?
Как написать текст курсивом?
Как отобразить зачеркнуть текст?
Как показать историю сообщений в групповом чате для новых участников?
Как перенести историю сообщений Skype на другой компьютер?
Как общаться с теми, кто не зарегистрирован в Skype?
Skype из браузера

Полезно знать каждому

Как быстро вставить снимок экрана в сообщение?
Как создать групповой чат в Skype?
Демонстрация экрана — главная возможность Skype
Как отредактировать сообщение?
Как очистить историю сообщений по ВСЕМ контактам?
Как очистить историю сообщений по ОДНОМУ контакту?
Как не сохранять историю сообщений?
Все актуальные скрытые смайлы Skype
Как удалить Skype-аккаунт?

Хитрости и нюансы в Skype

Как понять, что собеседник пишет вам с телефона?
Как не показывать, что вы набираете текст?
Нюансы при установке Skype
«Скрыть беседу» — как это работает и для чего полезно?
Как восстановить историю сообщений в Skype?
Как сменить пароль в Skype?
Как обновить Skype?
Будьте внимательны: отправка файлов через Skype

Читать далее

Что такое Elm? Часть 1 — основы

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

  • Отсутствие ошибок в рантайме. В отличие от JavaScript, код, написанный на Elm, не выдает рантайм ошибок. Elm использует выведение типов для обнаружения проблем во время компиляции и выдает дружелюбные подсказки. Таким образом, ошибки никогда не доходят до конечного пользователя. В NoRedInk написано 36 тысяч строк на Elm, и за год промышленной эксплуатации код ни разу не упал в рантайме.
  • Высокая производительность. Elm использует собственную реализацию виртуальной DOM, ориентированную на простоту и скорость. Все значения в Elm иммутабельны, и бенчмарки показывают, что это выгодно сказывается на генерации действительно быстрого JavaScript кода:

Читать далее

Заметки по ускорению Angular-приложений

angularjs_logo-svg

Другие статьи по AngularJS:

AngularJS — один из популярных JS-фреймворков. В его основе — шаблонизация и 2-way data binding. В Angular-приложениях поддерживается модульность, из коробки работает клиентский роутинг.

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

Существует множество способов оптимизации приложений Angular. Здесь я попробую перечислить самые популярные их этих способов и сравнить их.

Читать далее