Skip to content

Instantly share code, notes, and snippets.

View aemloviji's full-sized avatar
🏠
Working from home

Elvin Asadov aemloviji

🏠
Working from home
View GitHub Profile
/*
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID),
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками.
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования.
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной.
*
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter`
*/
/*
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID),
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками.
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования.
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной.
*
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter`
*/
/*
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID),
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками.
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования.
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной.
*
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter`
*/
@aemloviji
aemloviji / concurency_parallelism_async_await.md
Last active December 23, 2022 15:18
Concurrency vs. Parallel vs. Async in .NET

Concurrency vs. Parallel vs. Async in .NET

Non Concurrent process

Bob started a restaurant and he does all the thing: Being a chef, being a waiter and cashier.

This kind of system is non concurrency

Concurrent process

More and more customers come. Bob decided to hire 1 Chef, 1 Waiter and 1 Cashier.

@aemloviji
aemloviji / Program.lowered.cs
Created December 7, 2022 16:56
Lowered version of record type
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using System.Text;
using Microsoft.CodeAnalysis;
@aemloviji
aemloviji / Program.cs
Created December 7, 2022 16:26
C# lowering record type
// create an instance of Device
var device1 = new Device("DELL", "f8078ddc-2d59-4902-9acd-8cd88649186d");
// copy device1 with some modification using with expression
// to achive nondestructive mutation
var device2 = device1 with { Identifier = "aea8be94-788a-4b01-a569-9f496904a49c" };
// Device record type definition
public record Device(string Manufacturer, string Identifier);
@aemloviji
aemloviji / docker-commands.md
Last active November 30, 2022 17:18
Helpful Docker commands and code snippets

###############################################################################

Helpful Docker commands and code snippets

###############################################################################

CONTAINERS

#stop ALL containers
docker stop $(docker ps -a -q)
# remove ALL containers
docker rm -f $(docker ps -a -q) 
@aemloviji
aemloviji / AlternativeWayToLoop.cs
Last active October 18, 2022 09:17
It is an alternative way to loop in csharp
using static System.Console;
WriteLine("bu csharp-di?");
foreach (var i in 1..10)
{
WriteLine($"{i} beli!!!");
}
internal static class RangeExtensions
@aemloviji
aemloviji / DynamicObjects In C#.md
Last active June 5, 2022 13:50
Creating and Using Dynamic Objects in C#
@aemloviji
aemloviji / rename-git-committer-name.sh
Created December 25, 2021 16:23
how to change committer name in git when commits were pushed with different name unintentionally
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="aaa@company.com"
CORRECT_NAME="bbb_name"
CORRECT_EMAIL="bbb@company.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then