Pull to refresh
2
0
Kirill Filippenko @LuridSNK

софтваре инжинир.

Send message

Вопросы для собеседования — от кандидата к работодателю

Reading time4 min
Views25K
Все мы привыкли к тому, что на собеседованиях задают много вопросов. Обычно — работодатели кандидатам. Один из таких вопросов — “а у вас есть вопросы к нам?”. Довольно часто кандидаты не готовы к этому. И зря. Задавать вопросы работодателю — это совершенно нормально и даже необходимо. Лучше сразу уточнить все важные для вас аспекты работы, чем потом разочароваться. Более того, вопросы, заданные кандидатом, иногда даже учитываются как одна из характеристик кандидата. О чем спросил кандидат — о технологиях, о продукте или о процессах?
В этой статье я рассмотрю вопросы, часто задаваемые кандидатами разработчиками ПО. Я считаю, что эта статья будет полезна как самим кандидатам, так и рекрутерам, чтобы подготовиться к собеседованию.
Читать дальше →
Total votes 16: ↑12 and ↓4+13
Comments5

Открытые бенчмарки для нагрузочного тестирования серверов и веб-приложений

Reading time5 min
Views16K
Это — подборка утилит, составленная на основе рекомендаций резидентов Hacker News и GitHub. В список вошли: Locust, Vegeta, Slow_cooker, k6 и Siege. Ими пользуются инженеры из DICE, EA и Buoyant, а также разработчики Kubernetes и Load Impact. Расскажем об этих инструментах.

Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments7

Разворачиваем и демонизируем ASP.NET Core приложение под Linux в виде фонового сервиса

Reading time5 min
Views74K
Доброго дня, господа. Сегодня мы затронем тему, за обсуждение которой ещё два года назад сожгли бы на костре — запуск ASP.NET приложения под linux. В данной статье будет использоваться Ubuntu 16.04
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments26

Контейнеризация Angular 6 SPA Template ASP .NET Core 2.1 приложения

Reading time4 min
Views9.8K
UPDATE от 24.07.2019 смотрите в конце статьи.

UPDATE от 01.11.2018 {
Благодаря помощи в комментариях, ниже представлена более правильная с идеологической точки зрения версия docker файла.

В стандартном шаблоне проекта Angular SPA Template содержится ошибка. Разработчики в версии net .core 2.1. удалили из образа microsoft/dotnet:2.1-sdk используемого для сборки nodejs, но в файле проекта остался код, его использующий. Подробнее здесь github.com/aspnet/Announcements/issues/298
Необходимо отредактировать вручную файл проекта *.csproj, удалив следующий код
Код для удаления из *.csproj
  <Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
    <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build -- --prod" />
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build:ssr -- --prod" Condition=" '$(BuildServerSideRenderer)' == 'true' " />

    <!-- Include the newly-built files in the publish output -->
    <ItemGroup>
      <DistFiles Include="$(SpaRoot)dist\**; $(SpaRoot)dist-server\**" />
      <DistFiles Include="$(SpaRoot)node_modules\**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
      <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
        <RelativePath>%(DistFiles.Identity)</RelativePath>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </ResolvedFileToPublish>
    </ItemGroup>
  </Target>


Правильный dockerfile
ARG NODE_IMAGE=node:8.12

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["AngularWebApp/AngularWebApp.csproj", "AngularWebApp/"]
RUN dotnet restore "AngularWebApp/AngularWebApp.csproj"
COPY . .
WORKDIR "/src/AngularWebApp"

FROM ${NODE_IMAGE} as node-build
WORKDIR /src
COPY AngularWebApp/ClientApp .
RUN npm install
RUN npm run build -- --prod

FROM build AS publish
RUN dotnet publish "AngularWebApp.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
COPY --from=node-build /src/dist ./ClientApp/dist
ENTRYPOINT ["dotnet", "AngularWebApp.dll"]


}

К сожалению готового решения нигде не нашел. Пришлось компилировать из нескольких источников информацию. Чтобы запустить в докере Angular 6/7 приложение в виде проекта на ASP .NET Core.

Если мы включим стандартными средствами поддержку докер для проекта с Angular приложением, то докер файл создаст образ приложения на базе microsoft/dotnet:2.1-aspnetcore-runtime образа. В этот базовый образ не включен сервер node.js. И в результаты выполнения будет выходить ошибка ASP .NET Core
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments26

Руководство для чайников: создание цепочек DevOps с помощью инструментов с открытым исходным кодом

Reading time6 min
Views34K


Создание первой цепочки DevOps за пять шагов для новичков.


DevOps стал панацеей для слишком медленных, разобщенных и прочих проблемных процессов разработки. Но нужны минимальные познания в DevOps. Здесь будет рассмотрены такие понятия, как цепочка DevOps и как создать ее за пять шагов. Это не полное руководство, а только “рыба”, которую можно расширять. Начнем с истории.


