• Вам действительно нужен Redux?

      Не так давно React позиционировал себя как "V in MVC". После этого коммита маркетинговый текст изменился, но суть осталась той же: React отвечает за отображение, разработчик — за все остальное, то есть, говоря в терминах MVC, за Model и Controller.


      Одним из решений для управления Model (состоянием) вашего приложения стал Redux. Его появление мотивировано возросшей сложностью frontend-приложений, с которой не способен справиться MVC.


      Главный Технический Императив Разработки ПО — управление сложностью

      Совершенный код

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


      • состояние всего приложения хранится в одном месте
      • единственный способ изменить состояние — отправка Action'ов
      • все изменения происходят с помощью чистых функций

      Смог ли Redux побороть возросшую сложность и было ли с чем бороться?

      Читать дальше →
    • Прямой SQL в EntityFramework. Теперь со строгой типизацией

        Привет!


        Сегодня мы немного поговорим про EntityFramework. Совсем чуть-чуть. Да, я знаю что к нему можно относиться по-разному, многие от него плюются, но за неимением лучшей альтернативы — продолжают использовать.


        Так вот. Часто ли вы используете в своём C#-проекте с настроенным ORM-ом прямые SQL-запросы в базу? Ой, да бросьте, не отнекивайтесь. Используете. Иначе как бы вы реализовывали удаление/обновление сущностей пачками и оставались живы


        Что мы больше всего любим в прямом SQL? Скорость и простоту. Там, где "в лучших традициях ORM" надо выгрузить в память вагончик объектов и всем сделать context.Remove (ну или поманипулировать Attach-ем), можнo обойтись одним мааааленьким SQL-запросом.
        Что мы больше всего не любим в прямом SQL? Правильно. Отсутствие типизации и взрывоопасность. Прямой SQL обычно делается через DbContext.Database.ExecuteSqlCommand, а оно на вход принимает только строку. Следовательно, Find Usages в студии никогда не покажет вам какие поля каких сущностей ваш прямой SQL затронул, ну и помимо прочего вам приходится полагаться на свою память в вопросе точных имён всех таблиц/колонок которые вы щупаете. А ещё молиться, что никакой лоботряс не покопается в вашей модели и не переименует всё в ходе рефакторинга или средствами EntityFramework, пока вы будете спать.


        Так ликуйте же, адепты маленьких raw SQL-запросов! В этой статье я покажу вам как совместить их с EF, не потерять в майнтайнабильности и не наплодить детонаторов. Ныряйте же под кат скорее!

        Читать дальше →
      • Основы договорной работы в IT: контрагенты и сотрудники

          Привет, Хабр! Продолжаю публикацию своей книги о юридических аспектах IT-бизнеса. Сегодня — про текущую деятельность (заключение договоров, оформление сотрудников). Этот материал вполне актуален и для «обычного», то есть нетехнологического предпринимательства.



          1. Стартапер vs. предприниматель
          2. Выбираем форму
          3. Регистрация
          4. Корпоративное управление
            Как юридически строится компания
          5. Текущая работа
            Договоры и как они работают
            Как проверить партнера по открытым источникам
          6. Налоги
            Что платит IT-бизнес в России?
          7. Государственная поддержка
          8. Цикл стартапа
            Как (в общем) работает венчурное инвестирование
          9. Венчурные сделки
          10. Венчурные фонды
          11. Интеллектуальная собственность
          12. Офшоры и ВЭД
            Преимущества и подводные камни офшоров

          Читать дальше →
          • +16
          • 10,7k
          • 1
        • Пишем Skype бота на C# с модульной архитектурой

          imagealert('Привет Хабр!');

          Давно уже засела мысль сделать эдакую тулзу-помощника, которая смогла бы мне и курсы валют вывести и погоду подсказать и анекдот затравить, да всё руки не доходили… ну вы же знаете как это бывает, верно? Кроме того, в моём бесконечном списке с забавными идеями, которые неплохо бы когда-нибудь реализовать — был пункт «бот для скайпа 4fun».

          Руки дошли. Речь пойдёт о написании простого модульного бота на C# с интеграцией в Skype. Что получилось в итоге, а также почему стоит выключать системник от сети перед тем как в него лезть отвёрткой — читайте под катом.
          Читать дальше →
        • Универсальный код C# под .NET и JavaScript

            Введение


            Приветствую вас, хабравчане. В данном топике я хотел бы осветить подробности разработки на C# под разнородные целевые платформы, в первую очередь такие как .NET и браузер (JavaScript). В качестве примера желающие могут изучить веб-сервис по обработке фотографий gfranq.com, в котором реализована клиентская и серверная обработка фотографий с помощью фильтров, а также функциональность коллажей на основе материала, описанного в данной статье.

            Так как я не умею подбирать картинки для привлечения внимания, то она будет по теме:


            Технические подробности под катом