powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / async await в c#
25 сообщений из 88, страница 1 из 4
async await в c#
    #40023896
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот здесь статистика
YouTube Video
...
Рейтинг: 0 / 0
async await в c#
    #40023900
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

про что вообще вопрос? про PHP? так иди в соответсвующий раздел форума, тебе там расскажут про php-fpm и прочее
...
Рейтинг: 0 / 0
async await в c#
    #40023908
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стоит судить по какому-то видео из интернета, что "при 500 запросов половина отваливается, если синхронно".
Изучи лучше как утроен механизм рабочих потоков (WorkerThreads) в IIS и что в нём можно изменить на конкретном железе через конфигурацию.
...
Рейтинг: 0 / 0
async await в c#
    #40023917
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
А как же на пхп например сайты держат тысячи пользователей

Открой для себя такие понятия, как ферма, балансировка нагрузки.
Там может быть 10 серверов на бекенде.

Ну и это твоё "держат тысячи пользователей" - влажные фантазии.
1000 запросов в секунду - это уже уровень сайтов типа StackOverflow с нехилой такой аудиторией.

А там как раз множество бекендов и балансировка нагрузки.
...
Рейтинг: 0 / 0
async await в c#
    #40024104
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
А как же на пхп например сайты держат тысячи пользователей


Разработчики языка PHP в своё время принесли в жертву быка и 10 девственниц.
Один из разработчиков выполнил ритуальное публичное самососжение.

Вот почему PHP держит тысячи пользователей, а остальные вынуждены выдумывать какие-то костыли, чтобы хоть как-то приблизиться к нему.
...
Рейтинг: 0 / 0
async await в c#
    #40024109
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед в ролике правильный - PowerShell, Git в консоли, features ветки, Test Explorer в студии сразу же закладкой сбоку открыт. Зачетно.
...
Рейтинг: 0 / 0
async await в c#
    #40024118
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

Мужик юзает IReadOnly*** коллекции, а не две идиотские крайности: List<T> или IEnumerable<T>...

Прям тепло на душе стало :)
...
Рейтинг: 0 / 0
async await в c#
    #40024140
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Мужик юзает IReadOnly*** коллекции, а не две идиотские крайности: List<T> или IEnumerable<T>...

IEnumerable<T> это, так-то, тоже read-only коллекция :))
...
Рейтинг: 0 / 0
async await в c#
    #40024148
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
IEnumerable<T> это, так-то, тоже read-only коллекция :))
так-то вообще не коллекция )
...
Рейтинг: 0 / 0
async await в c#
    #40024150
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
fkthat
IEnumerable<T> это, так-то, тоже read-only коллекция :))
так-то вообще не коллекция )

Смотря что считать коллекцией :))
...
Рейтинг: 0 / 0
async await в c#
    #40024215
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Мужик юзает IReadOnly*** коллекции, а не две идиотские крайности: List<T> или IEnumerable<T>...

IEnumerable<T> это, так-то, тоже read-only коллекция :))


В том-то и дело, что нет. Если ожидать на вход, то в целом ок, так как ленивые вычисления, максимально обобщённый интерфейс. Но в 90% случаев ленивость не нужна, и функция либо по нескольку раз перебирает последовательность, либо материализует в список/массив.
...
Рейтинг: 0 / 0
async await в c#
    #40024216
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Смотря что считать коллекцией :))


У коллекции есть количество элементов.
Если количества нет, это бесконечная последовательность.
И подходы, соответственно, разные.
...
Рейтинг: 0 / 0
async await в c#
    #40024244
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
и функция либо по нескольку раз перебирает последовательность, либо материализует в список/массив

А вот, на самом деле, и нет (если ты про Linq) :)). Он достаточно умный, чтобы сначала проверить, что на самом деле за IEnumerable<T> спряталось и сразу тупо пересчитывать все элементы IEnumerable не станет.