Мое знакомство с DevOps


Когда-то я работал с облаками в Citi Group и разрабатывал веб-приложение IaaS, чтобы управлять облачной инфраструктурой Citi, но мне всегда было интересно, как можно оптимизировать цепочку разработки и улучшить культуру среди разработчиков. Грег Лавендер, наш техдиректор по облачной архитектуре и инфраструктуре, посоветовал мне книгу Проект «Феникс». Она прекрасно объясняет принципы DevOps, при этом читается, как роман.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments18

Шейдеры 3D-игр для начинающих

Reading time19 min
Views24K
image

Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю каждую технику таким образом, чтобы вы могли применить/портировать эту информацию в любом стеке инструментов, будь то Godot, Unity или что-то иное.

В качестве «клея» между шейдерами я решил использовать великолепный игровой движок Panda3D и OpenGL Shading Language (GLSL). Если вы пользуетесь таким же стеком, то получите дополнительное преимущество — узнаете, как использовать техники затенения конкретно в Panda3D и OpenGL.
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments6

Ваши распределенные монолиты плетут козни у вас за спиной

Reading time7 min
Views13K
Привет, Хабр!

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


Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments23

Как работает конфигурация в .NET Core

Reading time9 min
Views71K

Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.


После того как мы с коллегами решили перейти на .NET Core, возник вопрос, как организовать файлы конфигурации, как выполнять трансформации и пр. в новой среде. Во многих примерах встречается следующий код, и многие его успешно используют.


public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
   Environment = environment;
   Configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
            .Build();
}

Но давайте разберемся, как работает конфигурация, и в каких случаях использовать данный подход, а в каких довериться разработчикам .NET Core. Прошу под кат.

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments24

Создание минимального ASP.NET Core веб-приложения с поддержкой npm, Webpack и TypeScript в Visual Studio 2017

Reading time9 min
Views34K

Введение


Этот туториал я пишу прежде всего для себя, для того чтобы иметь возможность быстро на основе начального шаблона ASP.NET Core приложения создать минимальное приложение с поддержкой npm, Webpack и TypeScript (у которого будет работать отладка из Visual Studio).

Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments9

Быстрорастворимое проектирование

Reading time25 min
Views42K
Люди учатся архитектуре по старым книжкам, которые писались для Java. Книжки хорошие, но дают решение задач того времени инструментами того времени. Время поменялось, C# уже больше похож на лайтовую Scala, чем Java, а новых хороших книжек мало.

В этой статье мы рассмотрим критерии хорошего кода и плохого кода, как и чем измерять. Увидим обзор типовых задач и подходов, разберем плюсы и минусы. В конце будут рекомендации и best practices по проектированию web-приложений.

Эта статья является расшифровкой моего доклада с конференции DotNext 2018 Moscow. Кроме текста, под катом есть видеозапись и ссылка на слайды.


Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments34

Понимание джойнов сломано. Это точно не пересечение кругов, честно

Reading time4 min
Views313K

Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INNER JOIN от LEFT JOIN.


Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.


Я так устал от этих ответов с пересечениями множеств и кругов, что даже перестал поправлять людей.


Дело в том, что этот ответ в общем случае неверен. Ну или, как минимум, не точен.

Читать дальше →
Total votes 179: ↑138 and ↓41+97
Comments225

Vue.js + Asp.Net Core MVC + TypeScript и ещё Bootstrap4

Reading time11 min
Views32K

image


По стандартному шаблону Asp.Net Core MVC в Visual Studio 2017 создаем новый проект, переводим его на четвертый Bootsrtrap, встраиваем туда модульное приложение Vue.js на TypeScript.


Получаем простую, обозримую и легкую заготовку для создания своих веб-приложений на VS2017 с использованием Vue.js и TypeScript. Привычная среда разработки, в которой можно выполнять большую часть кодинга и отладки, а также быстрая пересборка приложения, делают работу вполне комфортной.


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


Материал рассчитан на способных управиться с VS2017 и знакомых с прогрессивным JavaScript фреймворком Vue.js.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments2

Шаблон проектирования «Спецификация»

Reading time4 min
Views62K
Предпринимая попытки постичь DDD вы наверняка натолкнетесь на этот паттерн, который часто тесно используется вместе с другим, не менее интересным, паттерном «Репозиторий». Этот паттерн предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы.

Пример


Давайте для примера спроектируем домен для простого группового чата: у нас будут три сущности: Группа и Пользователь, между которыми связь многие-ко-многим (один пользователь может находиться в разных группах, в группе может быть несколько пользователей) и Message представляющий собой сообщение, которое пользователь может написать в какой-либо группе:
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments64

