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
More and more customers come. Bob decided to hire 1 Chef, 1 Waiter and 1 Cashier.
/* | |
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером | |
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID), | |
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками. | |
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования. | |
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной. | |
* | |
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter` | |
*/ |
/* | |
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером | |
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID), | |
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками. | |
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования. | |
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной. | |
* | |
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter` | |
*/ |
/* | |
* Наше приложение общается с удаленным сервисом: шлет запросы и получает ответы. С удаленным сервером | |
* установлено единственное соединение, по которому мы шлем запросы и получаем ответы. Каждый запрос содержит Id (GUID), | |
* ответ на запрос содержит его же. Ответы на запросы могут приходить в произвольном порядке и с произвольными задержками. | |
* Нам необходимо реализовать интерфейс, который абстрагирует факт такого мультиплексирования. | |
* Реализация `IRequestProcessor.SendAsync` обязана быть потокобезопасной. | |
* | |
* У нас есть готовая реализация интерфейсов `ILowLevelNetworkAdapter` и `IHighLevelNetworkAdapter` | |
*/ |
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; |
// 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); |
###############################################################################
###############################################################################
#stop ALL containers
docker stop $(docker ps -a -q)
# remove ALL containers
docker rm -f $(docker ps -a -q)
using static System.Console; | |
WriteLine("bu csharp-di?"); | |
foreach (var i in 1..10) | |
{ | |
WriteLine($"{i} beli!!!"); | |
} | |
internal static class RangeExtensions |
List of customers and suppliers
Supplier: Lucerne Publishing (https://www.lucernepublishing.com/)
#!/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 |