Метка «перевод» - 15

BADLAND был запущен 4 апреля 2013 на App Store для iPad, iPhone и iPod touch. С тех пор было продано более 100 000 экземпляров. Сыграйте в эту игру (iTunes link) или посмотрите трейлер, прежде чем продолжить чтение — так вы получите более полную картину об игре, про которую я собираюсь рассказать. BADLAND была создана нашей инди-компанией, называемой Frogmind и состоящей из двух человек. Это наша первая игра на iOS и в ней используется последняя версия cocos2d-iphone 2.1 наряду со множеством других open source библиотек.


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

Это 3 часть серии «Понимание ненавязчивой валидации в ASP.Net MVC».

О чем мы поговорим в этой статье:

  • Метод «parse»
    • секция «parceElement»
      • объяснение параметра «skipAttach»
      • объяснение функции «parceElement»

    • секция «validateInfo»
      • объяснение функции «validateInfo»
      • объяснение объекта «return»

  • Адаптеры

Метод «parse»

Мы объясним цикл ненавязчивой валидации, который происходит, когда документ загружается, и поймем роль каждого компонента.
Если мы посмотрим в конец jquery.validate.unobtrusive.js мы найдем

$(function () {
  $jQval.unobtrusive.parse(document);
});

Итак, мы вызываем метод «parse()» и передаем ему «document»
Что представляет собой метод «parse()»?Читать полностью »

Это 2 часть серии «Понимание ненавязчивой валидации в ASP.Net MVC»

О чем мы поговорим в этой статье:

  • Идея ненавязчивого JavaScript
  • Разница между нормальной и ненавязчивой валидацией
  • Понимание ненавязчивой валидации:
    • Элементы «input», правила их валидации и как они работают
    • Сообщения валидации и как они работают в ненавязчивой валидации.

Основная идея ненавязчивого JavaScript

Microsoft представил первый модуль валидации в первой верисии MVC. Модуль совершенствовался с каждой версией, и превратился в ненавязчивую валидацию в ASP.Net MVC 3.
Если коротко, даже в современном JavaScript, который мы пишем в основном в отдельном js файле, мы нуждаемся иногда в данных, связанных с Html, и поэтому записываем метаданные объектов JavaScript внутри страницы Html. Мы вызываем функцию из файла js, которой передаем метаданные объекта на странице.

Одна из целей ненавязчивого JavaScript отделить JavaScript от Html разметки.
Почитать больше об этом можно тут ( автор отсылает нас к статье о ненавязчивом JavaScript в англоязычной Википедии, прим. переводчика)

Разница между нормальной и ненавязчивой валидацией.

Ниже представлен код модели и Html разметки, сгенерированной используя валидацию MVC 2 и ненавязчивую валидацию MVC 3.
Читать полностью »

Большинство фанатов ООП одновременно являются и фанатами полиморфизма. Многие хорошие в других отношениях книги (например, «Рефакторинг» Фаулера) впадают в крайность, утверждая, что если вы используете проверки типов во время выполнения (такие как операция instanceof в Java), то вы, по всей вероятности, в душе злодейский злодей из тех, что пугают маленьких детей операторами switch.

Вообще говоря, я согласен с тем, что использование instanceof и его аналогов обычно является признаком недостаточных навыков ООП проектирования. Полиморфизм лучше проверок типов, он делает код гибче и понятнее. Однако, по крайней мере в одном случае, достаточно распространенном чтобы считаться паттерном сам по себе, вы просто не можете использовать полиморфизм. Я бы применил его с удовольствием, честно, и если вы знаете как это сделать – расскажите мне. Но не думаю что это возможно, особенно в статических языках типа Java или C++.

Определение полиморфизма

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

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

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

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

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

Есть множество статей о том, как написать свои правила для плагина jQuery validate, но мало какие из них объясняют внутреннюю работу этого плагина, что мы и обсудим в этой статье.
Это первая часть серии статей «Понимание ненавязчивой валидации Asp.NET MVC»

Что мы узнаем из этой статьи:
1. Как валидировать форму.
2. Сообщения валидации и как они работают.
3. Добавление своих правил валидации.
4. Что именно происходит, когда мы вызываем метод валидации.

Как валидировать форму

Есть 2 основных способа, чтобы валидировать форму.

1. Использовать имена классов как правила

Как это работает

Мы добавляем к полю, которое нужно провалидировать, html атрибут «class», и это подключит валидацию.
Итак, если нам нужно, чтобы текстовое поле было обязательным мы добавляем в элемент input значение атрибута class = «reqiured»

Html

<form action="/" method="post">
  <input id="Name" type="text" name="Name" value="" class ="reqiured"  />
  <input type="submit" value="Submit" />
</form>

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

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

Как показали опросы проведенные «Electric Cloud», разработчики проводят 20% своего времени в ожидании. Ожидании компиляции, ожидание тестов или ожидание юниор разработчика который пошел за колой.

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

На прошлой неделе я вместе с несколькими моими коллегами учавствовал в громкой речи о том факте, что Go обрабатывает ошибки в ожидаемых сценариях посредством возвращения кода ошибки вместо использования исключений или другого схожего механизма. Это довольно спорная тема, потому что люди привыкли избегать ошибки с помощью исключений, а Go возвращает улучшенную версию хорошо известной модели, ранее принятой несколькими языками — включая C — при которой ошибки передаются через возвращаемые значения. Это значит, что ошибки маячат перед глазами программиста и вынуждают иметь с ними дело все время. Кроме того, спор переходит в направление того факта, что в языках с исключениями каждая ошибка безо всяких дополнительных действий несет в себе полную информацию о том, что и где произошло, а это может быть полезно в некоторых случаях.Читать полностью »

В данном посте будет рассмотрен процесс создания меню навигации и хлебных крошек в проекте asp.net MVC3. Сначала мы создадим пустой проект, потом добавим sitemap провайдер, несколько контроллеров и представлений и в итоге заставим провайдер вывести хлебные крошки.
Перевод статьи: edspencer.me.uk/2011/09/20/mvc-sitemap-provider-tutorial-2-breadcrumbs/
Читать полностью »

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

Таксофоны кажутся пережитком прошлого, если вы родились в поколении смартфонов. Но стоит добавить несколько функций, например таких, как Wi-Fi точка доступа, автомобильное зарядное устройство, taxi-hailing и таксофоны могли бы легко найти место в нашей жизни, начиная с Нью-Йорка.
Читать полностью »


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