Курс о Deep Learning на пальцах

Reading time2 min
Views173K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments31

Docker'изация: что нужно знать каждому .Net-разработчику

Reading time6 min
Views21K
В век победившего DevOps разработчики просто обязаны знать про Docker контейнеры, зачем они нужны и как с ними работать. Это многократно облегчает работу. Причем всю силу контейнеризации могут почувствовать даже те, кто работает с .Net Core в среде разработки Visual Studio 2017. О доступных инструментах и настройке Docker под VS рассказал Павел Скиба, начальник отдела разработки серверных приложений, на митапе Panda-Meetup C# .Net.


Total votes 17: ↑15 and ↓2+13
Comments1

Swagger – умная документация вашего RESTful web-API — обзор Junior back-end developer-а для новичков

Reading time3 min
Views315K


Предисловие


Команда, в которой я сделала свои первые шаги на поприще написания промышленного кода, занималась разработкой удобного API к функциональности программного продукта на C# (для удобства назовем его, скажем, буквой E), существовавшего уже много лет и зарекомендовавшего себя на рынке с весьма положительной стороны. И здесь вроде бы у юного падавана пока не должно возникать вопросов, однако же представим себе, что ранее вы, скорей всего, конечно, писали собственные web-API, но вряд ли для широкой аудитории, а значит жили по принципу «Сам создал – сам пользуюсь», и если вдруг кого-то бы заинтересовала функциональность вашего API, то вы, наверное, кинули бы ему pdf-файл с подробной инструкцией (по крайней мере я бы сделала именно так). «Где посмотреть функционал апи» — спросила я тимлида ожидая получить ссылку на текстовый документ. «Загляни в Swagger» — ответил он.

Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments7

Пишем торговых роботов с помощью графического фреймворка StockSharp. Часть 1

Reading time15 min
Views17K


В нашем блоге мы много пишем о технологиях и полезных инструментах, связанных с биржевой торговлей. Один из них – бесплатная платформа StockSharp, которую можно использовать для профессиональной разработки торговых терминалов и торговых роботов на языке C#. В данной статье мы покажем, как использовать графический фреймворк, входящий в S#.API, с целью создания торгового терминала с возможностью запуска алгоритмических стратегий.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments2

Оформить ИП — единственный путь

Reading time9 min
Views49K
К каждой статье на Хабре, касающейся преимуществ или недостатков оформления ИТ-шника, как ИП, пишутся сотни комментариев сторонников и противников этой схемы. Такое ощущение, будто у рынка еще остался выбор. А я вот уверен, что с развитием удаленной работы, всякими agile-подходами и практиками, которые сложились при взаимодействии с удаленными командами, в ИТ просто нет иного пути. ИП — единственная форма взаимоотношений, которая соответствует реальности, а не с трудом на нее “натягивается” (если не рассматривать более «хитрые» случаи — ООО, ЗАО).

image

Карикатура «Без вариантов» Андрея Абрамова

Под катом изложено исключительно мое ИМХО — опыт человека, более 15 лет отработавшего в России (с российскими заказчиками и работодателями) с самыми разными формами отношений.
Читать дальше →
Total votes 61: ↑51 and ↓10+41
Comments460

Написание шейдеров в Unity. GrabPass, PerRendererData

Reading time9 min
Views28K
Привет! Я хотел бы поделиться опытом написания шейдеров в Unity. Начнем с шейдера искажения пространства (Displacement/Refraction) в 2D, рассмотрим функционал, используемый для его написания (GrabPass, PerRendererData), а также уделим внимание проблемам, которые обязательно возникнут.

Информация пригодится тем, кто имеет общее представление о шейдерах и пробовал их создавать, но мало знаком с возможностями, которые предоставляет Unity, и не знает с какой стороны подступиться. Загляните, возможно, мой опыт поможет вам разобраться.


Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments9

Аутентификация asp .net core через IdentityServer4

Reading time3 min
Views22K
Тут не будет ничего необычного, один фреймворк «IdentityServer4» будет выполнять аутентификацию по логину и паролю на неком Api, плюс еще обрабатывать refresh_token.

Работать он будет с существующим IdentityDbContext, IdentityUser.

По итогу получится сценарий при котором, для каждой аутентификации будет выдан и сохранен в таблицу «PersistedGrants» один refresh_token. Это один из четырех типов разрешений OAuth 2.0:

Учётные данные владельца ресурса (Resource Owner Password Credentials): используются доверенными приложениями, например приложениями, которые являются частью самого сервиса.

Все работы по обслуживанию токенов берет на себя фреймворк.

Итак начнем.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments6

Information

Rating
Does not participate
Location
Ростовская обл., Россия
Registered
Activity