• Ограничивая абстракции (.NET, ASP.NET MVC)

    • Перевод

    Прошло почти три года с тех пор как я впервые написал о своём отказе от такой абстракции как репозиторий (Repository). С тех пор я практически не использовал никаких концепций репозитория в системах, которые мы разрабатываем. Я не убирал из проектов уже существующие репозитории, но теперь я просто не нахожу в них никакой ценности в качестве абстракций.
    Читать дальше →
  • Bluetooth-стикер поможет найти ключи, рюкзак или пульт ДУ



      Говорят, что если связать вместе ключи, пульт ДУ телевизора и носки (самые «теряемые» вещи в мире), то откроется портал в неведомое измерение, в которое попадают все потерянные вещи. Если серьезно, то действительно, часто бывают моменты, когда спешишь, а ключи от дома/машины найти не можешь. Или там пульт ДУ куда-то подевался, и телевизор сразу превращается в неуправляемый «кирпич». На днях было представлено интересное решение всех этих проблем. Решение — маленький bluetooth-девайс, получивший название StickNFind (пока в продаже его нет, сразу скажу).

      Читать дальше →
    • Google выпускает вторую версию Maps Android API



        Сегодня Google выпустил обновление к Maps Android API. Новое API содержит векторные карты, которые не только быстрее загружаются, но и позволяют пользователям легко переключаться между 2D и 3D режимами, в которых карты можно вращать при помощи жестов.
        Читать дальше →
      • Выбор ORM-стратегии (.NET)

        • Перевод


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

        Вступление

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

        Здесь и далее имеются в виду компоненты в смысле частей одного процесса. Компоненты, являющиеся отдельными процессами или сервисами, работа с которыми идет через RPC или еще как-то, здесь не рассматриваются. Хотя в большой мере все нижесказанное относится и к ним.

        Пример первый:
        Мне нужен компонент, давно разработанный и протестированный в другом отделе. Подхожу к разработчику. Завязывается диалог:
        — Вот мне нужна вот эта штука. Как мне ее использовать в своем проекте?
        — Да, вот нужно залить проект из CVS вот по этой метке. Скомпилить. Получится либа, и вот с ней нужно линковаться.
        — Ок, спасибо.
        Выкачиваешь проект. Компилишь. Вылезает куча ошибок, не хватает каких-то инклудов. Начинаешь выяснять. Оказывается для сборки проекта надо выкачать из CVS еще кучу проектов, их тоже собрать. Некоторые собираются стандартно студией, некоторые с бубном, вроде autoconf, make и иже с ними. Все. Собралось. Начинаются проблемы с линковкой. Не линкуется одно, второе, третье. Сторонних библиотек не хватает. В итоге — куча потерянного времени на непроизводительный труд и вникание в использованные библиотеки, сторонние компоненты и технологии.
        Читать дальше →
      • IIS — изменяем размер картинок на лету

        Почти в каждом веб-проекте мы сталкиваемся с задачей показывать те или иные изображения в разных размерах. Всё просто — изображение должно показываться в размере, требуемом контекстом. Если вы разрабатываете каталог с разными представлениями, то таких контекстов может быть много. А возможно, что потребуется сделать размер картинки адаптивным по отношению к размеру окна браузера (например, так делают Picasa Web Albums).

        Я расскажу о способе решить эту проблему раз и навсегда.
        Читать дальше →