Size: a a a

2021 January 19

A

Anatoly in pro.net
Sky Dreams
Я не профи) Но вроде бы правила гласят, что код должен быть понятен даже интерну
Это где такие правила?
источник

S

Sky Dreams in pro.net
Anatoly
Это где такие правила?
Разве не везде?
источник

AH

Ayrat Hudaygulov in pro.net
вот например тот же код на гопаке, я хз понятен ли код интерну...
источник

A

Anatoly in pro.net
Sky Dreams
Разве не везде?
Да вроде нет. Код должен понятен быть команде и это ок, если новому инженеру надо месяца два, чтобы вкатиться
источник

A

Anatoly in pro.net
Если в команде нет и не планируется интерны, зачем упрощать код настолько?
источник

S

Sky Dreams in pro.net
Ну если только так...
источник

IC

Ilya L Che in pro.net
Ayrat Hudaygulov
вот например тот же код на гопаке, я хз понятен ли код интерну...
Илье было непонятно, как мы помним!
источник

IC

Ilya L Che in pro.net
Хотя там другой код был.
источник

AH

Ayrat Hudaygulov in pro.net
Ilya L Che
Илье было непонятно, как мы помним!
по мне код дубовее некуда
источник

AH

Ayrat Hudaygulov in pro.net
Ilya L Che
Хотя там другой код был.
ну там были другие стримы, я потом переписал так чтобы можно было заменять реализацию а общие функции не трогать (logsBetween, afterJob)
источник

AH

Ayrat Hudaygulov in pro.net
просто все эти IO функции те же самые, а обвязка разная. Вот тут обвязка на гопаке и она работает збс
источник

AH

Ayrat Hudaygulov in pro.net
Нет, ну вот нормальные цифры
источник

AH

Ayrat Hudaygulov in pro.net
Total RPS:     549589;
источник

IC

Ilya Chernoudov in pro.net
можешь вот такой код проверить?
источник

AH

Ayrat Hudaygulov in pro.net
изи
источник

IC

Ilya Chernoudov in pro.net
только там может быть трабла с генератором инервалов
источник

IC

Ilya Chernoudov in pro.net
надо наверное капасити на певом ченеел выставить
источник

IC

Ilya Chernoudov in pro.net
щас поправлю
источник

IC

Ilya Chernoudov in pro.net
  static async Task Main(string[] args)
       {
           PerfTask();

           var workItemsChannel = Channel.CreateBounded<WorkItem>(new BoundedChannelOptions(100) { SingleWriter = true });
           _ = Task.Run(async () =>
           {
               foreach (var i in DateQuants().SelectMany(p => kustoClients, (l, r) => (l.Item1, l.Item2, r.Item1, r.Item2)))
               {
                   await workItemsChannel.Writer.WriteAsync(new WorkItem(i.Item3, i.Item4, i.Item1, i.Item2));
               }
           });

           var entriesChannel = Channel.CreateUnbounded<(string cluster, DateTime start, string[] logs)>(new UnboundedChannelOptions { SingleReader = true });
           for (int i = 0; i < parallelism; i++)
           {
               _ = Task.Run(async () =>
                 {
                     await foreach (var workItem in workItemsChannel.Reader.ReadAllAsync())
                     {
                         var logs = await LogsBetween(workItem.Provider, workItem.Start, workItem.End);
                         await entriesChannel.Writer.WriteAsync((workItem.Cluster, workItem.Start, logs.Select(p => p.ToString()).ToArray()));
                     }
                 });
           }

           await foreach (var (cluster, start, logs) in entriesChannel.Reader.ReadAllAsync())
           {
               await afterTask(cluster, start, logs);
           }
       }
источник

IC

Ilya Chernoudov in pro.net
вот так
источник