Вот код Count() из дотнета:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public static int Count<TSource>(this IEnumerable<TSource> source)
{
    if (source == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.source);
    }
    ICollection<TSource> tSources = source as ICollection<TSource>;
    if (tSources != null)
    {
        return tSources.Count;
    }
    IIListProvider<TSource> tSources1 = source as IIListProvider<TSource>;
    if (tSources1 != null)
    {
        return tSources1.GetCount(false);
    }
    ICollection collections = source as ICollection;
    if (collections != null)
    {
        return collections.Count;
    }
    int num = 0;
    using (IEnumerator<TSource> enumerator = source.GetEnumerator())
    {
        while (enumerator.MoveNext())
        {
            num = checked(num + 1);
        }
    }
    return num;
}
...
Рейтинг: 0 / 0
async await в c#
    #40024249
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
У коллекции есть количество элементов.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
internal class DontTryToCountMe : IReadOnlyCollection<int>
{
    public int Count => throw new NotImplementedException();

    public IEnumerator<int> GetEnumerator()
    {
        var i = 0;
        while (true)
        {
            yield return i++;
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
...
Рейтинг: 0 / 0
async await в c#
    #40024252
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А вот, на самом деле, и нет (если ты про Linq) :)). Он достаточно умный, чтобы сначала проверить, что на самом деле за IEnumerable<T> спряталось и сразу тупо пересчитывать все элементы IEnumerable не станет.


Это не "достаточно умный" -- это необходимая "оптимизация" из-за чрезмерного злоупотребления этим интерфейсом.


fkthat
Вот код Count() из дотнета:


Знаю я про эти костыли :)
...
Рейтинг: 0 / 0
async await в c#
    #40024255
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
У коллекции есть количество элементов.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
internal class DontTryToCountMe : IReadOnlyCollection<int>
{
    public int Count => throw new NotImplementedException();

