Методы расширения для типов стандартной библиотеки .NET

Автор: admin от 24-02-2018, 23:40, посмотрело: 66

Наверное, почти каждый .NET-разработчик сталкивался со случаями, когда для удобства кодирования рутинных действий и сокращения boilerplate-кода при работе со стандартными типами данных не хватает возможностей стандартной же библиотеки.



И практически в каждом проекте появляются сборки и пространства имен вида Common, ProjectName.Common и т.д., содержащие дополнения для работы со стандартными типами данных: перечислениями Enums, Nullable-структурами, строками и коллекциями — перечислениями IEnumerable, массивами, списками и собственно коллекциями.



Как правило, эти дополнения реализуются с помощью механизма extension methods (методов расширения). Часто можно наблюдать наличие реализаций монад, также построенных на механизме методов расширения.



(Забегая вперед — рассмотрим и вопросы, неожиданно возникающие, и которые можно не заметить, когда созданы свои расширения для IEnumerable, а работа ведется с IQueryable).



Написание этой статьи инспирировано прочтением давней статьи-перевода Проверки на пустые перечисления и развернувшейся дискуссии к ней.



Статья давняя, но тема по-прежнему актуальная, тем более, что код, похожий на пример из статьи, приходилось встречать в реальной работе от проекта к проекту.

Категория: Программирование

 

Микроспутники для дистанционного зондирования Земли

Автор: admin от 24-02-2018, 23:35, посмотрело: 77

Микроспутники для дистанционного зондирования Земли


В настоящее время большой интерес проявляется к созданию и использованию малых космических аппаратов — адекватной замене больших космических аппаратов.



Это объясняется многими преимуществами микроспутников (МС) [1]:




  • Сравнительно низкая цена, а также небольшое время, необходимое для разработки и изготовления микроспутника.

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

  • Для запуска применяются конверсионные баллистические ракеты, которые, в соответствии с договорами, уничтожаются путем запуска в космос с полезной нагрузкой.

  • Легкие космические аппараты могут выводиться в качестве попутного груза на ракетах-носителях (РН) или в транспортных кораблях, доставляющих грузы на долговременные орбитальные станции.

  • Снижение риска больших финансовых потерь при гибели микроспутника в случае аварии РН на старте или при неудачном выведении его на рабочую орбиту.

Категория: Компании » Microsoft

 

Как сохранить заряд смартфона?

Автор: admin от 24-02-2018, 23:35, посмотрело: 63

С 23 февраля, господа! Да, день защитника отечества давно перестал быть только для защитников, но им отдельный салют!



По случаю праздника мы подготовили статью о том, что любит большинство парней — об играх. Точнее, о нашей новой разработке под кодовым названием RAVEN, которая поможет сохранить заветные проценты, которые так быстро исчезают при игре на телефоне. Она рендерит только те игровые кадры, которые заметно отличаются от рядом стоящих. Заглядывайте под кат!



Как сохранить заряд смартфона?

Категория: Компании » Microsoft

 

Segregated Witness для чайников

Автор: admin от 24-02-2018, 23:35, посмотрело: 66

Масштабируемость биткоина является одной из его главных проблем, над решением которой активно работают. Одним из представителей этих решений является, например, технология Lightning network, но ее реализация пока что не представляется возможной ввиду некоторых уязвимостей. Другое решение — Segregated Witness также направлено на повышение масштабируемости, но ко всему прочему решает еще и целый ряд проблем, включая ту самую уязвимость, мешающую реализации лайтнинга. В этой статье мы рассмотрим основные преимущества Segregated Witness, а также опишем механизм его работы.



Segregated Witness для чайников

Категория: Программирование, Криптография

 

Понимая зависимости

Автор: admin от 24-02-2018, 23:30, посмотрело: 57

От переводчика



Мы — внедрители. Мы должны внедрять, а не фантазировать!

(Рина Зеленая, к/ф «Девушка без адреса»)



К переводу этой статьи меня побудили две причины: 1) желание лучше разобраться с фреймворком Spring, 2) небольшое количество источников по теме на русском языке.



Краеугольный камень Spring — «внедрение зависимостей». Если описание процесса «внедрения» в целом, удовлетворительно, то объяснение понятия «зависимость» обычно оставляют за скобками. На мой взгляд, это существенное упущение.



Чтобы не фантазировать, а внедрять, нужно сначала разобраться с тем, что мы внедряем. И в этом нам может помочь лаконичная статья Jakob Jenkov «Understanding Dependencies». Она будет полезна не только тем, кто пишет на Java или изучает Spring, но и тем, кто пишет на других языках и следит за качеством проектирования приложений.



