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); |
| 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="[email protected]" | |
| CORRECT_NAME="bbb_name" | |
| CORRECT_EMAIL="[email protected]" | |
| if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] | |
| then |
Well, this is the only one not about map/reduce/filter, but it’s so compact that it was hard not to put it in the list. Plus we’ll use it in a few examples too.
const values = [3, 1, 3, 5, 2, 4, 4, 4];
const uniqueValues = [...new Set(values)];
// uniqueValues is [3, 1, 5, 2, 4]