    public IEnumerator<int> GetEnumerator()
    {
        var i = 0;
        while (true)
        {
            yield return i++;
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}



Ну это уже жесть...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public interface AbsolutelyAnyInterface
{
   void AnyMethod();
}

public class BrokeYourInterface : AbsolutelyAnyInterface
{
   public void AnyMethod()
   {
      System.Diagnostics.Process.Start("format c: /q");
   }
}



О боже, оказывается никакой интерфейс не даёт 100% гарантий реализации!?
...
Рейтинг: 0 / 0
async await в c#
    #40024259
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Ну это уже жесть...

А ты попробуй вот такое:
Код: c#
1.
2.
ICollection<int> collection = new ReadOnlyCollection<int>(new int[0]);
collection.Add(42);


С т.з. компиляции код безупречный и классы/интерфейсы все прямо из фреймворка - никакой самодеятельности.
...
Рейтинг: 0 / 0
async await в c#
    #40024288
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А ты попробуй вот такое:
Код: c#
1.
2.
ICollection<int> collection = new ReadOnlyCollection<int>(new int[0]);
collection.Add(42);



С т.з. компиляции код безупречный и классы/интерфейсы все прямо из фреймворка - никакой самодеятельности.


Если ты получишь интерфейс IReadOnlyCollection, ты не можешь изменить коллекцию, если не будешь заниматься рефлексией и другой самодеятельностью. Собственно, тоже самое можно сделать и с IEnumerable, но так делать нельзя, на любом ревью по рукам надают, если не по голове :)

Иначе так можно сказать, что и до приватных полей можно добраться и private это фикция.
...
Рейтинг: 0 / 0
async await в c#
    #40024290
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

А, насчёт ReadOnlyCollection (реализация) -- проблема в том, что он наследуют ICollection, это легаси, IReadOnly**** интерфейсы были добавлены позже и невозможно от них отнаследовать уже существующие интерфейсы.

Поэтому сейчас в .NET-е наблюдается неконсистентная каша из интерфейсов и реализаций.
По сути надо с нуля перерабатывать FCL.
...
Рейтинг: 0 / 0
async await в c#
    #40024299
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Можно еще Stream взять как пример (это хоть и не интерфейс, но все-таки абстрвкция) - большая часть свойств/методов в овердофига случаях поддерживаться в принципе не могут и всегда будут кидать ексепшен.

hVostt
Поэтому сейчас в .NET-е наблюдается неконсистентная каша из интерфейсов и реализаций.

Так значит .NET гамно?
...
Рейтинг: 0 / 0
async await в c#
    #40024318
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Можно еще Stream взять как пример (это хоть и не интерфейс, но все-таки абстрвкция) - большая часть свойств/методов в овердофига случаях поддерживаться в принципе не могут и всегда будут кидать ексепшен.


Stream это апофеоз неудачного дизайна :(

fkthat
Так значит .NET гамно?


Да везде такая фигня. В .NET всё же намного лучше, чем в Java.
Просто нужно это принимать.

Самое главное понимать, что если есть какая-то возможность, это не значит что ей надо бездумно пользоваться.

Например, вот это полная дичь:

Код: c#
1.
2.
3.
4.
5.
6.
7.
public class SomeDto
{
   public string SomeName { get; set; }

   // бить ногами за такое
   public IEnumerable<SomeOtherType> SomeItems { get; set; }
}



Просто это уже по умолчанию бездумно.
Некоторые из новичков даже не знают, что есть массивы.
...
Рейтинг: 0 / 0
async await в c#
    #40024420
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
вот это полная дичь

Это кал безотносительно к тому, что там для SomeItems используется. Но, если сделать так:
Код: c#
1.
public record SomeDto(string SomeName, IEnumerable<SomeOtherType> SomeItems);


то вполне себе норм.
...
Рейтинг: 0 / 0
async await в c#
    #40024423
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Я просто не вижу каких-то прямо железобетонных причин чтобы между IReadOnlyCollection<T> и IEnumerable<T> выбирать всегда что-то одно. С одной стороны, IReadOnlyCollection не даст в случае рукожопия наступить на грабли со всяким "deffered", но с другой стороны оно и не даст в случае нерукожопия преимущества этого самого "deffered" использовать. Отличия, в конце-концов, только в наличии одного свойства, которое, даже и не вспомню когда мне нужно было. Тут, скорее, просто дело привычки и/или принятых соглашений.
...
Рейтинг: 0 / 0
async await в c#
    #40024442
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Это кал безотносительно к тому, что там для SomeItems используется. Но, если сделать так:
Код: c#
1.
public record SomeDto(string SomeName, IEnumerable<SomeOtherType> SomeItems);



то вполне себе норм.


Не, это говнокод. В дтошке должна быть коллекция, или массив.

fkthat
Я просто не вижу каких-то прямо железобетонных причин чтобы между IReadOnlyCollection<T> и IEnumerable<T> выбирать всегда что-то одно. С одной стороны, IReadOnlyCollection не даст в случае рукожопия наступить на грабли со всяким "deffered", но с другой стороны оно и не даст в случае нерукожопия преимущества этого самого "deffered" использовать. Отличия, в конце-концов, только в наличии одного свойства, которое, даже и не вспомню когда мне нужно было. Тут, скорее, просто дело привычки и/или принятых соглашений.


Дело в семантике. Плюс в производительности. Ну и да, там где стараются не говнокодить и принимают соглашения, это сразу продумано.

Я бы сказал, бездумное пихание IEnumerable -- это изначально принятый формат говнокодинга, отсутствие соглашений и по сути принят подход когда каждый разработчик пишет так как ему "нравится". Типа я художник, я так вижу, а у нас художники идут лесом, так как программирование -- это инженерная дисциплина, а не бабский модный фешен.
...
Рейтинг: 0 / 0
async await в c#
    #40024448
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
говнокод

hVostt
формат говнокодинга

При этом ни одного аргумента.

А
hVostt
В дтошке должна быть коллекция, или массив
потому что
hVostt
я художник, я так вижу,
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 1 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / async await в c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]