Visual Studio Code (далее — VS Code) – сравнительно молодой редактор кода (первый выпуск – весна 2015 г.) с открытым исходным кодом, распространяемый бесплатно и способный составить реальную конкуренцию таким признанным лидерам отрасли как Sublime Text, Atom, Notepad++.
Ниже перечислены те особенности VS Code, которые меня заинтересовали и заставили попробовать в действии.
Читать полностью »
Рубрика «C#» - 74
Visual Studio Code как универсальный редактор кода
2017-08-06 в 18:20, admin, рубрики: C#, emmet, python, visual studio code, web-разработка, Разработка веб-сайтов, текстовые редакторыДавайте поговорим про… Языки программирования и технологии
2017-08-06 в 14:52, admin, рубрики: C#, golang, java, javascript, JS, peace, php, Программирование
Доброго времени суток %username%,
Давай поговорим про языки программирования.
Давай раз и на всегда выясним какой из них лучше? Читать полностью »
Как настроить Travis CI для проекта .NET Core + PostgreSQL
2017-07-31 в 20:41, admin, рубрики: .net, .net core, C#, continuous integration, github, postgres, postgresql, travis-ciЯ расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.
Можно использовать эту статью как пример для быстрого старта.
Как «Актив» организовал «электронную переговорку»
2017-07-28 в 11:36, admin, рубрики: AngularJS, C#, Блог компании «Актив», переговорные комнаты, Программирование, метки: переговорные комнатыНаша компания постоянно растет во всех смыслах этого слова. В какой-то момент мы почувствовали, что вырос не только штат сотрудников, помещений, но и значительно увеличилось количество проводимых встреч, совещаний, обсуждений и презентаций. И переговорные комнаты стали для нас таким же ограниченным ресурсом, как время, люди и т.д.
Но это только половина проблемы. Как всем известно, ресурсами еще нужно уметь грамотно управлять, чтобы не случалось коллизий. Ситуации, когда во время встречи с партнерами, в переговорную врывается руководитель соседнего подразделения со словами “И эта занята!?”, недопустимы.
Второй момент – когда под рукой нет инструмента (к примеру, Outlook или его web-интерфейса), чтобы забронировать переговорную комнату, но очень нужно «успеть» захватить ценный ресурс. Для осуществления задуманного, необходимо идти на свое рабочее место и с него осуществлять бронирование. Теперь представим, что у вас нет на это времени, выходя из переговорной комнаты с очередной встречи.
Можно конечно придумать еще различные варианты «почему». Для нас уже этих двух моментов было достаточно, чтобы начать исследования в направлении поиска решения проблемы.
Мониторинг акторов в Akka.Net, но на F#
2017-07-27 в 16:51, admin, рубрики: .net, C#, F#, функциональное программированиеСразу скажу, хаба для F# на хабре нет, поэтому пишу в C#.
Для тех кто не знаком с F#, но знаком с C#, рекомендую наисвежайшую статью от Microsoft.
Она поможет Вам испытывать меньше WTF моментов при прочтении, т.к. моя статья не туториал к синтаксису.
Контекст задачи
Есть сервис, написанный на Akka.NET, он вываливает в разные текстовые логи кучу инфы. Отдел эксплуатации грепает эти логи, жарит по ним регекспами, чтобы узнать о кол-ве ошибок (бизнесовых и не очень), о кол-ве входящих в сервис сообщений и кол-ве исходящих. Далее эта информация заливается в ElasticDB, InfluxDB и показывается в Grafana и Kibana в разных срезах и агрегациях.
Звучит сложно, да и парсить текстовые логи сервиса, который генерит несколько десятков ГБ текстового мусора в день — занятие неблагодарное. Поэтому встала задача — сервис должен быть способен поднять ендпоинт, который можно дёрнуть и получить сразу всю инфу о нём.
Решать задачу будем так:
- Напишем доменную модель для метрик
- Замапим доменную модель метрик на реализацию App.Metrics и поднимем апишечку
- Сделаем структурированный доменный логгер, который натянем на внутренний логгер Akka
- Сделаем обёртку для функциональных акторов, которая спрячет работу с метриками и логгером
- Соберём всё вместе и запустим
Если нет разницы между двумя вариантами кода, выбирай тот, который проще отладить
2017-07-27 в 13:37, admin, рубрики: C#, microsoft, Блог компании MicrosoftВ С# существует два способа преобразования объектов: использовать оператор as
, который пытается преобразовать объект и в случае успеха возвращает результат, в случае неудачи null
; или использовать оператор преобразования.
Какой из этих вариантов выбрать, когда нужно немедленно воспользоваться результатом преобразования?
Читать полностью »
Tizen: подводим итоги
2017-07-26 в 8:51, admin, рубрики: c/c++, C#, c++, code review, cwe, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, информационная безопасность, итоги, ошибки в коде, плотность ошибок, Разработка под Tizen, статический анализ кодаНаша команда написала три заметки, связанные с анализом кода операционной системы Tizen. Операционная система содержит много кода и поэтому является благодатной почвой для написания различных статей. Думаю, что к Tizen мы ещё вернёмся в будущем, но сейчас нас ждут другие интересные проекты. Поэтому я подведу некоторые итоги проделанной работы и отвечу на ряд вопросов, возникших после опубликованных ранее статей.
Добавляем эффект нажатия в Xamarin.Forms
2017-07-26 в 8:30, admin, рубрики: .net, C#, effects, xamarin, xamarin.forms, разработка мобильных приложенийXamarin.Forms набирает обороты и, к сожалению, из коробки доступно совсем мало возможностей, все неоходимо добавлять через Dependency service или рендереры. На этой волне стало очень много различных библиотек, добавляющих зачастую базовый функционал.
Мое решение не исключение.
У меня стояла задача сделать небольшое расширение, позволяющее добавить эффект нажатия на почти любой элемент для iOS и Android.
Правда ли, что люди пишут безумный код с перекрывающимися побочными эффектами, сохраняя при этом невозмутимость?
2017-07-23 в 14:01, admin, рубрики: C#, c++, raymond chen, побочные эффекты, Программирование, Совершенный код, метки: raymond chen, побочные эффектыВашему вниманию предлагается перевод статьи Рэймонда Чена из блога The Old New Thing, посвященной проблемам кода, полагающегося на порядок вычисления выражений — и всем тем, кто пишет foo(i++, a[i]);
Порядок вычисления выражений определяется конкретной реализацией, за исключением случаев, когда язык гарантирует определенный порядок вычислений. Если же в дополнение к результату вычисление выражения вызывает изменения в среде выполнения, то говорят, что данное выражение имеет побочные эффекты.
MSDN
В нашей внутренней рассылке про C# регулярно возникает дискуссионный вопрос, который касается корректной интерпретации подобных конструкций:
a -= a *= a;
p[x++] = ++x;
В ответ я спрашиваю:
Да кто вообще пишет такой код с невозмутимым видом? Одно дело, когда такое пишешь, пытаясь победить в «Международном Конкурсе запутывания кода на Си» (IOCCC, International Obfuscated C Code Contest), или если хочешь написать головоломку — но в обоих случаях понимаешь, что ты занимаешься чем-то нестандартным. Что, реально есть кто-то, кто пишет a -= a *= a и p[x++] = ++x; и думает про себя «Чёрт возьми, да я пишу действительно классный код!»
Red Architecture — красная кнопка помощи для сложных и запутанных систем
2017-07-21 в 14:24, admin, рубрики: C#, clean architecture, mobile development, Red Architecture, xamarin, архитектура, мобильная разработка, Проектирование и рефакторинг
В начале несколько слов о названии, почему Red?
Всё просто. Любому явлению, которое претендует на определённый уровень целостности, необходим идентификатор. На такой идентификатор люди ссылаются в обсуждениях и сразу становится понятно о чём речь. В случае с архитектурой не стоит делать попытку описать в названии суть, любая архитектура это сложная вещь. Поэтому — просто Red!
Наверное у кого-то возникнет вопрос — а зачем нужна ещё одна архитектура?
Основная суть всех архитектурных нововведений в уменьшении связей в коде, т.н. code decoupling. И как следствие, улучшение тестируемости, поддержки, упрощению ввода новых функций и т.д. Но пока ни одна архитектура не признана “идеальной”, остаётся много неприкладных проблем, над которыми программисты ломают голову. Предложения по улучшению архитектур будут продолжаться до тех пор пока “идеальная” архитектура не будет найдена, т.е., вероятно будут продолжаться всегда.
Задача Red Architecture — свести сложность реализации логики приложения к минимуму, оставляя при этом нетронутыми возможность применения и все преимущества других паттернов проектирования.
Red Architecture имеет один класс, необходимый для своей реализации, и четыре соглашения.