Что такое зависимость
  • Почему зависимости это плохо

  • Типы зависимостей

  • Дополнительные характеристики зависимостей:

    • зависимости реализации интерфейса

    • зависимости времени компиляции и времени исполнения

    • видимые и скрытые зависимости

    • прямые и непрямые зависимости

    • неоправданно широкие зависимости

    • зависимости локальные и контекстные


  • Стандартные vs кастомные зависимости класса/интерфейса

  • Резюме

  • Категория: Операционные системы » iOS

     

    Использование ReSwift: написание приложения Memory Game

    Автор: admin от 24-02-2018, 23:30, посмотрело: 53

    Использование ReSwift: написание приложения Memory Game


    Примечание. В этой статье используются Xcode 8 и Swift 3.



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



    Для iOS разработчиков доступны более эффективные архитектурные паттерны, такие как MVVM, VIPER и Riblets. Они сильно отличаются, но у них есть общая цель: разбить код на блоки по принципу единой ответственности с многонаправленным потоком данных. В многонаправленном потоке, данные перемещаются в разных направлениях между различными модулями.



    Иногда вы не хотите (или вам не нужно) использовать многонаправленный поток данных — вместо этого вы хотите, чтобы данные передавались в одном направлении: это однонаправленный поток данных. В данной статье про ReSwift вы свернёте с проторенного пути и узнаете, как использовать фреймворк ReSwift для реализации однонаправленного потока данных при создании Memory Game приложения, под названием MemoryTunes.

    Категория: Game Development, iOS

     

    Личный опыт: подборка материалов о виртуальной инфраструктуре, ИБ и трендах на рынке IaaS

    Автор: admin от 24-02-2018, 19:40, посмотрело: 89

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



    Здесь мы задействовали главным образом те материалы, которые подготовили наши сотрудники. Они выходят как в нашем блоге на Хабре, так и в корпоративной ленте на сайте 1cloud. Помимо этого, мы учли англоязычные статьи по выбранным темам.



    Личный опыт: подборка материалов о виртуальной инфраструктуре, ИБ и трендах на рынке IaaS

    Категория: Операционные системы » Android

     

    Альтернатива платному отключению рекламы в бесплатном приложении Android

    Автор: admin от 24-02-2018, 19:40, посмотрело: 78

    Доброго времени суток, Хабрахабр!



    Меня зовут Александр, я работаю тренером по питанию, а в свободное время по вечерам — инди разработчик под ОС Android. Сегодня хочу с вами поделиться опытом реализации альтернативного платному способу отключения рекламы в приложении — отключение рекламы за просмотр рекламы (AdMob Rewarded Video Ads). Интересно? Тогда добро пожаловать под кат.

    Категория: Операционные системы » Android

     

    ЕГАИС 3.0 – готовность 100 %! Помарочный учет алкоголя

    Автор: admin от 24-02-2018, 19:40, посмотрело: 131

    В 2018 году в истории ЕГАИС наступает новый этап – обязательный помарочный учет алкогольной продукции. Подготовка к переходу на новую схему работы уже стартовала. С сентября 2017 г. планомерно менялся состав документов и реквизитов ЕГАИС у оптовиков. Теперь пришло время и розницы. Как автоматизировать алкогольную розницу по новым правилам, рассмотрим подробно в этой статье.



    ЕГАИС 3.0 – готовность 100 %! Помарочный учет алкоголя

    Категория: Веб-разработка, Android

     

    Битва за сетевой нейтралитет: судебные войны и общественные протесты

    Автор: admin от 24-02-2018, 18:40, посмотрело: 55

    Пошел уже третий месяц с тех пор, как Федеральная комиссия по связи США (FCC) отказалась от установленного в стране подхода к регулированию провайдеров. Это решение еще называют отказом от принципов сетевого нейтралитета.



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



    До официального вступления решения в силу в США осталось два месяца. После провайдеры смогут блокировать трафик или предоставлять тому или иному источнику приоритет по своему усмотрению. Подробнее о том, что такое сетевой нейтралитет и откуда он взялся, мы писали в первой части этой серии статей, а о первых конфликтах властей и операторов — во второй части.



    В этой статье рассмотрим, как формировался действовавший до декабря 2017 года подход к сетевому нейтралитету.



    Битва за сетевой нейтралитет: судебные войны и общественные протесты

    Категория: Программирование

     
    Назад Вперед