Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 1233 127 230
C# тред #39 /csharp/ Аноним 26/08/22 Птн 10:15:23 2445746 1
image.png 557Кб, 868x946
868x946
image.png 90Кб, 500x500
500x500
Тред лучшего языка на планете.

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru

2. С# для веб
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
— WPF ( https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf )
— WinForms ( https://docs.microsoft.com/ru-ru/dotnet/desktop )

4. С# для игр
— Unity-тред в /gd/
— Учебники https://ru.stackoverflow.com/a/609901/422180

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui

6. Годные ютуб-каналы
https://www.youtube.com/c/CODEBLOG
https://www.youtube.com/c/AndreyShyrokoriadov
https://www.youtube.com/c/DevJungles
https://www.youtube.com/user/Shmachilin

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: >>2433268 (OP)
Аноним 26/08/22 Птн 10:16:13 2445748 2
7. Какую IDE выбрать?
— Для Windows Visual Studio ( https://visualstudio.microsoft.com/ru/downloads ). Также есть версия для macOS.
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider ).
Если в C# хочется, но пк уж слишком хуёвый: https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio-code

8. Что нужно знать, чтобы взяли работать?
Общие навыки — TPL, Linq, DI, интеграционные тесты. Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
Архитектура — DDD, микросервисная архитектура. Так же необходимо ознакомиться с паттернами проектирования. Обязательны к изучению: MVVM, MVC, MVP
Базы данных — PostgreSQL/MSSQL + Redis/Mongo. Из ORM: EFCore обычно достаточно, но есть более быстрый, но менее удобный Dapper. Тратить время на ADO.NET не стоит.
Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
Системы контроля версий — обычно гита достаточно.
Аноним 26/08/22 Птн 11:28:25 2445804 3
Как навывается подход когда все ебашится асинхронно. Весь код представляет из себя таски которые добавляются в таскпулл, а потом от туда вызываются и запускаются?
Аноним 26/08/22 Птн 11:29:45 2445805 4
>>2445804
обычный асинхронный код. То есть самый обычный
Аноним 26/08/22 Птн 11:37:09 2445808 5
1661503028666.png 417Кб, 800x600
800x600
Господи, ну почему всё такое сложное??
Все эти IObservable<T> и прочие
Аноним 26/08/22 Птн 11:40:04 2445812 6
Аноним 26/08/22 Птн 11:44:23 2445819 7
>>2445812
Реактиве ЮИ комманды требуют это вместо обычного bool CanExecute.
Всё утро ебался, как это правильно реализовать, сдался и полез в документацию. а там лямбда на лямбде и расширениями погоняет. И потом в конце написано "ради перфоманса у вас всё равно это работать не будет, реализуйте автообновление самостоятельно".
Аноним 26/08/22 Птн 11:46:01 2445820 8
>>2445819
зачем использовать ReactiveUI вообще
оверхед очевиден
удобство - нет
Аноним 26/08/22 Птн 12:17:52 2445844 9
>>2445808
Иди в JS. Там можно к цифре строку прибавить
Аноним 26/08/22 Птн 12:34:15 2445857 10
Аноним 26/08/22 Птн 12:35:34 2445860 11
>>2445808
Удобный хуябрик. Сейчас всё кажется сложным но в один момент ты проснёшься и всё осознаешь, буквально. После этой ночи в жизни поменяется многое
26/08/22 Птн 12:39:25 2445863 12
>>2445857
Какие при этом подводные\профиты?
Аноним 26/08/22 Птн 12:42:40 2445868 13
Встретился с такой задачкой :

Было
a : 01 - 03
b : 05 - 07
c : 08 - 10
d : 12 - 15
e : 16 - 18
добавляем :
03-08
изменяем
d : 12 - 15 -> 10-16
удаляем
08-10
в конце ожидаем
f : 01-08
g : 10-18

и на удивление оказалось что задачка далеко не настолько простая как может показаться на первый взгляд, так к тому еще я не нашел никаких алгоритмов в интернете что бы правильно джойнить такие оверлапы.

есть хоть у кого-то идеи как это приготовить?
Аноним 26/08/22 Птн 12:45:03 2445871 14
>>2445863
Профиты - асинхронно + быстро если не брать Thread'ы, но это это нужно когда надо супер быстро. Подводные следующие:
1. Легко обосраться при async-void;
2. async/await код порождает новый async/await код и заставляет переписывать старый на async/await
3. Неудобно использовать вместе с Thread
Аноним 26/08/22 Птн 12:45:41 2445873 15
Аноним 26/08/22 Птн 12:58:37 2445885 16
>>2445820
> зачем использовать ReactiveUI вообще
Чтобы мне перезвонили.
Аноним 26/08/22 Птн 13:01:09 2445887 17
>>2445885
А дальше? после перезвона перестать в этом ковыряться не получится.
Аноним 26/08/22 Птн 13:01:54 2445890 18
>>2445868
не усложняй простые вещи.
Аноним 26/08/22 Птн 13:10:50 2445902 19
>>2445868

Что это за буквы и цифры ЯННП...
Аноним 26/08/22 Птн 13:14:15 2445908 20
image.png 111Кб, 281x300
281x300
>>2445890
Простые?

>>2445902
Это усложненная модификация классической задачки на поиск перекрытия дат
буквы это запись, то-есть объект,
а цифры это дата в этом случае, 01.01.2022 - 03.01-2022 например, суть в тому что нужно найти и объединить все перекрытья
Аноним 26/08/22 Птн 13:15:52 2445913 21
>>2445908
ну а что сложного то?
прошел в цикле и поглотил диапазоны
Аноним 26/08/22 Птн 13:24:36 2445916 22
>>2445913
Если сделать все так просто как ты хочешь ты получишь не правильный результат, простым циклом тебе прийдется начинать его сначала каждый раз когда какой-то диапазон схлопывается потому что он в этот момент может начать перекрывать предыдущие которые ты как бы уже "проверил", и это не самый умный и быстрый алгоритм
Аноним 26/08/22 Птн 13:28:46 2445928 23
>>2445916
>в этот момент может начать перекрывать предыдущие
с чего вдруг.
если вливаемый диапазон перекрывает что то - то это будет видно при первом же и единственном проходе.
он же поглощает, а не набивает пузо
Аноним 26/08/22 Птн 13:40:58 2445941 24
Кто там пишет на авалонии
Скажите как блин сделать Visibility.Hidden?
Аноним 26/08/22 Птн 14:11:29 2445964 25
Увидел тут код класса, реализующего интерфейс, методы этого интерфейса с его же пространством имён. Что это означает?
Примерно вот так:
class cl : Interface {
bool Interface.Method(...)
.
.
.

}
Аноним 26/08/22 Птн 14:17:15 2445972 26
>>2445941
Как блин на авалонии сделать native look & feel?
Аноним 26/08/22 Птн 14:28:44 2445986 27
>>2445964
явная реализация интерфейса

>>2445972
никак ибо он сам рисует средствами хреновой рисовалки
Аноним 26/08/22 Птн 14:43:21 2446016 28
>>2445986
> никак
Вот бы сделал кто-нибудь биндинги ГТК в шарп... Так, стоп, есть же!
Аноним 26/08/22 Птн 14:49:11 2446022 29
Ну что за пидарас придумал Dependency Injection, я нихуя не понимаю
Аноним 26/08/22 Птн 14:51:08 2446025 30
>>2446022
Его имя "здравый смысл "
Аноним 26/08/22 Птн 14:53:43 2446029 31
>>2446022
Дай мне свою голову, я вложу в неё своё понимание.
Аноним 26/08/22 Птн 14:58:18 2446035 32
>>2446022
> Опыт разработки ПО: меньше 3 лет
Аноним 26/08/22 Птн 15:19:46 2446054 33
>>2445844
У нас тоже можно вроде
Аноним 26/08/22 Птн 15:31:51 2446061 34
>>2446022
А что сложного? Наоборот, новичку в проекте позволяет легко понять что от чего зависит.
Аноним 26/08/22 Птн 15:32:28 2446062 35
>>2446054
Не вроде, а точно можно.
Аноним 26/08/22 Птн 15:37:39 2446066 36
>>2446035
Скорее меньше года.
Аноним 26/08/22 Птн 16:23:32 2446111 37
>>2445928
Ты прав. Я слишком все усложнил.
Новый контент(тред); Аноним 26/08/22 Птн 16:57:54 2446142 38
Аноним 26/08/22 Птн 17:30:22 2446186 39
>>2446022
Сам по себе DI не особо прикольный, а вот IoC контейнеры, значимой частью которых и является DI, это крайне сильная вещь для построения очень сложных систем.

DI же без IoC тебе просто даёт разносить код по разным классам.
Аноним 26/08/22 Птн 17:58:34 2446230 40
>>2446186
> Сам по себе DI не особо прикольный, а вот IoC контейнеры, значимой частью которых и является DI, это крайне сильная вещь для построения очень сложных систем.
Ioc это инверсия управления? Можешь пояснить, зачем оно надо? Ну зависит класс не от другого класса а от интерфейса, что это дает?
Аноним 26/08/22 Птн 18:04:31 2446236 41
>>2446230
IoC это автофабрика объектов. ты регистрируешь зависимости, а оно само собирает
Очень удобная штука.
Аноним 26/08/22 Птн 18:34:00 2446303 42
Подскажите, можно как-то получить имя переменной, а не класса? Что-то типа такого:

class Foo
{
public Foo() {
Console.WriteLine(%ЧТО-ТО%);
}
}

var Boo1 = new Foo(); // Консольный вывод: Boo1
var Boo2 = new Foo(); // Консольный вывод: Boo2
Аноним 26/08/22 Птн 18:41:05 2446318 43
>>2446303
с чего ему вдруг знать имя без дополнительных средств, которые тоже ограничены ибо специфика
так что у тебя в руках только 2 инструмента
nameof()
[CallerArgumentExpression]
Аноним 26/08/22 Птн 19:05:08 2446345 44
Методы должны быть выше их применения? Почему у меня компилятор не ругается? Вроде даже в джаваскрипте так делать нельзя.
Аноним 26/08/22 Птн 19:14:03 2446360 45
>>2446345
> Методы должны быть выше их применения?
нет. порядок не важен
IoC, DI, IoC-контейнер — Просто о простом Аноним 26/08/22 Птн 19:17:50 2446371 46
Аноним 26/08/22 Птн 19:25:29 2446390 47
0Male-hands-hol[...].jpg 80Кб, 1200x675
1200x675
Перекатываю

Давайте попроектируем абстрактно.
Допустим, будем придумывать облачную систему менеджмента ресурсов.
Под ресурсами понимаем - любую хуйню, которую можно как-то измерить.

Так вот. Допустим мы не знаем какую хуйню мы можем измерить. Но мы уже знаем, что нужно будет графики красивые строить, нужно оповещения о том что что-то привысило лимит, либо подходит к нему, нужно чтобы некоторые действия происходили при определенных условиях.

Ну, допустим кейс: мы измеряем количество топлива в самолете, и если количество топлива приближается к границе - отправляется уведомление диспетчеру, чтобы тот 1. Предупредил пилота, 2. Уже готовил команду для дозаправки.
Или другой кейс - при приближении к нижнему порогу количества чернил в принтере - уже состовляется заявка на замену картриджа, и в момент исчерпания реусрса картриджа - уже бежит эникей заменять.

Так вот. Какие сущности вижу я:

1. Нам нужна некая система именно что измерений. Тип измерения - абстрактный, содержит в себе только имя, и опционально - описывает метод проверки на нуль и сравнения значений. Сами измерения представляют из себя сущность вида: Метка времени, тип измерения, значение.
2. Нам нужна некая система профилей измерений для разных сущностей. Некое описание объекта, через его измерения.
3. Нам нужен канал получения данных. Это может быть некий протокол сетевой, может быть ручной ввод, может быть рассчитанное значение. Все это должны быть каналы получения данных. Данные отсюда - не знают что они такое.
4. Именно поэтому нам нужен некий интерпритатор/форматтер, который полученные данные из канала - преобразует к измерению.
5. Дальше - нам нужна некая система триггеров и пороговых значений. Ну, тут все просто. Имеем профиль, а дальше дело техники.
6. Нужна некая система действий. Простейший вид - действия определены заранее(отправить сообщение, воспроизвести звуковой сигнал). Чуть более сложный - действия можно комбинировать. Совсем сложный - пользователь может сам создавать действия на основе некоего графического языка программирования.

Вот так я это вижу.
А как бы вы такое спроектировали, шарпаны?
Аноним 26/08/22 Птн 21:31:32 2446511 48
Имплементировать Either в свой шарповский код - хорошая идея чи нет?
Просто меня немного подзаебало, что вот есть контроллеры. Вот есть сервисы. Я хуйнул Either<TResult, TError>, переопределил приведение.
Сейчас контроллеры выглядят примерно так:

public IActionResult GetList() => _service.GetList();
В случае если все ок - вернется лист, если не ок - ошибка вида:
{
Error:Code,
Message: ErrorMessage
}

Но чет я думаю - и со стороны ж не очивидно. Типа да, коджа стало меньше, он чище. Но теперь кому-то еще - нужно лезть в реализацию сервиса, чтобы понять, чому ему возвращается что-то там. А потом - разбираться как оно работает.
Короче. У вас такое делают?
Аноним 26/08/22 Птн 21:46:29 2446517 49
>>2446511
Я думаю хуйня. Контроллер отвечает за возвращение результата на запрос, пусть он этим и занимается.
Аноним 26/08/22 Птн 21:52:02 2446520 50
>>2446517
Ну блин. Мне не нравилось, что в таком случае - сервису нужно какую-то хрень делать.

Вот мне нужно получить по Id что-то.
Сервис полез в базу. Не нашел.
Что он должен вернуть? Null? MyNotFoundResult? Что еще?
Так я возвращаю Error.NotFound
А в контроллере просто делаю
return _service.GetItemById(id).ToActionResult();
Аноним 26/08/22 Птн 22:09:13 2446531 51
>>2446520
>Что он должен вернуть? Null? MyNotFoundResult? Что еще?
Сервис может вернуть пустой список или ссылку, а уже контроллер смотрит на результат и решает, что отправить в ответ..
Аноним 27/08/22 Суб 01:46:08 2446689 52
images (1).jpg 11Кб, 300x168
300x168
Ну что там по вакансиям ?
Аноним 27/08/22 Суб 04:24:18 2446710 53
>>2446689
Нормально вроде. Херочки из чатов пишут иногда, а что ?
Аноним 27/08/22 Суб 05:34:22 2446714 54
>>2446520
>Что он должен вернуть? Null? MyNotFoundResult? Что еще?
Что надо. Это называется контракт.

>А в контроллере просто делаю
то есть контроллер знает что ему возвращать, а сервис знать не может да?

зы: контроллер должен быть тонким
Аноним 27/08/22 Суб 06:45:03 2446721 55
>>2446142
посмотрел по диагонали. ох любит народ лисапедить.
1 бесполезно проверять через Dns.GetHostEntry. Это ни о чем не говорит. Делай запрос и в случае проблем уже разбирайся что не так.
2 Convert.ToDouble(readver) это вообще что такое блин. Есть же Version.TryParse. Как он будет в дабл перегонять 1.2.3.4?
3 taskkill /f - пох на несохраненные данные. юзер сам виноват ага )
Аноним 27/08/22 Суб 10:08:19 2446804 56
>>2446303
Нет, нельзя. В ассемблере имён переменных не остаётся, они кодируются адресами.
Аноним 27/08/22 Суб 10:12:10 2446809 57
>>2446689
Да норм всё, устроился без опыта даже на норм стек и продукт
Аноним 27/08/22 Суб 10:49:30 2446827 58
>>2446804
до ассемблера далеко. на уровне сборки все имена на месте
Аноним 27/08/22 Суб 11:19:45 2446870 59
image.png 87Кб, 1066x611
1066x611
>>2446303
Это нельзя сделать. Среда CLR внутри себя переменные может переименовывать. К примеру int a = 5; будет переименовано внутри метода как int num = 5; Помимо этого в Release если они не используются, то они даже не появятся в низкоуровневом C# коде, т.е и память на них не выделится и соответственно получить даже их значение нельзя. Однако, если эти переменные используются, то их можно получить, но имена их - нет.

К слову, подобный способ не всегда работает в Release режиме, поскольку компилятор упрощает код и внутри метода вместо объявления новых переменных он просто сразу закидывает их значения в методы Console.WriteLine():

Т.е вместо:
int a = 5;
Console.WriteLine(a);

Будет
Console.WriteLine(5);

Тогда локальные переменные можно получить если ты их создаешь, например, в результате выполнения другого метода И при этом используешь, иначе компилятор опять съест неиспользуемые локальные переменные.

Так же хочу еще добавить, в IL коде имён переменных вообще нет (вроде), там просто происходят манипуляции со стеком, а при вызове какого-то метода значения достаются из стека.
Аноним 27/08/22 Суб 11:34:29 2446887 60
>>2446870
А как например работает атрибут CallersMemberName?
Аноним 27/08/22 Суб 11:46:01 2446892 61
>>2446887
На уровне компилятора
Он вшивает как строки имена при компиляции
Аноним 27/08/22 Суб 12:03:55 2446908 62
>>2446887
А что не так? Ты можешь получить любые имена, кроме локальных переменных. Когда ты помечаешь атрибутом CallerMemberName какой-то входящих параметр в методе, то при передаче условного поля в этот метод атрибут просто получит имя входящего параметра. Входящие параметры это не локальные переменные.
Аноним 27/08/22 Суб 12:17:41 2446944 63
>>2446721
Да - это Хач! Он такой, да. А ещё если твой пост ему в конфочке написать, он завизжит и забанит. Нуфф сказал.
Аноним 27/08/22 Суб 19:28:30 2447423 64
>>2446142
Странный какой-то метод обновления.
1. Твой домен могут подменить без каких-то вопросов, в результате - его метод удалит его же программу.
2. На каждый запрос создается HttpClient. Нахуя?
3. Заменяет программу целиком. Что это вообще за бред-то? У тебя вышел микропатч на здоровенную программулину, допустим кнопка глючила на такой-то вкладке в такую-то фазу луны. Ебись оно все конем - 10 гигов качаем, сносим все. Бред короче.
4. Общая подача, дескать я пиздец как разбираюсь, а потом пук-сереньк, если бы мне не сказали, я бы никогда не узнал, что такое workdir. Это уже не вопрос к методу обновления, а к самому челу.
5. Версия приводится к double - что вообще за бред-то? У нас на работе, допустим, система версий вот такая: 1.0.0.0beta1buildTimebuildHash
6. Почему не делать как человек: скачали, подождали пока пользователь закроет программу, и после этого - обновились, либо при следующем старте.
Аноним 27/08/22 Суб 19:53:52 2447434 65
>>2446142
Зачем этого дегенерата смотреть? Он же нихуя не знает
Аноним 27/08/22 Суб 20:21:16 2447458 66
Я поставил sql server в докер на линупсе. Все по майковским инструкциям, все тесты сделал, тестовую базу сделал, тестовые запросы сделал — все работает. Но вот вопрос — где взять гуй? Не будешь же с базой в командной строке общаться. Пробовал Azure Data Studio — кидает ошибку при попытке подключения (гугл перекопал до десятой страницы, ни один ответ не помог).
Аноним 27/08/22 Суб 20:24:26 2447466 67
Аноним 27/08/22 Суб 20:37:17 2447480 68
>>2447458
>докер на линупсе
откуда в треде столько мазохистов что разрабатывают на линупсах
Аноним 27/08/22 Суб 20:38:59 2447485 69
>>2447480
Тоже не перестаю охуевать. И ладно другие языки, но шарп! Майковский язык, созданный с прицелом на винду. Но нет, пердолек это не останавливает.
Аноним 27/08/22 Суб 20:48:18 2447506 70
Аноним 27/08/22 Суб 20:49:27 2447508 71
Аноним 27/08/22 Суб 21:55:10 2447624 72
>>2447480
>>2447485
Как только винда перестанет быть решетом, которое еще и отправляет каждый пук майкам, сразу же перейду.
Аноним 27/08/22 Суб 22:01:08 2447626 73
>>2447624
>>2447480
Кхм. А на чем будет ваш шарповский код крутиться? 10 лет назад - еще было непонятно, там вроде и люмия была, и десктом еще вроде как жив. Сейчас - шарп на 90% это веб-хуйня, с прицелом на облака.
Ну так вот. Сейчас на шарпе не для линукса будет писать либо дурачок, либо застрявший на легаси, либо чел который кодит для себя. В остальных случаях - ты пишешь под линукс. А если пишешь под линукс - хорошо бы и окружение линуксовое иметь. Потому что я ебал проверять что все нормально работает в WSL или на виртуалке.
Аноним 27/08/22 Суб 22:03:37 2447629 74
>>2447626
Оконные приложения сейчас пишутся на Шарпе. Некоторые игры, например, X-com, пишутся на шарпе
Аноним 27/08/22 Суб 22:34:48 2447650 75
>>2447629
А 90% остальных программулин - это веб-хуйня на асп, чтобы жсоны гонять.
Аноним 27/08/22 Суб 22:37:59 2447653 76
>>2447629
Но я веб-макака будущая, так что и по этому критерию тоже линукс. Увы, Датагрип не помог сконнектиться с блядской мелкософтовской бд. Ошибка и иди нахуй. В чем ошибка, что поправить - иди нахуй. Типичные майки. Контора пидарасов.
Аноним 27/08/22 Суб 23:22:14 2447703 77
1.png 9Кб, 545x73
545x73
2.png 17Кб, 664x216
664x216
3.png 24Кб, 605x329
605x329
Ну. Возвращаясь к вчерашнему вопросу про использование либо.
Ну, разве не удобнее так оно выглядит?
Аноним 27/08/22 Суб 23:24:05 2447704 78
>>2447703
Типа да, в такой реализации - всегда 200 вернется.
Но 1. Я сторонник всегда 200. 2. Можно не к строке с жсоном приводить, а к тому же ActionResult MVC'шному.
Аноним 28/08/22 Вск 06:29:10 2447810 79
>>2447626
>Сейчас на шарпе не для линукса будет писать либо дурачок,
Есть разница писать ДЛЯ линупса сидя в мощной визуал студии
и НА линупсе

>все нормально работает в WSL или на виртуалке.
жуть какая. это нужно нейросетями баловаться чтобы такая проблема возникла

>>2447653
>Но я веб-макака будущая, так что и по этому критерию тоже линукс
Я пью воду, я пью - значит я алкаш. Логично же )
Аноним 28/08/22 Вск 07:31:44 2447820 80
изображение.png 15Кб, 551x87
551x87
Как понять когда значение передается по ссылке, а когда копируется? Вот на пике если я изменю head, изменится ли first?
Аноним 28/08/22 Вск 08:18:27 2447833 81
>>2447820
без явного указаний типа ref
всегда что-то копируется
разница лишь в то что копируется
для значимых типов - значения
для ссылочных типов ссылка

ListNode first = head копирует ссылку из head в переменную fisrt

потом что хочешь делай с оригиналом, копию это не затронет.
Аноним 28/08/22 Вск 09:56:08 2447858 82
1661669767332.gif 1370Кб, 468x271
468x271
Аноним 28/08/22 Вск 19:57:20 2448559 83
Почему во втором методе, при указании обязательного параметра строка экранируется и как это отключить?
https://pastebin.com/Jq96CrWU
Аноним 28/08/22 Вск 20:31:05 2448590 84
>>2448559
В первом передаётся строка hello1?=1/1, во втором
hello2/1/1, но так как это надо можно распарсить как hello2 => 1 => 1, то вот делается такое приведение
Аноним 29/08/22 Пнд 18:19:01 2449448 85
1.png 7Кб, 824x283
824x283
>>2448590
> то вот делается такое приведение
Это понятно, но почему в 1-ом случае на выходе он делает обратное преобразование, а во 2-ом нет?
Интересно, что на входе он автоматически экранируется в обоих вариантах.
Как получить оригинальную строку при использовании 2-го варианта?
Аноним 29/08/22 Пнд 19:00:47 2449494 86
Почему rider так тупит? Студия грузит проект с +- сотней файлов почти мгновенно и синтаксис сразу подсвечивается, а райдер минуту думает
Аноним 29/08/22 Пнд 19:02:19 2449498 87
>>2449494
а студия с решарпером?
Аноним 29/08/22 Пнд 19:04:49 2449501 88
Аноним 29/08/22 Пнд 19:28:59 2449522 89
>>2449494
> Почему rider так тупит?
Потому что ты не купил лицензию. Купи лицензию, чо ты как этот?
Аноним 29/08/22 Пнд 19:45:19 2449535 90
>>2449494
Студия написана на нормальном языке, а ридер на жабе.
Аноним 29/08/22 Пнд 19:59:29 2449547 91
Короче, пасаны, после долгих изысканий я выяснил, что кроме Авалонии на шарпе альтернатив нет, чтобы сделать кроссплатформенное окошко. Остальные тулкиты не дотягивают. Ну и что, что вид не нативный. Ой, да кого это ебёт в 2к22?
Аноним 29/08/22 Пнд 20:01:41 2449549 92
Аноним 29/08/22 Пнд 20:02:33 2449551 93
>>2449549
Тогда я вообще электрон взял бы и нахуй послал сишарп.
Аноним 29/08/22 Пнд 20:09:42 2449554 94
>>2449547
За 15 лет экспирианса десктопного линукса, его так нефига до ума и не довели, большая часть окошечек-приложений выглядят на уровень лаба1. В итоге сложилось впечатление, что на этом говне реально сидит 1,5 анона, но по требованию из инета звучит так что линукс-десктоп это 99% рынка и все возмущаются - "да как же так! Нет кросс-гуи на линупсы!" это не отменяет того факта, что MAUI выпилили технично линукс, который там был, лол
Аноним 29/08/22 Пнд 20:12:47 2449556 95
>>2449551
Можно потыкать Compose Multiplatform, дурацкое схожие название, которое вводит в заблуждение, но это именно гуишка. Я лично жду когда они начнут свои флагманские проекты на нем писать, ибо это выглядит хренова, когда автор технологии сам в своих продуктах юзает поминимому
Аноним 29/08/22 Пнд 20:17:32 2449561 96
image 201Кб, 2200x651
2200x651
Прикинул правила расставления { } от микрософт и чёт не уверен, что они повышают читабельность. Или всё же повышают? это код из геймдева, поэтому он такой странный
Аноним 29/08/22 Пнд 20:20:17 2449564 97
>>2449561
если выражение после if/for идет многострочное то лучше поставить скобки {} везде. Если все условия не многострочные то лучше без скобок
Аноним 29/08/22 Пнд 20:24:38 2449568 98
>>2449547
Откуда такое желание сделать приложение доступным для пердоликов и глиномесов?
Аноним 29/08/22 Пнд 20:26:05 2449570 99
>>2449568
Потому что майкрософт ушёл из России. Скоро все будем на Роса ОС сидеть.
Аноним 29/08/22 Пнд 20:26:40 2449572 100
>>2449561
Ставь скобки везде, будь скобкоблядком, как мы!))
Аноним 29/08/22 Пнд 20:37:52 2449580 101
>>2449547
>что кроме Авалонии на шарпе альтернатив нет
Только больно много в ней "блин а это как блин делать?"
Вроде триггеров, inputbindings, вечно глючного дизайнера в студии, хз что вместо Visibility.Hidden и так далее.

>>2449556
дико обожаю compose, но это все таки котлин.
Аноним 29/08/22 Пнд 20:53:19 2449593 102
Хоспаде, ну почему devexpress платный
Аноним 29/08/22 Пнд 20:54:24 2449595 103
>>2449580
> это все таки котлин
…который тянет за собой ЖВМ.
> больно много в ней "блин а это как блин делать?"
Открытая в соседнем окне документация решает проблему. Вот, например, третьего дня решил поначалу неочевидный для меня момент с IObservable<bool> в качестве параметра CanExecute команд. Я дико ругался и топал ножками, что за хуйню они выдумали и как это туда передать? А оказалось всё просто и удобно, через WhenAnyValue.
Аноним 29/08/22 Пнд 20:55:32 2449596 104
>>2449593
Потому что либо ты платишь и профи делают всё за тебя, а ты только готовые компоненты расставляешь, либо делаешь всё сам. Бесплатно. Другой реальности у нас для вас нет.
Аноним 29/08/22 Пнд 21:00:12 2449603 105
>>2449595
>…который тянет за собой ЖВМ.
на это как бы плевать, шарп тоже тянет clr
там другие траблы
наряду с няшным синтаксисом от которого у меня постоянно в шарпе пригорает "ну почему в шарпе так нельзя" имеем торчащие уши жава рантайма и не самая понятная система корутин.

>Открытая в соседнем окне документация решает проблему
нет не решает. частично решает если ты решил использовать именно реактивеуи, но даже в кратком списке что я вот вспомнил реактивуи никак не поможет.

ну и конечно же шрифты с их мылом.
Аноним 29/08/22 Пнд 21:04:54 2449607 106
>>2449603
> няшным синтаксисом
Синтаксис всем хорош, вот только паскалевские объявления переменных с типом впозаде всё портят. Тип должен быть первым, это не обсуждается, поэтому котлин соснёт и займёт своё место на свалке истории. Можете скринить.

> в кратком списке что я вот вспомнил
Пили список. Порешаем вместе. (И я попрактикуюсь).
Аноним 29/08/22 Пнд 21:09:12 2449614 107
>>2449593
Как же хорошо, что devexpress платный! Я вообще за то, чтобы платными сделали ещё и WinForms, WPF, UWP, MAUI, Avalonia и Eto.Forms.
Аноним 29/08/22 Пнд 21:11:31 2449615 108
>>2449607
>с типом впозаде всё портят
на любителя. я выучил шарп за многие годы как изучил питон и котлин, и мне типы позади нравятся больше.

>Пили список. Порешаем вместе
да хотя бы тот что я дал
триггеров в стиле нет - вместо них нужно юзать бехавиорсы какие то
инпутбиндигс нет - снова бехавиорсы
дизайнер - DesignInstance нет. <Design инстанцирует вьюмодель что плохо.
дизайнер с его постоянными придирками "плохой хамл" но при этом все прекрасно работает.
Visibility.Hidden нет и так и не нашел чем заменяется

шрифты на винде мыло. вроде там внедряли ClearType (в упор не видел разницы) но в skia опять сломали (хотя я разницы и не увидел)
Аноним 29/08/22 Пнд 21:46:51 2449657 109
>>2449615
> <Design инстанцирует вьюмодель что плохо
Эм... А какая разница? Этот инстанс же только в дизайн-тайме?
Аноним 29/08/22 Пнд 21:49:40 2449659 110
>>2449657
Ну он как бы не инстанцируется без пустого конструктора
а делать пустой конструктор ради только дизайнера - на нах

в итоге он пытается что то там резолвить и выдает NRE

в WPF есть IsDesignTimeCreatable=False что решает проблему
а тут хрен
Аноним 29/08/22 Пнд 21:57:12 2449664 111
>>2449561
У меня вопрос. В геймдеве - не научились отключать уровни логгирования в самом логгере, чтобы не писать это вот if(Log.Level >= LogLevel.Information) ?

Ну, банально блин, обернуть этот вот статический класс другим таким же, чтобы не хреначить постоянно это вот if(Log.LogLevel), а дергать его.

А по хорошему - вообще сделать обертку без статики, прокидывать ее к твоему коду.
Аноним 29/08/22 Пнд 21:59:58 2449665 112
>>2449664
это защита от лишних аллокаций же. даже если в логере вывод отключен, то твои данные для лога аллоцируются, боксятся и так далее.

Это только в 10 шарпе появилась возможность сделать это дешевле, но это не про геймдев.
Аноним 29/08/22 Пнд 22:00:27 2449667 113
Аноним 29/08/22 Пнд 22:06:28 2449672 114
>>2449665
Хер знает какие там лишние аллокации. У нас на работе - логгировать нужно каждый шаг, потому что правила такие, чтобы потом можно было восстановить, какие пакеты приходили, есть ли там проблемы с сетью и прочее. Так вот, 40к подключенных устройств с трафиком под 100ГБ/с, без лога - 800мб, с логом - 810МБ. Да, я логгер писал свой, но там никаккой магии, простой поток, который очередь разгребает, а при остановке приложения - все что осталось в очереди - пишет.
Короче. ХЗ. Экономия как по мне на спичках, при этом код - ужасно неудобен из-за того что потом придется везде менять это вот, вместо того чтобы просто конфиг поправить в одном месте.
Аноним 29/08/22 Пнд 22:10:22 2449674 115
>>2449672
>который очередь разгребает
он разгребает НЕНУЖНУЮ очередь. каждый вызов метода логирования вызывает необходимость аллокацировать хотя бы LogEntry для постановки в очередь + боксинг для параметров, а то и вычисление самих параметров.

Если неудобно, то вот есть подход (тайминг)
https://www.youtube.com/watch?v=Sq_h5bVWJ0k&t=2130s
Аноним 30/08/22 Втр 00:17:54 2449804 116
>>2449674
> Если неудобно, то вот есть подход (тайминг)
Интересный подход. Спасибо за наводку.
Аноним 30/08/22 Втр 00:39:53 2449824 117
>>2446345
>джаваскрипте
Там же тоже можно в любом месте объявлять
Аноним 30/08/22 Втр 08:06:32 2449867 118
Аноним 30/08/22 Втр 11:25:31 2449984 119
Аноним 30/08/22 Втр 12:30:02 2450024 120
>>2449984
в смысле? Это всегда так было, ты чего?
Аноним 30/08/22 Втр 12:51:02 2450042 121
>>2449659
> а делать пустой конструктор ради только дизайнера - на нах
Делай конструктор с дефолтными значениями параметров.
Аноним 30/08/22 Втр 13:31:40 2450074 122
>>2450042
вот только это хрень, а не подход. просто костыль сраный.
Аноним 30/08/22 Втр 13:44:40 2450085 123
Аноним 30/08/22 Втр 13:52:27 2450097 124
>>2450074
Язык позволяет. Законом не запрещено. Хули ты ебало скрючил?
Аноним 30/08/22 Втр 13:53:19 2450099 125
>>2450085
> В чем не прав этот интеллигентый господин?
В том, что растянул на 16 минут 3,5 слова про то, что джава говно, а шарп лучший!
Аноним 30/08/22 Втр 13:55:22 2450102 126
>>2450097
законом не запрещено писать и на ассемблере. хули ты на языке высокого уровня пишешь? чего экономишь то?
Мне нужны только подсказки имен и для этого пытаться реализовывать весь контракт вьюмодели мне нах не всралось - это тупо бойлерплейт.
Аноним 30/08/22 Втр 14:10:20 2450120 127
>>2449664
> чтобы не писать это вот if(Log.Level >= LogLevel.Information) ?
Ну напиши это вот один раз псевдосвойством с геттером и вставляй везде.

[code]
bool LogLevelInfo { get => LogLevel.Debug >= LogLevel.Info; }

void test()
{
if (LogLevelInfo)
{
Console.WriteLine("Okay");
}
else
{
Console.WriteLine("Not Okay");
}
}
[/code]
Аноним 30/08/22 Втр 14:11:10 2450121 128
>>2450102
Ну так не реализовывай весь контракт. Тебя кто-то заставляет?
Аноним 30/08/22 Втр 14:16:19 2450129 129
Аноним 30/08/22 Втр 14:17:47 2450130 130
>>2450121
> Тебя кто-то заставляет?
>>2450129
> Да.
Значит реализовывай контракт полностью. А не то премии лишат.

> Иначе NRE
Сделай конструктор с дефолтными значениями параметров.
Аноним 30/08/22 Втр 14:24:18 2450135 131
>>2450130
я просто не буду писать на авалонии
уйду лучше в монастырь (то есть на compose desktop)
Аноним 30/08/22 Втр 14:27:05 2450140 132
>>2450135
Двачую! А я уйду на Лазарус/фрипаскаль.
Аноним 30/08/22 Втр 15:07:53 2450163 133
>>2450120
и как это отменяет необходимость писать if на каждую строчку кода? никак

та же херня и в Diagnostic
Аноним 30/08/22 Втр 15:23:28 2450177 134
>>2450163
> необходимость писать if на каждую строчку кода?
А вот это сообщение попахивает дурной архитектурой.
Аноним 30/08/22 Втр 15:25:27 2450179 135
>>2450163
Как по мне, так лучше завести таки по отдельному методу расширения для каждого метода логгирования, в которых и будет происходить проверка, и навесить на каждый [MethodImpl(MethodImplOptions.AggressiveInlining)]
Типа
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void TraceIfEnabled(this Logger logger, string mesage)
{
if (logger.Level >= LogLevel.Tracing)
{
logger.LogMessage(message);
}
}

В таком случае, с очень большой вероятностью при компиляции тело метода будет поставлено в места его вызова, а там уже компилятор проведет внутриподецурную оптимизацию (один из самых простых видов оптимизации для него) и повырезает лишние аллокации.
Аноним 30/08/22 Втр 15:29:20 2450182 136
>>2450177
>>2450163
Чтобы архитектура пахла лучше, оберни вывод в лог в отдельную функцию Add2Log(LogLevel l, string Message); и тупо пиши его всегда, снабжая логлевелом
> Add2Log(LogLevel.Informational, "Account: autentificate with ExtremistBook");
Все ифы ты напишешь один раз в обёртке.
Аноним 30/08/22 Втр 15:30:20 2450183 137
>>2450179
Хуита. Просто тупо обёртку ебани.
Аноним 30/08/22 Втр 15:36:40 2450188 138
>>2450183
Так это по сути и есть такая же обёртка. Мне просто удобней, когда есть отдельные методы для каждого из уровней логгирования. И, судя по наличию в MS.Extensions.Logging методов расширения типа LogDebug(this ILogger, ...), это удобно не только мне. Можно, конечно, вообще сделать и обёртку по твоему типу, и метод расширения.
Аноним 30/08/22 Втр 16:09:00 2450232 139
>>2450177
причем тут архитектура до строчки лога

>>2450182
>снабжая логлевелом
в огороде бузина а в киеве...
ты вообще не понял суть проблемы

>>2450179
>AggressiveInlining 256 Метод должен по возможности выполняться как встроенный.
>по возможности
как то все ненадежно.
вариант с видео от Jetbrains пока самый лучший
Аноним 30/08/22 Втр 16:14:53 2450241 140
>>2450179
> при компиляции
разве что при третьей -- второй IL->native компиляция.
в ИЛе это отдельный метод остаётся, я многократно проверял
Аноним 30/08/22 Втр 16:21:36 2450251 141
>>2450232
> ты вообще не понял суть проблемы
Ну перефразируй. Хуль.
Аноним 30/08/22 Втр 16:28:44 2450261 142
>>2450241
Ну как бы да. Но, как по мне, это не проблема. Скорее всего, если ты пытаешься так изъебнуться с оптимизацией логгирования, то ты опасаешься, как бы оно не оказалось в горячем коде и не начало там стрелять. А горячий код у тебя, так или иначе, через какое-то время будет пересобран JIT-ом на максимальным уровнем оптимизации. А там и PGO ещё подтянуться может, который отметит, что код под условием ни разу не выполнялся, и выкинет его к херам, оставив на всякий случай fallback.
Аноним 30/08/22 Втр 16:43:04 2450271 143
>>2450251
проблема стара и проста

1 ты пишешь логи уровня трейс допустим. никаких проблем

2 тебе не нужны на продакшене такие подробные логи и ты отключаешь на уровне логера писать трейс в лог, но все строки logger.Log* по-прежнему продолжают вычисляться, рождать никому не нужные объекты, делать боксинг. На все это зря тратится cpu и нагружается gc

3 Это не те строчки лога, что можно вырезать через ConditionalDebug - они должны быть в сборке продакшена.
И потому чтобы решить проблему ты берешь стандартное решение - У КАЖДОЙ строчки лога пишешь if(TraceEnabled)

4 потом тебя задалбывает писать этот if и ты идешь искать решение как писать поменьше бойлерплейт кода.
Аноним 30/08/22 Втр 17:27:26 2450302 144
>>2450271
> но все строки logger.Log* по-прежнему продолжают вычисляться
> ты берешь стандартное решение - У КАЖДОЙ строчки лога пишешь if(TraceEnabled)
Но я предложил написать этот иф единожды в методе-обёртке.
Соответственно, в продакшене метод-обёртка будет пропускать неподходящего уровня вызовы, и не пускать их дальше в логгер, и методы логгера не будут вычисляться и занимать память.
Почему же я неправильно понял суть проблемы?
Аноним 30/08/22 Втр 17:31:26 2450304 145
>>2450302
Подход с if-ом также позволяет избавиться от операций по подготовке сообщения для логгирования. К примеру, сборки строки сообщения с подстановкой в нее значений различных переменных.

Предложенный тобой способ избавляет от записи лога, но все же требует, чтобы сообщение было собрано до вызова метода.
Аноним 30/08/22 Втр 17:37:26 2450310 146
>>2450304
Значит, вынести сборку сообщений в отдельные методы и передавать эти методы коллбэком в обёртку. В том числе лямбдой на месте писать:
Add2Log( Loglevel.Level, () => { // Сборка месседжа здесь; } );
Аноним 30/08/22 Втр 18:00:03 2450332 147
>>2450310
Создание делегата тоже не бесплатная по аллокациям операция.
Аноним 30/08/22 Втр 18:26:52 2450352 148
Меня решарпер подъебал недавно.
Предложил переобъявление рекордов с новыми значениями заменить на
var new record = oldRecord with {someProp = newValue}
А эта хуйня делает теневую копию - не копирует строки и референс тайпы а копирует их ссылки.
И нахуя такой авторефакторинг предлагать спрашивается?
Аноним 30/08/22 Втр 18:27:52 2450353 149
Аноним 30/08/22 Втр 19:03:33 2450382 150
Для шараги нужно установить Visual Studio, но я аутист с некропк, который предпочитает писать в блокнотике и кокомпилировать ручками.

Какая из старых версии мне лучше подойдёт (4Гб памяти)? 2015?
Аноним 30/08/22 Втр 19:10:35 2450388 151
>>2450332
А классы-атрибуты бесплатные?
Аноним 30/08/22 Втр 19:18:48 2450397 152
>>2450382
Где-то так, но там и будет какой-то дотнет 2 или 3, который та же самая лютая некрота.
Аноним 30/08/22 Втр 19:20:48 2450400 153
>>2450397
А не, это я перепутал с 2005. Но всё равно старое говно.
Аноним 30/08/22 Втр 19:22:28 2450401 154
>>2450400
>Но всё равно старое говно.
А как быть-то. Качать новую, но ставить минимальную комплектацию и использовать офлайн документацию?
Аноним 30/08/22 Втр 19:38:30 2450418 155
>>2450388
хз че за классы-атрибуты
if бесплатен

Подход jetbrains тоже бесплатен при выключенном трейсинге, а если включен то очень очень дешев.

инлайн метод - тут не котлин где инлайн методы есть и надеятся встроит не встроит это не дело.
Аноним 30/08/22 Втр 19:52:25 2450427 156
>>2450418
> хз че за классы-атрибуты
Да, ХЗ, вспомнилось чот.
Аноним 30/08/22 Втр 19:59:48 2450435 157
>>2450382
Устанавливай .net 3.1 и какую-нибудь vs 2015. для пту хватит.
Аноним 30/08/22 Втр 20:25:52 2450468 158
>>2450388
В данном случае да, так как они инстанцируются один раз при загрузке класса. Объекты лямбд же у тебя будут создаваться каждый раз при вызове такого метода логгирования. Ведь чтобы сбилдить строку, зависимую от аргументов, ей придется эти аргументы замыкать. Ну если только ты туда не хочешь статическую лямбду передавать. А это тупо, так как в таком случае проще строку один раз собрать и не париться с какими-либо лямбдами.
Аноним 30/08/22 Втр 20:50:38 2450476 159
>>2450468
> Объекты лямбд же у тебя будут создаваться каждый раз при вызове такого метода логгирования
Ну значит создать делегаты под каждый случай по одному разу и передавать их, а не лямбды.

Как ни крути, получается бойлерплейт, проще не ебать мозги и юзать иф.
Аноним 30/08/22 Втр 21:27:31 2450501 160
>>2450382
> я аутист с некропк, который предпочитает писать в блокнотике и кокомпилировать ручками
Ну и не ставь студию, пиши в блокноте, компилируй через C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
Аноним 30/08/22 Втр 21:39:06 2450515 161
>>2450501
Не, пусть ставит дотнет 6 и вс-коде. Конпелирует пусть через dotnet run / dotnet build / dotnet publish. Я так делаю на своей некропеке, базарю, всё летает, ещё захочеш!
Аноним 31/08/22 Срд 10:05:28 2450715 162
Какой самый эффективный способ сделать string.format без аллокации?

Пока вижу только вариант использовать один экземпляр StringBuilder. И его метод:
AppendFormat(String, Object, Object, Object)

Предварительно все аргументы привести к строке, чтобы избежать боксинга. А если аргументов больше 3х, ну придется аллоцировать, хотя в обычной ситуации больше 3 и не надо.
Аноним 31/08/22 Срд 10:11:36 2450717 163
image.png 43Кб, 921x229
921x229
Аноны, скажите пожалуйста вот у меня есть реквест ентити в фориче, разве ентити не оптимизирован так что он сначала будет создавать команду для базы, а потом когда дойдет до SaveChangesAsync вытянет все и и сделает одной командой?

мне говорят что ентити будет делать 100 реквесто в базу, я считаю что убдет делать 2, кто прав?
Аноним 31/08/22 Срд 10:25:25 2450729 164
А нахуя вы считаете аллокации? GC сам должен управиться со всей магией.
Аноним 31/08/22 Срд 10:26:21 2450730 165
>>2450715
Самый эффективный способ - писать на сишке, а здесь забей.
Аноним 31/08/22 Срд 10:48:40 2450738 166
А как наследовать массив? Мне нужен массив, но с доп методами (расширения не предлагать).

Если я создам структуру, внутри которой будет поле массива, то это будет плохой идеей? Тогда структура будет передаваться по значению?
Аноним 31/08/22 Срд 10:58:05 2450741 167
>>2450715
Если уж так горит сделать с минимумом аллокаций, то можно string.Create заюзать. Правда придется сначала вручную вычислить длину финальной строки, а потом же вручную копировать span-ы строк аргументов в span финальной.
Аноним 31/08/22 Срд 12:10:15 2450770 168
>>2450715
использовать 10й шарп
Аноним 31/08/22 Срд 12:22:33 2450778 169
>>2450730
Типичное зумерье, которое верить, что чем ниже язык тем производительнее. Что не ассемблер? А может сразу машинный код?

>>2450715
Эффективно юзать буфер из массива байт, а потом его привести в строку (не просрав кодировку).
Аноним 31/08/22 Срд 12:25:12 2450780 170
>>2450729
>GC сам должен управиться со всей магией
он и управляется...за счет поедания ресурсов на свою работу
Аноним 31/08/22 Срд 12:26:32 2450781 171
>>2450778
> Типичное зумерье, которое верить, что чем ниже язык тем производительнее.
Чем более низкоуровневый язык, тем меньше накладных расходов.
> Что не ассемблер? А может сразу машинный код?
Ты дурак? Ассемблер это набор мнемоник для машинных кодов.
Аноним 31/08/22 Срд 12:29:00 2450783 172
>>2450781
>Чем более низкоуровневый язык, тем меньше накладных расходов.
только есть тонкость. растет сложность и в итоге компилятор рождает более эффективный код, чем человек.
Аноним 31/08/22 Срд 12:32:05 2450784 173
>>2450783
В случае с написанием кода на ассемблере компилятор сей действительно скорее всего родит более эффективный код, однако к более высокоуровневым языкам это не относится. А про интерпретирумые вроде шарпа и речи не идёт.
Аноним 31/08/22 Срд 13:05:47 2450809 174
>>2450784
Как бы net-ий MSIL перед выполнением каждого метода собирается JIT'ом в машинный код. Классической интерпретации уже давно нет. Плюс JIT потом может пересобрать методы с большим уровнем оптимизаций. А так как JIT имеет доступ к статистике исполнения кода, то он может сгенерировать код более эффективный, чем выдал бы AOT-компилятор. Как пример, в рантайме JIT может убедиться, что у интерфейса есть только один класс, его реализующий, и выполнить девиртуализацию вызова.
Аноним 31/08/22 Срд 13:24:31 2450826 175
>>2450778
>Эффективно юзать буфер из массива байт, а потом его привести в строку (не просрав кодировку).
Так стринг билдер этим и занимается. Нахер городули городить? Еще и медленнее получится.
Аноним 31/08/22 Срд 13:29:35 2450832 176
Аноним 31/08/22 Срд 13:32:11 2450834 177
>>2450784
> В случае с написанием кода на ассемблере компилятор сей действительно скорее всего родит более эффективный код
Дядь Вась, ассебмлер это И ЕСТЬ МАШИННЫЙ КОД
Аноним 31/08/22 Срд 14:42:43 2450913 178
>>2450832
> нихера не понимаешь
Прочитал треть, дальще стало скучно. Понял, что майки продолжают совершенствовать шарп и оптимизировали компилятор. Молодцы, чо. Спасибо.
Аноним 31/08/22 Срд 14:43:38 2450915 179
Даайте обсудим наболевшее. Перестаньте делать вид, будто ничего не происходит.

Почему диспатчер все называют диспетчером??
Аноним 31/08/22 Срд 14:53:32 2450925 180
>>2450915
А с щедулером и репазитарием все ок значит?
Аноним 31/08/22 Срд 15:00:44 2450931 181
Аноним 31/08/22 Срд 15:22:30 2450957 182
Аноним 31/08/22 Срд 15:24:54 2450960 183
>>2450717
Сделай и проверь, ептыть
Аноним 31/08/22 Срд 15:32:13 2450966 184
>>2450931
> с написанием кода на ассемблере компилятор сей действительно скорее всего родит более эффективный код
> то есть прессуппозицией является то, что ассемблер это язык, который подвергается анализу, а не просто перекладываемый 1:1 в байт-код процессора
И какое же слово я прочитал неправильно?
Аноним 31/08/22 Срд 15:39:10 2450974 185
image 86Кб, 262x206
262x206
Какой же C# сасный. Я прям тащусь!
Аноним 31/08/22 Срд 15:41:23 2450975 186
>>2450974
Удваиваю. Особенно лямбды, после них другие языки кажутся недоделаными.
Аноним 31/08/22 Срд 15:54:29 2450981 187
>>2450975
>лямбды
>пук среньк DisplayClass у вас тут гигабайт лишних аллокаций набежал
Аноним 31/08/22 Срд 16:00:38 2450989 188
>>2450966
Да, все таки жопочтец. Я имел в виду, что код написанный на си, и скомпилированный в машинные коды скорее всего будет столь же или даже более эффективным, чем код написанный вручную на асме.
Аноним 31/08/22 Срд 16:07:47 2450996 189
>>2450981
Да похую. Программы свои покажи, оптимизатор преждевременный. Аллокации, блять.
Аноним 31/08/22 Срд 16:16:15 2451002 190
>>2450960
Судя по профайлеру он каждый раз делает новый запрос
Аноним 31/08/22 Срд 16:20:04 2451004 191
>>2450989
жопочтец как раз ты. где я спорил с ЭТИМ тезисом? Я спорил с тем, что ассемблер не перекладывается 1:1 на нативный процессорный язык, а не с тем что сишный код будет быстрее за счёт всяких Спанов и прочьего. Не надо мне приписывать того, что я не говорил.
Аноним 31/08/22 Срд 16:21:22 2451006 192
>>2450975
>после них другие языки кажутся недоделаными.
кому как
в котлине синтаксис лямбд куда приятнее.
Аноним 31/08/22 Срд 16:31:53 2451017 193
>>2451006
Тоже сначала так считал, пока не стал замечать в кодах лямбду в лямбде, лямбдой погоняя. В итоге уже на хрен знает какой ступени теряешь понимание что вообще тут происходит.

Да, опять программисты плохие, язык хороший, но язык способствует такому синтаксису и люди это делают. А лямбда должна быть короткой и понятной, а не размазанными кишками бизнес логики
Аноним 31/08/22 Срд 16:44:05 2451021 194
>>2450832
> $"Hello, {name}! How are you on this fine {DateTime.Now.DayOfWeek}?",
Как же я люблю ПоХаПэ
Аноним 31/08/22 Срд 16:48:05 2451022 195
>>2451006
Я имею ввиду языки без лямбд. А в котлине глянул, вроде синтаксис такой же, стрелка и скобачьки.
Аноним 31/08/22 Срд 16:48:46 2451023 196
>>2451021
Почему бы не применять полезную мировую практику?
Аноним 31/08/22 Срд 17:15:18 2451035 197
>>2451017
>в кодах лямбду в лямбде, лямбдой погоняя.
ну в обычном коде - ссзб. а в DSL это просто пушка.
>>2451021
ну да. делали "свою жаву" и потому много изначально не сделали нужного, а потом уже впихивали как придется - IReadOnlyList, nullable, $"", [^1]...

>>2451022
>вроде синтаксис такой же, стрелка и скобачьки.
которые можно не писать если у тебя один параметр, да и сам параметр можно не писать. и вынести тело ламбды из вызова в блок, если ламбда параметр последний (такое еще в руби и руби силен именно DSL). Да и сигнатура выглядит приятнее

Func<string, int> vs (String)->Int

и поскольку там есть инлайн, ноинлайн, кроссинлайн жуть, то для них есть и возможность указать ретурн с точным указанием из чего ты делаешь ретурн.

А еще там есть скоупы - то есть допустим ты определил расширение к string типа "".Md5() Так вот ты можешь сделать скоуп - и только в нем будет доступно это расширение и больше нигде.

Результат этого - jetpack compose прямой которого эквивалент на шарпе выглядит бы коряво, да и работал бы не так

Аноним 31/08/22 Срд 17:18:40 2451038 198
>>2450996
Чел, видимо ты ни разу в жизни OutOfMemoryException не ловил.
Может быть для твоего легасного проекта с 1 rpm это и не важно и преждевременно, но когда начинается настоящий хайлоад приходится выкручиваться и писать allocation free код.
Аноним 31/08/22 Срд 17:30:38 2451049 199
>>2451035
> IReadOnlyList
А что не так? Рид-онли листов быть не должно?
> nullable
А здесь-то что не так?!
Аноним 31/08/22 Срд 17:38:58 2451054 200
>>2451049
>А что не так?
они внедрены ПОЗДНО, а значит их впихивали "как получается", а не по нормальному.
как итог IList не наследуется от IReadOnlyList
можно побухтеть про Interface Segregation Principle, но по факту у тебя по коду ходит Ilist и ты не можешь передать его просто туда, где ждут IReadOnlyList. А ведь именно так и правильно ожидать, то есть делать минимальный контракт. Но это неудобно и потому народ так и продолжает гонять везде IList по методам (я не из таких - у меня контракты жесткие и мне неудобна)

nullable же пришлось вводить как хинтинг. Можно конечно попробовать трактовать как ошибки, но это создаст свои проблемы - я пробовал Threat Warnings As Error и в итоге выключил нахер.
Аноним 31/08/22 Срд 17:41:53 2451060 201
>>2451054
> как итог IList не наследуется от IReadOnlyList
ну естественно. Рид-онли коллекции запрещают изменение или добавление элементов
Аноним 31/08/22 Срд 17:42:55 2451061 202
>>2451035
> там есть
> есть и возможность
> А еще там есть
Но энивей это жаваподелие, которое тянет за собой жаварантайм. Странная придирка из треда, который аналогичный рантайм за собой таскает, но всё же. Присматривался к котлину. Вроде неплохо, но что-то смущает.
Аноним 31/08/22 Срд 17:43:34 2451062 203
>>2451038
> когда начинается настоящий хайлоад
И когда же? Был ли у тебя хайлод? Сомневаюсь.
Аноним 31/08/22 Срд 17:49:13 2451066 204
>>2451060
>ну естественно.
перечитай внимательнее гринтекст )

>>2451061
> который аналогичный рантайм за собой таскает
я выше писал. срать на таскание рантайма - он везде большой и его можно установить и бинарник будет маленьким.
беда котлина это жава рантайм - нет типов, нет структур. сильная сторона - синтаксис и фичастость.
у шарпа синтаксис лучше жавы, но все многословнее и топорнее чем у котлина.

>Странная придирка из треда,
Что поделать. Когда пишешь на нескольких языках, то постоянно в каждом языке "блииин ну почему тут так не сделали, удобно же"
Аноним 31/08/22 Срд 18:26:25 2451108 205
Какого хуя вектора из System.Numerics не умеют в double?
Аноним 31/08/22 Срд 21:26:22 2451363 206
Аноним 31/08/22 Срд 21:53:17 2451394 207
>>2451038
Ну, допустим у меня на моем проектике - 10к+ rps.
Сервер для взаимодействия с устройствами. Устройства подключаются, висят на сервере подключенные, с ними может как сервер взаимодействовать так и кто-то извне что-то делать через сервер.
Юзал лямбды активно.
Относительно потребляемой памяти. 100к единовременно подключенных и висящих устройств и 10к клиентов что с ними работают. Трафик под 100Гб/с
2 ГБ оперативки.
Хуй знает короче. Я не то чтобы оптимизатор какой-то там. Единственное что делал оптимизатроского - свой буффер и пул для работы с памятью, ну и не юзал я этот вот хост который сейчас майки используют, а просто сделал свой, кек, в котором только то что мне нужно было. Но вот так вот. OutOfMemoryException за два года непрерывной работы хуевины - ни разу не было ни на одном из объектов где оно крутится.
Аноним 31/08/22 Срд 22:17:58 2451405 208
>>2451394
Если нет захвата переменных лямбдой то такие лямбды не влияют на память и gc ибо создаются один раз
Аноним 31/08/22 Срд 22:24:22 2451408 209
>>2451363
Да что ты? Где же Vector3 двойной точности?
Аноним 31/08/22 Срд 22:44:43 2451418 210
Я правильно понимаю, что массив из структур хранится в куче? В виде 1 объекта размером с Размер структуры * Кол-во элементов?
Аноним 31/08/22 Срд 22:51:04 2451422 211
>>2451418
Куча это объём неаллоцированной памяти, там ничего не хранится кроме мусора от предыдущих программ
Аноним 31/08/22 Срд 22:51:26 2451423 212
>>2451418
Да. Даже если список пуст
Аноним 31/08/22 Срд 22:56:48 2451426 213
>>2451422
ты еще скажи что куча это гомер.
Аноним 31/08/22 Срд 23:03:41 2451429 214
>>2450715
Span<char> наиболее быстро. Быстрее только наверн сделать функцию на С++ и потом маршаллить её результат в C#, но и тут свои подводные есть.
Аноним 31/08/22 Срд 23:04:21 2451430 215
Посоны, а что мета для аутентификации в мвц и, например, веб апи? ЖВТ или ney core identity или еще что-то? Что больше всего вкатуну пригодится?
Аноним 31/08/22 Срд 23:06:08 2451433 216
>>2451430
> мета
Это что-то на зумерском?
Аноним 31/08/22 Срд 23:08:40 2451435 217
image.png 439Кб, 960x540
960x540
>>2451429
> маршаллить её результат в C#
Я чекал вариант с dll на сях. Да, сявый код работает быстрее, но эта скорость нивелируется ценой вызова функции из dll
Аноним 31/08/22 Срд 23:09:02 2451436 218
>>2451430
IdentityServer пока забей, он платным с недавних пор стал. Сейчас все переходят OpenIdDict
Аноним 31/08/22 Срд 23:10:42 2451439 219
>>2451435
Всё зависит от контекста. Дай побольше информации о задаче
Аноним 31/08/22 Срд 23:11:23 2451440 220
>>2451433
Дедушка, подскажи пожалуйста, что для аутентификации учить зумеру?..
Аноним 31/08/22 Срд 23:12:21 2451441 221
>>2451429
ну спаны это уже ручной труд

ну вот либа ZeroLog которая логгер без алоков
он основан на ZString

а с выходом 10го шарпа стал использовать интерполяцию.

так уж лучше ZString использовать чем руками городить спаны
Аноним 31/08/22 Срд 23:15:23 2451445 222
>>2451441
Какой смысл в этой экономии на спичках?
Аноним 31/08/22 Срд 23:17:27 2451447 223
>>2451445
а зачем вот писать кучу экономных жсон сериализаторов если есть многофункиональный ньютонсофт?

спичек может быть очень очень много и вклад суммарно очень весомый.
Аноним 31/08/22 Срд 23:19:17 2451450 224
>>2451445
Это важно на мобилках и в серверных приложениях. Чтобы лишний раз не драконить гербедж коллектор.
Аноним 31/08/22 Срд 23:26:43 2451451 225
je7p5AHzEAM.jpg 122Кб, 1080x1047
1080x1047
Эй, шарпчане!
Почитал ваш тред, интересно.
Сам вот недавно только осознал, шо свято хочу изучить этот язык. Начал, вроде все прикольно, интересно. Изначально, ещё при выборе языка, даже не думал, о работе в этом направлении, а вот теперь встал вопрос. Есть ли здесь аноны, которые РАБотают именно с этим языком на РАБоте. Пилите стори: какой функционал выполняете? Сколько зарплата? Насколько сложно было найти работу и т.д. да и в принципе, насколько сложна сама работа? Я имею ввиду переработки, сроки, пиздюли от начальства, ну и вот это вот все. Понимаю конечно, что в этом вопросе у каждого субъективная точка зрения, но все же... Просмотрел ютуб на эту тему, но там чёт все как будто через розовые очки, а мне хотелось бы услышать более реальные истории. Я захотел обучаться этому всему не из-за историй 300к/сек. А как просто смена профессии.
Сам работаю с ебучими людьми в продажах и откровенно говоря - заебало. Толпы ублюдков, которые чем-то не довольны. Ух сука, ненавижу клиентов, а недавно меня ещё и на руководящую должность сунули и теперь я ненавижу ещё и сотрудников. Ну и я решил кардинально сменить тип деятельности.
В общем анонасы, рассказывайте.
Если я вдруг не по адресу и у вас тут за подобные вопросы шлют нахуй, ну чё....пойду нахуй отсюдова
Аноним 31/08/22 Срд 23:37:51 2451466 226
17078335.jpg 81Кб, 640x640
640x640
Аноним 31/08/22 Срд 23:39:48 2451469 227
>>2451451
>Есть ли здесь аноны, которые РАБотают именно с этим языком на РАБоте
Полтреда работают, еще половина вкатывается. Сам я вкатился уже как 1 год и 15 дней (без 15 минут 16 дней). Но первые 10 месяцев были очень хуёвыми т.к работал на заводе программистом, платили мало и обучался всему сам с помощью гугла и стековерфлоу

>какой функционал выполняете?
Ну сейчас веб-апи пишу для всякого калового говна из жопы, скучно пиздец. Ищу вакансии чтобы обратно перепрыгнуть на десктоп, а то заебал веб.

>Сколько зарплата?
60к

>Насколько сложно было найти работу
Буквально за 2 недели нашел после выпуска из ПТУ и психиатрической больницы чтобы не идти в армию.

>Сложна сама работа
Всё подозрительно легко. Ну это потому что веб-апи писать просто там особых скиллов не надо. Переработки иногда бывают, но в основном по моей собственной инициативе если что-то интересное появляется. Кабан-кабаныч не давит, не выёбывается, всё тихо и спокойно по человечески.
Аноним 31/08/22 Срд 23:51:53 2451481 228
IMG202207301449[...].jpg 144Кб, 1280x1018
1280x1018
>>2451469
Хм, а живёшь в ДС или нет?
Аноним 01/09/22 Чтв 01:46:29 2451533 229
>>2451451
> Насколько сложно было найти работу
Главное, чтобы у тебя было что показать. Это как минимум пет-проекты. Тогда работу найти не сложно. Конечно, ещё нужно будет знать основы, чтобы пройти собеседование. Но если увидят, что ты знающий чувак, есть опыт разработки, то без проблем возьмут.
Аноним 01/09/22 Чтв 04:12:03 2451552 230
>>2451035
>ну в обычном коде - ссзб. а в DSL это просто пушка.
В том то и дело, что в обычном коде этого стало полно, а DSL оказался перехайленным костылем, где как как его писать знает только автор самого DSL. Ну типа там вообще нет никакой возможности задать какие-то условия, типа обязательные поля или нет, ну и сохраняется возможность загадить все простым кодом.

Проще взять какой-то json или toml, так как доку все равно придется писать.
Аноним 01/09/22 Чтв 04:23:27 2451553 231
>>2451035
>и поскольку там есть инлайн, ноинлайн, кроссинлайн жуть, то для них есть и возможность указать ретурн с точным указанием из чего ты делаешь ретурн.
Это вообще обязательный костыль, ибо ритёрн выйдет не из последней лямбды, а из всей цепочки и самого метода, лол

Котлин кажется красивым пока не начнешь нюхать все эти костыли. DSL огрызок и попытка от реального DSL, на деле проще взять json чем этой имитацией баловаться. Функции кажутся крутыми на деле приводят к импорту со звездой (один хер в одном файле группированы, можно было и статик методами сделать, да, статик нет, есть отдельный костыль какой-то).

Ну, в общем, кажется все вроде круто, но потом понимаешь что шарп кратно лучше продумал и продизайнен, а все это жабо наследие на котором придется писать, это отдельная тема для трэш треда (даже сколько радости приносит тот же грэдл)
Аноним 01/09/22 Чтв 05:30:27 2451564 232
Аноним 01/09/22 Чтв 06:08:04 2451567 233
image.png 112Кб, 1317x663
1317x663
image.png 897Кб, 1200x886
1200x886
Аноним 01/09/22 Чтв 06:10:52 2451568 234
>>2451567
не туда запостил, лол
Аноним 01/09/22 Чтв 08:07:41 2451592 235
>>2451552
>а DSL оказался перехайленным костылем, где как как его писать знает только автор самого DSL.
А для использования любой сторонней библиотеки на любом языке тоже без доки никуда. Так устроен мир и без DSL.
DSL лишь позволяет удобнее выражаться. Тот же LINQ - тоже DSL на уровне языка, но ты же не назовешь его хайпом )

>ну и сохраняется возможность загадить все простым кодом.
ну на то он и DSL чтобы быть именно кодом. Просто с более простым выражением

>>2451553
>Это вообще обязательный костыль, ибо ритёрн выйдет не из последней лямбды, а из всей цепочки и самого метода, лол
дается возможность - дается и инструментарий. У всего есть достоинства и недостатки. Получаем настоящую инлайновость и плюшки от этого - взамен получаем необходимость строже выражать свои мысли. Всего то достаточно просто указывать и проблем не будет.

>Функции кажутся крутыми на деле приводят к импорту со звездой
вообще хз о чем ты. Причем тут функции до звезды?
да и вообще проблема где? в шарпе ты делаешь импорт неймспейса который аналогичен звезде.

Поначалу меня бесило когда копируешь код с SO, а там импорты не указаны и он найти не может и ты не можешь понять что ему нужно. Но... в asp.net с его service.Add та же самая херня. Да и не только с ним - мелкие пошли по пути "делаем через расширения" и без гугления не разберешься какую либу подключать и неймспейс чтобы код перестал быть красным. Хорошо, когда знаешь какую. Ну так и в котлине тоже та же ситуация.

> что шарп кратно лучше продумал и продизайнен
ну это уже вообще смешно. шарп родился как жава, а потом стал обрастать уже к этой основе как придется. продуман ха
- нулабилити не было изначально.
- $""
- [^1]
- IReadOnly*
- нельзя сделать расширение для статических классов
- ConfigureAwait(true)
- event. идея понятна, реализация понятна, но разве она удачна
- инлайновость (да нет ее и вот с логированием выше разговор был)
- свойства. не хочешь автосвойство - будь добр пиши полную портянку.
- нет val, только var
...

У шарпа свою плюшки, но продуманность синтаксиса и базовых фич к ним не относится.

>а все это жабо наследие на котором придется писать
не технически для меня, НЕ УЧИВШЕГО жаву, все наследие упирается в
- да гребаные дженерики. на деле я просто не сидел и не разбирался.
- нет структур, а я как то привыкши думать об экономии памяти.
и нулевое вникание в "как там у жавы"
Аноним 01/09/22 Чтв 08:29:53 2451597 236
>>2451553
>шарп кратно лучше продумал и продизайнен,
...
- рекорды с его with когда появились только
- многострочный текст запарился ждать когда завезут
- main без класса Program - крайне сомнительная хрень, постоянно забываю галку ставить в студии
- if и остальные ничего не возвращают.
- нет изначального разделения на мутабельные и риоднли списки, словари и т.д. Никакой строгости - все используют if
- даже контрактное программирование не взлетело лол. Кроме как в фреймворке нигде и не используется.
...
(да ебу... иконки мешающие набирать этот текст. Какой идиот придумал делать их поверх текстовой формы....)
Аноним 01/09/22 Чтв 08:30:59 2451598 237
>>2451597
>Никакой строгости - все используют if
все используют List
Аноним 01/09/22 Чтв 08:38:37 2451600 238
>>2451592
>нулабилити не было изначально.
Нефига ты мечтатель для языка которому 20 лет. Если в котлине покапаться, он там тоже местами через одно место, благо в шарпе это опционально.

>нет val, только var
Тот еще звездец, который котлинисты признают. А вот нужна ли иммутабельность для мультипарадигменного языка (а не лиспа) это долгий спор.

>нельзя сделать расширение для статических классов
Зачем? Расширение то еще зло, которое нужно использовать осторожно.

>статических классов
В котлине вообще какая-то байда.

> свойства. не хочешь автосвойство - будь добр пиши полную портянку
Видно что свойство это отдельный элемент, а в котлине до сих пор не могут в приватные сеттеры, потому что авторы думали что умнее других.

>$""
Вот как раз продуманно, ты задаешь контекст для строки, ты бы видел как раньше в котлине нужно было символ "$" писать и нельзя было по другому, потому что все строки интерпритируются (а я не хочу чтобы все!). В этом и продуманность
Аноним 01/09/22 Чтв 08:45:45 2451602 239
>>2451598
Списки и всякие мапы - это такие динамические "резиновые" структуры, если список сделать неизменяемый, это уже будет не список. В общем, вся это дрочь на иммутабельность, она ломает идеи структур данных. Там где тебе нужен массив ты берешь какой-то выдуманный замороженный список.
Аноним 01/09/22 Чтв 08:50:12 2451605 240
>>2451602
> if и остальные ничего не возвращают.
И это реально круто, потому что есть тернарный оператор!
Аноним 01/09/22 Чтв 08:53:05 2451607 241
>>2451592
>- [^1]
В кокотлине выкинули классический for, чтобы добавить кривые ренджи и писать такой трешь
for (i in 8 downTo 1 step 2)
Аноним 01/09/22 Чтв 09:11:10 2451612 242
>>2451600
>Нефига ты мечтатель для языка которому 20 лет
ну так я и НЕ заявляю что он хорошо задизайнен. задизайнен он паршиво как и жава, просто потом засахарился и оброс полезными (и бесполезными) плюшками. Но основа осталась какая осталась

> благо в шарпе это опционально.
ну как и в котлине тоже есть lateinit и !!. разговор о том, что это пришло через многие годы. и такая ситуация именно потому что слизывали жаву. а не продумывали

>Тот еще звездец, который котлинисты признают
это признают все, кто достаточно много кодил и начал понимать ценность строгости контракта. Когда язык защищает от ошибок. А то ведь так можно и константы мутабельными сделать - ну а почему нет

>Зачем? Расширение то еще зло, которое нужно использовать осторожно.
Чтобы не плодить своих классов ClassEx.Mymethod - раз. Ну и еще для одной штуки что используется в композе, но я щас не вспомню. А насчет зла - ну мс идет по пути зла. раз пихает расширение где угодно. Пример хттпклиент и его функции жсон.

>В котлине вообще какая-то байда.
угу. я хейтил пока не разобрался. там синглтон классы object и companion object - буквально "приаттаченый к классу сигнлтон класс без имени". А раз это класс, то и все возможности класса - те же расширения

>Видно что свойство это отдельный элемент
я про backfield, который не зарезервировали и приходится каждый раз прописывать вручную свойство, если оно не авто (что довольно часто)

>а в котлине до сих пор не могут в приватные сеттеры
хз о чем ты. использую их на постоянной основе.

>(а я не хочу чтобы все!)
ну это уже спорно и на уровне фломастеров.

>это уже будет не список
нет. это будет списком. в котором нет "риоднли не значит что он иммутабелен".

>она ломает идеи структур данных
>Там где тебе нужен массив ты берешь
отвратительные идеи. есть четкое логическое разделение на мутабельные, иммутабельные и поверх них риоднли + перечисляемость, то есть строгое определение контракта

А что в шарпе? а в шарпе IList (который не наследник IReadOnlyList лол) и Array... в итоге (у 99% шарпистов) метод принимает Ilist, потому что "так привычно", ты передаешь ему массив и оно валится в рантайме.
Строгость контракта уровня "мы шарп, нам нинужны никакие контракты" (что видно по тому что Contract.Requies() так и не пошел в массы)

>потому что есть тернарный оператор!
вообще не замена. вложенные ифы выглядят как катастрофа.
а обычный иф требует заведение внешних переменных

и возвращаемость настолько "не нужна", что в новом switch именно ее и сделали и все ей пользуются )

>В кокотлине выкинули классический for
ну я выдвигаю претензии к шарпу как шарпист. Я не хвалю котлин (в котором тоже хватает WTF), а жалуюсь на шарп. И стараюсь избегать сравнения фич которых нет в шарпе. И var/val, иммутабельность, выражения я упоминаю не потому что они есть в котлине. Я имел эти претензии еще до изучения котлина.
Аноним 01/09/22 Чтв 09:12:49 2451613 243
>>2451481
Нет, ебеня на 2 млн человек.
Аноним 01/09/22 Чтв 09:23:37 2451621 244
>>2451602
я поясню шире

Я не говорю про иммутабельные типы что там в System.Collections.Immutable - это вообще отдельные структуры для многопотока.

Я говорю про строгость, что я могу указать принятие неизменяемого списка и быть в этом уверенным. IReadOnlyList такой гарантии не дает. Принимать массив? У кодера по всему коду списки ходят и материализовывать в массивы только чтобы угодить очередному методу- лютая дичь. В итоге и родился подход создания защитной коллекции в самом методе/конструкторе потому что нет на уровне языка средств гарантий.

И когда добавили IReadOnlyList , то пользоваться им все равно неудобно (от него не наследуется IList), что все так и продолжили использовать IList

В шарпе много хороших вещей, но тут создатели знатно обосрались.
Аноним 01/09/22 Чтв 09:32:07 2451627 245
>>2451621
> от него не наследуется IList), что все так и продолжили использовать IList
Я уверен, что они оба реализуют IEnumerable<> вот прям настолько уверен, что даже гуглить не полезу. а раз реализуют, то вот бери и объявляй IEnumerable<YoItemType> YoVar = BazTask.GetList();

Что может пойти не так?
Аноним 01/09/22 Чтв 09:41:58 2451632 246
>>2451627
Не всегда удобно, чтобы метод принимал именно IEnumerable, так как а) Вместо коллекции могут подсунуть бесконечный генератор б) Твоему алгоритму нужно выполнить двойной обход коллекции. С произвольным IEnumerable можно таки поломаться.
Аноним 01/09/22 Чтв 09:43:51 2451633 247
Аноним 01/09/22 Чтв 09:45:30 2451636 248
>>2451612
Кривой дизайн
-Везде автовывод, без IDE нечитаемо.
-Кривая асинхронщина, читаемая только с IDE
-Иммутабельность только для ссылки, когда у тебя все мутабельно, для додиков сойдет, ФП-господа ржут с этого.
-lateinit говнофикс с магией, потому что иммутабельный дрочь не до конца заходит в императивную разработку.
-val, жесть.
-магия с автокастом, в божественно шарпе надо явно указать новую переменную, никакой магие, все явно.
-отключение нуллабельности, не всем этот развод "на миллион долларов" заходит, когда у тебя вся типизация умножается на два.
-!! говнофикс, что так ты упадешь с НПЕ что так.
-Мешать процедурный стиль с ООП это плохо, еще в 90х к этому пришли и именно жаба себя ставила противовес С++, указывая на то что нет функций.
-100500 зарезервированных слов, там звездец.

Выкинул на помойку, когда у меня сломался код (год спустя), когда компилятор вместо метода стал дергать базовую функцию расширения (то ли let, то ли run... хз туча их там) и ругать меня за то, что сигнатура не совпала, лол.

Там еще тонна говна, которого я не помню, просто надергали говная с груви, скалы и шарпа и ботинком прибили - и так сойдет.
Аноним 01/09/22 Чтв 09:53:36 2451644 249
>>2451636
>Кривая асинхронщина
В чем кривость?

>>2451636
>val, жесть
Что не так?
Аноним 01/09/22 Чтв 10:00:28 2451649 250
>>2451644
>В чем кривость?
Нужна IDE чтобы увидеть что метод асинхронный.
Аноним 01/09/22 Чтв 10:03:25 2451654 251
>>2451649
Ну вообще ide не обязательно, чтобы увидеть, что метод обозначен как suspend, так что это придирки на пустом месте. Вообще на котлине вне idea вряд ли кто-то будет писать, раз уж это целиком и полностью продукт jb, как собственно и на сишарпе писали только в студии пока райдер не вышел.
Аноним 01/09/22 Чтв 10:03:44 2451656 252
>>2451633
как и все остальное - не дает гарантию неизменяемости.

>>2451636
мы вроде в шарпотреде и должны обсуждать недостатки шарпа, а не котлина. И уж тем более не натягивать сову на глобус
>-Везде автовывод, без IDE нечитаемо.
в шарпе идентично. var, вывод типов, без IDE не понять откуда взялся класс ибо неймспейсы это как import *
>Кривая асинхронщина, читаемая только с IDE
да нормально читается. я в основном читаю код на планшете без всяких IDE. хз причем тут вообще IDE для читабельности
>Иммутабельность только для ссылки, когда у тебя все мутабельно
какие то фантазии. риоднли список он реально ридонли. он заморожен и гарантируется что не будет изменен. И это не на уровне ICollection<T>.IsReadOnly, а я могу описать сигнатуру
>-lateinit говнофикс с магией
null! говнофикс )) в чем разница? ты определенно не понимаешь разницы между иммутабельными типами для многопотока (которые на самом деле мутабельные) и frozen-коллекциями которые в обычном однопоточном коде (я все время говорю о вторых)
>-val, жесть.
я так понимаю конкретных аргументов против не будет. Любой аргумент против val - все равно что аргумент против использования констант как oneinit вещей.
>-магия с автокастом
сложно оценить проблемность. мне это тоже не нравится, но проблем не испытывал
>!! говнофикс
null! никакой разницы. если ты используешь его как "отвали с варнингами" то ссзб и в шарпе упадешь с NRE аналогично. А так это просто фикс когда тебе виднее, а анализатору нет.
>Мешать процедурный стиль с ООП это плохо
это нужно DSL. даже MAUI если не будут тупить будет использвоать static using чтобы было похоже на процедурный стиль и избавиться от многочисленных new

>>2451649
>Нужна IDE чтобы увидеть что метод асинхронный
зачем это видеть? что это дает?

напомню - я наезжаю на шарп в шарпотреде (на тот самый шарп на котором я пишу с его рождения, а на котлине всего чуть), и нападать на котлин в шарпотреде....
Аноним 01/09/22 Чтв 10:04:18 2451657 253
image.png 20Кб, 454x217
454x217
Аноним 01/09/22 Чтв 10:06:10 2451658 254
>>2451633
Ты немного не в теме обсуждения.
Мы тут выражаем недовольство, что ICollection<T> не реализует IReadOnlyCollection<T> в силу исторических причин. Это бывает временами очень не удобно, и припятсвует распространению этого интерфейса. А он как раз очень удобен для использования в конкрактах методов, так как даёт всем понять, что коллекция меняться не будет.
Анон предложил использовать в таких местах IEnumerable, но у него есть подводные камни, о которых я и написал.

Как по мне, выходом, пусть и корявым, могло бы стать добавление в ICollection<T> метода IReadOnlyCollection<T> AsReadOnly(). В нем можно было бы возвращать саму коллекцию, если она поддерживает IReadOnlyCollection, либо объект-обертку. Но на это тоже скорее всего не пойдут, так как даже добавление новых методов в столь древний и широко используемых интерфейс дело очень болезненное.
Так что остаётся только городить свои методы расширения.
Аноним 01/09/22 Чтв 10:06:41 2451660 255
>>2451656
>в шарпе идентично
Ты пиздабол, в шарпе ограниченно только локальной областью. Дальше можно не читать
Аноним 01/09/22 Чтв 10:11:17 2451664 256
>>2451660
кто ограничен?
поясняй разницу. иначе получается ты пиздобол
впрочем после претензий к val я этого и не ожидаю что ты пояснишь нормально
Аноним 01/09/22 Чтв 10:14:55 2451667 257
>>2451656
> мы вроде в шарпотреде и должны обсуждать недостатки шарпа, а не котлина
Ты попался на дерейл олух! олух! Ты попался на дерейл, глупый дурачок!
Рекомендую игнорировать котлиномразь, закатившуюся в тред, а если не прекратит, начнём репортить.
Аноним 01/09/22 Чтв 10:19:10 2451670 258
>>2451667
ясно. значит закрыли вопрос.
вместо вменяемых аргументов в защиту шарпа ты стал нападать на другие языки, хотя котлин был просто для примера "что такое, когда язык продумывали все таки, а не "так исторически сложилось"" и почему это может быть удобно"

Но ты не понимаешь даже недостатка Ilist, а претензия к val вообще занавес

так что проходим мимо.
Аноним 01/09/22 Чтв 10:29:20 2451674 259
>>2451670
Ты используешь самые примитивные подходы в демагогии, поэтому хватит косить под несведущего дурочка, мы не в джава треде, тут так просто не разведешь никого.

Шарп это язык общего назначения, котлин прокси-язык жабы, который кроме мобильной разработки практически нигде не прижился.
Жаба протухла, не носи её сюда.
Аноним 01/09/22 Чтв 10:38:46 2451678 260
>>2451674
>Шарп это язык общего назначения
И?????
это как то оправдывает кривые решения в нем?
кривые решения бывают везде. это нормально. просто нужно трезво смотреть на вещи, а не защищать с пеной у рта, и уж тем более не объявлять что именно так и правильно аргументами уровня "а мне норм".

> котлин прокси-язык жабы, который кроме мобильной разработки практически нигде не прижился.
не знаю почему ТЫ так вцепился в котлин ведь претензии к шарпу от шарписта (я шарпист - это мой основной язык, а котлин чисто замена хамарина на мобилках для меня), но аргументы уровня "ваш язык говно потому что говно". Котлин молодой язык, а жависты - дикие консерваторы мазохисты, ведь столько лет пишут на убогом языке и их не парит. Вооо. на тебя похожи ))). Любой недостаток разбивается об "а мне норм"

Напомню - шарп до некоторого времени тоже мало где приживался ибо был виндоонли язык, а всякие моно это был страх и ужас. Только после выхода кор, и то не сразу, началось расширение шарпа в использовании

>Жаба протухла, не носи её сюда.
к жабе у меня такие же претензии как и к шарпу (у них же одинаковый изначальный дизайн).
Аноним 01/09/22 Чтв 10:39:41 2451681 261
>>2451678
Жаба протухла, не носи её сюда.
Аноним 01/09/22 Чтв 10:41:27 2451682 262
>>2451681
ты сам ее принес
на мой список претензий к дизайну шарпа ты списком претензий к котлину (причем высосанными из пальца). Про котлин от тебя я уже наслышался и про жаву тоже. По шарпу есть че сказать то? ну кроме "мне норм, а значит так правильно"
Аноним 01/09/22 Чтв 10:43:01 2451684 263
>>2451682
Жаба протухла, не носи её сюда.
Аноним 01/09/22 Чтв 10:46:52 2451685 264
javaiscobol.png 421Кб, 900x900
900x900
Аноним 01/09/22 Чтв 11:13:43 2451699 265
Уже больше года замечаю сишарп фанбоя, который всей доске пытается доказать, что в шарпе нет никаких недостатков, в то время как в жабе, котлине и расте их просто уйма. Ну и еще с рейтингами techempower носится, в которых asp.net быстрее перегоняет плейнтекст, чем фреймворки на расте или го.
Но ничего, сейчас школа началась, сегодня только линейка, а завтра уже уроки, так что уровень неадеквата снизится.
Аноним 01/09/22 Чтв 11:16:31 2451700 266
>>2451674
>Жаба протухла, не носи её сюда
А причем тут жаба?
Аноним 01/09/22 Чтв 11:24:44 2451708 267
Аноним 01/09/22 Чтв 11:27:42 2451710 268
>>2451699
В сишарп треде восхищаются сишарпом. Никогда такого не было.

>Но ничего, сейчас школа началась, сегодня только линейка, а завтра уже уроки, так что уровень неадеквата снизится.
Мы будем по тебе скучать.
Аноним 01/09/22 Чтв 12:34:53 2451771 269
>>2451658
> ICollection<T> не реализует IReadOnlyCollection<T>
и не должен
Аноним 01/09/22 Чтв 12:48:38 2451784 270
Как узнать размер символа в байтах, зная кодировку?
И правда, что один символ юникода может занимать 2 байта, а другой четыре?
Аноним 01/09/22 Чтв 12:50:58 2451788 271
>>2451784
> может занимать 2 байта, а другой четыре
зависит от кодировки, в ютф-8 да, в ютф-16 нет
Аноним 01/09/22 Чтв 12:57:46 2451794 272
>>2451788
Т.е. если мы возьмем кодировку ютф-8, то нельзя сказать, что все символы там имеют одинаковый размер?
Аноним 01/09/22 Чтв 12:59:05 2451798 273
>>2451794
Да.
Пробел, цифры и латинские буквы = 1 байт
Русские буквы = 2 байта
Китайские, Японские, корейские = 4 байта

Эмодзи вроде вообще 5 байт, но я могу ошибаться
Аноним 01/09/22 Чтв 12:59:46 2451800 274
>>2451771
должен.

ICollection расширяет IReadOnlyCollection
и должен без проблем передаваться как есть в методы принимающие IReadOnly

Ну а если пойдут аргументы про ISP, но если напирать на этот аргумент то ICollection также не должен наследовать IEnumerable

Ситуация с IReadOnly* это следствие проблемы бинарной совместимости (о чем явно писали), а не потому что "не должен"
Аноним 01/09/22 Чтв 13:00:48 2451801 275
>>2451784
ну размер без кодирования ты не узнаешь
можешь только максимальный размер узнать чтобы знать какой буфер выделять.
Аноним 01/09/22 Чтв 13:01:02 2451802 276
Анон, я правильно понимаю, что ASP.NET Web API — это урезанная версия ASP.NET MVC? И если выучу первое, то буду понимать и второе? Я смотрю большая часть курсов по MVC, а в вакансиях обычно Web API, вот думаю не выучу ли не то в итоге.
Аноним 01/09/22 Чтв 13:03:07 2451809 277
>>2451802
в первом возвращают жсоны
во втором сгенеренный хтмл.
вот и вся разница

во времена "все фронтенд" генерить хтмл на бэкенде приходится редко
Аноним 01/09/22 Чтв 13:04:10 2451813 278
Аноним 01/09/22 Чтв 13:06:12 2451815 279
>>2451813
- как запланировать событие которое должно произойти через 6 часов
- Thread.Sleep(...)
- ПРИЕМЛЕМО
Аноним 01/09/22 Чтв 13:08:39 2451818 280
>>2451815
обоснуй предъяву. Напиши своё
Аноним 01/09/22 Чтв 13:12:25 2451822 281
Аноним 01/09/22 Чтв 13:14:19 2451824 282
>>2451822
> работает - да
чувак, Thread.Sleep не просто не эффективно, но ещё и НЕ работает. Как ты, например, будешь Ctrl+C (то есть токены отмены) обрабатывать?
Аноним 01/09/22 Чтв 13:15:57 2451826 283
>>2451824
никак. это ж демон. он работает сам и у него нет консольки.
замечательно работает.
Аноним 01/09/22 Чтв 13:17:49 2451827 284
image.png 52Кб, 800x300
800x300
Без холивара по типу у кого какие скобки красивее или классы статичнее.
У кого сейчас больше будущего? У котлина или шарпа и главное почему (ваше мнение)?
Аноним 01/09/22 Чтв 13:19:57 2451829 285
>>2451826
> он работает сам
Ага, и останавливать его НЕ надо?
Аноним 01/09/22 Чтв 13:20:42 2451831 286
>>2451827
.NET офк, вот почему:
1. Котлин живет потому что живет Джава
2. Джава живет потому что много легаси
3. Легаси переписывается на упругий Go и .NET
4. Меньше легаси - меньше джавы - меньше котлина

Но, у котлина есть своя ниша, которую .NET пока что не занять - это мобилки под андроид. Но тут майки просто долбоёбы не хотят нормально линукс поддерживать.
Аноним 01/09/22 Чтв 13:21:07 2451833 287
>>2451827
Это две абсолютно разные ниши. Котлин подмёл под себя андроиды. А Шарп — многоцелевой. И его Замарин — непопулярен
Аноним 01/09/22 Чтв 13:21:36 2451836 288
>>2451818
хотя вижу родной метод GetByteCount такой же бестолковый. Я не знаю что он делает в наследниках, но в базовом классе превращает текст в массив чаров зачем то (и это из Span<>)

>>2451827
у обоих. языки не связаны.
шарписту незачем переходить на котлин. шарп - один из лучших современных языков

котлин будет занимать нишу
гугель никого не заставлял писать на котлине. просто объявил его еще одним офф языком разработки - и как результат люди сделали свой выбор.
но жава будет сверхдолго сопротивляться в силу инерционности жавистов и оверхеда котлина при компиляции

>>2451829
надо, но проблемы нет. Как вот в видео про обнволятор killall /f остановит все.
Аноним 01/09/22 Чтв 13:21:53 2451837 289
>>2451813
Не анон. Я как раз не знаю длину строки.
Изначально я хотел передавать в пакете байтов инфу о размере одного символа и количестве символов в строке, но анон >>2451801 написал, что размер символа вариативный.
Так что да, буду предавать данные об общем размере в байтах.

Просто почему я по первому пути пошел, потому что у меня еще передается и массив интеджеров, к примеру.
Аноним 01/09/22 Чтв 13:22:20 2451838 290
>>2451809
То есть и там и там внутреннее устройство именно бэка будет одинаковое? Как подключается база, как идет работа с зависимостями, репозитори паттерн и вот это вот все.
Аноним 01/09/22 Чтв 13:24:49 2451842 291
>>2451831
>Но тут майки просто долбоёбы
Знаешь, это причина большинства провалов. Како смысл перспективности идеи, если ее реализует долбоеб?
Аноним 01/09/22 Чтв 13:24:54 2451843 292
>>2451838
ну да. просто генерация вида уносится на фронт (если она конечно есть эта генерация вида. а не просто данные ради данных)
ну и подход к авторизации будет немного другой, а в остальном идентично.
Аноним 01/09/22 Чтв 13:25:01 2451844 293
>>2451836
> надо, но проблемы нет
Вообще есть. Graceful stop это обязательное условие для части сервисов.
> Как вот в видео про обнволятор killall /f
А, ну ясно, понятно
Аноним 01/09/22 Чтв 13:27:02 2451849 294
>>2451836
> еще одним офф языком разработки
Не ещё одним, а предпочтительным
Аноним 01/09/22 Чтв 13:29:10 2451852 295
>>2451844
>Graceful stop это обязательное условие для части сервисов.
такое требование только к сервисам написаное прямыми руками. К тем, кто юзает sleep вместо таймера, это не относится.

>>2451849
разницы нет. мне, условному жависту, придется его выучить и только потому что кто-то объявил его предпочтительным? это так себе аргумент.
правда, ЭТО АНДРОИД. а там жава немного совсем не та жава, что полная и выбор сделать проще.
Аноним 01/09/22 Чтв 13:30:22 2451853 296
Что полезно сделать в гитхабе, чтобы пойти джуном? Два года работаю с sap (erp модули).
Аноним 01/09/22 Чтв 13:37:22 2451857 297
Аноним 01/09/22 Чтв 13:56:17 2451871 298
>>2451831
>Легаси переписывается на упругий Go и .NET
Жаба легаси (хотя что считать легаси) в основном и дальше продолжает жить на жабе, иногда перекатываясь на 11 или даже на 17 версии, иногда впиливая котлин в проекты, просто потому что проще и дешевле оставить все как есть, чем вкладываться в переписывание с нуля на го, так как под это дело нужно целую команду собирать. На дотнет ничего не переписывается, так как реальный перформанс по итогу будет почти что одинаковым, увы, так что жаба будет жить дальше десятилетиями.

>>2451831
>которую .NET пока что не занять
Андроид на дотнете никто никогда писать не будет, для этого нужно будет обеспечить полную совместимость с либами жабы и котлина, иначе он попросту никому не нужен будет, что мы сейчас и видим.

Котлин такой же язык общего назначения, как и шарп, можно и мобилки, и бек писать, и даже фронт с нативщиной.
Аноним 01/09/22 Чтв 14:10:17 2451876 299
>>2451853
Вобщем планирую делать примитивную crm по гайдам с ютуба, подводные? Хватит на джуна?
Аноним 01/09/22 Чтв 14:10:31 2451877 300
>>2451871
У котлина нет своей JVM, котлин топит джаву и сам вместе с ней идет на дно. Сами джависты не хотят за одну зарплату писать на двух языках, а мобильники слишком узкая ниша.
JVM все, надо было развиваться.
Аноним 01/09/22 Чтв 14:14:31 2451883 301
>>2451877
Жидбрейнсы напишут свою вм.
Аноним 01/09/22 Чтв 14:18:17 2451888 302
image.png 280Кб, 604x604
604x604
Аноним 01/09/22 Чтв 14:24:15 2451891 303
>>2449667
> Сделать url encode
Это что получается, надо в каждом методе будет вызывать Uri.UnescapeDataString?
Выглядит как костыль...
Аноним 01/09/22 Чтв 15:07:58 2451922 304
Здравствуйте, можете, пожалуйста, скинуть какой-нибудь материал, чтобы почитать про Ковариантность/Контравариантность. Я в общих чертах понял, но вроде нихуя не понял. читал на метаните
Аноним 01/09/22 Чтв 15:10:19 2451925 305
> 3. C# для десктопа
> — WPF ( https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf )
> — WinForms ( https://docs.microsoft.com/ru-ru/dotnet/desktop )

А че кроме этого есть еще что-нибудь?
Еще же было что-то для вин10, не очень популярное
Может еще какой способ интересный есть чтоб графическое приложение напиать
мимо-вкатываюсь-обратно-после-армейки/нихуянепомню



А точно, а кроссплатформу никак не сделать на этом?
Аноним 01/09/22 Чтв 15:19:43 2451929 306
>>2451925
Есть мертворожденный uwp и совсем новый maui, но они в целом построены на тех же принципах, что и wpf. Знаешь последний, считай что знаешь и остальные два. И по wpf лучше всего будет навернуть уроки шмачилина на ютьюбе. Затем отполировать троелсеном, у него рассматриваются некоторые продвинутые вещи. Для джуна этого хватит.
Аноним 01/09/22 Чтв 15:23:08 2451932 307
Сап линкубоги, подскажите как выбрать из перечисления уникальные последние элементы?
Есть условный лист айтемов с повторяющимися id, я хочу выбрать айтемы:
Item.Id = 1 <-
Item.Id = 2
Item.Id = 3
Item.Id = 2 <-
Item.Id = 3
Item.Id = 3 <-
Аноним 01/09/22 Чтв 15:23:59 2451933 308
>>2451932
Через оконные функции.
Аноним 01/09/22 Чтв 15:25:06 2451935 309
>>2451929
>uwp
Точно.
> maui
На MAUI реально можно написать норм приложение разом для всех мобилок?
> по wpf лучше всего будет навернуть уроки шмачилина на ютьюбе. Затем отполировать троелсеном, у него рассматриваются некоторые продвинутые вещи
А за это двачая
Аноним 01/09/22 Чтв 15:31:39 2451939 310
>>2451877
>котлин топит джаву и сам вместе с ней идет на дно
>джависты не хотят за одну зарплату писать на двух языках
>мобильники слишком узкая ниша
>JVM все
Спасибо, посмеялся. Пиши чаще, techempower-шиз.
Аноним 01/09/22 Чтв 15:32:25 2451942 311
image 4Кб, 513x41
513x41
😑😑😑
Аноним 01/09/22 Чтв 15:36:44 2451945 312
>>2451935
> На MAUI реально можно написать норм приложение разом для всех мобилок?
Без знания жавы нет.
Аноним 01/09/22 Чтв 15:41:15 2451947 313
>>2451925
Для десктопной кроссплатформы есть Avalonia.

>>2451935
>На MAUI реально можно написать норм приложение разом для всех мобилок?
Можно, но никому не нужно. Все равно 99% пилят натив, в крайнем случае на Флаттере или Реакт Нейтиве делают что-нибудь на отъебись.
Аноним 01/09/22 Чтв 15:41:19 2451949 314
А на Xamarin'е норм писать под ведроид? После изучения основ С# хочу сделать небольшой аналог ватсапа.
Аноним 01/09/22 Чтв 15:42:38 2451951 315
>>2451945
>Без знания жавы нет.
зачем знать жаву?

>>2451949
хамарин на любителя. попытка усидеть на всех стульях всегда ограничивает
Аноним 01/09/22 Чтв 15:45:11 2451953 316
>>2451932

Не знаю, сохраняет ли порядок группировка, но попробуй сделать GroupBy по айди, а затем из группы брать Last.
Аноним 01/09/22 Чтв 15:45:58 2451954 317
>>2451949
>на Xamarin'е норм писать под ведроид
В теории писать-то можно, но на пратике андроид разработка это котлин/жаба/реактив натив
Аноним 01/09/22 Чтв 15:54:49 2451960 318
image.png 62Кб, 1183x715
1183x715
Аноним 01/09/22 Чтв 15:58:21 2451964 319
>>2451960
>Stack Overflow questions
Оно с реальным продакшном не коррелирует, если че.
Аноним 01/09/22 Чтв 16:00:39 2451966 320
>>2451960
Когда умрет котлин, может ты знаешь, techempower-шизик?
Аноним 01/09/22 Чтв 16:04:03 2451971 321
image.png 187Кб, 1069x791
1069x791
Аноним 01/09/22 Чтв 16:07:52 2451975 322
image.png 161Кб, 1045x602
1045x602
>>2451966
>>2451971
А знаешь что самое прекрасное, что котлин это не их проект. Им даже париться не надо над ним, да и вообще там свой дарт есть, сразу в фуксии.
Поматросили и бросили.
Аноним 01/09/22 Чтв 16:20:02 2451984 323
image.png 557Кб, 1035x707
1035x707
Наглядно
Аноним 01/09/22 Чтв 17:03:12 2452045 324
>>2451949
нуу

1 долгий запуск. На современных девайсах не так заметно, но вот мой старенький планшет с MediaTek MT8732 8+ секунд для хелло ворлд. На моем старом смарте - 15 секунд было.

2 ограниченность функционала вида "да блин как тут сделать"

на старте решил взять хамарин, там все похоже на WPF ну разве что глюки (ну а где их нет). слепил и нужен был мне вроде был все виды клика в гриде. И бац - не работает лонгклик. Вот прост работает, а конкретно там внутри грида, внутри чего то да в комбинации с другими кликами не хотело. Гуглю - а там пишут "не реализовано, но вы можете сделать поддержку сами". Давно было дело, но как то мне это сразу не понравилось и как раз появился первый альфа compose, где все было чудесно (если конечно не считать необходимости изучения котлина). Не текущий момент я в восторге (но да, заплатил за это изучением котлина, что совсем не мелочь. Язык имеет огромную выразительную мощь - но это же является и недостатком. И очень весомым. Я бы не рекомендовал так грузить голову)

3 больше жрет памяти и больше весит.
хотя на это всем плевать как бы. Просто я имел возможность сравнить абсолютно идентичное мое приложение которое я портировал. В нативе на стареньком MT8732 работает пошустрее визуально, то есть весьма приемлемо.

в общем то вряд ли это проблема на текущий момент.
Аноним 01/09/22 Чтв 17:15:01 2452055 325
goblin-смеётся-[...].webm 1292Кб, 600x338, 00:00:05
600x338
>>2451877
> мобильники слишком узкая ниша
Аноним 01/09/22 Чтв 17:16:17 2452058 326
Погоди, а на Фуксии какой язык основной? Не Котлин разве?
Кстати, где Фуксия? Я уже год не слышу этого названия. А про неё говорили уже много лет назад
Аноним 01/09/22 Чтв 17:23:11 2452069 327
image.png 167Кб, 1280x720
1280x720
Аноним 01/09/22 Чтв 17:34:05 2452079 328
>>2452069
Фкусия, котлин, дарт - всё это говно забудут через год после релиза.
Аноним 01/09/22 Чтв 18:35:02 2452144 329
>>2451877
> мобильники слишком узкая ниша
Бро, тебе что-нибудь говорит статистика прибыли из онлайн игр по отношению к другим?
Аноним 01/09/22 Чтв 18:59:02 2452167 330
>>2452144
Зумерье не в состояние отличить что такое ниша разработки и продукт. Если Гейтс самый богатый человек, который заработал на винде, которая на сях, значит си самый популярный язык? Так в ваших поридж мозгах работает?

Имелось ввиду мобильная разработка под нишевое железо (ARM) и нишевую операционку (андроид), под нишевую виртуалку (Dalvik)
Аноним 01/09/22 Чтв 19:03:41 2452172 331
Goblin-тебе-пря[...].webm 1141Кб, 848x472, 00:00:09
848x472
>>2452167
> нишевую операционку
> андроид
> Так в ваших поридж мозгах работает?
Аноним 02/09/22 Птн 03:22:26 2452431 332
Не рвите дупу андрюшникам, их и так жизнь наказала на жабе писать.
Аноним 02/09/22 Птн 09:30:28 2452501 333
>>2452431
ну если не брать старое в виде жавы, фрагментов, хмл разметки, руннеры, асинтаски и прочую херь, а взять все последнее, то писать не просто неплохо, а даже приятно
Аноним 02/09/22 Птн 10:27:42 2452533 334
Аноним 02/09/22 Птн 10:47:08 2452544 335
>>2452533
вот и вся аргуметация )
зы: это вы просто хамарин не пробовали - вот где мучение
Аноним 02/09/22 Птн 11:21:05 2452567 336
>>2452544
После jvm копро он нам предлагает навернуть ксамарин копро.
Говноед.
Аноним 02/09/22 Птн 11:39:53 2452573 337
>>2452567
не после, а перед. читай внимательнее.
Аноним 02/09/22 Птн 13:52:06 2452658 338
дяди и тети, скажите, нужно ли задротить задачки типа (и более сложные подобные)

C2.4. Найти:
а) сумму кубов всех целых чисел от 20 до 40;
б) сумму квадратов всех целых чисел от a до 50 (значение a вводится с клавиатуры; 0<a<=50);
в) сумму квадратов всех целых чисел от 1 до n (значение n вводится с клавиатуры; 1<=n<=100);
г) сумму квадратов всех целых чисел от a до b (значения a и b вводятся с клавиатуры; b>a).

при изучении яп?
Аноним 02/09/22 Птн 14:30:27 2452687 339
Аноним 02/09/22 Птн 14:30:52 2452688 340
>>2452658
Конкретно те что ты написал - ты должен изи делать по хорошему.

> (и более сложные подобные)
Нужны примеры.

Вообще, ты НЕ обязан знать математику, если ты про это, т.е. вот те задачки что ты скинул - это чисто проверка того, что ты умеешь писать простые циклы, а не знания математических определений. Что такое сумма кубов ещё любой дурак знает, но если будут какие-то более ебанутые задачи где ты чисто математические термины не понимаешь - то скорее всего автор задач даун
Аноним 02/09/22 Птн 14:37:33 2452696 341
>>2452658
>сумму кубов всех целых чисел от 20 до 40;

int i;
int sum = 0;
for(i=20; i<=40; i++)
{
sum += i × i × i;
}
Аноним 02/09/22 Птн 14:37:47 2452698 342
Вы вообще, сидящие тут в треде, работаете? Че то бесконечные рассуждения о том какой язык лучше, какой язык сдохнет, а практические вопросы все игнорируются
Аноним 02/09/22 Птн 14:39:50 2452700 343
Аноним 02/09/22 Птн 14:43:46 2452703 344
>>2452696
Enumerable.Range(20,40).Sum(num => numnumnum).
Аноним 02/09/22 Птн 14:48:31 2452705 345
>>2452703
>Enumerable.Range(20,40).Sum(num => numnumnum).

Какая-то нечитабельная хуйня, которая неизвестно во что скомпилируется. Нахуй с пляжа.
Аноним 02/09/22 Птн 14:50:37 2452706 346
>>2452705
> Какая-то нечитабельная хуйня
Дислексик?
Аноним 02/09/22 Птн 14:55:01 2452710 347
>>2452706

Я ебал вот эту конструкцию =>
Нахуй не нужна.
Аноним 02/09/22 Птн 14:56:06 2452711 348
Аноним 02/09/22 Птн 14:56:55 2452712 349
Что читать по вашей хуйне? Албахари вроде как чисто справочник, или тоже подходит для изучения языка?
Аноним 02/09/22 Птн 15:02:04 2452718 350
>>2452688
https://c-sharp.pro/задачник/

вот примеры
я понимаю как работают циклы в целом, просто интересно нужно ли подобное прям до самой тяжелой задачки задрачивать
Аноним 02/09/22 Птн 15:03:14 2452719 351
>>2452718
Очевидно, если уверен, что можешь решить задачу - просто переходишь к следующей, пока не найдётся такая, которую ты пока решать не умеешь.
Аноним 02/09/22 Птн 15:33:25 2452737 352
>>2452718
> https://c-sharp.pro/задачник/
Посмотрел, все решать смысла вообще нет. Может 1-2 задачи в каждой теме решить и все, там где тяжело побольше.

Но, повторюсь, если сложности с математикой в какой-то задаче - забей на нее.
Аноним 02/09/22 Птн 16:47:58 2452790 353
А че почитать про асинхронность?
Я понимаю синтаксически как её использовать, знаю, что там компилятор делает класс стейт машины которая сохраняет все нужные данные.

Но я не очень понимаю контекст сихронизации - я же правильно понимаю, что в фреймворках которые её поддерживают в какой-то(в какой?) момент в основном потоке срабатывает какая-то функция и в ней выполняются все куски между авейтами?

И мне нужно больше практических примеров использования, типа лучшие практики там хз, вот такое где посмотреть?
Аноним 02/09/22 Птн 17:47:34 2452843 354
>>2452790
Приведу аналогию
Допустим ты пишешь на тасках в стиле Task.Run()
И ты пишешь продолжения вида task.ContinueWith(). Где будут выполняться эти ContinueWith? А за это отвечает TaskScheduler, который можно передать свой или же будет использоваться дефолтный (который пихает в тредпул эти продолжения)

await та же фигня только сбоку
await разбивает код на цепочку "продолжений". И вот за то, где выполнять эти продолжения и отвечает SyncronizationContext. Семантически он ведет себя как TaskScheduler для тасков.

await-ер захватывать текущий SyncronizationContext (если он есть конечно) и если сказано его учитывать ConfigureAwait(true), то все выполнение делегируется ему, иначе тредпулу.

Это самый обычный "выполнятор" как и TaskScheduler, которому можно передать делегат продолжения, чтобы он его выполнил как хотел.
GUI создает свой SyncronizationContext и устанавливает через SynchronizationContext.SetSynchronizationContext, а дальше уже механизм await сам будет его захватывать и работать с ним.

Ты можешь и сам создать свой контекст - сделать наследника SyncronizationContext в котором создать поток, впилить туда BlockingCollection и все поступающие делегаты туда запихивать, а твой поток будет перемалывать их все в 1 потоке. Собственно вот ты и сделаешь так свой простой UI контекст.
Аноним 02/09/22 Птн 18:16:29 2452868 355
>>2452737
понял, спасибо большое, анонче
Аноним 02/09/22 Птн 22:48:18 2453117 356
Аноним 02/09/22 Птн 22:49:53 2453120 357
>>2452698
Работаем, стрижем сотыги, заходим сюда исключительно для развлечения, пока идёт сборка или юниттесты или когда хочется отдохнуть от таски
Аноним 03/09/22 Суб 00:35:30 2453164 358
1662154528154.jpg 79Кб, 783x636
783x636
Здравствуйте. Подскажите пожалуйста по одному вопросу: были ли на вашей практике примеры, когда человек без опыта и в возрасте подходящем к 30 начал карьеру сишарп разработчика?

Я просто под гнетом обстоятельств решил сферу деятельности поменять, ну и спустя месяц мытарств пришел к выводу, что наиболее реальный вариант сейчас это 1с. Но мне до ужаса не хочется туда лезть, ибо бухгалтерия и все в этом роде явно не мое. Поэтому сейчас в раздумьях. Для каких целей предпочтительней изучать сишарп? Что можно для начала выбрать? Чтобы без особых требований к опыту и скилам, дабы хоть какой-то релевантный опыт наработать в процессе обучения и как можно быстрее начать полученные навыки использовать. Ну типа техподдержки или чего-то подобного.

на данный момент я между джавой и сишарп выбираю, поэтому очень хотелось бы ваше мнение и на этот счёт услышать

Спасибо.
Аноним 03/09/22 Суб 00:51:45 2453175 359
изображение.png 82Кб, 878x227
878x227
>>2452843
другой анон, но в тему поста. Вот, например, написал метод, где заменил все синхронные вызовы на асинхронные, всё я правильно делаю, просто приписывая await к асинхронным методам или чето не так?
Аноним 03/09/22 Суб 01:31:07 2453195 360
>>2453164
советую окунуться в пхп, без шуток
Аноним 03/09/22 Суб 07:07:57 2453251 361
>>2453175
в этом и есть смысл async/await
чтобы код выглядел линейно как и синхронный, так что все верно
Аноним 03/09/22 Суб 08:25:01 2453270 362
>>2452790
Кстати этот самый SyncronizationContext и его связь с ExecutionContext - еще один косяк в дизайне языка.
И кто из джунов(или выше) об этом знает а?

Лечение - не использовать контекст как это сделали в асп.нет коре (вера в то, что не будет контекста так наивна - хотя для круд сайтиков это можно принять) или использовать везде ConfigureAwait(false), который по умолчанию true (это еще одна глупость в угоду пориджам формшлепам) - и мелкомягкие никак не хотят с этим бороться

ну что блин им стоило сделать
await
await!

или ладно к текущему сделать
await@
await?

и было бы лепо, а не уродское ConfigureAwait, которое нужно везде тыкать.

Кто там говорил про продуманный дизайн языка )
Аноним 03/09/22 Суб 11:00:55 2453314 363
Аноним 03/09/22 Суб 11:19:24 2453329 364
>>2453164
Ну, я почти в 30 начал. В 24 - на первую работу после магистратуры устроился.
За 20к работал. Заебись все. Деньги плотют вовремя, пишешь код. Что еще надо?
Аноним 03/09/22 Суб 11:34:33 2453344 365
Аноним 03/09/22 Суб 12:58:23 2453459 366
>>2453270
Чёт не понял, чел.
Как я верну результат круда если например мой вызов бд GetZalupaAsync будет без контекста? Он же просто улетит куда-то выполняться в другом месте, а круд продолжит выполнение в текущем.
Так-то ConfigureAwait(false) для UI нужен чтобы вызовы говна не висели в UI потоке и не тормозили его. В asp.core Ты обязан в текущем потоке работать, который тебе выдали на запрос, и если хочешь че-то запустить через FireAndForget использовать бэкграунд треды, иначе наплодишь говна.
В чем я не прав?
Аноним 03/09/22 Суб 13:09:32 2453469 367
>>2453459
>Он же просто улетит куда-то выполняться в другом месте
Не понял о чем ты.

>В asp.core Ты обязан в текущем потоке работат
никому никто ничего не обязан. асп.кор всего лишь не определяет свой SyncronizationContext, что дает твбе возможность не писать ConfigureAwait(false), но никаких больше требований или правил. Если у тебя долгоиграющий сервис что-то делает на CPU, то выделить ему свой поток, (а то и несколько) вне пула - нормальное решение.
Аноним 03/09/22 Суб 13:19:21 2453484 368
>>2453459
>Ты обязан в текущем потоке работать, который тебе выдали на запрос
нет такого. "поток/процесс на запрос" это в языках где нет асинков.
Где есть async-и то твой контроллер просто самый обычный асинхронный метод который вызывается на первом попавшемся из пула треде и в процессе выполнения метода контроллер может несколько раз поток сменить

Есть тредпул с потоками, есть async/await-ы которые дербанят твои асинхронные методы на куски. Далее планировщик запихивает нужный кусок в тредпул для выполнения. И так по кругу. Так все и работает если ничего не трогать.
Ну в GUI имеем еще сверху 1 выделенный поток для UI
Аноним 03/09/22 Суб 17:16:04 2453832 369
Как заставить VS запускать PowerShell при запуске программы?
Аноним 03/09/22 Суб 17:37:21 2453859 370
Я не понимаю, зачем нужна конструкция async await. Ведь с await основной поток приостанавливается, то есть программа все равно выполняется синхронно. А без await можно просто вызвать task.run
Аноним 03/09/22 Суб 17:40:58 2453865 371
>>2453859
Поток ставится на паузу и его выполнение уходит в очередь, а ядро в это время начинает исполнять другой поток из очереди.
Аноним 03/09/22 Суб 18:04:40 2453893 372
Не думали перейти на нормальный язык, а не сидеть на жалкой дешевке, подделке, копипасте, пойманной за руку?

МИМО JAVA БОГ ГОСПОДИН ХОЗЯИН
Аноним 03/09/22 Суб 18:09:00 2453902 373
>>2453859
>Ведь с await основной поток приостанавливается
нет. с async/await потоки не приостанавливаются. в этом и есть смысл асинхронности.
await освобождает поток и ждет результата асинхронной операции.
Аноним 03/09/22 Суб 18:15:45 2453908 374
>>2453120
А подскажите плиз какой пет проект сделать чтоб джуном взяли. Думаю сделать простую crm какую-то. Хочу болото 1с покинуть
Аноним 03/09/22 Суб 18:21:09 2453921 375
>>2453893
Двачую

мимо JAVA ENTERPRISE OVERLORD 35к рублевой массы
Аноним 03/09/22 Суб 18:57:52 2453964 376
А можно ли с нуля вкатиться в геймдев? Или сейчас даже начинать не стоит?
Аноним 03/09/22 Суб 19:09:39 2453977 377
>>2453469
>>2453484
Новый день новое открытие.
Тяжело..
Буду разбираться, спасибо мужики.
Аноним 03/09/22 Суб 19:11:09 2453980 378
>>2453908
Вкатуны испоганили слово пет проект, если изначально это был проект, которым ты занимаешься в свободное от работы время в свое удовольствие, теперь пет проект -- это бесполезный высер, которым ты пытаешься впечатлить Кабана, чтобы он взял тебя грести на галеру.
Аноним 03/09/22 Суб 19:17:21 2453988 379
>>2453980
>теперь пет проект -- это бесполезный высер, которым ты пытаешься впечатлить Кабана, чтобы он взял тебя грести на галеру
А что в этом собственно плохого? На пет проекте ты освоишь основы работы с фрейморком, гитом, CI/CD мб. Полезная вещь на самом деле.
Аноним 03/09/22 Суб 19:21:47 2454002 380
Аноним 03/09/22 Суб 19:45:35 2454032 381
>>2453980
Ну так я и планирую заниматься в свободное от работы время в свое удовольствие. Я всмысле чтоб опыт коммерческой разработки появился плюс минус
Аноним 03/09/22 Суб 20:06:10 2454061 382
>>2453988
ничего плохого. учиться все равно нужно (а это нужно делать на реальном коде) и лучше показать что-то, чем ничего

все эти задачки "сумма квадратов" хрень.

Реальный проект пусть даже он детский, пусть даже "паттерны ради паттернов" (вообще рекомендую это на старте) правильно форматирует мозг видеть суть.
Аноним 03/09/22 Суб 20:12:28 2454070 383
>>2453977
на самом деле это очень простая концепция, просто твой мозг не привык думать в этом стиле.
но стоит понять парадигму, то сразу сможешь так писать в любом другом языке

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

В конце ожидания продолжение (код после await) будет запланировано (станет в очередь) на выполнение. Если есть свободный поток, то оно и будет сразу выполнено, иначе будет ждать пока не освободится поток.
Получив поток продолжение будет выполняться в нем, пока не встретится следующий await и поток будет освобожден и будет ожидание, потом результат ожидания и снова постановка очередного продложения на выполнение. И так пока цепочка не закончится

Цепочка await выполняется последовательно друг за другом и если у тебя тупо однозадачная херня, то разницы особой с синхронным кодом нет, разве что в моменты ожидания I/O твой поток не заблокирован, а просто ждет когда его снова позовут.
Но другое дело если параллельно выполняется много чего.

Если у тебя потоки, то 10000 параллельных запросов потребуют создать 10000 тредов, каждому из которых нужно выделить стек, потратить время на создание, да и еще и между ними переключаться "чтобы каждый поработал". При этом будет много лишних переключений контекста когда поток просто ждет ответа I/O и собственно ему делать нечего.

А вот с асинками у тебя пул потоков. И в каждом из 10000 запросов есит цепрчка await-ов, где каждый await, когда до него дойдет выполнение, возвращает поток в пул давая возможность поработать другим. Потом await получает результат и ставит продолжение в очередь на выполнение.
Если у тебя много I/O, где происходит тупо ожидание, то эти 20 потоков легко перемолотят твои 10к запросов.
Аноним 03/09/22 Суб 20:38:57 2454091 384
Есть классы NamedPipeServerStream и NamedPipeClientStream
Они являются наследниками PipeStream.

Так вот, в моем базовом классе используется PipeStream.
Затем я наследуюсь и делаю новый класс, где при помощи оверрайда пытаюсь PipeStream привести к типу NamedPipeServerStream. Но мне дают пизды.

"NamedPipeServerStream" не может переопределить "PipeStream", так как их возвращаемые типы различны.
Аноним 03/09/22 Суб 20:46:37 2454096 385
Почему сишарп выбрали? Сейчас посмотрел количество вакансий, в Москве около 400 с опытом от 1 до 3 человеколет. Явно придется потолкаться. Или вы по другим критериям выбирали?
Аноним 03/09/22 Суб 20:58:54 2454104 386
>>2454096
Шарп лучший язык в мире.
А чё там с вакансиями по другим языкам? Ну и да, ты по з/п фильтровал?
Аноним 03/09/22 Суб 21:02:53 2454106 387
>>2454104
По яве в Москве больше в два раза, а касаемо зарплаты я даже не решаюсь судить, цифры разнятся, как и требования к кандидату. Пока расчет только на начало карьеры. Кстати первую работу тяжело было найти?
Аноним 03/09/22 Суб 21:06:00 2454110 388
>>2454106
Поставь "от 150к", сделай рисёч ещё раз, приходи обратно
Аноним 03/09/22 Суб 21:06:24 2454111 389
>>2454032
>в свое удовольствие
Тогда бы ты не задавал такой вопрос, а делал то, чем сам горишь.
Аноним 03/09/22 Суб 21:06:58 2454113 390
>>2454106
> Кстати первую работу тяжело было найти?
Мне приглашение самому пришло. Я одной компании бесплатно помог данные восстановить, мой друг там был вторым человеком. И на следующий день от него "Ты работу случайно не ищешь?"
Аноним 03/09/22 Суб 21:10:31 2454117 391
Аноним 03/09/22 Суб 21:14:29 2454123 392
>>2454096
У меня в шараге на нём пишут
Аноним 03/09/22 Суб 21:15:52 2454125 393
>>2451658
> В нем можно было бы возвращать саму коллекцию, если она поддерживает IReadOnlyCollection
Любая коллекция кастится в рид-онли коллекцию. Хоть список хоть массив. Не забывай, что это просто коллекция, у которой есть геттер, но нет сеттеров на добавление и изменение элеменнта
Аноним 03/09/22 Суб 21:17:59 2454129 394
image.png 16Кб, 614x211
614x211
Аноним 03/09/22 Суб 21:22:08 2454131 395
>>2454129
Что ты хотел этим сообщить?
Аноним 03/09/22 Суб 21:24:33 2454137 396
>>2454117
> как сделать апкаст свойства родительского класса
base.svoistvo = "mamku ebal";
Аноним 03/09/22 Суб 21:30:50 2454148 397
>>2454137
Может я спутал апкаст с даункастом.
Но то, что ты предложил, приведет "mamku ebal" в типу свойства base. А мне нужно наоборот: был родительский, а стал дочерний.
Аноним 03/09/22 Суб 21:35:44 2454152 398
>>2454148
То что ты хочешь и так происходит автоматически, в этом суть ООП.
Аноним 03/09/22 Суб 21:41:09 2454157 399
>>2454152
Да? Тогда звиняйте и благодарствую.
Аноним 03/09/22 Суб 22:11:06 2454194 400
>>2454125
>что это просто коллекция, у которой есть геттер, но нет сеттеров на добавление и изменение элеменнта
он как раз не забывает. собственно об этом и толкуем, что IList должен быть наследником IReadOnlyList

>Любая коллекция кастится
кастится. но явным кастом.
Аноним 03/09/22 Суб 22:12:01 2454195 401
PQLN1.png 116Кб, 480x399
480x399
Объясните, как снизить нагрузку на GC?
Вот я беру память из меморипулла. Парсю сообщение. Создаю объект сообщения. Дальше пускаю его по всяеким своим фильтрам, оно доходит до роутера, роутится к обработчику, обрабатывается, шлю ответ. Все, оно умирает. GC - берешь и жрет его.
Так вот. Если мой сервер работает в десктопном режиме, то он, блядь, постоянно стопит все, чтобы эти сообщения пожрать. С вообщении содержится только тип сообщения, какие-то данные о валидности, ну и может наличиствовать тело, если тип сообщения его содержит.
Я вот начинаю подумывать, что делать абстракцию над сообщением - было плохой затеей. Но чет как иначе сделать - не представляю.
Так вот. Как мне снизить нагрузку, чтобы GC не бесновался и постоянно не дергался? Просто в проффилировщике оно примерно так выглядит и меня это напрягает. Память правда так не утекает, держится на кровне 200МБ, но постоянно долбится GC.
Аноним 03/09/22 Суб 22:30:16 2454214 402
Аноним 03/09/22 Суб 22:31:36 2454216 403
>>2454214
А ты попробуй передай IList
Аноним 03/09/22 Суб 22:47:50 2454238 404
>>2454195
Если у тебя дохуя строк, и дохуя с ними работы, то тут может быть проблема. Любая манипуляция со строками создает новые экземпляры строк, которые GC нужно чистить вилкой.
https://youtu.be/95AlosM6Ka0?t=280

Для этого юзают стрингбилдеры. Но я могу только догадываться что у тебя за пробелма.
Аноним 03/09/22 Суб 23:13:43 2454288 405
Безымянный.png 40Кб, 617x792
617x792
>>2454096
Та не.
У меня примено прикриплейд.
Вот то что там что-то делает с сообщением - это статические методы, которые по логике приложения доставляют до нужного обработчика, на уровне обработчика.

Хотя я пока накидывал пример - понял, что а нахуя мне вообще эти вот "сообщения"? Типа почему все не хранить в контексте? Он-то живет пока живо соединение. А эти вот сообщения придумывать было тупой идеей.
Аноним 03/09/22 Суб 23:14:18 2454292 406
Аноним 03/09/22 Суб 23:21:17 2454305 407
>>2454288
Для начала перестань верить в то что сообщение будет прочитано за один раз
Аноним 03/09/22 Суб 23:31:27 2454320 408
>>2454305
Ну серьезно, чел. Я буду тебе сейчас для примера накидывать как у меня в реальности с пайпами вся хуйня, катанием по буфферу туды-сюды и прочей хуйней?
Аноним 03/09/22 Суб 23:33:05 2454327 409
>>2454320
А телепатов нет
То что ты покажешь то и можно увидеть
Аноним 03/09/22 Суб 23:37:32 2454341 410
>>2454327
Ну блин.
1. Реальный проект я по понятным причинам показать не могу.
2. Проблема как раз в сообщениях, потому что судя по профилировщику - именно они постоянно удаляются-создаются.
Аноним 04/09/22 Вск 00:46:57 2454440 411
16620290351940.mp4 856Кб, 640x360, 00:00:05
640x360
Аноны, помогите определиться с названиями классов.

Сервис Authentication:
Нужен класс Account который содержит данные текущего пользователя и класс Account который содержит короткие публичные данные другого пользователя, которые возвращаются по запросу.

Сервис Game:
И аналогично классы Player. Один для текущего пользователя, который содержит полную информацию с инвентарем, кол-вом валюты и второй класс, который содержит короткую инфу о другом игроке, типа nickname и portrait.

Может так:
UserAccount | AccountInfo
UserPlayer | PlayerInfo
Аноним 04/09/22 Вск 07:06:09 2454529 412
изображение.png 9Кб, 715x30
715x30
Есть какой-то способ получить индекс первого элемента массива, который меньше заданного числа, кроме пика?
Аноним 04/09/22 Вск 07:42:00 2454535 413
Как перейти с net 6 на net 5? Я меняю целевую платформу в файле конфигурации проекта, но при компиляции всё равно генерируется файл g.cs с глобальными юзингами, из-за которых в итоге возникает ошибка.
Аноним 04/09/22 Вск 08:18:23 2454541 414
>>2454341
конечно они создаются. но это сколько нужно запросов чтобы они были проблемой. Как я понимаю по 1му объекту message на запрос...так это обычное дело.

для начала коментируется await Application.Handle чтобы понять что проблема именно тут, а не там.
А еще создается и контекст (хз че это) на каждый запрос. Хз насколько он тяжелый и кто его знает как работает его Parse
Аноним 04/09/22 Вск 10:07:05 2454582 415
>>2454535
ну так убери юзать имлиситюсингс из *.csproj
Аноним 04/09/22 Вск 17:48:03 2454996 416
Привет, посаны. Пришла таска накидать API на .net 6. Подскажите что почитать чтобы его сделать. API элементарное, но я в вебе никогда ничего не писал до сих пор. Основы знаю самые.
Аноним 04/09/22 Вск 19:47:55 2455182 417
2022-09-04 1941[...].png 16Кб, 274x482
274x482
Анон я заебался. Может у меня gcc багованный? Как state может быть не 0 или 1? Это просто C, не шарп.
https://pastebin.com/tu4Rmh5v
Аноним 04/09/22 Вск 20:01:06 2455192 418
>>2445746 (OP)
СЯШАРПЕРЫ ВОПРОС

ВЫ НА ЛИНУКСЕ СИДИТЕ ИЛИ НА ВИНДЕ?
Аноним 04/09/22 Вск 21:03:08 2455262 419
>>2455192
Одновременно на всех системах, а чо?
Аноним 04/09/22 Вск 21:35:06 2455294 420
Стоит ли всё таки изучить WPF? Учебников для MAUI ещё нету. Если да, то по какому учебнику?
Аноним 04/09/22 Вск 21:39:25 2455301 421
>>2455294
Ни WPF, ни MAUI учить не стоит. Стоит учить аспнет.
Аноним 04/09/22 Вск 21:43:43 2455305 422
>>2455301
Нееет, вообще не хочу веб
Аноним 04/09/22 Вск 21:45:56 2455307 423
>>2455305
Никто не хочет, а куда деваться?
Аноним 04/09/22 Вск 22:16:31 2455340 424
>>2455307
Нет, я всё таки хочу делать крутые программы для системы. Сейчас мало таким занимаются
Аноним 04/09/22 Вск 22:40:07 2455367 425
>>2455340
Хочешь крутые программы для системы, а будешь легаси для учёта всякой хуйни на древнем проприетарном дотнет фреймворке. Лучше уж веб, чем такая участь.
Аноним 04/09/22 Вск 22:44:23 2455374 426
Аноним 04/09/22 Вск 22:48:57 2455382 427
Аноним 04/09/22 Вск 23:02:27 2455400 428
>>2455382
А что мауи. Это ж бывший замарин
Вот mvu подход отличается
Но всё равно придется знать хамл подход
Аноним 04/09/22 Вск 23:10:26 2455407 429
>>2455400
Не просто бывший замарин. Это замарин, из которого целенаправленно выпилили линукс.
Аноним 04/09/22 Вск 23:16:34 2455409 430
>>2455407
Но книжки по замарину подходят
А mvu....не вижу в нем смысла пока

Сколько не ищу по этой теме - везде выглядит просто как разметка кодом
Аноним 04/09/22 Вск 23:17:16 2455410 431
>>2455400
Ну так если я пройду старую книжку по wpf начну разбираться в нём? Или где-то есть специальные книги по замарину?
Аноним 04/09/22 Вск 23:22:50 2455417 432
>>2455410
Частично начнешь
Разметка ведь только часть всего
Если знаешь впф и прочтешь курс стартандроид по диагонали то сможешь писать на замарине с гуглом
Аноним 04/09/22 Вск 23:44:24 2455423 433
Чем вам веб то не угодил? Сидишь себе, джейсоны перекладываешь, какашечка копится
Аноним 04/09/22 Вск 23:45:48 2455424 434
>>2455423
А фронт кто писать будет?
Аноним 05/09/22 Пнд 00:04:22 2455433 435
>>2455424
Сидишь себе, кнопки красишь, какашечка копится
Аноним 05/09/22 Пнд 00:09:37 2455439 436
>>2455433
Ты определись джейсоны или кнопашкы
Есть 2 стула. Выбери один
Аноним 05/09/22 Пнд 04:11:48 2455482 437
>>2455182
w[i-'0']=0;
'0' это 43 если мне память не изменяет. Ты пишешь в память мусор. Ты хотел w размера 10 сделать, наверное.
Аноним 05/09/22 Пнд 08:01:37 2455527 438
>>2455482
'0' - это 48, но у него массив w из нуля элементов, так что там пиздец.
Аноним 05/09/22 Пнд 08:29:48 2455543 439
>>2455182
ты пришел в этот тред чтобы напомнить почему мы выбрали шарп?
Спасибо, но это лишнее.
Аноним 05/09/22 Пнд 08:43:35 2455554 440
>>2455543
Вопросы по Objective C можно тоже здесь задавать, ну а чо, аж целая одна буква в названии языка совпадает!
Аноним 05/09/22 Пнд 08:44:38 2455555 441
Аноним 05/09/22 Пнд 11:37:26 2455702 442
>>2455555
кто это? они существуют только в легендах, а по факту с тебя требуют фуллстек.
Аноним 05/09/22 Пнд 12:15:32 2455727 443
>>2455702
Это по факту конечно. Ну у нас например фронт очень базовый - разор и пара либ с компонентами для него. Никаких версток и реактов ковырять не надо.
Аноним 05/09/22 Пнд 13:18:49 2455777 444
Что делать, когда истечет лицензия решарпера?
Аноним 05/09/22 Пнд 13:23:30 2455784 445
Могу ли я заниматься беком при помощи ASP.NET, НЕ зная HTML и CSS?
Аноним 05/09/22 Пнд 14:04:07 2455822 446
>>2455784
Пилить REST API для фронтендеров, например.
Аноним 05/09/22 Пнд 14:10:05 2455830 447
>>2455777
Есть довольно много сервисов фейкопочты, которые эти хитрые чехи пока не палят.
Аноним 05/09/22 Пнд 15:54:17 2455939 448
>>2445746 (OP)
На оппике - Таприс Шугарбелл Тисаки, если кому интересно. Я не знаю нахуй я это гуглил и нахуя тебе (и мне) эта информация, Анон, но вот как-то так.
Анончики, как бросить страдать хуйней и начать работать.
Аноним 05/09/22 Пнд 15:59:58 2455945 449
>>2455939
>как бросить страдать хуйней и начать работать

бросить страдать хуйней и начать работать
Аноним 05/09/22 Пнд 17:25:48 2456016 450
>>2455527
Я сто лет по такой хуйне не байтоёбил, с первого курса таблицу ascii не помню.
Аноним 05/09/22 Пнд 19:04:19 2456136 451
Как библиотеку классов упаковать в nuget пакет с двумя сборками (мне нужно x64 и arm64)?

dotnet pack собирает под AnyCPU, в доке от Майков нихуя нет
Аноним 05/09/22 Пнд 21:51:13 2456264 452
Аноним 05/09/22 Пнд 22:07:48 2456287 453
>>2456264
Я нихуя не понимаю, анон. Я уже отупел с эти нюгетом. Чтобы мне надо сделать, чтобы получить .nupkg с двумя dll внутри? Какие-то папки блядь, рантаймы нахуй, ебанутые. Ты вот ссылку скинул, там пишут пок кок, спите в .nuspec. В соседней статье другой индус пишет АЛЕРТ .НЮСПЕК БОЛЬШЕ НИНАДА, пользуйтесь тегами проекта для SDK. Какими нахуй тегами?

Почему я не могу написать dotnet pack p: Platform x64|arm64 и получить что хочу.

Анон помоги, я на работе сначала плакал а потом рыдал смехом когда понял что nupkg это zip архив
Аноним 05/09/22 Пнд 22:26:59 2456305 454
>>2456287
какие еще 2 dll
дотнет dll делятся на типы рантайма - ,net/core/mono и так далее. То есть одна длл будет работать и на винде х64 и на макоси арм м2

а разделение на платформы уже там папка runtimes с нативными либами
Аноним 05/09/22 Пнд 22:45:08 2456315 455
Аноним 05/09/22 Пнд 22:45:14 2456316 456
>>2456305
Индус писавший доку на мсдн, ты?

>То есть одна длл будет работать и на винде х64 и на макоси арм м2

В случае AnyCPU.

Пчел, у меня либа с классами с таргетом на .net6, в прожектфайле две платформы - x64;arm64, все.
В солюшене тоже самое.

Сделав dotnet pack, я увидел что msbuild просто собрал мой код под AnyCPU и пихнул в пакет. Я убил весь день, чтобы понять как собрать пакет под две платформы. И все ещё нихуя не понял.
Аноним 05/09/22 Пнд 23:01:23 2456324 457
>>2456316
ну обычных либ они лежат так

\lib\netcoreapp2.0\MyAssembly.dll

а в твоем случае тебе нужна конкретно подменить на целевой платформе
значит у тебя такие пути

runtimes/win-x64/lib/netcoreapp2.0/MyAssembly.dll
runtimes/win-arm64/lib/netcoreapp2.0/MyAssembly.dll
Аноним 05/09/22 Пнд 23:07:00 2456327 458
>>2456324
Окей, спасибо анон, я кажется уловил суть zip архива от корпорации добра.

А ты случаем не знаешь, как мне все это провернуть в csproj, без использования . nuspec?
Аноним 05/09/22 Пнд 23:12:25 2456330 459
Аноним 05/09/22 Пнд 23:44:48 2456338 460
>>2456315
>Можно ли считаться джуном
Я лично тебе разрешаю считаться кем хочешь, только не женщиной, геем можно но обычно джуном считают тех кто может самостоятельно закрывать относительно несложные таски, а знание языка тут дело обязательное, но его воообще недостаточно даже близко. Нужно знать фреймворки, ORM, SQL, предметную область, элементарную математику, git, скорее всего ещё уметь немного верстать, понимать как работает операционная система, HTTP, рантайм дуднета и кофемашина в офисе. Т.е. даже если ты осилишь этот или другой курс по языку ты будешь на один шаг ближе к заветному вкату, но идти до него будет ещё много километров идти. И даже если тебя возьмут на трейни-позицию, пока ты не начнёшь самостоятельно закрывать таски ты не будешь считаться джуном.
Если ты до этого носил пиццы, то лучше забей. Если учишься на программиста, лучше читай книги из шапки, курсы тебе не помогут если ты долбоёб.
Аноним 05/09/22 Пнд 23:49:31 2456339 461
Пацы, как бы удобно оформить сохранение объектов в файлы?

Есть класс LocalStorage, который должен сохранять в файлы разные классы в json формате, типа SettingsData, LoginData, ShopData, TimersData.

Можно конечно тупа вот так сделать:
_localStorage.SettingsData { get; }
_localStorage.SaveSettingsData();
// ...
_localStorage.LoginData { get; }
_localStorage.SaveLoginData();
// etc

Но если я решу добавить ещё один класс, то мне придётся обновить интерфейс ILocalStorage, а затем и саму реализацию. Как-то не очень получается.
Аноним 06/09/22 Втр 00:10:10 2456346 462
>>2456315
Это даже не близко к уровню стажера.

Джун это:
1. Хорошее знание C# (твой курс я по-быстрому проскроллил, не увидел там даже делегатов и ивентов, а также исключений и асинк-авейтов, немрого посмотрел, сам курс похоже не показывает как надо делать, а лишь показывает синтаксис каких-то частей языка). На metanit зайди и там по главам просто иди.

2. Базовое знание стека технологий какой-то определенной сферы. Ты чем хочешь заниматься? Бекенд? Мобильные приложения? Игры? Десктопные приложения? У всего этого свои фреймворки и библиотеки, ты должен знать что они делают и уметь с их помощью что-то сделать.

3. Базовое знание алгоритмов и структур данных. Нужно просто знать че такое массив, односвязный список, двусвязный список, хеш таблица, двоичное дерево, зачем они нужны. Сортировку пузырьком еще хотя бы напиши.

4. Базовое понимание основных концепций ооп(Solid и хотя бы штук 5 паттернов)

5. Опыт работы/наличие своих проектов соответствующих пункту 2. Без опыта работы скорее всего ток на стажера возьмут.
Аноним 06/09/22 Втр 00:23:01 2456348 463
>>2456346
>metanit
Там, по-моему, еще более скупо чем в этом курсе. Чел из плейлиста берет какой-то кусок синтаксиса и в течении 15-20 минут объясняет шо це такэ на примерах. На метаните текста на пару минут чтения.
> Ты чем хочешь заниматься?
Бэкенд.
> Базовое понимание основных концепций ооп
Понимаю что такое инкапсуляция и наследование. Думаю, если дадут тест на собесе с ними, то смогу решить.
>Без опыта работы скорее всего ток на стажера возьмут
Да похуй, как это называется. Под джуном я имел ввиду человека, который собирается поступать на свою первую галеру.
Аноним 06/09/22 Втр 00:36:47 2456359 464
>>2456348
> Там, по-моему, еще более скупо чем в этом курсе. Чел из плейлиста берет какой-то кусок синтаксиса и в течении 15-20 минут объясняет шо це такэ на примерах. На метаните текста на пару минут чтения.
Ну если ты эти видосы лучше воспринимаешь то смотри их, но повторюсь - я не увидел там нескольких очень важных тем.

> Бэкенд
Я не бекендер, так что пусть кто-то другой подробнее ответит, но по идее ты еще должен хоть на каком-то адекватном уровне знать asp net core, уметь писать самые простые запросы на sql, какой-нибудь маппер, любой фреймворк для dependency injection, ну и понимать как ваще интернет и сеть в общем работает примерно

> Понимаю что такое инкапсуляция и наследование. Думаю, если дадут тест на собесе с ними, то смогу решить.
Ну инкапсуляция и наследование это ладно, с этим разобраться легко.
Чем наследование может быть плохо понимаешь?
Зачем нужна инкапсуляуия понимаешь?
Ну и опять же - солид и немножко паттернов надо знать по хорошему.

> Да похуй, как это называется. Под джуном я имел ввиду человека, который собирается поступать на свою первую галеру.
Справедливо. А у тебя какой сейчас уовень? Ты только начинаешь вкатываться? Языки какие-то изучал до этого? Если у тебя вдруг уже есть опыт работы не на шарпе, то вкатиться намного проще будет
Аноним 06/09/22 Втр 00:40:48 2456363 465
>>2456348
> который собирается поступать на свою первую галеру.
Ебать вкатуны теперь и сленга нахватались. Ты хоть знаешь что такое галера-то?
Аноним 06/09/22 Втр 00:45:31 2456368 466
>>2456359
>Чем наследование может быть плохо понимаешь?
Еще нет. Чем? По-моему, очень удобная штука.
>Зачем нужна инкапсуляция понимаешь?
Да. Код писать буду не один. И чтобы другой программист не наебнул логику моего кода например, вписав в поле возраст -1000, определенным полям следует давать либо приват, либо протектед.
>Языки какие-то изучал до этого?
Плюсы. Но у меня что-то не получилось, психанул разочаровавшись в себе и бросил на полгода.
>Если у тебя вдруг уже есть опыт работы не на шарпе, то вкатиться намного проще будет
Нету. Кстати, а можно в резюме напиздеть, что работал без ТД у друга брата деда? Хотя бы пару месяцев. Сильно палиться буду?
Аноним 06/09/22 Втр 00:47:34 2456370 467
>>2456368
> Сильно палиться буду?
Сам как думаешь? Сейчас вкатуны нахуй не нужны, между вашим братом устраивают "игру в кальмара" самую настоящую. Иди лучше в моряки сразу.
Аноним 06/09/22 Втр 00:49:16 2456373 468
>>2456370
>Иди лучше в моряки сразу.
Меня как-то не привлекает идея жить и спать в одной комнате каюте с дюжиной вонючих мужиков.
Аноним 06/09/22 Втр 00:53:06 2456381 469
>>2456373
Ну кто на что учился.
Аноним 06/09/22 Втр 01:26:26 2456405 470
>>2456368
> Еще нет. Чем? По-моему, очень удобная штука.
Ну короче если слишком большая глубина наследования - то разобраться в структуре программы становится тяжело - придется всю цепочку наследования смотреть, плюс появляется зависимость между базовым классом и производным, и если случится какой-то сильный рефакторинг то всю цепочку наследования придется чинить.

Поэтому если ты пишешь прогу - старайся как можно меньше делать всяких абстрактных классов и длинных цепочек наследования(А наследуется от Б, Б наследуется от В, В наследуетсч от... - вот этого надо избегать, но если никак, то ладно), а пытайся как-бы в ширину растить программу - делай просто маленькие интерфейсы с понятным назначением и ответственностью, и какими надо классами их реализуй. Это в общем-то сразу два принципа солид(1й и вроде 4й)


Когда ты на реальный проект придешь, там везде будет работа чисто на интерфейсах, многое будет выглядеть примерно так:
interface IMochaProviderSevice
{
IMocha GetMocha();
}

> Да. Код писать буду не один. И чтобы другой программист не наебнул логику моего кода например, вписав в поле возраст -1000, определенным полям следует давать либо приват, либо протектед.
Малаца. Это кажется очевидным, но почему-то многие новички этого не осознают.

> Плюсы. Но у меня что-то не получилось, психанул разочаровавшись в себе и бросил на полгода.
И правильно, на шарпе писать в разы приятнее.

> Нету. Кстати, а можно в резюме напиздеть, что работал без ТД у друга брата деда? Хотя бы пару месяцев. Сильно палиться буду?
Лучше не надо, сразу поймут. В теории можно фриланс написать, но я так не делал, поэтому хз.

Лучше займись каким-то своим проектом и просто впиши в опыт, что вот работал над ним полгода. Все так делают, поэтому это норм - хотя бы хр фильтр пройдешь.
Аноним 06/09/22 Втр 01:26:38 2456406 471
image 39Кб, 699x228
699x228
image 75Кб, 1068x349
1068x349
>>2456339
Ок, сделал LocalStorage универсальным. А работу с конкретными классами вынес в методы расширения. Вроде норм.
Аноним 06/09/22 Втр 02:09:17 2456428 472
>>2456359
>я не увидел там нескольких очень важных тем
Кстати, забыл спросить - про какие темы ты говорил?
Аноним 06/09/22 Втр 03:08:53 2456448 473
>>2456428
Делегаты, ивенты, лямбды, async/await, IEnumerable, using и IDisposable, исключения, Linq.

Еще бы многопоточность хоть чуть-чуть знать надо, чтобы ты знал как поток запустить и знал про тред пул.
Аноним 06/09/22 Втр 03:17:52 2456450 474
>>2456448
Хорошо, понял. Еще по поводу:
>На metanit зайди и там по главам просто иди.
Скажи, до какой главы ориентировочно читать, чтобы претендовать на стажера/джуна? Просто для меня очень важно, иметь четкую цель, чувствовать прогресс к ней, а не просто "учится".
Аноним 06/09/22 Втр 03:36:07 2456453 475
>>2456450
Ты скорее всего не встретишь 18 главу (но её полезно было бы прочитать), 20 глава не нужна, остальные все обязательно нужно понимать полностью.
Аноним 06/09/22 Втр 03:41:38 2456454 476
>>2456450
Вот тут: https://metanit.com/sharp/tutorial/1.1.php

Главы 1-7 должен хорошо знать

В главе 8 определение операторов и методы расширения, остальное просто прочитай 1 раз

Главу 9 просто прочитай, особо учить не надо, просто прочитай й раз и будь в курсе что такое есть

Главу 10 хорошо надо знать

Главу 11 хорошо надо знать. Но регулярные выражения идеально заучивать не обязательно

Главу 12 просто почитай

Глава 13 джуну не нужна, прочитай 1 раз и забудь, запомни только если тебе там что-то понравится

Глава 14 это не на уровень джуна, пока не лезь, только первый пункт там прочитай, как поток стартануть и попробуй сам это сделать.
Многопоточность это очень объёмная тема, но ты просто должен знать что такое поток

Главы 15, 16, 17 нужны

Главы 21(про сборщик мусора на собеседовании будут спрашивать скорее всего), 22, 23 нужны

Все остальное нахуй, даже не читай

Дальше открываешь https://metanit.com/sharp/patterns/

И читаешь про SOLID, Singleton, Command, Observer, Abstract Factory, Iterator и еще парочку паттернов какие хочешь

Это конкретно по языку и паттернам, что там еще надо тебе уже бекендеры посоветуют
Аноним 06/09/22 Втр 03:44:36 2456456 477
16622227411080.jpg 199Кб, 563x552
563x552
>>2456454
Хорошо, понял, спасибо большое, анон!
Аноним 06/09/22 Втр 03:45:02 2456457 478
>>2456454
> XML не нужен, даже не читай
Кул стори бро. Представил твоё ебало когда ты всё это для вкатуна расписывал.
Аноним 06/09/22 Втр 03:48:09 2456458 479
>>2456457
Там "изучения" на полчаса.
Учить всю хуйню, которую он на стаковерфлоу нагуглит за 5 минут когда она ему понадобится - смысла мало
06/09/22 Втр 06:59:15 2456493 480
>>2456346
>Сортировку пузырьком еще хотя бы напиши.
Как же трудно сейчас айтишникам, они до сих пор ручками пишут базовые алгоритмы.
Почему не спрашиваете теорему Пифагора?
Аноним 06/09/22 Втр 07:00:16 2456494 481
0b418b409852167[...].jpg 139Кб, 600x557
600x557
>>2456348
> Бэкенд

Общие вопросы:
Уровни модели OSI
Клиент-серверная архитектура, какие бывают еще
Работа операционной системы (что делает, какие бывают, что можно переложить на нее, чтобы не велосипедить)
Многопоточка, синхронизация доступа к разделяемым ресурсам, поиск консенсуса.
Асинхронщина. Чому говно, чому круто? В чем вообще прекол.
HTTP. Чому говно, чому не говно? Принцип работы.
Вебсокеты. Что, зачем? Какие подводные камни?
Сессии, куки, авторизация-аутентификация.
JWT. Что, почему пользуем? Почему говно? Как жить-то с ними?
Почему нужно возвращать всегда 200? Вопрос с подвохой.
Докеры-хуекеры, кубернетисы-шмубирнетисы. Что, зачем, почему, как поднять.
Что за зверь такой MVC? Почему оно так популярно?
API First.

Шарпы:
База - что-то из этого не знаешь - сразу идешь нахуй

Ссылочные и значимые типы. Чем они отличаются.
Вопрос со звездочкой - что такое record, как жили без него?
Передача аргументов, чем in от ref отличается?
String - с хуя этот зверь, являясь ссылочным ведет себя как сука?
Колекции шарпа, как какие работают, вообще - нах оно надо?
LINQ, что зачем и почему говно без задач, но почему - придется пользоваться?
Женерики - что, почему заебись, чем от темплейтов из C++ отличаются, почему жава опять соснула.
unsafe - надо ли вообще оно тебе, и почему - да.
GC - что за хуй такой, как работает, зачем нужен
Финализаторы и почему ты не должен их писать.
IDispoasble - воняет говной или не? Когда надо, когда - пошло оно нахуй.
Рефлексия. Что, зачем, почему говно без задач.
Чем Framework от Core отличается, а те в свою очередь от Mono?

Бекендер-щит - тут могут быть пробелы, джуну-то, но что-то спиздануть по каждой теме надо
Механизм обработки запрос. Что вообще происходи-то, после того до сервера добрался первый SYN?
ASP - стори, че вообще такое.
Какие были майками предприняты попытки завоевать бекенд-рынок? Почему соснули?
Какие веб-серверы у майков есть для хостинга твоего приложения? Почему ты должен использовать Kestrel?
Если Kestrel, то что там с хостингом сразу нескольких приложений?
Что есть для авторизации?
Что там по работе с БД? Почему использовать ADO в 2022 все еще норм?


Как-то так.
Аноним 06/09/22 Втр 07:14:26 2456496 482
>>2456494
Да, про SOLID, паттерны я не стал включать исключительно из-за того что очередной бесноватый будет кричать, что это уже минимум мидл.
По факту - джуну тоже это знать надо и спросят. Так что лучше про них тоже почитай.
Аноним 06/09/22 Втр 07:25:08 2456497 483
>>2456493
>Как же трудно сейчас айтишникам, они до сих пор ручками пишут базовые алгоритмы.
Художники прежде чем начать писать портреты барышень рисуют всякие кубы и фрукты, музыканты перед великими произведениями играют гаммы, а программисты реализуют простые алгоритмы. Не вижу причин твоего подрыва.
06/09/22 Втр 08:10:00 2456504 484
>>2456497
Ты инженер, а не художник. Тебе не нужно мастерить колесо, чтобы потом высчитать его площадь. Тебе не нужно доказывать пифагора, чтобы использовать полигоны. Мне от работника куда важнее знать насколько хорошо он умеет работать с базой
с SQL, чем то насколько он там Фибоначчи собирать умеет.
Знает что такой алгоритм есть, загуглит если нужно будет его писать руками. Так же и во всем остальном, что уже людьми открыто давно.

Такие художники как ты и тормозят прогресс.
Аноним 06/09/22 Втр 09:52:14 2456550 485
>>2456504
> Ты инженер, а не художник
Инженер гораздо ближе к художнику чем ты думаешь. Ты просто не шаришь. Литкод-то медиум решить можешь хоть, инженер?
06/09/22 Втр 10:19:55 2456576 486
>>2456550
>Литкод-то медиум решить можешь хоть, инженер?
Гуманитарную макаку зацепило и все что он смог высрать, это писькомерство литкода. Ты жалок.
Аноним 06/09/22 Втр 10:32:04 2456593 487
Аноним 06/09/22 Втр 10:43:06 2456601 488
Дали тестовое на джуна, я его сделал, на мой, джуновский взгляд, все было неплохо. Но в итоге мне прислали отказ. Сейчас такую дизмораль словил из-за этого.
Аноним 06/09/22 Втр 10:52:29 2456612 489
>>2456601
Скинь. Может подскажем в чём проблема.

Когда я скидывал код - мне даже не пришлось проходить собес
Аноним 06/09/22 Втр 10:55:01 2456613 490
>>2456601
Да просто кандидатов было несколько, и кто-то справился чуть лучше тебя, а кто-то хуже, ну и выбрали лучшего кандидата, остальным отказ. Это нормально.
06/09/22 Втр 11:02:49 2456618 491
>>2456601
Сидел пол дня ковырялся в жопе, имитировал работу, пришла тестовая таска от джуна, скипнул сразу, потому что хотел посмотреть новую игру престолов (как раз времени на час).
Аноним 06/09/22 Втр 11:07:08 2456620 492
>>2456494
>Почему нужно возвращать всегда 200? Вопрос с подвохо
нахер этот вопрос. за него морду нужно бить ибо холивар. возвращать всегда 200 не нужно, но "натянуть все ошибки логики на коды хттп" тоже дичь.

>String - с хуя этот зверь, являясь ссылочным ведет себя как сука?
ась? обычный иммутабельный тип. ведет себя как положено таким типам.

>Рефлексия. Что, зачем, почему говно без задач.
Без каких задач? наряду с кодогеном лютый вин. Как раз не жава же. Впрочем кодогенерация при компиляции вещь не хуже, чем все делать в рантайме.

>Какие были майками предприняты попытки завоевать бекенд-рынок? Почему соснули?
шта? это вообще о чем.
Аноним 06/09/22 Втр 11:40:10 2456638 493
Вы видели какую йобу с LINQ в 7 дотнет сделали? Я охуел если честно
Аноним 06/09/22 Втр 11:49:31 2456645 494
Аноним 06/09/22 Втр 11:55:54 2456650 495
Как скопировать текст в текущую позицию? Аноним 06/09/22 Втр 12:01:27 2456655 496
Сап, делаю расширение vsix, мне нужно вставить скопированную строчку в текущее положение курсора файла, открытого в Visual studio. Как это можно сделать?

GetText() не помогает, я понял что надо копать в сторону microsoft.visualstudio.shell.interop , но я не понимаю, какой интерфейс сюда подходит?

Буду рад помощи
Аноним 06/09/22 Втр 12:20:29 2456676 497
Аноним 06/09/22 Втр 12:27:17 2456684 498
>>2456676
Скинь ссылку на гитхаб, я не буду нихуя скачивать
мимо
Аноним 06/09/22 Втр 12:28:23 2456686 499
>>2456676
У меня он не открывается ни в 2022 студии, ни в 2012. Тем более тестовое 100% на гитхабе должно лежать.
Аноним 06/09/22 Втр 12:36:45 2456696 500
>>2456655
Нашел, через DTE.ActiveDocument.Selection делается.
Аноним 06/09/22 Втр 12:41:24 2456704 501
>>2456676
Два критичных, как мне кажется - папка Model для моделей. То есть объектов с минимум бизнес-логике. И возможно им не понравилось реализация событий, и они хотели что бы использовал INotifyChanged
Аноним 06/09/22 Втр 12:51:55 2456713 502
Аноним 06/09/22 Втр 13:00:52 2456726 503
>>2456713
В корне должна быть инструкция по сборке и тестированию в виде ReadMe.md
Аноним 06/09/22 Втр 13:10:07 2456735 504
>>2456676
хз че делает код без самого задания. так что по диагонали

1 засилье region мешает чтению. Ну и переменные с большой буквы. Это придирки..но зачем злить экзаменатора
2 double.Parse входной темпы - никогда не доверяй входным данным, что они будут в нужном формате. КРИТИЧНО.
3 EngineIC Engine = new(10, M, V, 110, 0.01, 0.0001, 0.1);
вот то, на что я жаловался на шарп в прошлых тредах - поди разбери что это за параметры. Там еще предлагали юзать переменные чисто для описания (гыгы). Ладно перехожу на сигнатуру -
(int i, int[] M, int[] V, double overheatTemp, double hm, double hv, double c)
имена мне ни о чем не говорят. И собственно эти же имена в классе - хз что они означают.
КРИТИЧНО.
4 Engine.TemperatureChanged += OnEngineTemperatureChanged;
а отписка где? Напрашивается IDisposable КРИТИЧНО.
5 _TimeFromStart++; - имя говорит про время, но это ничуть не время, а больше смахивает на счетчик итераций. Да и вообще там речь идет про время везде, но где само время?? КРИТИЧНО.
6 if (time == -1) - про "время" я уже писал, а по факту как ответ "Ответ на главный вопрос жизни, вселенной и всего такого". Это число не говорит о результате. Лучше вернуть результат тестирования с четким пониманием что произошло и итог. КРИТИЧНО.
Аноним 06/09/22 Втр 13:22:22 2456753 505
>>2456735
О, спасибо за подробный разбор.
> 5 _TimeFromStart++; - имя говорит про время, но это ничуть не время, а больше смахивает на счетчик итераций. Да и вообще там речь идет про время везде, но где само время?? КРИТИЧНО.
В задании нужно было упрощенно симулировать работу двигателя, при этом не используя реальное время, чтобы не дожидаться результата. +Программа должна быть легко расширяема (Подрузамевается простота добавления новых типов двигателей и тестов). Одна итерация в данном случае равна одной секунде.
> имена мне ни о чем не говорят. И собственно эти же имена в классе - хз что они означают.
Все переменные были даны в виде физических констант. Наверное стоило им всем присвоить понятные имена тут я оплошал, да.
Аноним 06/09/22 Втр 13:37:59 2456771 506
>>2456753
>Подрузамевается простота добавления новых типов двигателей и тестов
ну последнего вроде нет

А вообще типичная проблема таких заданий - хз что подразумевает проверяющий. У него ж свое видение и если что не так - ты провалился.

Я так завалил свой первый собес (на другом языке), где мне сказали тупо по бырому "вычислить фибоначи но не использовать кеширование". И естественно я его провалил потому что "должен был использовать мемоизацию". До сих пор не знаю, какое такое кеширование имелось в виду, если это не мемоизация.
Аноним 06/09/22 Втр 13:47:16 2456788 507
>>2456735
> поди разбери что это за параметры
Открой в студии с решарпером, все параметры неочевидные будут подписаны. По остальным пунктам согласен, не перезвонил бы
Аноним 06/09/22 Втр 13:58:03 2456801 508
>>2456788
и получается забавный результат
1 решарпер считает нужным удалить все явные param: value если они совпадают с позиционными, что делает код менее читабельным
2 в итоге сам же и замусорит своими подсказками

и читать без IDE неудобно. Особенно если смотришь какой нибудь дифф, а там магия.

конечно решарпер можно настроить чтобы не удалял, но это уже мой костыль, а не общепринятый подход.
Аноним 06/09/22 Втр 15:49:00 2456914 509
Ребят, у меня ситуация: я написал аддон для приложения. По сути это самостоятельное wpf окно, которое висит на протяжении всей сессии приложения, да еще в режиме TopMost.

Проблема заключается в том, что при деактивации приложения, мое окно продолжает висеть и перекрывать собой экран. Есть ли какой способ сделать мое окно так сказать принадлежащим к определенному приложению? Обращаться к самому приложению я тоже не могу по техническим ограничениям.

Из первого, что пришло в голову, это постоянно сканировать процессы и проверять активность нужного. Есть ли что-то проще?
Аноним 06/09/22 Втр 16:06:18 2456928 510
>>2456914
по хорошему у твоего окна должен быть Owner, но похоже это не подразумевается и у тебя его нет.
Значит ты должен сам следить за основным окном.
Если основное окно это WPF то ты можешь попытаться добраться до него с помощью
Application.Current.MainWindow
Application.Current.Windows

и подписаться на событие минимизации. (или тупо сделать Owner своему окну)
Аноним 06/09/22 Втр 16:31:24 2456939 511
>>2456928
К сожалению это приложение не подчиняется мне. Ну как если бы я из браузера запустил свою приложуху. Вот как мне браузер сделать owner ссылаясь на его процесс?
Аноним 06/09/22 Втр 16:46:31 2456952 512
>>2456939
Если приложение впф и ты в его процессе то ты можешь достать его окна. Тут правда еще фреймворк важен и как делается изоляция
В коре аппдомаины выпилены

А если ты в своем процессе то ты уже не аддон
Аноним 06/09/22 Втр 16:54:28 2456966 513
>>2456939
Все, нашел. Действительно, можно owner присвоить процесс, но только owner не как свойство окна, а как WindowInteropHelper

Process[] processes = Process.GetProcessesByName("TargetApp");
WindowInteropHelper wih = new WindowInteropHelper(this);
wih.Owner = processes(0).MainWindowHandle;

Ну естественно я опустил момент, если процессов несколько или вообще нет.
Теперь если скрыть главное приложение, то скрывается и мое. Но вет если переключаться при помощи alt+tab к примеру, то мое окно висит поверх. Тут надо убирать topMost, но тогда основное приложение будет перекрывать мое окно.
Аноним 06/09/22 Втр 17:02:00 2456980 514
>>2456952
>А если ты в своем процессе то ты уже не аддон
Да я хз как это назвать. Там на самом деле все через жопу.
По факту у меня работает отдельное приложение.

Скрипт, из приложения, для которого я пишу доп функционал запускает функцию из моей dll,
Эта функция при помощи именованных каналов передает данные в еще одно мое приложение.
Вот, собсно последнее мне надо как-то сделать причастным к первому. Как бцдто это часть приложения.
Аноним 06/09/22 Втр 17:10:10 2456990 515
>>2456966
Корчое, ни закрытие не переключение на другой процесс не влияет на дочернее окно. Только скрытие работает.

При этом перемещение дочернего окна начало заметно подтормаживать.
Аноним 06/09/22 Втр 17:21:31 2457009 516
>>2456990
TopMost отключил и на удивление окно основного приложения не перекрывает мое. Осталось решить проблему с детектом закрытия приложения.

Получается, что все телодвижения пока бессмысленны, если все равно все сводится к скану процессов.
Аноним 06/09/22 Втр 17:22:49 2457011 517
>>2456638
Кидай ссыль, почитаем
Аноним 06/09/22 Втр 17:45:02 2457026 518
>>2457011
Ссыль не найду. Там суть в том, что для некоторых методов (sum, min, max, avg, мб ещё что-то) теперь используются векторные инструкции, если есть такая возможность.
Ускорение примерно в 40 раз по сравнению с вычислением ручками.
Аноним 06/09/22 Втр 17:51:57 2457035 519
>>2457009
подписался на событие processes.Exited, но чет не работает.
Аноним 06/09/22 Втр 17:56:49 2457039 520
>>2457035
Ясно, понятно, нужно активировать флаг
EnableRaisingEvents = true
для целевого процесса
Аноним 06/09/22 Втр 17:58:17 2457042 521
>>2457039
ну это если ты его стартуешь
а если нет то тебе нужно смотреть в сторону мучений с SetWinEventHook и ловлей EVENT_OBJECT_DESTROY
Аноним 06/09/22 Втр 18:22:15 2457067 522
Image 1.png 21Кб, 548x560
548x560
>>2457039
угу. SetWinEventHook поможет. По быстрому попробовал это https://github.com/OpenByteDev/WinEventHook
с простым кодом (пик)
и работает

тебе же писать на чуть ниже уровнем чтобы убрать лишний оверхед в виде события
Аноним 06/09/22 Втр 18:35:07 2457085 523
>>2457042
>ну это если ты его стартуешь
Да нет, сработало и так. Т.е. я получал уже активный процесс по имени и подписка нормально работала.

Но теперь у меня загадка всех загадок. Если мы вернемся обратно к коду,
то на самом деле у меня в третей строчке был вписан тестовый месседжбокс

Process[] processes = Process.GetProcessesByName("TargetApp");
WindowInteropHelper wih = new WindowInteropHelper(this);
MsgBox($"processes.Length: {processes.Length}");
wih.Owner = processes(0).MainWindowHandle;


И как-то он удачно встал, что у меня все работало как я хочу.
Но стоит мне его убрать, как мое окно при запуске проваливалось за окно главной приложухи
и эффекта TopMost только относительно приложения уже не наблюдалось.
Как только окно загружается, то сразу идет на задний план.
Что делал месседжбокс?
Аноним 06/09/22 Втр 18:40:56 2457090 524
>>2457067
Ой нет, сторонняя библиотека. так нехотца
Аноним 06/09/22 Втр 18:46:29 2457092 525
>>2457090
да причем тут сторонняя. это просто враппер для того чтобы не пердолится самому в реализацию всех эти структур
никто не запрещает и самому это делать

>>2457085
Что делал месседжбокс?
активировал окно. то есть выносил на передний план
а вообще такое нужно без студии. меня запарило с 19 и 22 студии фигня что месседжбокс при запуске из под студии невидим. Приходится с трудом до него добираться
то есть работа под студией и в релизе разная.
Аноним 06/09/22 Втр 18:57:03 2457104 526
>>2457092
>активировал окно.
Попробовал Activate заюзать, но без толку.
Вот даже когда я скрываю основное приложение, то мое не скрывается автоматически.
С месседжбоксом скрывается.
Аноним 06/09/22 Втр 19:07:55 2457111 527
>>2457104
Попытался вместо месседжбокса запустить кастомное окно в режиме Showdialog
Запускается оно в момент Loading моего окна

Так вот, когда я самолично тыкаю по окну и закрываю, то мое окно работает так как нужно.
Но если я диалоговое окно закрываю автоматически через какое-то время, то эффекта ноль.
Аноним 06/09/22 Втр 19:32:13 2457130 528
>>2457111
Эффекта добился если сделать задержку закрытия диалогового окна на секунду. Меньше не дает эффекта.
Что это за дерьмо?
Аноним 06/09/22 Втр 20:14:42 2457170 529
Как запихнуть несколько ASP.net приложений с EFCore, Postgres, Serilog и прочими вещами в железку с объемом оперативной памяти 128МБ и 256МБ флеш-памяти?
Аноним 06/09/22 Втр 20:20:56 2457175 530
>>2457170
Никак. Это что, задача "как посадить жирафа в холодильник"?
Аноним 06/09/22 Втр 20:24:08 2457180 531
>>2457175
А если очень-очень-очень сильно хочется?
Аноним 06/09/22 Втр 20:28:01 2457185 532
>>2457180
Форкнкть дотнет, постгрес и прочие вещи и вырезать всё, что тебе не нужно.
Аноним 06/09/22 Втр 21:23:29 2457217 533
>>2457180
потренируйся на жирафах до просветления
Аноним 06/09/22 Втр 21:25:58 2457219 534
>>2457104
я хз че у тебя происходит. тот кусок кода что я дал на пике - при минимизации основного минимизируется и окно из пика
а при закрытии закрывается
Аноним 06/09/22 Втр 21:27:31 2457220 535
>>2457170
EFCore заменить на даппер
Postgres на sqlite
Serilog на стандартный лог
железку на 128 ядерный комп с террабайтом оперативы

тогда можно будет запустить пару приложений точно
Аноним 06/09/22 Втр 21:33:06 2457223 536
>>2457185
Ну, это был бы вариант, если бы у меня в распоряжении было ~100 человек, которых можно было бы посадить поддерживать эти форки. Но у меня я и

>>2457220
Ну, EFCore и так заменили на прямую работу с базой(дергаем нативные функции SQLite), логер - тоже свой написали. Все равно одно - еще как-то влезает, а вот несколько - уже не лезет. Если отказаться от ASP и реализовывать свою работу с HTTP - то в принципе 3+-1 влезет, но можно ли такое в прод пускать? Только разве что как пруф оф концепт оно может так существовать.
Аноним 06/09/22 Втр 21:50:03 2457234 537
>>2457223
тогда ты выбрал не ту технологию. асп.нет кор из за обилия кешей любит покушать
Аноним 06/09/22 Втр 22:01:19 2457252 538
>>2457234
Это не я выбрал. Моя б воля - на плюсах писали...
Аноним 06/09/22 Втр 22:10:13 2457256 539
Аноним 06/09/22 Втр 22:30:56 2457267 540
Аноним 07/09/22 Срд 00:35:58 2457346 541
Аноним 07/09/22 Срд 00:54:35 2457355 542
image 82Кб, 792x577
792x577
image 2Кб, 284x99
284x99
>>2457267
Попробовал простой пример. При вызове GetInstance для типа с уровнем жизни Transient, он создаётся два раза. Вопрос - А КАКОГО ХРЕНА??? Это или баг, или я неправильно понимаю Transient.
Аноним 07/09/22 Срд 00:56:42 2457358 543
Аноним 07/09/22 Срд 00:59:05 2457359 544
>>2457358
Итак, зачем ему понадобилось два раза создавать объект в GetInstace? В чём логика?
Аноним 07/09/22 Срд 01:02:56 2457361 545
Аноним 07/09/22 Срд 01:07:02 2457366 546
image 4Кб, 428x96
428x96
>>2457361
Понял. Спасибо. У него в примерах показано, что нужно самому вызывать 'Verify()'. Я сначала на этот метод подумал, поэтому убрал проверку и ничего не изменилось. А она по дефолту включена, лол....
Аноним 07/09/22 Срд 01:08:30 2457368 547
>>2457366
Стала включена. Как и некоторое другое
Не помню что ибо ушел с него раньше
Аноним 07/09/22 Срд 01:09:04 2457369 548
>>2457368
> Не помню что ибо ушел с него раньше
А на что перешёл?
Аноним 07/09/22 Срд 01:12:00 2457371 549
>>2457369
Понятно на что
На майковое после того как асп стал иметь свой дефолтный
И я просто запарился поддерживать в своих либах несколько контейнеров
Аноним 07/09/22 Срд 02:46:42 2457392 550
>>2457223
Попробуй
a) Пошаманить с настройками Kestrel'а https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/fundamentals/servers/kestrel.md
b) На использовать подсистему контроллеров. И возможно, роутинга. (Юзай app.MapGet и т.д.) Оставь по сути только Kestrel.

Если не помогает, копай в сторону легковесных http-серверов типа https://github.com/unosquare/embedio
Аноним 07/09/22 Срд 04:58:34 2457420 551
Анончики, такой вопрос, кто-нибудь пользуется Linq2Db? Если да, то как он? Какие есть подводные? Просто все советуют в качестве ORM либо грузный EF Core, ли не очень удобный Dapper. А Linq2Db как раз выглдяит как штука, которой почти так же удобно пользоватся, как EF Core (по крайней мере для составления запросов через Linq), но вроде бы сильно легче, чем EF core, и даёт больше контроля (даже CTE-ки через LINQ мутить можно, вроде бы).
Аноним 07/09/22 Срд 10:17:31 2457486 552
Здарова, шарпята.
Есть некая апиха, которая на принимает пост запрос типа:
{
“id”:[14, 88]
}
И отвечает:
{
“status”: “success”,
“data”: {
“14”:{
“id”: 14,
“info”: “foo”
},
“88”:{
“id”: 88,
“info”: “bar”
}
}
}
И есть мое приложение асп которому нужно вот то инфо из даты считывать. А собственно как? Это ж нельзя строго типизировать - айдишники и соответственно названия полей в дата каждый раз разные. Есть способ это нормально прочитать шарпом? Инбифо пиши парсер жиссонов
Аноним 07/09/22 Срд 10:30:04 2457491 553
>>2457486
Ставь Newtonsoft.JSON и юзай JsonConvert.DeserializeObject()
Аноним 07/09/22 Срд 11:06:33 2457528 554
>>2457420
ну в минимуме он памяти жрет больше чем EF
но ближе к SQL ным запросам чем более абстрактный EF
И получаем как EF без трекинга и контекста с перекосом в чистые запросы (пусть даже написаны на Linq)

Это и есть подводный камень - перекос в чистые запросы хоть и на Linq - из-за этого нет примитивного partial update

Больше чем linq2db но меньше чем ef core - SqlSugar, но там своеобразное именование и рукожопы не разделили зависимости от баз данных, поэтому тупо ставятся все зависимости и место занимают.

>ли не очень удобный Dapper
Есть путь использовать Dapper, но облегчить себе жизнь через составление запросов с помощью Linq, хотя всякие Include все ручками ибо навигацию не учитывают. Но легковесность.
Аноним 07/09/22 Срд 11:18:23 2457539 555
>>2457486
>Это ж нельзя строго типизировать

Ну если структура неизвестна во время ответа, то полуручной разбор
поддерживается и в System.Text.Json через JsonDocument.Parse и в Newtonsoft.JSON через JObject.Parse - и плата за это некоторый оверхед. Ну а без него - ручной разбор
Аноним 07/09/22 Срд 12:18:33 2457597 556
>>2457539
Не, ну она известна и даже управляема, количество и названия объектов в data зависят от айдишек в запросе, сами эти объекты тоже известны и стабильны
Аноним 07/09/22 Срд 12:31:32 2457613 557
>>2457597
Тогда и проблемы нет
Твой пример так вообще парсится прямо на классы
Аноним 07/09/22 Срд 12:37:48 2457624 558
>>2457613
Т.е на названия объектов в дата (которые таки динамичны) ниче не завязано?
Аноним 07/09/22 Срд 12:42:59 2457629 559
>>2457624
Ты определись уже
Известна ли структура ответа или нет
А то ты сам себе противоречишь
Аноним 07/09/22 Срд 13:15:56 2457647 560
>>2457629
Ну блин, получается что динамическим является количество и названия филдов у объекта дата (определяется в момент запроса, количество равно количеству айдишек в запросе (в моем случае вообще одна будет), а названия сами айдишки текстом) их тип и все остальное стабильно. Получается что известно заранее, но хрен типизируешь
Аноним 07/09/22 Срд 14:36:56 2457715 561
>>2457647
ерунда, а не проблема. Структура проста, можно десериализовать в словари и потом перегнать в классы. Все равно лучше чем жсон разбирать.
Аноним 07/09/22 Срд 15:31:12 2457757 562
Как покрытие тестов в райдере посмотреть? Я уже dotCover поставил, ни в одном меню нет пункта о покрытии.
Аноним 07/09/22 Срд 17:12:10 2457810 563
Привет всем шарперам, зашел к вам из лагеря джавистов просто полюбопытствовать.
Я чёт уже заколебался настраивать JVM, это какая-то сран и отдельная наука, такого, чтобы просто пнул и оно полетело практически не встречается на +- серьезных проектах, чуть ли не отдельных людей приходится заводить, чтобы они всё тюнили.

Это только наши приколы или у вас какая-то похожая ситуация? Как вообще у вас обстоят дела с GC? С блокировками во время этого дела? Затратами на проц и оперативку? Необходимостью тюнинга?
Статьи в интернете я читал, но интересует именно практический опыт от реальных людей, вот насколько вас приходится сталкиваться с этим в реальной жизни и насколько удобно такие задачи решать?
Аноним 07/09/22 Срд 17:29:58 2457820 564
>>2457715
Ну на самом деле структура чуть сложнее вот эти классы, которые называются как айдишка текстом, могут содержать в себе и массивы и другие классы.
Что насчёт такого варианта:
var response = JsonSerializer.Deserialize<Dictionary<string, JsonElement>>(responseBody);
var data = JsonSerializer.Deserialize<Dictionary<string, JsonElement>>(response[“data”].ToString());
var obj = JsonSerializer.Deserialize<SomeClass>(data[$”{id}”].ToString());
Вот так более-менее эффективно будет?
Аноним 07/09/22 Срд 17:32:12 2457822 565
>>2457810
> у вас какая
> ситуация?
Обесняю нашу ситуацию:
1. Скачиваешь СДК.
2. Далее, далее, далее, готово.
3. Открываешь консолечку.
4. Пишешь dotnet new console.
5. Пишешь dotnet run.
Конпелируется хеллоуворлд запускается и выводит в консоль Hello world.
Вот такие у нас дела. Завидуй.
Аноним 07/09/22 Срд 17:37:39 2457828 566
>>2457820
сложные структуры где черт знает что может лежать это JsonDocument.Parse и ручным выдиранием или ручной разбор через ридер.
Аноним 07/09/22 Срд 17:37:52 2457829 567
>>2457810
Ну, с GC по ощущениям сильно проще.
Так как язык и рантайм поддерживают значимые типы данных (ака структурам), и они широко применяются в стандартной библиотеке, то нагрузка на менеджер памяти и GC выходит заметно ниже, так как порождается меньше объектов, особенно маложивущих.
GC два. Десктопный с упором на минимизацию задержек на STW, и серверный, с упором на скорость выделения памяти. Тюнить их не приходилось. Не знаю, как себя поведет GC на огромных хипах, которые, слышал, в джавовских монолитах могут встречаться. Везде, где работал, пилят микросервисы и стараются особо много памяти им не наваливать
Обычно, когда появляются какие-то проблемы с использованием памяти, то это значит, что пора бы попробовать переписать код на allocation free. Благо инструменты, типо пулов памяти/массивов, span-ов, всяких разных ref (в том числе readonly) структур и stackalloc'а есть. Центили-байтоебы могут даже попробовать unsafe и пдрочить указатели.
Аноним 07/09/22 Срд 17:42:38 2457837 568
>>2457829
Спасибо за такой подробный ответ.
А как у вас с линуксом, я слышал про всякие mono, насколько реализации отличаются и насколько это вообще жизнеспособно?
Аноним 07/09/22 Срд 17:52:36 2457849 569
>>2457837
После выхода истинно кроссплатформенного коре моно стал не нужен
Аноним 07/09/22 Срд 17:54:01 2457852 570
>>2457837
Сейчас у нас основной рантайм - опенсорсный кроссплатформенный .Net Core. .Net Framework и Mono остались в прошлом и уже не развиваются. Рантайм активно развивают, в первую очередь в сторону производительности.
С запуском под линухом проблем нет. Для популярных дистров есть пакеты с рантаймом. Есть оф. образы для докера, которыми все активно пользуются.
На трёх местах, где я работал и работаю сервисы деплоятся под линухом в кубере или Open Shift.
Единственная проблема, нет нормального кросплатформенного UI. WinForms, WPF и UWP прибиты к Винде. Майки разрабатывают кросплатформенный (винда + мобилки) MAUI, но линух официально поддерживать не хотят и оставляют это на откуп сообществу. Вроде как ещё есть трули кроссплатформенная Avalonia, но я ее не трогал, потому мне сказать нечего.
Аноним 07/09/22 Срд 18:16:51 2457859 571
А это нормальная тема в синглтоне в конструкторе подписываться на события, а в деструкторе - отписываться от них?
Аноним 07/09/22 Срд 18:20:40 2457861 572
>>2457859
что это за синглтон такой что рождается и умирает (ну допустим ладно в рамках IoC такое есть)
хотя зачем ему умирать и деструктор??? финализатор что ли?
не гуд. Отписываться нужно в Dispose (но опять же что это за синглтон такой)

самый продвинутый уровень это lifetime, но это для тех, кто постиг дзен (и это не веб где достаточно IoC контейнера из-за специфики)
Аноним 07/09/22 Срд 18:24:21 2457862 573
>>2457861
Немножко неправильно объяснил. У меня есть сервисы. Они не знают о своём времени жизни. Но по факту они будут жить до закрытия программы, как синглтоны, внутри контейнера. Некоторые из этих сервисов должны подписываться на события других сервисов.

Не знаю как бы это грамотно реализовать. Или добавить может им interface с методами, которые будут дёргаться извне. Типа AddListeners / Remove Listeners.
Аноним 07/09/22 Срд 18:30:17 2457869 574
Почему viewmodellocator считается плохой практикой?
Аноним 07/09/22 Срд 18:34:54 2457871 575
>>2457862
Подписываются и пусть подписываются. Для этого события и нужны.

Если же время жизни может быть меньше того, на что подписываются то компонент должен знать, когда ему нужно очистить ресурсы
1 Stop(Async) если это что то типа HostedService
2 Dispose()
3 lifetime - токен

собственно все это одно и то же с небольшими отличиями.

а капча не охерела буквы заставлять вводить?????
Аноним 07/09/22 Срд 22:47:39 2458003 576
Я хочу чтобы зпшка жоска наваливала бабла на карту и не хочу совсем уж заниматься говнокодством и хернёй. В бэк через С# норм тогда вкатываться? Просто плюсы, кои я учил до этого, не дают первого, а какая-нибудь джава второго
Аноним 07/09/22 Срд 23:50:19 2458068 577
>>2458003
Все упирается как и везде в возможность найти где будут наваливать и мало требовать
Аноним 08/09/22 Чтв 06:13:48 2458136 578
>>2458068
Я не хочу получать бабло и не работать. Хотелось бы выполнять интересную более менее работу и не недополучать в деньгах, как повелось в каком нибудь эмбенде на си. Думаю C# лучший варант для этого
Аноним 08/09/22 Чтв 09:21:56 2458176 579
>>2457420
>Какие есть подводные?
В целом, никаких. Юзаем его на кровавом энтерпрайзе с ебанутейшими запросами к базе MSSQL/Oracle.

linq2db - это относительно lightweight ORM библиотека, как раз между фреймфорком EF и низкoуровневыми Dapper/ADO.

Представь себе два экстремума, вот liqn2db - это золотая середина, а на каждом конце находятся армии фанатиков.
Аноним 08/09/22 Чтв 09:24:40 2458179 580
Тут ещё надо отметить, что у нас отдельная команда занимается только бд.

>>2458176
Аноним 08/09/22 Чтв 10:08:39 2458197 581
Поясните мимопроходвишему, как разные orm могут иметь разную скорость работы, если они просто переводят запросы с синтаксиса языка в sql?
Аноним 08/09/22 Чтв 10:29:11 2458200 582
>>2458197
>ак разные orm могут иметь разную скорость работы, если они просто переводят запросы с синтаксиса языка в sql
А как разные языки программирования могут иметь разную скорость работы, если они просто переводят запросы пользователя с синтаксиса языка в команды процессора?
Вот наверное по той же самой причине.
Аноним 08/09/22 Чтв 10:37:07 2458202 583
>>2458136
Да, вполне норм тема, но нужен опыт. В шарпе сейчас интересно в основном на новых проектах, где .net6 и т.д. Но туда берут либо по знакомству, либо за очень хорошие скилы.
Аноним 08/09/22 Чтв 10:39:07 2458204 584
>>2458197
Они сложно переводят запросы с синтаксиса языка в sql. Обычный джойн может превратиться в цикл из селектов.
Аноним 08/09/22 Чтв 11:23:32 2458222 585
>>2458204
> Обычный джойн может превратиться в цикл из селектов.
То есть авторы orm считают, что могут лучше оптимизировать запросы, чем это сделает сама бд?
Аноним 08/09/22 Чтв 11:32:06 2458226 586
>>2458197
EF например не только в запросы переводит и Марии таблички на объекты, но и отслеживает объекты - можно писать типа

var selectedUser = _db.Users.First();
selectedUser.Name = "pidor";
_db.SaveChanges();
Аноним 08/09/22 Чтв 11:32:38 2458227 587
Аноним 08/09/22 Чтв 12:50:10 2458268 588
>>2458222
Не считают, просто не всегда корректно срабатывает генератор запросов. Чтобы самому не проебаться при использовании ORM, надо либо отказаться от их использования, либо очень хорошо знать кишки ORM, быть нахуй сеньором DBA и иметь лет 15 опыта, а каждый сгенерированный запрос перепроверять вручную.
Аноним 08/09/22 Чтв 14:11:09 2458329 589
Анон помоги, хочу событием после сборки перемешать папку из сурса в дефолтную директорию ОС типа Документов или AppData. Как определить путь? Не нашел у msbuild встроенных переменных.
Аноним 08/09/22 Чтв 14:18:33 2458334 590
Аноним 08/09/22 Чтв 14:20:12 2458338 591
>>2458334
…но сам факт показателен: зумер считает, что нет нужды изучать сраное легаси плесневелых дидов, и не знает о существовании переменных среды, и соответственно, будет велосипедить очередное мокрописечное говно.
Аноним 08/09/22 Чтв 14:39:26 2458349 592
>>2458334
Спасибо, конечно, не немного мимо. Заставлять каждого, кто попытается собрать мое говнишко, прописывать переменные, так себе идея.

Я думал msbuild умеет как-нибудь через api винды дергать по аналогии с шарповым Environment.SpecialFolder

>>2458338
Тебя зумеры избили или в голове насрано?
Аноним 08/09/22 Чтв 14:44:45 2458353 593
>>2458349
Бля, msbuild же может выполнять шарповый код в пропертях, я даун...
Аноним 08/09/22 Чтв 15:13:50 2458383 594
>>2458349
> прописывать переменные
Ох и ебланище малолетнее. Изучи матчасть.
>>2458329
> дефолтную директорию ОС типа Документов или AppData
>>2458349
> прописывать
> дефолтную
> Тебя зумеры избили или в голове насрано?
У тебя в голове пусто, порридж.
Аноним 08/09/22 Чтв 15:18:11 2458385 595
>>2458383
Да не трясись ты, джавист. Можешь попробовать подучить язык и перекатиться к нам, вдруг проблема с нервами решится.
Аноним 08/09/22 Чтв 15:19:43 2458388 596
>>2458385
Под кроватью джависта поищи. Или в $(%APP_DATA%) например, как вариант.
Аноним 08/09/22 Чтв 15:23:44 2458391 597
>>2458388
А чё злой тогда такой? Опять Кабаныч наорал?
Аноним 08/09/22 Чтв 16:24:27 2458427 598
Почему в
byte jej = 7;
происходит неявное преобразование.
и даже в
byte jej = 7 + 3;
оно произойдет, когда оператор + вернет инт.
но здесь
byte yey = jej + 3;
все сломается? почему jej просто неявно не перейдет в int, оператор + не отдаст результат в int и как было до этого и этот результат также неявно не перейдет в byte, как и 7, и 7+3 до этого?
Аноним 08/09/22 Чтв 17:56:32 2458466 599
>>2458427
Потому что компилятор видит, что в первых двух случаях значение влезает в byte. (Константные выражения он на этапе компиляции сворачивает). А вот когда появляется переменная, то гарантий что влезет уже нет. Так что кастуй явно, чтобы ты так сказать, расписался, что понимаешь что запихиваешь значения более широкого типа в переменную менее широкого и готов к тому, что значение может урезаться.
Аноним 08/09/22 Чтв 18:46:17 2458508 600
изображение.png 13Кб, 448x259
448x259
Почему visual studio не может открыть консоль?
Создаю проект - запускаю и вылазит эта ошибка.
Если вручную запускать .ехе - работает
Аноним 08/09/22 Чтв 19:27:02 2458532 601
1662654422049.png 132Кб, 480x360
480x360
Аноним 08/09/22 Чтв 19:56:10 2458546 602
Аноним 08/09/22 Чтв 21:50:53 2458623 603
>>2458508
Попробуй переустанови Visual Studio.
Аноним 08/09/22 Чтв 23:25:46 2458685 604
Зачем микрософт упорно поддерживает Visual Basic? Что за бред, кто на нём пишет вообще? Кто реально будет ставить студию, и создавать проекты на VB? Я понимаю VBA, который в excel встроен и который для офисных планктонин до сих пор безальтернативен (с C# и дот.нет не имеет никакой связи, кроме возможности через COM вызывать код дон.нета). Но его почему-то спустили в унитаз и не обновляли лет этак 20. А вот VB.NET, который по факту абсолютно никому не нужен (если челик даун, он возьмёт петухон, если челик виндолюб и настроен решительно, он возьмёт решетку), майки поддерживают и развивают. Я понимаю F# - песочница и обкатка новых фич. Но VB.NET? Зачем? Для кого? Какого это вообще работать в микрософт, получать жирную котлету и закрывать тасочки по разработке языка, но котором не пишет никто?
Аноним 08/09/22 Чтв 23:33:59 2458689 605
>>2458685
>если челик даун, он возьмёт петухон
шта?
Аноним 09/09/22 Птн 00:00:09 2458702 606
image.png 19Кб, 455x180
455x180
Аноним 09/09/22 Птн 00:01:38 2458703 607
>>2458685
>Зачем микрософт упорно поддерживает Visual Basic?
1) Обратная совместимость.
2) Тебе не похуй?
Аноним 09/09/22 Птн 01:06:31 2458727 608
>>2458685
Они его даже не развивают уже, а просто не выкидывают, чтобы легаси у других организаций не сломалось. Легаси начали писать ещё у нулевых, смигрировав его с более старых проектов на не-дотнетовском бейсике. Ну и есть некоторое количество дебилов-старпёров, которые знали старый бейсик и начали писать новые проекты не на шарпе, а на vb.net, якобы сложно переучиваться, хотя хуй знает, как вообще можно не осилить фигурные скобочки.
> Какого это вообще работать в микрософт, получать жирную котлету и закрывать тасочки по разработке языка, но котором не пишет никто?
Его пишут те же разрабы, что пишут шарп, просто парсер языка другой, его и дорабатывать не нужно почти. А кишки всё те же, дотнетовские.
Аноним 09/09/22 Птн 06:10:21 2458799 609
Как перестать читать по три книги Шилда и Троелсена в день, и начать писать йоба пет проекты от которых у ейчаров волосы стоять дыбом будут?
>Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
Например каких?
Аноним 09/09/22 Птн 09:48:21 2458848 610
>>2458799
На самом деле эчарам похуй на твои проекты в 99% случаев.
Открываешь вакансию на вкатуна в пятницу, в понедельник там 400 откликов. Если у каждого гитхаб 5 минут смотреть, это займет 33 часа.
Аноним 09/09/22 Птн 10:57:26 2458899 611
Ruby>C#
Аноним 09/09/22 Птн 11:21:41 2458913 612
>>2458799
>>2458848
Да никакие HR не будут смотреть ваши гитхабы. Хрюши смотрят на резюме и за 30 секунд определяют. До гитхба доходит только если ваше резюме посмотрели и не выкинули
Аноним 09/09/22 Птн 11:36:03 2458919 613
>>2458913
Так я в курсе. Мой гитхаб вообще не смотрели, даже тестовое попросили зипкой скинуть.
Мой знакомый месяц ловил отказ за отказом, потом переработал резюме на покрасивше, поставил фотку красивую, после этого пригласили на 3 собеса, где он получил по офферу.
Аноним 09/09/22 Птн 11:55:20 2458935 614
>>2458919
>Мой знакомый месяц ловил отказ за отказом, потом переработал резюме на покрасивше, поставил фотку красивую
Всё так, к сожалению вычислением нормальных кадидатов занимается хрюша которая ничего не понимает в айти и ей только остается ориентироваться на ключевые слова в резюме и фоточку
Аноним 09/09/22 Птн 15:25:55 2459055 615
>>2458899
>Ruby>C#
это даже не скомпилируется.
Аноним 09/09/22 Птн 15:30:01 2459057 616
>>2458899
>Ruby>C#
ой
puts 'Ruby' > 'c#'
>false
Аноним 09/09/22 Птн 17:11:23 2459118 617
>>2458935
>хрюша которая ничего не понимает в айти
Ну да, надейся.
Аноним 09/09/22 Птн 19:58:49 2459274 618
>>2459057
> puts
Какие пидарские кейворды в этом рубе.
Аноним 09/09/22 Птн 20:04:11 2459276 619
>>2459274
будто Console.WriteLine лучше.
Аноним 09/09/22 Птн 20:41:44 2459300 620
>>2459276
Конечно лучше, читаешь и понимаешь, что это консоле и что оно врайтит лайне. А когда читаешь путс, предполагаешь ле пута муэрте.
Аноним 09/09/22 Птн 20:44:11 2459304 621
>>2459300
когда читаешь
puts
print
echo
то понимаешь что выпхлоп пойдет в stdout

Console.WriteLine тоже выводит в stdout, что не консоль как бы. Консоль - только один из многих кто может читать stdout
Аноним 09/09/22 Птн 22:03:59 2459354 622
Объясните плиз почему
sbyte num = (sbyte)-31;
Console.WriteLine("Convert: " + Convert.ToString(num, 2) + "\n");

Выведет
1111111111100001, а не
11100001

В мсдн ведь byte и sbyte 8-разрядное целое число
Аноним 09/09/22 Птн 22:09:37 2459358 623
>>2459304
Зумеры не знают таких тонкостей. Чорное текстовое - это консолечка, которой пердолятся красноглазые. Этого достаточно, чтобы вкатиться на галеру джуном.
Аноним 10/09/22 Суб 13:34:45 2459594 624
А Enum нельзя расширять? Есть какое-то перечисление, и я хочу на его основе сделать наследника.
Аноним 10/09/22 Суб 14:37:35 2459677 625
>>2459594
Наследование запрещено. Ищи другие способы
Аноним 10/09/22 Суб 15:02:13 2459706 626
Аноним 10/09/22 Суб 15:09:17 2459713 627
Аноним 10/09/22 Суб 15:32:05 2459722 628
>>2459706
>>2459713
Дело в том, что уже существует перечисление. Это TypeCode, но там есть только базовые типы, а я хотел добавить своё.
Аноним 10/09/22 Суб 15:33:07 2459723 629
Аноним 10/09/22 Суб 16:06:04 2459744 630
>>2459722
>, а я хотел добавить своё.
именно поэтому и запрещено наследование чтобы не было вот таких ситуаций
Аноним 10/09/22 Суб 16:13:26 2459747 631
zzz.png 91Кб, 981x936
981x936
Подскажите, в чем проблема с Докером. На docker hub`e лежит image. В нём aspnet core api с DbContext`oм у которого в конструкторе Database.EnsureCreated()

Проблема, что на сервере (консоль 1) бд походу не создается и падает с "No such table", а на моей машине (консоль 2) все запускается идеально и создается бд.

Команды запуска идентичны, при локальном запуске тоже всё работает.
Аноним 11/09/22 Вск 17:10:33 2460444 632
Безымянный.png 22Кб, 221x602
221x602
Как это можно более красиво переписать?
Аноним 11/09/22 Вск 18:35:05 2460499 633
Анонсы, какие сейчас актуальные книги по C# для новичков на англ. языке?
Аноним 11/09/22 Вск 21:13:58 2460611 634
>>2460499
1) ASP.Net Core in action
2) NET Microservices Architecture for Containerized NET Applications
Аноним 12/09/22 Пнд 15:05:46 2461144 635
1662984346954.png 17Кб, 341x217
341x217
1662984346975.png 33Кб, 481x387
481x387
1662984346976.png 52Кб, 587x643
587x643
>>2460444
Я ХЗ, в зависимости от того, что конкретно тебе надо. Если надо выебнуться, сделай каждый стейт отдельным классом, с методами EnterState и ExitState, В которых будет делаться то, что на пикче. А ещё лучше сделать интерфейс и один класс-реализатор с методами-делегатами и сразу лямбдой при создании программировать эти действия.
Аноним 12/09/22 Пнд 16:09:03 2461200 636
Почему BufferedStream когда передвигаешь курсор назад перечитывает базовый поток? Как это пофиксить?
Аноним 12/09/22 Пнд 16:28:46 2461220 637
Аноним 12/09/22 Пнд 16:37:27 2461230 638
>>2461220
По первому доёбу: почему бы не юзать вместо енума класс? Понятное дело, всахара не будет, ты будешь видеть свой енум как класс/структ, но все фишки типа методов и реализации интерфейса будут:
> public static class TokenType {
> public const int IDENTIFIER = 0;
> public const int NUMBER = 1;
> public const int ASSIGN = 2;
>}
Читаем дальше.
Аноним 12/09/22 Пнд 16:43:38 2461235 639
>>2461220
Дочитал до экземпляров интерфейсов и дропнул. Нельзя так вольно трактовать ООП. У интерфейса не может быть экземпляров.
Аноним 12/09/22 Пнд 17:28:53 2461278 640
>>2461220
ну функциональные интерфейсы и анонимные реализации вещи годные.
просто ведь шарп вырос из жава клона, то как бы много не накопаешь фич
а вот если котлин пригласить в тему, то набросить можно много

>>2461235
>У интерфейса не может быть экземпляров.
Их и нет.
это такой же класс, который требует реализацию, просто описывается на месте и потому без имени.

Абсолютно идентично как метод принимает делегат, а ты ему пропихиваешь анонимную реализацию этого делегата, то бишь ламбду

Только лямбда это один метод, а анонимная реализация интерфейса это можно более одного метода.
В итоге ты волен выбирать - нужен один метод, можешь лямбду, нужно несколько, можешь анонимную реализацию

Удобная штука так то
Аноним 12/09/22 Пнд 17:32:11 2461281 641
>>2461230
>всахара не будет
поэтому и не юзать

енумы нужны чтобы в параметрах не писать int, а нормальные имена
и твой TokenType это возврат к тому с чего начали.

енумы в шарпе хреновые.
Аноним 12/09/22 Пнд 18:16:49 2461315 642
Есть сложный объект <id, id1, id2...> и массив
Как найти через linq объект с id1, в котором все значения из массива есть в id2, то есть
id| id1 | id2
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 4
5 | 2 | 1
и массив {1, 2, 3}

Надо вернуть id1 = 1. Или надо свою реализацию писать?
i
Аноним 12/09/22 Пнд 18:30:28 2461324 643
Аноним 12/09/22 Пнд 20:29:31 2461430 644
>>2461220
Последняя хуйня была бы оооооооооооооооооч полезна. Особенно в случае LINQ, потому что это буквально бесит, то ты не можешь нормально интерфейс оттуда вернуть, особенно если LINQ у тебя в другом методе.
>>2461230
Вот я делал парсер простенький для нужд.
Нужны условия в духе: если до меня был такой-то знак, а после - такой-то я должен создать такую-то лексему.
Ты просто не представляешь какая это боль в контексте шарпов.
У тебя будет что-то в духе:

public class Token {
public readonly int? Line;
public readonly int? Col;
public readonly string Symbol;

public Token(string symbol) : this(symbol, null, null){}
public Token(string symbol, int? line, int? col) => (Symbol, Line, Col) = (symbol, line, col);

public static readonly Token Space = new (" ");
public static readonly Token SingleQuotes = new ("'");
public static readonly Token DoubleQuotes = new ("\"");
public static readonly Token Slash = new ("/");
public static readonly Token BackSlash = new ("\\");
public static readonly Token Space = new (" ");
public static readonly Token Comma = new (",");
public static readonly Token OpenCurly= new ("{");
public static readonly Token CloseCurly = new("}");
public static readonly Token OpenRound= new ("(");
public static readonly Token CloseRound= new ("(");
public static readonly Token OpenSquare = new("[");
public static readonly Token CloseSquare = new("]");
public static readonly Token BEGIN = new("BEGIN");
public static readonly Token END = new("END");
public static readonly Token ASSIGN = new("::=");
public static readonly Token EOL = new("\n");
}

И это уже пиздец. А тут еще логику нужно вопхнуть и это будет пиздецки больно. А еще ходить туда-сюда, в поисках нужного. И много еще чего веселого.
Я в итоге когда это делал - забил на ООП и попытки делать "красиво" и хуйнул как деды хуярили свичем и за один проход, ибо нехуй.
Аноним 12/09/22 Пнд 23:58:39 2461581 645
Как мягко намекнуть джуну, что 0 в индексе удобства поддержки в коде, который пишется руками - это нихуя не норма?
Просто я чет был занят своими делами, а остальным - так-то похуй. Но сегодня разгреб свои, решил посмотреть что там у других и, блядь. 0, сук. Я даже от автосгенерированного кода такой хуйни не видел. Посмотрел - там пиздец, метод 2,5к строк, который хуй пойми как работает. Работает при этом до пиздеца медленно. Чел - просто по фану решил создавать словари, пихать в них свойства, которые рефлексей достает, потом в цикле проходится по словорям и смотрит с каким свойтсом другого обхъекта имена совпадают, потом... Ну вы поняли, там пиздец, который во первых - нечитаем, во вторых - нахуй не нужен, в третьих - еще и жутко медленный со сложностью O^4. Я просто чет охуел с такой жизни. Не хочется показываться токсом, но я уже раз 5 в других местах ему подсказывал, по сути - писал половину кода, ему только дополнить свою часть нужно было, но когда чел береться сам - вот такая хуета выходит. Что делать-то? Опять же - не хочется быть токсом, но кроме матерных слов - других нет.
Аноним 13/09/22 Втр 00:31:53 2461593 646
Аноним 13/09/22 Втр 07:33:08 2461642 647
В студии после выходя из спящего режима отваливается горизонтальный скролл, как фиксить?
Аноним 13/09/22 Втр 08:36:17 2461656 648
>>2461581
Начни с себя - читать твою шизофазию хуже чем код самого тупого джуна.
Аноним 13/09/22 Втр 09:19:28 2461671 649
Глупый вопрос возможно, но зачем добавляют два метод - синхронный и асинхронный, если второй без await будет выполнятся как синхронный?
Аноним 13/09/22 Втр 11:31:29 2461722 650
Пытаюсь проходить уже третий курс по ASP и везде одна и та же проблема: показывают, как сделать, но не объясняют, почему так и как это все целиком работает. То есть я даже не могу понять порядок выполнения кода от начала до выдачи жсона/хтмл. Где можно добыть эти знания и болеее углубленное понимание разных тем? Например что за наследование от DbContext и конструктора в этом классе от base с options. Или принцип работы мидлвара и всякие конфигурации. Есть книжка Фримана, но она аж на 1,5к страниц. Я планировал уже после нг работу искать, а с ней зависну на полгода минимум. Плюс надо еще учить базы данных, фронт, гит и прочие мелочи. И пет хуярить.
Аноним 13/09/22 Втр 12:01:07 2461748 651
>>2461642
У меня он без аддона вообще не работал
Аноним 13/09/22 Втр 13:02:36 2461784 652
>>2461722
ASP. NET Core in Action (2018)
Автор: Andrew Lock
Количество страниц: 712
Аноним 13/09/22 Втр 13:28:19 2461799 653
image.png 30Кб, 579x371
579x371
Долбоёб итт.

Я хочу, чтобы ивент Changed передавал что-то со значениями до изменения.

Если Action<int, string>, то вне класса не совсем непонятно, что это такое, и нет ссылки на сам объект. Последнее можно решить через Action<Yoba, int, string>, но мне кажется так даже хуже.

Запилить YobaChangeEventArgs : EventArgs со свойствами типа OldNumber и OldText, и сделать ивент через EventHandler<YobaChangeEventArgs>? Или лучше свой собственный делегат с параметрами (Yoba sender, YobaChangeEventArgs e)?

Или есть ещё какие-то варианты?
Аноним 13/09/22 Втр 13:37:39 2461807 654
>>2461745
это правило для публичных контрактов.
Аноним 13/09/22 Втр 13:52:47 2461827 655
>>2461799
>Или есть ещё какие-то варианты

Принять, что event стандартны, но убоги и перейти на свою реализацию подписок с lifetime-ами
Аноним 13/09/22 Втр 14:09:19 2461848 656
>>2461581
> Как мягко намекнуть джуну, что 0 в индексе удобства поддержки в коде, который пишется руками - это нихуя не норма?
Вот это предложение что значит?

Не удивительно, что он ничего не понял, лол
Аноним 13/09/22 Втр 15:10:56 2461896 657
Есть поток сообщений, которые парсятся, валидируются, а потом отправляются в дальнейшую обработку. Можно ли сделать так, чтобы они парсились и валидирлвались в отдельных тасках в несколько потоков, но при этом отправлялись в дальнейшую обработку в том же порядке? Есть ли в этом смысл вообще? Какие инструменты можно использовать для такого дела?
Аноним 13/09/22 Втр 15:27:19 2461907 658
>>2461896
Мне кажется, тебе нужно копать в сторону System.Threading.Tasks.Dataflow
Аноним 13/09/22 Втр 15:30:10 2461910 659
Аноним 13/09/22 Втр 15:47:44 2461915 660
Посоны, возник вопрос. А в России можно найти какую-то супердешевую part-time работу для хорошего разработчика на дотнете. Чтобы работать час в неделю условно и получать за это тысяч 30-40 рублей? Работать строго удалённо, из-за рубежа (и прописать это в ТД для налоговой).

Смысл в том, чтобы эти небольшие деньги кидать на ипотеку оставшейся в РФ квартиры.

Или лучше искать зарубежных заказчиков на большие суммы и переводить в РФ.
Аноним 13/09/22 Втр 16:00:48 2461940 661
>>2461827
Долбоёб, причем тут event если автор фреймворка реализовал свои события не так как тебе хочется?
Аноним 13/09/22 Втр 16:03:59 2461943 662
>>2461915
Ебатьдебил, ты откуда такой вылез? Теперь в РФ 30-40к это только за полный рабочий день.
Аноним 13/09/22 Втр 16:16:17 2461952 663
>>2461915
Звони в банк и договаривайся. Нас-то ты нахуя спрашиваешь?
Аноним 13/09/22 Втр 16:16:53 2461953 664
>>2461943
>Ебатьдебил, ты откуда такой вылез? Теперь в РФ 30-40к это только за полный рабочий день.
Ты ебобо? Полный рабочий день как минимум 200к.
Аноним 13/09/22 Втр 16:20:35 2461956 665
>>2461953
C точки зрения малолетнего долбоёба - безусловно.
Аноним 13/09/22 Втр 16:27:01 2461961 666
>>2461956
>C точки зрения малолетнего долбоёба - безусловно.
Мой российский доход за полный рабочий день - 230К чистыми.
Кто из нас с тобой - малолетний долбоёб?
Аноним 13/09/22 Втр 16:28:55 2461963 667
>>2461961
А я ебал твою мамашу шлюху?
Кто из нас с тобой - малолетний долбоёб?
Аноним 13/09/22 Втр 17:04:54 2461991 668
>>2461953
Я джун, получаю сотку за полный рабочий день.
Аноним 13/09/22 Втр 17:31:17 2462004 669
>>2461991
Я 180к чистыми, практикант.
Аноним 13/09/22 Втр 17:40:20 2462015 670
Смотрите, этот работает в госпараше на 4 дотнете за 40к и у него горит жопа
Аноним 13/09/22 Втр 17:45:22 2462016 671
>>2461940
сам долбоеб, раз уж начал

какого еще фреймворка

у него типичный вопрос вида - я пилю свое событие, нужно ли мне обязательно делать его EventHandler<EventArgs>
(вдруг у меня 10 событий и КАЖДОМУ сделай класс аргументов "патаму шта...марамушта")

или тупо можно Action<T> благо они появились в шарпе и "нахера мне вся эта портянка с EventHandler<EventArgs>"
Аноним 13/09/22 Втр 17:45:25 2462017 672
>>2461963
>Кто из нас с тобой - малолетний долбоёб?
Ты. Потому что ты обидчивый и завистливый ребёнок.
Аноним 13/09/22 Втр 19:30:14 2462078 673
>>2462017
Лол, нищенка думает что его копейкам кто-то завидует.
Понимаю, твоя сифозная мамаша устроила тебе трудное дество, но держи его при себе, никто кроме твоей блядской семейки в этом не виноват. :)
Аноним 13/09/22 Втр 19:36:02 2462084 674
>>2462016
Ебанашка, ты передел в лужу якобы механизм языка event убог, хотя по факту убог только твоей мелкий мозг.
Cобытие вообще не проблема сделать как угодно и запилить свои аргументы вообще не проблема, проблема бывает только тогда когда автор фреймворка не предусмотрел а тебе это нужно позарез, такое в винформсах иногда встречается например.
Аноним 13/09/22 Втр 19:54:57 2462104 675
>>2462084
>якобы механизм языка event убог
Дебилушка, все именно так

Для отписки нужно дать делегат, причем именно тот же.
Попробуй реализуй подиску и отписку в обработчике события и сам увидишь насколько это коряво.
Легко вообще можно забыть отписаться.

Сравни это хотя бы с подходом, где можно получить токен и просто диспознуть его, тем самым отписавшись. С lifetime еще удобнее - там просто невозможно забыть отписаться.

Про события и многопоточность там вообще нет нормального решения - есть только "нуу вроде бы это получше других будет"
Аноним 13/09/22 Втр 20:05:52 2462116 676
>>2461784
Нашел версию 2021 года, но там пятый дотнет, который с шестым вообще не клеится, все нахуй поменяли. Ставить пятый или искать что-то другое? К моменту моего устройства многие уже скорее всего будут сидеть на 6 версии, ибо лтс.
Аноним 13/09/22 Втр 20:06:52 2462118 677
Безымянный.png 9Кб, 1024x161
1024x161
Безымянный.png 52Кб, 758x505
758x505
>>2461848
>Вот это предложение что значит?
Ты студию открывать пробовал, няша?
Это конечно не 100% критерий, но 0 тут - это уже страшновато смотрится, я такого никогда не видел от кода людьми написанного, худшее что я от людей видел до этого джуна - 40.
>>2461656
Я пришел с работы в 11 вечера. В конце дня как раз кодом джуна занялся. Писал на эмоциях.
>>2461593
Я же не хочу быть токсичным. Хочу как-то мягко намекнуть, что код в духе второго прикриплейд НЕ ОЧЕНЬ. И когда такой метод 2,5к строк - разобраться в нем СЛОЖНОВАТО.
Аноним 13/09/22 Втр 20:13:52 2462122 678
>>2462118
А че почитать чтобы писать поддерживаемый код?
Аноним 13/09/22 Втр 20:14:08 2462124 679
>>2462116
Олсо, там опять mvc и razor pages, которые никто не юзает.
Аноним 13/09/22 Втр 20:28:59 2462136 680
>>2462124
У нас весь фронт на MVC и Razor pages но у нас фронт только для админов
Аноним 13/09/22 Втр 20:40:56 2462148 681
>>2462118
признавайся. ты сам написал код со второго пика чтобы нас потроллить. Потому что не может программист в здравом уме такое делать.
Аноним 13/09/22 Втр 20:51:37 2462151 682
>>2462148
Я воспроизвел. Код с работы, внезапно, на работе, и показывать его в интернетах - незя. Под страхом выебут.
И да. Я в душе не ебу зачем чел это сделал. Я долго пытался вникнуть. Так и не понял. Завтра спрошу.
Аноним 13/09/22 Втр 21:03:36 2462159 683
>>2462118
> И когда такой метод 2,5к строк - разобраться в нем СЛОЖНОВАТО.
Хуя, у меня в дипломе столько строк, а тут один метод.
Аноним 13/09/22 Втр 21:05:46 2462161 684
>>2462159
>Хуя, у меня в дипломе столько строк
Калькулятор писал?
Аноним 13/09/22 Втр 21:09:54 2462164 685
>>2462136
Ну вот разве что в админке, да. А в основном нужно уметь грамотно делать апи.
Аноним 13/09/22 Втр 21:31:58 2462199 686
>>2462161
Нет, интернет магазин
Аноним 13/09/22 Втр 21:38:25 2462209 687
>>2462015
Не пизди, я в госпараше, старший помощник младшего соискателя на джуна, 265К в наносекунду.
Аноним 13/09/22 Втр 21:59:23 2462229 688
>>2462078
>Лол, нищенка думает что его копейкам кто-то завидует.
>Понимаю, твоя сифозная мамаша устроила тебе трудное дество, но держи его при себе, никто кроме твоей блядской семейки в этом не виноват. :)
Какой-то токсичный инцел порвался. Тут у вас такое часто?

Мимокрок
Аноним 13/09/22 Втр 22:02:09 2462234 689
>>2462199
Я если что - шутил. Воть. Ну, типа что в ООП и жава-подобных языках - принято же нахуячить миллион абстракций, фабрик и т.д. Как же я люблю свои шуточки объяснять...
Аноним 13/09/22 Втр 22:06:25 2462239 690
>>2462229
Да вроде не часто. Ещё иногда джависты набегают.
Аноним 13/09/22 Втр 22:11:12 2462243 691
>>2462229
Мало кто остаётся инцелом когда твоя мамаша на гастролях :)
Аноним 14/09/22 Срд 00:47:58 2462353 692
Написал я приложение для человека корочи.
Запускает он его на маке а там какую то ебанину пишет в консоли. Даже разбирается не стал что за хуета.
Установил он виртмашину корочи.
На виртуальной машине не работает var context = await httpListener.GetContextAsync();
И это блять кроссплатформенность?
Аноним 14/09/22 Срд 00:56:48 2462358 693
>>2462353
как будто под виндой проблем нет.
Создаем httpListener, биндим его на ip машины на кастомный порт и получаем "идинах" при попытке запустить его без прав админа (решается добавлением правил в брэндмауер)
Аноним 14/09/22 Срд 01:03:48 2462362 694
>>2462353
>для человека
>Запускает он его на маке
Человек не стал бы запускать хоть что-то на маке.
Аноним 14/09/22 Срд 01:05:16 2462365 695
Аноним 14/09/22 Срд 01:10:07 2462368 696
>>2462116
>, все нахуй поменяли. Ставить пятый или искать что-то другое? К моменту моего устройства многие уже скорее всего будут сидеть на 6 версии
Я х.з. в чем проблема. Я вообще особо не заметил перехода с 3.1 на 6.
Аноним 14/09/22 Срд 01:13:36 2462369 697
>>2462362
>>2462358
Я этим вопросом не интересовался и верил только на слова >Совместима с такими операционными системами как Windows, Linux и macOS. Была выпущена компанией Microsoft.
А на деле залупа выходит.
Есть ли вообще гарантия что приложение заработает на win10 первой версии и win10 с последними обновлениями?
Аноним 14/09/22 Срд 01:17:27 2462370 698
>>2462369
это все пустые слова.
запускаю и на убунту и на маке. Проблемы только с самой авалонией, но что поделать - оно сделано энтузиастами. Даже мелкие ниасилили поддерживать столько сколько они.

Ну а если дело уходит в натив, то причем тут шарп
Аноним 14/09/22 Срд 01:26:55 2462372 699
>>2462370
У меня консольное net 6 приложение было.
Аноним 14/09/22 Срд 02:08:11 2462379 700
>>2462372
Без текста ошибки это пустой разговор
Про то что нельзя так просто открывать порты даже на винде
я уже сказал
Аноним 14/09/22 Срд 02:21:20 2462383 701
>>2462369
>А на деле залупа выходит.
Ты так говоришь будто бы с любым другим приложением/языком/фреймворком нет залупы при попытках разработки/сборки/запуска на разных платформах.
Аноним 14/09/22 Срд 03:08:32 2462385 702
image.png 615Кб, 965x581
965x581
>>2462379
Вот что это может значить?
Аноним 14/09/22 Срд 03:10:15 2462386 703
>>2462383
С джава такая же хуйня?
Просто миокрокодилы заходят в тред и постоянно пиздят что кроссплатформенности нет, их постоянно шлют нахуй и говорят что есть.
Вот я подумал что это пидоры просто завидуют вот и пиздят всякую хуйню.
А как столкнулся дак чет начал задумываться мб они и правы.
Аноним 14/09/22 Срд 07:36:36 2462425 704
>>2462386
везде бывает херня
особенно если запускать на такой мерзкой оси как макось
Аноним 14/09/22 Срд 08:21:11 2462448 705
>>2462243
>Мало кто остаётся инцелом когда твоя мамаша на гастролях :)
Ты главное не волнуйся так сильно, Скуф, в твоём возрасте это вредно. А то не доживёшь до аванса в 20К.
Аноним 14/09/22 Срд 08:53:52 2462476 706
>>2462448
Инфа от твоей мамаши заразившей сифилисом половину казанского вокзала? Такой себе источник информации.
Аноним 14/09/22 Срд 09:53:24 2462508 707
Сап, сидельцы
Какой сейчас положняк между систем.текст.жиссон и ньютонсофт.жиссон? Что лучше и почему? Для аппа на коре 3.1 Вроде как общепринятым стандартом является ньютон, но чому?
Аноним 14/09/22 Срд 09:55:44 2462511 708
>>2462476
>Инфа от твоей мамаши заразившей сифилисом половину казанского вокзала? Такой себе источник информации.
Ты зря разнервничался так.
У меня российский проект на 230 тысяч российских и американский заказчик на 3К$. Это в сумме под 7К$. Что в принципе уже может позволить комфортно жить и в Западной Европе, например. Когда через год продам трёхкомнатную квартиру в Москве, чтобы не платить налог, буду перебираться как минимум в Португалию.

У тебя зарплата примерно 600-700$ по нынешнему курсу (правда ты получаешь в фантиках, на которые можешь купить всё меньше и меньше товаров с учётом отсутствия импорта и инфляции в 20%; если валютное регулирование отпустят, твой доход упадёт по 150-200$).
Ради этих денег ты должен работать 5/2 8 часов, появляясь в офисе ровно в 9 утра. Твоё резюме не котируется на линкеде и даже на hh. За годы твоего стажа ты бы мог стать хорошим специалистом, но остался бюджетной макакой.

Вот по этому ты и злишься. А я не злюсь, мне тебя жалко.
Аноним 14/09/22 Срд 10:15:14 2462528 709
Господа решёткобояре, хочу писать пет на asp.net и всвязи с этим у меня вопрос: Есть ли разница писать под Виндухом или под Линухом? Где разработка протекает менее ухабисто?
Аноним 14/09/22 Срд 10:28:43 2462546 710
>>2462528
Где удобнее там и пиши. Под Винду есть студия и райдер, под прошивку для роутера есть только райдер.
Аноним 14/09/22 Срд 10:31:54 2462548 711
>>2462511
>через год продам трёхкомнатную квартиру в Москве
Не продашь, т.к. твоей маме негде будет принимать клиентов кавказской национальности.
Аноним 14/09/22 Срд 10:45:38 2462559 712
>>2462548
>Не продашь, т.к. твоей маме негде будет принимать клиентов кавказской национальности.
Почему ты проецируешь? Ты не любишь СВОЮ маму?
Аноним 14/09/22 Срд 10:47:02 2462561 713
>>2462559
Почему твой папа газнюх? Он любит нюхать газ?
Аноним 14/09/22 Срд 11:33:15 2462586 714
>Не стоит ожидать, что Microsoft когда-либо будет использовать MAUI внутри компании. Я даже готов поспорить, что они никогда не создадут серьезный продукт на Blazor. Выбор технологического стека, особенно фронтенда, делается не так, как в Dogfooding. Насколько я знаю, это полностью зависит от команды разработчиков, и, как и все в этой индустрии, большинство разработчиков больше знакомы с JS/TS, чем с чем-либо еще. Это не заговор и не алая буква на MAUI/Xamarin, это просто та же история о том, что JS/TS съедает все.
>В MSFT я наблюдал, как они взяли внутренний инструмент ML, который изначально был создан на C# для windows, полностью переписали с электронным фронт-эндом, чтобы сделать его кросс-платформенным. Я так и не увидел его релиза, который в итоге работал бы без тонны сбоев, но это не важно. Когда я спросил, почему команда не создала фронт-энд на Xamarin поверх существующей базы кода, они просто не имели понятия, о чем я говорю.
>Реальность такова, что если вы не докажете вышестоящему руководству, что расширение внутреннего использования или дальнейшее развитие фреймворка (созданного MSFT или иным образом) каким-то образом принесет больше расходов на Azure (это не так), у них нет стимула отдавать предпочтение этому стеку перед любым другим. И без реальных усилий по продвижению на рынок и продвижению этих фронтенд-фреймворков на фоне доминирования JS/TS, они будут продолжаться так же, как они продолжались годами - просто еще одна абстракция пользовательского интерфейса, увядающая на лозе, поддерживаемая все более скелетными командами компаний, которые исторически использовали C#. И как бы унизительно это ни было для тех из нас, кто потратил значительную часть своей карьеры на веру в них, в краткосрочной перспективе это имеет смысл для бизнеса. Я, честно говоря, не уверен, имеет ли это смысл в долгосрочной перспективе, хотя, как ни больно, вероятно, имеет, но это выходит за рамки данной темы.
>Но если ваш случай использования соответствует идеальному (непотребительские LOB-приложения в существующем магазине C#, имо), сантехника для MAUI существует уже давно и, вероятно, будет в порядке. Если вам нужно, чтобы MSFT использовала его прежде, чем вы сможете, вам следует двигаться дальше.
Аноним 14/09/22 Срд 11:34:05 2462589 715
>>2462586
Пипец, а я хотел вкатиться в МАУИ
Аноним 14/09/22 Срд 11:35:06 2462592 716
>>2462589
Говоришь так, словно там есть во что вкатываться. Xaml он и в африке xaml
Аноним 14/09/22 Срд 13:43:50 2462710 717
>>2462592
Всё равно много конкретики которую надо знать, какая-никакая кривая обучения будет.

Хотел проект на него перевести, единственное что сдерживало это отсутствие датагрида.
Аноним 14/09/22 Срд 13:46:40 2462714 718
2022-09-1413-43[...].png 10Кб, 572x164
572x164
А как сделать так, чтобы в диспетчере задач процесс одного приложения был под катом другого процесса? Вот как на прикриле сделано?

Вот я с помощью одного приложения запускаю другое и оно норм уходит под кат первого. Но затем я во втором запускаю окно и теперь втрое приложение полностью становится отдельным процессом в глазах диспетчера задач.

Я знаю что окна работают в отдельных процессах, типа [STAThread], но ведь когда я в рамках одного приложения запускаю несколько окон, они считаются частью одной группы.

Я пытался установить owner окну и все норм, кроме отображения в диспетчере задач.
Аноним 14/09/22 Срд 17:17:26 2462914 719
Capture.JPG 18Кб, 877x114
877x114
шарпач, посоветуй как правильнее определить наличие загруженного длл.
сейчас я делаю пикрелейтед(сравниваю версию длл) и это вроде работает, но проблема в том что есть пачка длл с одинаковыми .Name
как их различать?
можно ли попробовать через Type.GetType? если, допустим, есть определенный Type, то значит длл точно есть?
Аноним 14/09/22 Срд 17:56:26 2462948 720
>>2462710
ну как минимум неудобно, что для компиляции под макось нужна сама макось. Что разительно отличается от подхода с авалонией
Аноним 14/09/22 Срд 18:48:08 2463001 721
Wpf, uwp, win ui3, maui, сука блять, что это за зоопарк? Почему майки не могут придти к единому стандарту?
Аноним 14/09/22 Срд 18:48:21 2463003 722
Как покрасивше сократить этот код:
> (s, e) => { if (s is Button b) if (b.Parent is MyForm f) f.Close(ModalResult.OK); };
Аноним 14/09/22 Срд 18:49:54 2463005 723
>>2463001
> Почему майки не могут придти к единому стандарту?
Давай сделаем наш уи-тулкит, который объединит их все!

...спустя полгода:
> Wpf, uwp, win ui3, maui, НашОхуетьКакойТулкит, сука блять, что это за зоопарк?
Аноним 14/09/22 Срд 18:51:45 2463006 724
>>2463005
Ну просто реально цирк же. Особенно uwp говно без задач, которое оказалось никому не нужно. Почему нельзя было просто обновить wpf?
Аноним 14/09/22 Срд 18:53:19 2463009 725
>>2463003
Замени if на &&, и тебе должна выскочит подсказка о новом синтаксисе, забыл название, увы.
Аноним 14/09/22 Срд 18:53:36 2463010 726
>>2463003
Зачем там два ифа, если у тебя даже нет разветвления?
Аноним 14/09/22 Срд 18:53:42 2463011 727
>>2462948
Макось не нужна, лучше бы линкс запилили. Пока он на уровне любительского проекта с туманными перспективами.
Аноним 14/09/22 Срд 18:55:25 2463013 728
>>2463001
wpf только десктоп, uwp не взлетел из-за уёбищности платформы, maui это мобилки продолжение xamarin.
Аноним 14/09/22 Срд 18:57:40 2463017 729
>>2462914
Я думал, что надо называть по разному и простарнства имен делать по возможности разынми, чтобы не было конфликтов.
Аноним 14/09/22 Срд 18:58:58 2463018 730
>>2462104
Если ты долбоёб подписался лямбдой и спрашиваешь почему тебе не дают отписаться АНОНИМНЫМ методом (если не понял, он по определеню одноразовый), медицина тут бессильна...

Токент тебе тоже надо где-то хранить, так что если нужна отписка делай именной метод.
Аноним 14/09/22 Срд 19:02:47 2463020 731
>>2463010
> Зачем там два ифа
Чтобы второй иф увидел обьявленную первым ифом переменную.
>>2463009
Так не работает.
Аноним 14/09/22 Срд 19:03:48 2463021 732
>>2463005
>...спустя полгода:
> Wpf, uwp, win ui3, maui, НашОхуетьКакойТулкит, сука блять, что это за зоопарк?

Потому что желание противоречит реальному положению дел.
Любой, кто пытался запилить "универсальную функцию" понимает о чем я пишу. Это просто не реально. Вся эта универсальность приводит к утяжелению и малой производительности.

Задумывают всё это "эффективные менеджеры", а исполнители практикой доказывают, что это в общем-то невозможно. Имеем что имеем.
Аноним 14/09/22 Срд 19:05:34 2463022 733
>>2463020
А что это за кнопка Б такая и где она находится?
Аноним 14/09/22 Срд 19:06:41 2463023 734
>>2463021
> Вся эта универсальность приводит к утяжелению и малой производительности.
Кроме МВВМ, МВВМ - это исключение из правила. Она совсем чуть чуть снижает производительность, зато ты всегда можешь сменить фронт. Тебе нужно только новые вьюшки на новом фронтенде написать, а всё остальное у тебя уже есть. Начал на ВПФ, понадобился линукс - дописал вьюшки на авалонии, собрал, раздал красноглазым.
Аноним 14/09/22 Срд 19:07:00 2463024 735
Аноним 14/09/22 Срд 19:24:56 2463037 736
Тупой вопрос. Как так может быть, что я создаю семфаорслим, с конструктором (0,1). Релизю его ровно в одном месте один раз когда мне надо. И при обильном использовании потоков - получаю эксепшн, типа уже отжали больше максиамльного числа раз. Как это блин происходит? Я не понимаю. И типа на маленьком-то - не возникает жи. Типа ну да и да - все точно. А создаю 50к потоков - и вот, в рандомный момент времени - возникает.
Что эт за хрень-то? Поясните.
Аноним 14/09/22 Срд 19:50:53 2463044 737
>>2463018
дебилушка опять выходит на связь?

> почему тебе не дают отписаться АНОНИМНЫМ методом
где я сказал что не дает?
Я сказал, что если тебе нужно отписаться сразу после получения события (одноразовое получение), то тебе нужно городить огород.

>так что если нужна отписка делай именной метод
покажи мне мастер класс как с помощью ИМЕННОГО МЕТОДА делается отписка в обработчике события.
то есть подписываешься (обычно на локальный объект) и после первого получения события отписываешься. А мы посмотреть.

>Токент тебе тоже надо где-то хранить
Достоинства одного подхода - недостатки другого. Такова жизнь.
Единственное удобство делегатной отписки - можно не хранить ничего и вызвать потом из Dispose (правда это является и недостатком). Да и не не относится к локальным объектам подписки

Ну а неудобства перекрывают удобства.
Нужно постоянно писать код с оглядкой на "не забыть отписаться", ведь можно ("сделали 10 подписок - сделали 10 отписок", а потом "ой одну забыли".)
Даже вот WPF написали с оглядкой на weak events ибо не нашли нормального способа дать возможность кодеру нормально отписываться.
И все MVVM фреймворки основаны на weak events
чет как то решили они проблему отписок путем "не будем вообще использовать обычные event где нужно подписываться" )))

Польза токенов - ну их можно, ДА, куда то сложить и потом разом все диспознуть. Решение проблемы "сделали 10 подписок - сделали 10 отписок". Конечно и токен можно забыть сохранить для диспоза, но тут на сцену выходит lifetime - там не забудешь и токены собственно не нужны. Но даже токены лучше того что есть.

Про многопоток разумеется обсуждать не будем - там все плохо, но можно сказать, что "у меня формсы какой еще многопоток". так что только про подписки.
Аноним 14/09/22 Срд 19:53:29 2463046 738
>>2463018
блин очепятался во многих местах
>обычные event где нужно подписываться
читать как "обычные event где нужно отписываться"
Аноним 14/09/22 Срд 21:15:13 2463092 739
object locker = new();

lock (balanceLock)
{
}
Зачем нужен locker ?
Пишут что
>При синхронизации доступа потоков к общему ресурсу блокируйте выделенный экземпляр объекта (например, private readonly object balanceLock = new object();) или другой экземпляр, который, скорее всего, не будет использоваться как объект блокировки другими частями кода.
1лок-1обжкт.
Но почему не сделать бы lock () так?
Что еще можно класть и делать с lock ()?
Аноним 14/09/22 Срд 21:21:02 2463095 740
>>2463003
>(s, e) => { if (s is Button b) if (b.Parent is MyForm f) f.Close(ModalResult.OK); };

(s, e) => ((s as Button)?.Parent as MyForm)?.Close(ModalResult.Ok)
В теории конечно
Аноним 14/09/22 Срд 21:26:22 2463098 741
Аноним 14/09/22 Срд 21:37:53 2463108 742
>>2463095
Спасиб, не сильно красивше, канешн, но хотя бы чуток короче.
Аноним 14/09/22 Срд 23:01:59 2463172 743
>>2462508
>но чому?
Теорема Эскобара + просто повезло закрепиться в умах кодеров.
Аноним 14/09/22 Срд 23:11:13 2463176 744
>>2463172
очевидно потому что "оно было раньше"
ньютон был до пришествия текст.жсона. перегружен фичами.
Кому нужна была скорость - было на выбор куча вариантов (некоторые из которых по скорость/потребление памяти дают пососать и текст.жсону)

Потом вышел текст.жсон но
а) он поддерживает только часть фич и переводить неудобно
б) также слепили свое JsonPropertyName вместо родных аттрутов из компонент модел. Причана вроде бы - не хотим тянуть за собой сборку с этим аттрибутом чтобы всякие блазоры
не перегружать весом)

так что щас текст.жсон он находится в середине крайностей "фичи" и "скорость/память"

та же ситуация и с sqlite
Аноним 14/09/22 Срд 23:21:14 2463186 745
Ребят, как в линке в джоине двух списков/таблиц в select new {name = A.name ... етц} поставить условие. Мне надо сравнивать два числа и меньшее записывать в поле, но я чет не очень синтаксис понимаю..
Аноним 14/09/22 Срд 23:55:17 2463202 746
>>2463186
Нихуя не понятно.
Приведи пример данных и что в итоге нужно получить.
Аноним 15/09/22 Чтв 00:24:17 2463215 747
>>2463202
class A{
int id
string name
int? money (нуллабл окда)
}

У мня есть два списка:
List<A> spisok1 и List<A> spisok 2

Я делаю
var leftOuterJoin =
from s1 in spisok1
join s2 in spisok2 on s1.Id equals s2.Id into temp
from s2in temp.DefaultIfEmpty()
select new
{
Id = s1.Id,
Name = s1.name,
Money = ???????
};

Так вот- в этом Money = ??????? я хочу получить меньшее из s1.Money и s2.Money. А идеально получить - меньшее, либо то которое не нулл, либо нулл если оба нулл
Аноним 15/09/22 Чтв 01:20:07 2463234 748
>>2463215
Ничего умнее чем сделать метод который это все чекает, не придумал.
Мб помидоры придут подскажут че.
Аноним 15/09/22 Чтв 01:27:11 2463237 749
>>2463215
Money = (s1.Money.HasValue, s2.Money.HasValue) switch {
(true, true) => Math.Min(s1.Money.Value, s2.Money.Value),
(true, false) => s1.Money,
(false, true) => s2.Money,
(false, false) => null
}
Аноним 15/09/22 Чтв 01:36:06 2463240 750
>>2463237
Поставил бы лайк если бы смог.
Аноним 15/09/22 Чтв 01:57:50 2463250 751
Аноним 15/09/22 Чтв 02:53:46 2463259 752
Capture.JPG 17Кб, 560x255
560x255
>>2463017
нее у человека который те дллки написал все в этом плане типтоп, это я макака сбоку.
вот такое вымучил.
используется только один раз за всю жизнь программы, если type найден его же и использую, если нет то логика другая будет. вроде бы работает.
за такое не бьют палками?
Аноним 15/09/22 Чтв 11:20:10 2463369 753
Почему петушарперы отрицают что руби лучше?
Аноним 15/09/22 Чтв 11:43:49 2463373 754
>>2463369
Потому что мы заняты работой а ты сидишь срёшь на двачах
Аноним 15/09/22 Чтв 12:07:46 2463381 755
>>2463369
С тем, что руби - говно, согласны и шарперы, и жабисты, и петухонщики, и жопаскриптеры.
Аноним 15/09/22 Чтв 12:37:27 2463389 756
Есть метод, у которого в качестве возвращаемого типа указан базовый класс, а сам метод может вернуть несколько разных сабклассов.
Как об этом узнать, не заглядывая в код метода? Можно это как-то задокументировать?
Аноним 15/09/22 Чтв 12:52:47 2463395 757
image.png 40Кб, 598x659
598x659
>>2463390
Не-не, что-то вроде пикрелейтейда. Если не смотреть в код Class.Check, то как узнать, что он вернул не CheckResult, а NegativeResult?
Понятно, что можно сделать .GetType(), можно через is и as, а как-то иначе? Задокументировать это как-то можно? Я смотрел xml документирование, но, если я правильно понял, <returns>description</returns> предлагает просто описать смысл возвращаемого и всё, тэгов для типов нет.
Аноним 15/09/22 Чтв 13:27:54 2463415 758
>>2462589
Кроссплатформенного ГУИ на шарпе никогда не будет.
Нужен кроссплатформенный ГУИ - бери Qt, electron, awt/swing + flatlaf, compose multiplatform.

А вообще десктоп гуи сейчас очень мало кому нужен (а тем более кроссплатформенный). Если он вам нужен, то лучше подумать еще несколько раз, так как веб хуйню в разы проще запилить.
Аноним 15/09/22 Чтв 13:57:03 2463442 759
>>2463415
Почему, технически вроде не сложно. Остальные фреймворки слишком маргинальные, нецелесообразно тратить ресурсы на их освоение если будет поддержка от гиганта вроде МС, я надеялся что так будет в случае МАУИ.

>А вообще десктоп гуи сейчас очень мало кому нужен (а тем более кроссплатформенный)
Что за привычка всё мерять потребностями быдла которому кроме инсты в телефончике ничего не надо?
Аноним 15/09/22 Чтв 13:57:53 2463443 760
>>2463415
>десктоп гуи сейчас очень мало кому нужен
внезапно он нужен конечному пользователю.
но кто спрашивает конечного пользователя )

>>2463369
сравнивать руби с шарпом нельзя - они вообще из разных миров.

Лично я когда то любил руби. НО задолбало писать как в блокноте - никогда не знаешь что в текущем классе у тебя есть. И высматривать глазами чужой код бесполезно - хер знает где и как расширен класс. Понятно, что если пишешь постоянно на руби, то проблемы нет, но если это не основной язык и просто не помнишь. Даже писал свой модуль, чтобы по бряку можно было видеть что через миксины напихали в объект.
В итоге свалил на питон - возможности магии приличны, но при этом сильный тайпхинтинг, да и генераторы мне ближе чем фиберы. Ну а количество готовых решений на все случаи жизни делает питон лидером в практичности. У руби же ниша - ROR

Ну а сейчас есть котлин, где тебе и статическая типизация (жаль что по жавовски конечно) и богатая поддержка возможностей лепить DSL
Аноним 15/09/22 Чтв 17:58:05 2463658 761
Кто нибудь в курсе про сертификаты разработчика? Использовал ини нахер нужно?
Аноним 15/09/22 Чтв 19:15:30 2463704 762
изображение.png 87Кб, 1275x295
1275x295
Что-то я понять не могу, почему, когда я редактирую элемент из коллекции BestSellers, он у меня меняется и в репозитории _books?
Аноним 15/09/22 Чтв 19:19:10 2463712 763
>>2463237
Всё збс, но вот здесь
> Math.Min(s1.Money.Value, s2.Money.Value)
выдаёт предупреждения, что значения могут быть нулль. Я умом-то понимаю, что конкретно в этом месте шаблона - не могут, но как это конпелятору обеснить?
Аноним 15/09/22 Чтв 19:23:42 2463718 764
>>2463704
Впрочем разобрался, книга передается по ссылке. Честно говоря до сих пор не могу к этому привыкнуть. В крестах тех же всё явно обозначается.
Аноним 15/09/22 Чтв 19:29:13 2463723 765
15/09/22 Чтв 19:39:45 2463733 766
>>2463443
После руби жрать жабью инфраструктуру (даже через котлин), это как после торта есть недельный черствый хлеб.
А так из тебя сыпятся шаблонные мантры из ютуба, что ставит твое мнение не выше плинтуса. питон то еще костыльное говно
Аноним 15/09/22 Чтв 19:42:48 2463736 767
>>2463723
Пасиб. Вот теперь заебись.
Аноним 15/09/22 Чтв 19:57:04 2463752 768
>>2463733
ты чет попутал дядя
я руби заменил питоном.

А также дополнительно упомянул что "выражаться затейливо" и "плодить нативные DSL" могут и языки со стат типизацией - например котлин.

>питон то еще костыльное говно
ясно все с тобой. но тред не про питон и не про руби, поэтому раскрывать твое дурацкое заявление не попрошу
Аноним 15/09/22 Чтв 20:22:35 2463768 769
>>2463723
Это типо "не нулл значит?"
Аноним 15/09/22 Чтв 22:51:15 2463896 770
Аноним 15/09/22 Чтв 23:37:32 2463921 771
>>2445746 (OP)
Почему я все время слышу, какой шарп охуенный, быстрый, удобный, фичастый, но на нем ничего из сильно крупного не пишется?
Только сами майкрасофты и пихают свое поделие в какой-нибудь бинг. Остальным крупным игрокам похуй. Будут держать код на джаве, будут начинать новые проекты, будут делать высоконагруженные сервисы, писать инфраструктуру на го, на джаве, но не на шарпе.
Почему так? Или я не прав?
Аноним 15/09/22 Чтв 23:38:48 2463922 772
Аноним 15/09/22 Чтв 23:43:04 2463925 773
Аноним 15/09/22 Чтв 23:44:39 2463928 774
Аноним 16/09/22 Птн 00:13:26 2463944 775
>>2463921
Мелкомягкие тащемта просто долбоебы, разгадка проста
Раньше: зачем нужен сырой аналог жабы только под шиндовс, когда есть проверенный кроссплатформенный обратносовместимый инструмент?
Теперь: нахуй нам вообще задумываться об использовании мелкомягкого кала, когда есть ГОвно или проверенная жаба
Вот и все, вы успешно проебали рынок
Аноним 16/09/22 Птн 00:27:43 2463947 776
>>2463944
в ГОвно больше пиара нежели мощи. Всякую мелочь писать сойдет, но серьезное замахаешься.
Аноним 16/09/22 Птн 01:43:14 2463979 777
>>2463921
Крупные игроки не хотят зависеть от вендора. Почему С++ может быть в гугле, а шарп не будет там никогда. С++ имеет комитет и стандарт, ты не зависишь не от кого (свой компилятор налапатишь если надо). Так же, когда гугл высрет свой карбон, кроме гугла никто не будет его юзать (из крупных игроков). Потому что никто не хочет завязнуть на чужом продукте, особенно когда могут сделать сами свой.

В тоже время мягкие показывают, что они делают именно продукт. Например студия частично написана на шарпе, что как бы показывает - мы используем шарп во флагманском продукте и тем самым показывая какие-то гарантии. А вот если взять котлин, то мы видим что за 6 лет не один флагманский проект не был переписан на него и тут сразу ловишь себя на мысли, если они не рискуют, то почему я должен рисковать своим продуктом?
Аноним 16/09/22 Птн 01:48:54 2463980 778
>>2463921
Что касается джавы, то саны, перед тем как слохнупнуться, сделали жабу попенсорс и чем спасли бизнес, который в жабу вляпался. Поэтому до сих пор все идет по инерции, но сама жаба не развивается и протухает. Лишь благодаря мобильниками и натянутым на глобус конференциям ты еще не проводишь параллель между джавой и коболом. Забавно, котлин топит в мобильниках джаву, джава топит котлин за собой весь JVM
Аноним 16/09/22 Птн 02:04:13 2463985 779
>>2463944
Говно не вывозит многолетние проекты. Фанатики, конечно, могут писать на чем угодно и сколько угодно, но все что кроме круда в го вызывает анальный зуд (это просто какой-то перманентный бойлерплейт).

У жабы настолько протухшая тырпрайзная экосистема, которая вообще никак не оптимизированная, что надо быть немного странным чтобы стартовать на этом новые проекты. Собственном на этом го скорее всего и выстрелил, сойдет даже говно, лишь бы снова на жабе не писать сама жаба проста и быстра, но не слоенный, не оптимизированный тырпрайз
Аноним 16/09/22 Птн 10:14:25 2464060 780
>>2463921
>но на нем ничего из сильно крупного не пишется?
Что именно ты подразумеваешь под "сильно крупно"?
Аноним 16/09/22 Птн 10:27:19 2464066 781
>>2463921
стековерфлоу это шарп
антиплагиат - тоже шарп
Аноним 16/09/22 Птн 12:50:12 2464155 782
Заходишь такой в шарпотред. Такс, чо тут новенького у вас?
> котлин
> котлин
> жаба
> го
Вы чо охуели блять? Создайте тред котлина и сидите там.
Что такое котлин? Котлин это
> function GoFuckYourSelf(HowFuck: TObject) : TFuckStyle;
> var
> TempFuck : TObject
> begin
> TempFuck := HowFuck;
> result := CreateFuckStyle(TempFuck);
> end;

Нравится?
Аноним 16/09/22 Птн 13:09:18 2464173 783
>>2464155
Нравится конечно . Как это может не понравиться?
Только это не котлин
Аноним 16/09/22 Птн 13:13:36 2464176 784
>>2464155
>Когда очень хочется влиться в дискуссию языков, но ты очень тупой.
Аноним 16/09/22 Птн 16:15:34 2464351 785
image.png 22Кб, 652x72
652x72
Почему в теста у меня выебывается эта часть?

В реальности если у него нет детей ничего не вылезает, а в тестах оно выскакивает с визгами что "nullable oobject must have a value"

ПОЧЕМУ??????
Аноним 16/09/22 Птн 16:15:56 2464352 786
>>2463985
>Говно не вывозит многолетние проекты
Понимаешь ли, затс джаст лайк, юр опинион, мэн. А крупные игроки просто берут и используют говно, в бэке, в многолетних проектах.
Кроме самих гуглов, говно используют те же майки, нетфликс, пэйпал, клаудфлейр, убер и т. д., а шарп - нет, кроме самих же создателей.
Аноним 16/09/22 Птн 16:47:44 2464383 787
шарф2.png 19Кб, 706x415
706x415
шарф3.png 56Кб, 826x738
826x738
>>2464352
Тебе и сказали что это круд микросервисы, которые переписать дешевле чем новую команду собрать.
Сегодня там микра на го, завтра на жопоскрипте. Тут как раз бизнесу и насрать, лишь бы гребцы были.

Шарп второй язык в вебе, как среди общего числа, так и среди миллионников, естественно его используют многие, кроме твоим манямирков, конечно.
Аноним 16/09/22 Птн 17:08:31 2464409 788
Зачем на собесах ебут sql, когда в проекте всё пишут через linq?
Аноним 16/09/22 Птн 17:59:07 2464452 789
>>2464409
Linq будет транслироваться в sql, если мы, конечно, не о linq to objects говорим. Нужно уметь читать запросы, в которые он транслируется, понимать как они будут исполняться, как работает база и т.д. Как можно их оптимизировать. Частенько для части запросов приходится выкидывать нахер тот же EF, и ебашить запросы ручками (ну или Dapper'ом), иначе с производительностью все печально будет.
Аноним 16/09/22 Птн 18:21:07 2464469 790
>>2464383
>это круд микросервисы, которые переписать дешевле чем новую команду собрать
>Сегодня там микра на го, завтра на жопоскрипте
Очередная мантра про "ряя тока микросервисы!!" Мань, там на оф. сайте го есть кейс стадиз, компании рассказывают о том, как используют го. Посмотри на их круды и микросервисы, лол. Ну не позорься ты так, не рвись, твой манямирок же можно разбить одной ссылочкой на сайт го.
>Шарп второй язык в вебе, как среди общего числа, так и среди миллионников, естественно его используют многие
Многие-то многие, только мы про крупных игроков уровня фаанга говорим. Перечитай пост, с которого обуждение началось. И иди проспись.

Щито поделать, никогда шарпа (за пределами мелкомягких) уже не будет в крупнейших передовых компаниях, лидерах в своей отрасли. Ява - есть, го - есть и его будет еще больше, шарп - нет.
Зато лавочка ашота на 900.000 месте написана на шарпе, это да, этого не отнять. Но не нетфликсы и клаудфлейры, увы и ах.
Аноним 16/09/22 Птн 19:01:30 2464512 791
>>2464469
>Шарп второй язык в вебе,
>как среди общего числа (количества),
>так и среди сайтов миллиоников (качества)
Но жопочтец продолжает писать
>Кококо кроме мягких негде используется
Аноним 16/09/22 Птн 19:02:06 2464513 792
>>2464469
>Шарп второй язык в вебе,
>как среди общего числа (количества),
>так и среди сайтов миллиоников (качества)
Но жопочтец продолжает писать
>Кококо кроме мягких негде используется
Аноним 16/09/22 Птн 19:12:43 2464519 793
В чем фундаментальная разница между ReadOnly и Immutable?
Аноним 16/09/22 Птн 19:54:53 2464565 794
>>2464519
в том что ReadOnly не имеет методов для изменения, но не гарантирует, что кто-то другой не имеет у себя возможность менять объект.

То есть еслиу тебя IReadOnlyList, то нельзя думать, что список неизменен - у кого то этот же список может быть как IList и он его будет менять.

Immutable же гарантирует неизменность.
Аноним 16/09/22 Птн 20:12:06 2464584 795
image.png 32Кб, 600x800
600x800
>>2464383
>шарф2.png
Братан..

>2018
>ASP.NET - 13.2%
>Java - 2.3%

>2022
>ASP.NET - 7.6% 📉
>Java - 4.5% 📈
Аноним 16/09/22 Птн 20:27:02 2464600 796
>>2464512
>Шарп второй язык в вебе
Уж точно не в РФ, где всем рулит js и пыха/go.
Аноним 16/09/22 Птн 20:28:25 2464602 797
>>2464155
>Котлин это
Это не котлин, а паскаль.
Аноним 16/09/22 Птн 20:32:33 2464604 798
>>2463985
>Говно не вывозит многолетние проекты
Тащем-то на го я вижу кучу популярного опенсорса вроде докера, кубера, опеншифта, терраформа, консула, кокроача, которому уже немало лет.
На шарпе так нихуя опенсорсного и не написали, кстати, ну или написали, но оно умерло(.
Аноним 16/09/22 Птн 20:37:21 2464607 799
>>2464604
а ты задай себе вопрос - почему твой список не написали на жаве например? ладно шарп, он как бы ничто
жаву почему не взяли?
Аноним 16/09/22 Птн 20:39:20 2464610 800
>>2464602
А точно! Котлин - это паскаль без кавычек;
Исправляюсь:
>>2464155
> > function GoFuckYourSelf(HowFuck: TObject) : TFuckStyle{
> > var
> > TempFuck : TObject

> > TempFuck := HowFuck
> > result := CreateFuckStyle(TempFuck)
> > }
Аноним 16/09/22 Птн 20:42:20 2464613 801
>>2464513
Не, в крупные конторы аля фаанги шарп не завезли, от того и инфры на шарпе нет, как нет и экспертизы в дотнете. Пока крупняк не начнет массово использовать шарп, то шарп так и останется технологией для небольшого бекенда в маленьких аутсорс конторках, либо в госсекторе с формочками.

>>2463979
>котлин, то мы видим что за 6 лет не один флагманский проект не был переписан на него
Часть кода IDEA написана на котлине, так что флагманский проект jb вполне использует свой же язык.

За пруфами вот сюда https://github.com/JetBrains/intellij-community
Аноним 16/09/22 Птн 20:47:40 2464618 802
>>2464610
Тебя укусил делфист и ты уже языков не различаешь
зеленка тебе поможет.

>>2464613
>Часть кода IDEA написана на котлине
я мимокрок но это не аргумент. Переписана с жавы на котлин.
Это ДАЛЕКО НЕ ТО ЖЕ САМОЕ как переписать с любого постороннего языка
Даже студия, в которой я пишу на котлин при вставке кода на жаве тупо конвертит ее в котлин, а дальше только причесать
Аноним 16/09/22 Птн 20:47:49 2464619 803
>>2464584
Инвалид, ты опять выходишь на связь?
Нет бы устроится разработчиком, и стать полезным, ты как аутист лазаешь по всеи этим тредам? Зачем?
Иди лучше бампай тухлый тред раста.

В целях безопасности в асп выпилили идентифицирующие хедеры, и новые проекты перестали попадать в список. Рост жабы, тут как раз из-за падения пхп и шарпа.
Аноним 16/09/22 Птн 20:50:10 2464623 804
>>2464607
>почему твой список не написали на жаве например
Наверное жаба для других задач больше подходит, и вообще причем тут она?
Ну а вообще докер изначально был написан на питоне, только спустя время его на гоху переписали. Кубер изначально создавался в гугле, где его изначально на го начали писать, что в целом ожидаемо.
Вообще всякие задачи контейнеризации-виртуализации было бы странно решать используя жабу.
Аноним 16/09/22 Птн 20:52:19 2464628 805
>>2464409
Потому что ORM не нужны, когда можно писать сразу на нативном SQL.
Аноним 16/09/22 Птн 20:54:36 2464632 806
>>2464618
>я мимокрок но это не аргумент
Ну там выше шизик рассказывал, что студию частично переписали на шарп, я привел как аргумент, что идею тоже частично переписали на котлин. Да, переход C++ -> C# и Java -> Kotlin намного различается по сложности, но мы же не про сложность перехода говорим?
А так на котлине сейчас весь андроид держится, там уж точно много чего было переписано.
Аноним 16/09/22 Птн 20:59:09 2464637 807
>>2464604
Еще один жопочтец, тебе не сказали нельзя, а сказали что оверхедно.
Можно написать и на С++ это все, но тебе мальчику выращенному ютубом сражу покажется это накладным, так же и здесь можно рогом упереться и написать на бойлерплейтах, но ну его нафиг.
Аноним 16/09/22 Птн 21:00:02 2464638 808
>>2464623
>Наверное жаба для других задач больше подходит,
>и вообще причем тут она?
а причем тут тогда шарп? жава находится даже в более выгодной позиции, ведь за ней не тянется предание "не умеет в кроссплатформенность да и вообще злой мелкософт может сделать кусь. апасна"

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

>>2464632
>мы же не про сложность перехода говорим?
нет. мы именно про нее и говорим. Берем сложный проект и переписываем его на го допустим. Можем переписать? да даже на батниках можно писать и на синклер бейсике. Вопрос в том сколько это времени займет.

А переход жава - котлин занимает....нисколько.
Аноним 16/09/22 Птн 21:01:29 2464640 809
>>2463980
Ну жаба так-то раньше еще стала популярна, ну и развитие в ней тоже было, 7 и 8 жаба при оракле вышла так-то.
Аноним 16/09/22 Птн 21:04:00 2464644 810
>>2464638
>тебя это чет не смутило
А почему должно было смутить? Изначально речь шла о том, что го кроме как для крудов, бесполезен, однако это не так и на нем много долгоживущих проектов написано, в отличие от шарпа, где опенсорса не видно и не слышно.
Про контейнеризацию, вирутализацию и жабу уже другой разговор.
Аноним 16/09/22 Птн 21:07:20 2464645 811
>>2464613
Второй по популярности язык в вебе, но жаба макака все еще маневрирует фразами "а вот этой компании его нет, значит его нет вообще нигде".
Иди уже.

>Часть кода IDEA написана на котлине
Показывает нам бесплатный продукт и тот только частично на котлине. Вот когда идею на котлин перепишут, тогда на твой котлин и начнем смотреть как на продукт слишком гладо про интероп стилили. Сами не рискуют переписывают свои продукты, а мы должны.
Аноним 16/09/22 Птн 21:07:43 2464646 812
>>2464637
>тебе не сказали нельзя, а сказали что оверхедно
Оверхедно это анальный зуд при написании проектов-долгожителей на го или ты про оверхед в шарпе? Нихуя не понял.

>>2464638
Жаба не имеет никакого отношения к тому, что существуют крупный популярный опенсорс на го.

>>2464638
>мы именно про нее и говорим
Ты говорил про переписывание флагманского продукта на свой язык. Jb переписали часть идеи на котлин, и новые фичи тоже в основном на котлине пишутся, так что флагманский продукт вполне успешно использует язык компании.
Аноним 16/09/22 Птн 21:12:00 2464650 813
>>2464644
изначально (и всегда) речь шла о том, что go это бойлерплейт язык. И чем больше проект, тем больше кодирования.
Поэтому для мелочи оно удобно ведь пока начинает бесить это - уже все написал.

>>2464646
>Жаба не имеет никакого отношения к тому
верно. как и шарп не имеет отношения

ты привел список из которого негласно следует вопрос
"а где ТАКОЕ ЖЕ на шарпе". А где ТАКОЕ ЖЕ на жаве?
у шарпа своя ниша - почему вдруг продукт должен оперсонсным и вообще орать на каждом углу что он шарп?

Типичная "ошибка выжившего"

ps: да (цензура) форма поста. какой макака ее разрабатывал, пишешь текст вслепую
Аноним 16/09/22 Птн 21:13:04 2464652 814
>>2464645
>жаба макака
Я вообще никак с жабой не связан.

>>2464645
>Показывает нам бесплатный продукт и тот только частично на котлине. Вот когда идею на котлин перепишут
????
Я тебе скинул репозиторий идеи, которая действительно частично на котлине написана, как и студия частично на сишарпе. В чем причина подрыва?
Аноним 16/09/22 Птн 21:16:45 2464658 815
>>2464650
>А где ТАКОЕ ЖЕ на жаве
Почему на жаве должен быть написан докер? Но если тебе интересно, то как минимум на жаве есть другие крупные опенсорс проекты - кафка, эластик, хадуп, зукипер + написаны бд вроде кассандры и H2.
А разговор шел про то, что на го все-таки есть крупный опенсорс, который долго живет. А на шарпе его не видно. Вот и все. На жабе опенсорс как видишь тоже есть.
Аноним 16/09/22 Птн 21:26:11 2464665 816
>>2464658
>Почему на жаве должен быть написан докер?
не должен
только вот зачем забывать про применимость языка и ставить в пример проекты где "какой то язык применим"

У кого то есть время! и желание! (и необходимость) писать на бойлерплейт языке, да еще делать это опенсорс
но не у всех же такая необходимость

Возьмем для примера gitlab. Вот есть gitea - там "православный go" но чет не отправляет на свалку истории она гитлаб написанный на "ужасном богомерзком руби" с дикими тормозам и потреблением памяи. Как так? ведь go же

жаба и опенсорс это нечесна учитывая что шарп как кроссплатформа очень молодой

А по поводу "не видать" так
1 а зачем оно должно быть видно. вот у нас шарп - снаружи не видать. На антиплагиате шарп - снаружи не видать. На стекоферфлоу шарп - снаружи не видать. Знаешь об этом только потому разрабы не поленились опубликовать эту инфу
2 триггер "фатальный недостаток" действует не на всех. И чем больше приложение, тем меньше действует.
Аноним 16/09/22 Птн 21:34:49 2464673 817
>>2464665
>жаба и опенсорс это нечесна
А кто говорит о честности? Выше был пост, где было явно сказано, что MS просрали свое время и очухались слишком поздно. Как бы сами разработчики платформы и их хозяева проебались.

>>2464665
>антиплагиате шарп - снаружи не видать. На стекоферфлоу шарп - снаружи не видать
Это не опенсорсные проекты. И другие разработчики по всему миру не пользуются трудом инженеров стаковерфлоу или антиплагиата. А докером и кубером пользуются. Кафкой и эластиком пользуются.
Аноним 16/09/22 Птн 21:37:15 2464676 818
>>2464673
>А докером и кубером пользуются.
>Кафкой и эластиком пользуются.
фатальный недостаток
фатальный недостаток
фатальный недостаток
))))
Аноним 16/09/22 Птн 21:37:47 2464677 819
>>2464665
>Как так? ведь go же
Наверное потому что гитлаб на руби нормально справляется со своими задачами?
Аноним 16/09/22 Птн 21:40:07 2464679 820
>>2464677
но ведь go быстрее
собственно поэому и gitea стали писать

делов то - дописать до уровня гитлаба и перейти. какая проблема? ведь go же - на нем можно писать такой объемности вещи (бойлерплейтно,а потому дольше, но ведь можно же)))

тут кто то распинался что сменить язык изи и вообще go это ня ибо вон на нем есть. Так почему бы gitea который пишется на супер языке просто не вырасти и не выбросить гитлаб. что мешает? (вопрос риторический)
Аноним 16/09/22 Птн 21:46:03 2464686 821
>>2464665
>фатальный недостаток
>>2464676
>фатальный недостаток

Не понял нихуя, что ты имеешь в виду.

>>2464679
>просто не вырасти и не выбросить гитлаб. что мешает?
Потому что гитлаб первым (а точнее вторым) захватил рынок, а gitea мало чего нового предлагает? Точно так же как и жабой-шарпом. Вроде бы шарп охуенный язык, но из новшеств только сахар, поэтому люди дальше на жабе сидят и не хотят с нее переходить на шарп.
Аноним 16/09/22 Птн 22:02:58 2464697 822
>>2464686
фатальный недостаток это когда пишешь свой велосипед потому что не хочешь платить за то что есть или "написано не тобой" (с) мелкие

>докером и кубером пользуются
>Кафкой и эластиком пользуются.
вот они есть и работают. зачем их переписывать? незачем.
Можно родить другой продукт. но какой? Ну придумай такое - раз, запрограммируй опенсорс, то есть за свой счет - два и чтобы это было всем нужное (то есть не было альтернатив и оно захватило место (как гитлаб ниже)).

>Потому что гитлаб первым (а точнее вторым) захватил рынок
как и упомянутые тобой продукты. Шарп очень молодой в своей новой форме, чтобы от него ожидать что будет много чего то, чего раньше не было и всем нужно.
До сих пор тянется плохая слава прошлых лет.

к тому же опенсорс не требующий доп рантаймов как бы в более выигрышной позиции.

>gitea мало чего нового предлагает?
наглядный пример "мощи" go - получаешь быстрый код, но кодишь дольше, намного дольше (если сравнивать с руби)

(я на питоне пишу на порядок быстрее, чем на шарпе)

>поэтому люди дальше на жабе сидят
ну жависты особый народ. они закостенелые. их все устраивает. А кого не устраивает - ну те изучают котлин. А шарп то им зачем.
Аноним 16/09/22 Птн 22:20:38 2464706 823
>>2464652
Тебе сказали, что бесплатная приблуда не годиться в противовес продукта аля студия, где она полностью, почти на шарпе.
Нахера ты продолжаешь натягивать манямир? У них был полный интероп и время, чтобы показать котлин как продукт, ценой рисков своего продукта. давай, задай этот же вопрос в третий раз
Аноним 16/09/22 Птн 22:26:06 2464710 824
>>2464658
>крупные опенсорс проекты - кафка, эластик, хадуп, зукипер + написаны бд вроде кассандры и H2.
Какое-то тырпрайзное говно вы жрете, месье, я лично ожидаю от го или котлина продуктов в виде таркова, раста или геншина импакт.
Я уверен что все эти базворды пишутся максимум за месяц, как и все тырпрайзное, оверпразное, не оптимизированное говно (не алгоритмами славится тырпрайз, а умением наслоить тонну говна поверх говна, программистами студентами из индии).
Аноним 16/09/22 Птн 22:58:46 2464728 825
>>2464619
Тебя какой-то инвалид так сильно проткнул, что ты теперь его везде детектишь? Зашивайся, братик)
Аноним 16/09/22 Птн 23:29:33 2464751 826
Java: кафка, дженкинс, зукипер, хадуп, кассандра, эластик, нео4ж и т. д. Инфраструктура, банки, высоконагруженный многолетний бэкэнд в крупнейших компаниях мира.
Go: докер, кубер, опеншифт, терраформ, консул, таракан и т. д. Инфраструктура, высоконагруженный многолетний бэкэнд в крупнейших компаниях мира.
C#: Эээ... Ну..... Инфра-.. Эм-м.. Ну, это.. Майкрасофт, да.. Студия.. Да не успели просто, а крупные компании специально в штаны насрали, бойкотируют.... Зато мы по популярности в мелком бэкэнде с крудами и формочками на втором месте, после такого гиганта бэкэнда, как ПХП. Да-а...
)
Аноним 16/09/22 Птн 23:40:33 2464754 827
Безымянный.png 13Кб, 706x262
706x262
Смотрите чего придумал!
Думаю и так понятно что это. Но суть - да. Помечать сервисы атрибутом и потом просто что-то в духе services.AddServicesFromAssembly();
Какие могут быть подводные камни?

Просто вот лично меня уже долюбило, что я тупо забываю добавить какой-то сервис. Бесит. Как аутист - проверяешь в рантайме, что не упадет когда до нужного сервиса дело дойдет.

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

Но я могу чего-то не знать. Типа возможно майки по каким-то рациональным причинам такую штуку сами не запилили.
Аноним 16/09/22 Птн 23:44:12 2464757 828
image.png 1939Кб, 1380x749
1380x749
image.png 164Кб, 1318x732
1318x732
image.png 131Кб, 1315x645
1315x645
Аноним 16/09/22 Птн 23:45:17 2464758 829
>>2464751
не в тему, но я один считаю синтаксис голанга крайне уебанским? я его увидел случайно и подумал что никогда бы не смог писать чисто из-за синтаксиса. так у меня и с C++, и с питоном, и с пхп. Вот у C# супер-приятный синтаксис, писать на нем одно удовольствие. А у вас какое мнение?
Аноним 16/09/22 Птн 23:49:43 2464762 830
>>2464758
нет. не один
он кошмарен.

>>2464751
>Да не успели просто,
именно так. не кросс шарп сразу мимо
а кросс - ну в 19м вышел 3.1 кор и все постоянно спрашивали "а готов ли это для энтерпрайз". То есть сомнений выше крыши
Про патентную политику мелких та же херня.
Аноним 16/09/22 Птн 23:55:23 2464766 831
>>2464754
Если у тебя несколько сервисов, которые реализуют один интерфейс, то при необходимости замены в DI одной его реализации на другую при таком подходе ты будешь страдать.
Плюс, ты банально по всей кодовой базе размазывает конфигурацию DI.
Аноним 16/09/22 Птн 23:56:45 2464767 832
>>2464758
Мне нравится синтаксис щарпа. Приятный. Во многом - лучший в плане код-экспириенса.
Но с другой стороны - некоторых моментов с жавы не хватает. Плюс - у жавы вариативность всяких решений. Типа вот нужно мне байтоебить и пилить какой-то там сервер на HTTP'шный - я могу взять Netty, могу Mina. И то и другое - охуенно.
В шарпе - я хочу побайтоебить сервер. Ну, кхм, ну вот тебе TCPListener и NetworkStream - развлекайся.
Типа я к чему. Язык - охуенный. Но то что большая часть всего завязана на майков - удручает. А оно будет завязано, потому что майки - владельнцы и завтра они решат все сломать - и проект который ты на шарпе для комунити делал - придется переписывать или оставаться на текущей версии. Короче, такое себе. В жаве оно хотя бы если ломаем, то ломаем предупредив и дав время на переход.
Аноним 17/09/22 Суб 00:06:00 2464773 833
>>2464766
> Если у тебя несколько сервисов, которые реализуют один интерфейс, то при необходимости замены в DI одной его реализации на другую при таком подходе ты будешь страдать.
Это кстати да, хороший аргумент.
Другое дело, что за всю мою недолгую карьеру, я крайне мало видел реальных случаев имплементации одного интерфейса несколькими сервисами не в целях тестирования.
Тип даже звучит странно, вот я делаю две реализации одного интерфейса-сервиса.
Разве что этот сервис - это некая инфраструктурная хренотень, типо эвентбассов и подобного и мы условно хотим от кролика абстрагироваться. Но их-то и не обязательно таким макаром внедрять.

>Плюс, ты банально по всей кодовой базе размазывает конфигурацию DI.
Ну не знаю. Вот конфигурирование роутов - тоже мы размазываем по всей кодовой базе. Чет я мало видел ИРЛ примеров, чтобы кто-то в одном месте все прописал руками, какие методы дергать.
Аноним 17/09/22 Суб 00:17:09 2464780 834
>>2464767
То есть у жавы можно брать сторонние либы, а в шарпе нельзя? ну ну.

не завязано. Наоборот даже - ориентированность "что нужно бери стороннюю либу с нюгета" и отличает шарп
Мне жависты постоянно тыкают мол у вас того и этого нет из коробки.

И тут приходишь ты и все перевернул )
Аноним 17/09/22 Суб 00:21:08 2464783 835
>>2464773
Ну, роуты штука жёстко привязанная к контроллерам. Контроллеры у тебя обычно лежат в одной папке и где их искать ты всегда знаешь. Сервисы же у тебя могут по куче мест быть раскиданы, и в случае чего, тебе придется использование этих аттрибутов по всему проекту искать.
Плюс, не знаю как у вас, а мы обычно очень жёстко пилим приложение по слоям на проекты (отдельно Domain, отдельно ApplicationServices, отдельно Infrastructure, отдельно непосредственно сам Web/Grpc Api) и стараемся, банально, чтобы инфраструктура не протекала в бизнес логику. Это же лютая завязка всех компонентов приложения на конкретную деталь реслизации, такую как DI контейнер. Банально, если ты захочешь написать консольную утилиту, которая использует сервисы из проекта с ApplicationServices, то придется и в нее так или иначе тянуть DI.
Аноним 17/09/22 Суб 01:05:56 2464813 836
>>2464767
>Плюс - у жавы вариативность всяких решений
В шарпе все выходит на уровень стандартов и это круто, не нужно знать 100500 ORM или http серверов.

На самом деле это все восприятие от евангелистов с ютуба, реальность жабы куда страшнее. Тебе кажется что кругом разнообразие, но как только сделаешь шаг в сторону от топ либ (того же магического тормозного спринга), сразу такую кучу говна хлебнешь. Ты не поверишь, но даже в пхп дела куда лучше обстоят (я сам говна навернул, когда с пхп на жабу ливнул), попенсорс та еще обманка, куда лучше когда софт тебе пишет и сопровождает такая софтерная компания как майкрософт (ну или гугл или еще кто), чем кустари на коленке, делают то что надо их спонсору, или куда страшнее от скуки.

Жаба реально вывозит на своем звездеже, но на деле она уже близка к судьбе кобола. Хз покорит ли шарп мир, но блин точно сейчас не нужно лесть в jvm мир. Да и все равно сейчас проще нанять за твою зп пятерых индусов, чем держать такого мидла как ты.
Аноним 17/09/22 Суб 01:16:55 2464823 837
>>2464767
>я могу взять Netty, могу Mina
Потому что тупо ненужно. Ну вот серьезно, ты слезаешь с протокола хттп и с разу попадаешь на tcp/ip, что тебе еще нужно кроме как ручками этот TCP поюзать?? Ну дал тебе нетти пайплайн и что? За то теперь любой затык и ты часами сидишь куришь сорцы/маны на тему как это там работает, хотя этот пайплайн, если надо, написал сам бы за час.

Это очередная прмблуда, которую можно "продать" в тырпрайзном мире, но решает она куда меньше чем на самом деле нужно. да и вроде в шарпах клонировали этот твой нетти и как видишь не прижился

В общем, хватит жрать жырную и вредную пищу джавы, переходи на здоровое практичное программирование.
Аноним 17/09/22 Суб 09:54:06 2464928 838
Аноним 17/09/22 Суб 11:20:57 2464992 839
Можно передать в метод параметр с in, тогда это будет неизменяемая ссылка, а как сделать так, чтобы при передаче копированием тот параметр, куда я передал, был константным? Тоетсь как с in, но без передачи с ссылкой, а копированием?
Аноним 17/09/22 Суб 19:28:25 2465578 840
Аноним 17/09/22 Суб 19:34:22 2465583 841
Как отследить изменения репозитория бд?
Аноним 17/09/22 Суб 19:49:14 2465597 842
>>2465583
Ты про репозиторий со скриптами миграции? Что там сложного, кладёшь их под Git, и всё.
Аноним 17/09/22 Суб 20:11:46 2465612 843
image 114Кб, 900x700
900x700
Использую в коде во многих местах ArrayPool<T>.Shared для Rent и для Return.
Как убедиться или как проверить, что я нигде не забыл вернуть в все взятые напрокат массивы, и утечек памяти нет?
Аноним 17/09/22 Суб 20:15:22 2465620 844
Хочу создать словарик Dictionary<char, T> в котором char'ы будут проверяться с учётом игнора регистра.
Где взять побырому IEqualityComparer<char> для такого случая?
Аноним 17/09/22 Суб 20:28:21 2465632 845
>>2465612
Никак наверное. Всегда можно забыть.

Ну можешь анализатор написать проверяющий что если взяли в методе то в методе и вернули (и вернули без условий)
Можешь взять за правило использовать MemoryPool<T> и using
(и проверять анализатором его)

Есть ли такой готовый анализатор - хз
Аноним 17/09/22 Суб 21:52:25 2465698 846
>>2465612
Обернуть этот арейпулл в IDisposable хуйнюшку и в диспозе - возвращать. Тебе студия будет подсвечивать, что ты забыл задиспозить что-то.
Аноним 17/09/22 Суб 21:59:47 2465706 847
>>2465698
> IDisposable хуйнюшку и в диспозе - возвращать
это уже есть. MemoryPool

>Тебе студия будет подсвечивать, что ты забыл задиспозить что-то
С чего ей это делать? Откуда ей то знать где именно нужно вызывать Dispose и нужно ли. Это даже кодер не знает
Аноним 17/09/22 Суб 22:01:32 2465707 848
Все таки раздражает что нельзя сделать extension свойство и extension методы к статикам.
Аноним 17/09/22 Суб 22:07:25 2465714 849
Смотрите, вот в шарпе есть ивенты и у них есть очевидная проблема, что надо вручную управлять лайфтаймом - отписываться когда надо.

Есть ли хоть какой-нибудь вариант их в функцию передать или специальный контейнер закинуть, чтобы можно было в одну строчку потом от всех отписаться в нужном мне объекте? Вариант с двумя лямбдами в которых будет делатьсч подписка и отписка мне не подходит.

Или это ток кастомными реализациями обсервер паттерна делают?

Просто бля странно, что вроде бы это целая фича языка, а на практике не очень юзабельна...
Аноним 17/09/22 Суб 22:08:15 2465715 850
>>2465706
Если у тебя создается IDisposable в скоупе - студия подсвечивает, что ты его не диспознул.
Если у тебя передается IDisposable в конструкторе - анализатор - дает предупреждение, что нужно диспозить.
Аноним 17/09/22 Суб 22:13:57 2465722 851
>>2465715
ну покажи где студия это делает.
Моя студия с решарпером ничего подобного не делает

>в конструкторе - анализатор - дает предупреждение, что нужно диспозить.
это бредовый варнинг был бы. Впрочем не вижу варнингов. Студии абсолютно плевать, хоть все IDisposable утыкай
Аноним 17/09/22 Суб 22:20:27 2465728 852
>>2465714
именно так. Только кастомная реализация может дать требование передать ей lifetime и тем самым не дать возможность забыть.

В остальном же 2 ламбды. Ну а как иначе, если уже есть event и ничего ты с этим не сделаешь. Собственно и 2х ламбдовость не даст забыть сделать вторую ламбду. Но выглядит это коряво.
Аноним 17/09/22 Суб 23:17:48 2465789 853
>>2465714
пили свою реализацию обсервера
заодно решишь и проблему многопоточного доступа к event
Аноним 18/09/22 Вск 00:01:09 2465813 854
>>2465715
Использование ArrayPool часто подразумевает критичные к производительности места, когда нужен какой-то буфер промежуточный, и если он нужен маленький, то делается stackallock, а если большой - ArrayPool.Rent(). Эта логика либо оборачивается в ref struct'ы, либо в подобном контексте используется, поэтому явный IDisposable тут не применим. Хотя для шарпа IDisposable можно по утиному реализовать даже в ref struct'ах, и затем использовать using.
Аноним 18/09/22 Вск 11:33:38 2466028 855
>>2465578
>>2465578
Можно создать метод
int func(int a) {...}
и тогда то, что мы передадим, скопируется в локальную переменную a.
Можно создать метод
int func(ref int a) {...}
и тогда то, что мы передадим, просто получит другое имя
Если int func(in int a) {...}
то будет как в прошлом случае, но без возможности менять "a".
как сделать это, но с 1 случаем? Тоесть просто убрать возможность менять, но передать копированием?
Аноним 18/09/22 Вск 11:55:21 2466047 856
>>2464992
> Можно передать в метод параметр с in, тогда это будет неизменяемая ссылка, а как сделать так, чтобы при передаче копированием тот параметр, куда я передал, был константным? Тоетсь как с in, но без передачи с ссылкой, а копированием?

Если я тебя правильно понял, то ты хочешь передать по ссылке что-то в метод, при этом быть уверенным, что переданное по ссылке - не изменится внутри метода.
Что-то типа плюсового void foo(const int* const some){}

Ну так вот. Такой фичи из коробки в шарпах нету. Для этого тебе нужно иммутабельность реализоваывать в случае использования классов. Можешь - использовать readonly struct и readonly record, если у тебя там нет особой логики.
Аноним 18/09/22 Вск 11:57:58 2466049 857
1658184073580292.jpg 55Кб, 474x632
474x632
C# проприетарная параша. Мелкозалупа уже поссала на лица кодерков в прошлом году когда захотели сделать хотрелоад ЫНТЫРПРАЙЗ ОНЛИ фичей от чего у всех шарпомакак сгорела жопа https://github.com/dotnet/sdk/issues/22247 КАК ЖЕ ТАК, ХОЗЯИН ПРЕДАЛ И НАЕБАЛ

Не забываем про базу https://isdotnetopen.com/

Если вам нравится быть шлюхой под хозяином и терпеть все его выходки и ожидать что в один момент у эффективных манагеров что-то переклюнит в башке и они обговномидаснят ваш проект то ожидайте и в страхе

НУ НЕ МОГУТ ЖЕ ОНИ!!1!1 ЭТО ЖЕ РАЗОЗЛИТ ВСЕ КОМУНИТИ!
могут, вы для них халявные рабы, произошла бизнес оптимизация
Аноним 18/09/22 Вск 12:17:38 2466075 858
Аноним 18/09/22 Вск 12:18:40 2466077 859
>>2466049
>2021
Ты бы еще консервных банок притащил
Аноним 18/09/22 Вск 12:23:50 2466090 860
Есть гайд, как кодить на IL в райдере/визуалке?
Аноним 18/09/22 Вск 12:42:35 2466113 861
изображение.png 59Кб, 1134x478
1134x478
Решил попробовать devexpress с wpf, создал проект по их шаблону, и получил пик. Что за дела, как фиксить?
Аноним 18/09/22 Вск 12:51:08 2466124 862
>>2466049
>хотрелоад
Кто-то пользуется этой парашей? Она же в 9 из 10 кейсов не работает, и требует пересборки и перезапуска.
Аноним 18/09/22 Вск 13:03:49 2466140 863
>>2466124
Угу.. Бесполезная хрень

Лучше бы канвас деббагер вернули
Аноним 18/09/22 Вск 13:08:04 2466146 864
Аноним 18/09/22 Вск 13:11:24 2466149 865
>>2466146
Не застал, но судя по видяшке - реально прикольная фгиня.
Аноним 18/09/22 Вск 13:17:36 2466158 866
А как называется эта хуйня, где кусок кода с другого места показывается?
Аноним 18/09/22 Вск 13:18:23 2466159 867
>>2466146
>>2466149
Что мешает такую шнягу самому на экстеншонах запилить? Руки из жопы? Почему за вас всё майки должны делать?
Аноним 18/09/22 Вск 13:19:04 2466160 868
Аноним 18/09/22 Вск 13:21:56 2466165 869
>>2466159
С дебагером сложно работать
Вон oz-code так и не пофиксили проблемы их расширения
А родной дебаг примитивный
Аноним 18/09/22 Вск 15:06:58 2466270 870
>>2466047
Спасибо. Удивительно, что этого нет. Я думал это фишка шарпов постоянно что-то пилить новое, а тут такой базы не оказалось. Ты меня немного не понял, я спрашивал более экзотическую вещь, чисто ради интереса, а тут такое
Аноним 18/09/22 Вск 15:12:04 2466279 871
>>2466270
Твоя хотелка лишена смысла

Запрещать менять копию - какой в этом смысл?
Понятно почему этого нет
Ведь смысла в этом нет
Аноним 18/09/22 Вск 15:46:33 2466312 872
>>2466049
Вот тут интересно, маркетологи хотели прогнуть, но прогнули их. А вот в случае какого-нибудь Го, где комьюнити имели как хотели, никто даже не вспоминает. Какие же вы лицемерные, шизики.
Аноним 18/09/22 Вск 16:16:03 2466340 873
>>2466279
Ну я и написал, что это экзотический вопрос, чисто ради интереса. А то что нельзя передать ссылочный объект в функцию и быть уверенным что инфа самого объекта из кучи не изменится это странно.
Аноним 18/09/22 Вск 16:29:58 2466348 874
>>2466340
много чего нельзя
а так то оопешно это ридонли интерфейс нужон
Аноним 18/09/22 Вск 17:37:20 2466393 875
изображение.png 2Кб, 569x27
569x27
Почему у меня при создании миграции свойство Categories генерируется с запретом NULL?
Аноним 18/09/22 Вск 18:20:08 2466424 876
image.png 37Кб, 853x266
853x266
Где ошибка не понимаю?
Аноним 18/09/22 Вск 18:50:30 2466447 877
Аноним 18/09/22 Вск 19:07:01 2466463 878
>>2466424

Походу step - 1 преобразуется в инт, а в сигнатуре указано, что вторым параметром обязан быть байт

return pov(num, (byte) (step - 1) ); Можно без else
Аноним 18/09/22 Вск 19:41:01 2466498 879
image.png 52Кб, 1475x352
1475x352
>>2466463
Я так делал уже: всё равно ломается. Вообще с else кажется более логичным, если ветвление if предполагает покрытые всех случаев алгоритма, а без него кажется более логичным, если if выполняет функцию опционального ответвления от алгоритма. Как то красивее так и логичней
Аноним 18/09/22 Вск 19:42:32 2466502 880
>>2466113
> devexpress
Удивительно, как эта контора не наебнулась вслед за эмбаркадеро? Это какой-то привет из нулевых. Шли их нахуй. Юзай Авалонию!
Аноним 18/09/22 Вск 19:48:47 2466515 881
>>2466049
> вам нравится быть шлюхой под хозяином и терпеть все его выходки
Не нравится, но блять, покажи мне другую платформу, в которой я смогу:
1. Одной командой в консолечке скачать и установить платформу, без ошибок, остановок или вываливающихся километров стектрейса.
2. Второй командой в консолечке создать новый проект.
3. Третьей командой в консолечке скомпилировать и запустить проект. Без. Ошибок. Остановок. И прочей хуйни.
4. Открываю проект в ИДЕ и без задней мысли пишу код. It just works.

Я тебе отвечу, нет, ни одного решения с таким простым порогом входа. Поэтому тебе встречный вопрос, почему твой хозяин не сделал тебе такую простую систему?
Аноним 18/09/22 Вск 20:01:00 2466533 882
шарпач, есть код на С++, а С++ я не знаю от слова совсем, ну как, похоже на С# но чет совсем не то
как это портировать на шарпы?
Аноним 18/09/22 Вск 20:03:13 2466536 883
>>2466533
Легко, учишь C++, и необходимость портировать пропадает.
Аноним 18/09/22 Вск 20:04:52 2466538 884
Безымянный.png 16Кб, 589x244
589x244
Аноним 18/09/22 Вск 20:07:33 2466541 885
>>2466536
нет, портировать все равно надо, я использую unity
Аноним 18/09/22 Вск 20:08:32 2466542 886
>>2466541
Так учи unreal и не используй unity.
Аноним 18/09/22 Вск 20:24:34 2466556 887
>>2466049
>Если вам нравится быть шлюхой под хозяином и терпеть все его выходки
Будешь так кучеряво базарить, то анон сделает один звоночек дяде Биллу и тот купит твою маму, сдаст её в гарем по цене цветмета за кг. и станет на миллиард богаче.

>>2466498
>если ветвление if предполагает покрытые всех случаев алгоритма
Если не if то это дефакто else тем более если ты в обоих случаях возвращаешь значение.
Аноним 18/09/22 Вск 20:26:59 2466563 888
>>2466515
Какие нахуй хозяины, вы ебанулись?
Ряяя хазяен нам платформу диктует ((((
Ряяя хазяен на фичи языка диктует ((((
Ряяя хазяен процесорные инструкции нам диктует ((((
Ряяя клятые транзисторы хазяен диктует (((
Ряяя а че там только електроны бегают хачу на частицах кала вычислять ((((
Аноним 18/09/22 Вск 20:42:35 2466583 889
>>2466424
Во время арифметических операций все приводится к инту (от меньшего к инту).
Выражение "byte - 1" возвращает int

(number, (byte)(step - 1))
Аноним 18/09/22 Вск 20:54:52 2466590 890
>>2466583
(number, (byte)(step - 1)) * number
Тоже к инту приведет
Аноним 18/09/22 Вск 21:02:21 2466598 891
>>2466563
Да не трясись ты. Анон заговорил о хозяевах, мы поддержим его перверсии. У меня проблем с этим нет. А ты чёго триггернулся?
Аноним 18/09/22 Вск 21:31:51 2466627 892
>>2445746 (OP)
Аноны, молю, дайте годный туториал по взаимодействию EF с Postgres'ом. Желательно чтоб был и code first и database first, и чтоб CRUD был по-человечески объяснен и как хранимые процедуры юзать.
Вот с Dapper'om вообще все просто и понятно, но глядя на вакансии, везде требуют EF.
Аноним 18/09/22 Вск 21:38:58 2466637 893
Аноним 18/09/22 Вск 22:29:02 2466688 894
>>2466637
Есть ли в продаже этот курс на торрентах?
Аноним 18/09/22 Вск 23:10:23 2466742 895
>>2466688
А что толку от курса на торрентах? Нет живой связи с преподавателем. Ты сделал ДЗ, а его никто не проверил. Ты саму суть обучения упускаешь.
Аноним 18/09/22 Вск 23:26:32 2466756 896
>Ты сделал ДЗ, а его никто не проверил.
Там обычно дз вообще не имеют ничего общего с реальным миром, ценность их нулевая, так как не откладывается ассоциация в голове.
Никогда их не делал, вкатился норм в айти.
Лучший ментор - это ковыряние в исходниках, а курсы это попил бобла ибо сфера слишком сложная чтобы уместить в один курс. Это равносильно пойти на курс хирурга, или зубного врача, где тебе расскажут про инструменты и дадут потыкать в лягушку.
Аноним 18/09/22 Вск 23:29:58 2466760 897
Аноним 18/09/22 Вск 23:33:17 2466764 898
Если я заведу переменную
> Dictionary<object, object>
Ментор не сильно разозлится?
Аноним 18/09/22 Вск 23:52:23 2466781 899
>>2466760
А вот и ментор, у которого спиздили курс.
Аноним 18/09/22 Вск 23:52:31 2466782 900
>>2466049
Ты заставил меня задуматься, но какая альтернатива для языка общего назначения? Жаба тухнет и там только веб, у го тоже веб, раст там на дне копашится. Какие альтернативы шарпу, если я хочу и веб писать и игры делать?
Аноним 18/09/22 Вск 23:54:57 2466784 901
>>2466764
Когда ты так пишешь, в мире рождается еще один джавист.
Аноним 18/09/22 Вск 23:58:48 2466789 902
image.png 2068Кб, 1920x1280
1920x1280
>>2466784
А вот и я! Вкатываюсь в тред, засранцы!
Аноним 19/09/22 Пнд 04:37:22 2466871 903
>>2466538
>>2466583
Спасибо. Я че то даже не подумал одновременно и там и там привести.
Аноним 19/09/22 Пнд 06:24:28 2466878 904
>>2464757
Бля, вот это действительно охуенно.
Если там еще и производительность 2Д рендера в нормальный вид привели (батчинг), то я даже сдую пыль со своих двух-годовалых проектов, чтобы поразвлекаться на досуге.
Аноним 19/09/22 Пнд 09:46:42 2466942 905
Есть один небольшой метод, который берёт цвет в каком-то странном формате в виде инта и конвертит его в формат нормальный
https://pastebin.com/dfnxbBjw
С ним всё нормально, но теперь мне нужен реверс, чтобы из нормального формата конвертило опять в этот всратый и у меня почему-то не получается, не то число выходит. Пробовал вот так
int.Parse(Color.Trim('#'), System.Globalization.NumberStyles.HexNumber)
И ещё более всратыми способами. Жопой чую, что это должно элементарно делаться, но туплю
Аноним 19/09/22 Пнд 11:20:55 2466996 906
Когда написано в коде с дженериком тип T?, а на T нет ограничений class или struct, и nullable enabled. Что это вообще значит? T? Если это структура, то по идее она должна оборачиваться в Nullable<T>, но этого не происходит. Какой-то мутный непродуманный запутывающий синтаксис.
Аноним 19/09/22 Пнд 15:18:01 2467202 907
>>2466782
Нет таких альтернатив, к сожалению. Как нет и технологий без проприетарщины. Даже иде все проприетарные.
Аноним 19/09/22 Пнд 15:29:32 2467206 908
Насколько мне как джуну надо разбираться, как там в ASP внутри создается IHost и как вообще работает вся внутрянка фреймворка?
Аноним 19/09/22 Пнд 15:51:53 2467216 909
Как перекинуть рабочий экзешник другу? Написал код, у меня все работает, а у него нет. Как я понимаю, нужно пользоваться "сборкой решения"? А где этот выходной файл, собранный файл? Или что то не то я делаю? Библиотек никаких дополнительных нет
Аноним 19/09/22 Пнд 17:12:30 2467277 910
Что почитать на тему устройства wpf? Чтобы понимать, как xaml преобразуется в код, как работют свойства зависимости, логическое и визуальные деревья и тд.
Аноним 19/09/22 Пнд 18:18:49 2467312 911
>>2467277
хз зачем тебе такие детали
А для начала тебе на professorweb.ru
Аноним 19/09/22 Пнд 19:06:26 2467348 912
Немного глупый вопрос, но всё же. Как происходит поиск товара, допустим, на сайте DNS? Для этого используется NOSQL база данных или обычная, например, PostgreSQL. Просто я слышал, что запросы к SQL базе данных медленные, вот решил спросить.
Аноним 19/09/22 Пнд 19:11:36 2467354 913
>>2467348
Зависит от нагрузок. Если бы не амазон или ягодки, может хватить и sqlite.
Аноним 19/09/22 Пнд 19:13:38 2467357 914
>>2467354
Ясненько, я щас хочу подучить PostgreSQL и написать анолог магазина DNS. Спасибо
Аноним 19/09/22 Пнд 19:28:04 2467371 915
>>2467312
>professorweb.ru
Майнер покормить?
Аноним 19/09/22 Пнд 19:34:58 2467383 916
>>2467371
Ставь нормальный браузер где можно поставить блокировщик рекламы
Аноним 19/09/22 Пнд 19:41:56 2467394 917
Аноним 19/09/22 Пнд 19:43:00 2467397 918
>>2467383
Нахуя мне сайт какого-то индуса с вредоносным по, когда есть божественный мсдн?
Аноним 20/09/22 Втр 02:55:09 2467647 919
>>2467348
>обычная
this

>что запросы к SQL базе данных медленные
Всё не так страшно как кажется главное не использовать по 50 join'ов в запросе и для этого майки рекомендуют использовать для работы с БД\Файлами async await как я помню.
Аноним 20/09/22 Втр 03:10:34 2467649 920
>>2467348
>запросы к SQL базе данных медленные, вот решил спросить
Запрос к нормализованным данным может быть медленным. Все зависит от того как это все нужно собрать в кучу
Для этого и используются индексы, а в некоторых случаях некоторая денормализация базы

Со всякими же JSON расширениями приходят и фишки NoSQL
Аноним 20/09/22 Втр 05:46:41 2467669 921
изображение.png 894Кб, 1978x810
1978x810
Студия начинает сильно тормозить на этому участке кода, это в самой студии говнокод, или решарпер поднасрал?
Аноним 20/09/22 Втр 05:58:49 2467672 922
>>2467669
редакторы с подсветками не любят длинные строки.
Аноним 20/09/22 Втр 08:56:34 2467723 923
Аноним 20/09/22 Втр 09:10:53 2467737 924
>>2466942
>в каком-то странном формате в виде инта
Это не странный формат, а aRGB.
Аноним 20/09/22 Втр 09:18:29 2467744 925
>>2466942
Хотя, нет. Спиздел.
Это aBGR.
Тебе по факту нужно просто нужно у полученной строки поменять местами символы отвечающие за R и B компоненты местами и потом полученную строку распарсить обратно в int через TryParse используя перегрузку с NumberStyles.HexNumber.
Правда alfa компоненту ты уже не получишь, т.к. она будет утеряна.
Аноним 20/09/22 Втр 18:18:18 2468205 926
Мужики ржаные гречневые, за сколько времени вы начинали понимать что на работе происходит?
У меня вот испытательный срок в тырпрайз конторе, там этих сущностей таблиц миллион (первая работа) и я чёт пока так тяжело в них ориентируюсь. В коде вроде норм, а вот в связях этих всех пиздец
Аноним 20/09/22 Втр 18:54:02 2468245 927
Объясните мне, нахуя в шарпе забанили множественное наследование? ОНО МНЕ НУЖНО БЛЯДЬ

Челики просто не осилили разрешения конфликтов и дропнули?
Аноним 20/09/22 Втр 19:10:14 2468266 928
>>2468245
Ты думаешь, что оно тебе нужно, но на самом деле оно тебе не нужно.
Аноним 20/09/22 Втр 21:17:52 2468462 929
>>2468266
Двачую этого.
>>2468245
> не осилили разрешения конфликтов
Осилили. При помощи множественной имплементации интерфейсов, вместо множественного наследования объектов. И визуально и логически ты получаешь то же самое. Только архитектурно различается.
Аноним 20/09/22 Втр 21:31:04 2468475 930
>>2468462
>ты получаешь то же самое
нет. это все таки разные вещи

просто не нужно это множественное
Аноним 20/09/22 Втр 21:36:40 2468486 931
>>2468475
Архитектурно, я повторяюсь, разные. Семантически, если убрать из имён интерфейсов букву И, наш страдалец получит то же самое, чего он там хотел:
> class Dvacher : Mammal, Male, Human, BurgerEater, ChairSitter, LifeDropper {}
Аноним 20/09/22 Втр 21:40:56 2468492 932
>>2468486
>>2468462
Маня, ты дурак? А где в интерфейсах приватные методы и поля?

А ОНИ МНЕ НУЖНЫ БЛЯДЬ!
Аноним 20/09/22 Втр 21:53:58 2468510 933
>>2468486
семантически это тоже разные
то что дают интерфейсы можно трактовать как миксины не более

но поскольку лично я сторонник делегирования, то не страдаю.
Аноним 21/09/22 Срд 00:07:49 2468668 934
>>2468510
Либо я тебя не понимаю, либо ты меня.
Я говорю, что если у объекта есть нужные атрибуты, ты берёшь их и пользуешься. И они возвращают нужные тебе значения, или производят нужные тебе действия. И именно на этом уровне нет разницы, унаследован ли атрибут, имплементирован, или подмешан. Он есть. Он просто работает. Разницы нет.
Тоже самое касаемо коллекций. Ты объявил коллекцию типа ArtCreator creators; и добавляешь в неё всех, у кого есть интерфейс IArtCreator, вне зависимости от того, каким образом в добавляемые объекты пришли те атрибуты, которые реализуют этот интерфейс в конечном объекте. Эти арт-креаторы могут быть людьми, ИИ-нейросетями, разумными грибами, пришельцами с Плеяд, кем угодно. И иерархию этого "как угодно" можно сделать сотней разных архитектур. Но на поверхности мы увидим только набор атрибутов, который нас интересует, нас устраивает.
Аноним 21/09/22 Срд 00:13:19 2468675 935
>>2468668
Все просто
У тебя есть абстрактный родительский класс. Он может иметь состояние - то есть приватные переменные что то хранят, приватные методы для удобства, то есть ведет себя как самый обычный класс

Интерфейс же эквивалентен как если бы мы extension методы написали - то есть ничего хранить не можем, все что есть в this ( и оно публичное обязательно должно быть) - с тем и можем работать. И даже приватные методы для удобства не можем.

Во множественном наследовании второй (и вообще все) родительский класс имеет те же возможности как и обычный родительский класс без множественного

Снаружи это выглядит одинаково, но внутри небо и земля.
Аноним 21/09/22 Срд 00:15:30 2468679 936
>>2468668
и желающему множественное наследование нужны возможности внутри, а не снаружи. Снаружи всегда будет одинаково - что при множественном, что без (с интерфейсами)
Аноним 21/09/22 Срд 00:20:48 2468682 937
>>2468675
> Все просто
> У тебя есть абстрактный родительский класс.
Да ты блять угашенный штоле?
Я тебе в третий раз повторяю, на уровне использования готового объекта я не знаю и мне не интересно, кто у него там родитель. У него есть атрибуты, я беру их и пользую. Всё.
Аноним 21/09/22 Срд 00:21:47 2468684 938
>>2468679
> желающему множественное наследование нужны возможности внутри, а не снаружи
Тащемта ему сразу сказали, что он что-то навыдумывал себе неправильное.
>>2468266
> Ты думаешь, что оно тебе нужно, но на самом деле оно тебе не нужно.
Аноним 21/09/22 Срд 00:23:20 2468685 939
>>2468682
это ты угашенный видимо.
тебе в очередной раз повторяю

интересует не возможность описать контракт - что могут интерфейсы

проблем "контракт снаружи" не стоит - в обоих случаях ОДИНАКОВО!!!!!!!!!!!!!!!!!!

А возможности РЕАЛИЗАЦИИ внутри этого контракта с полным состоянием
Аноним 21/09/22 Срд 00:25:20 2468686 940
>>2468684
Ну вообще не особо нужно. Все зависит от привычек. Я вот пишу на шарпе много и мне привычно делегировать, потому что сразу заложились привычки в силу того что есть в языке.

В питоне использую множественное ибо у такого наследования есть реально плюшки.

В котлине вовсю юзаю методы расширения, ведь в котлине упор на DSL-ость. (а вот в шарпе их избегаю ибо они не могут быть описаны в контракте)
Аноним 22/09/22 Чтв 23:48:46 2471246 941
image.png 21Кб, 439x196
439x196
Видали как могу?
Аноним 22/09/22 Чтв 23:50:19 2471248 942
Аноним 22/09/22 Чтв 23:55:26 2471257 943
>>2471248
Нет, я байтоёб упрощённый, из мира .NET. Еще и zero-allocation сериализацию можно сделать если забайтоёбить unmanaged типы. В C# 7 майки еще и забайтоёбили Linq, он теперь при возможности на Vector<T> переходит. А пиздежа-то было про байтоёбство, а ведь это единственно верный путь к настоящему программированию
Аноним 23/09/22 Птн 00:19:59 2471271 944
>>2471257
нихуя ты с джунглей вылез
Аноним 23/09/22 Птн 14:15:49 2471597 945
>>2471246
Прикольно! Охуели всем тредом!
Аноним 23/09/22 Птн 16:08:53 2471727 946
image.png 541Кб, 1200x883
1200x883
image.png 193Кб, 1792x700
1792x700
У ASP действительно такая проивзодительность, или там специально набайтоебили с ансейфом и неприменимой хуетой, как чел выше?
Если там нормальный код без крестоебства, то почему всем крупным компаниям до сих пор похуй на шарп?
Аноним 23/09/22 Птн 22:33:39 2472132 947
>>2471727
>почему всем крупным компаниям
А ты во многих крупных компаниях был, чтобы такие выводы делать?
Я тебе даже больше скажу, даже работая в такой компании - хуй ты сходу скажешь какой у нее стек преобладает, т.к. знать ты будешь только то на чем пишет твоя команда и пара смежных. А что в соседнем отделе, хуй ты узнаешь.
Аноним 23/09/22 Птн 22:59:59 2472163 948
>>2472132
Брат, ну давай без коупинга по этому поводу. Выше уже был срач про использование шарпа, го и жабы во всяких гуглах, и шарп очевидно проебывает. Стартапы тоже - даже котлин с обоссанным жвм берут, но на шарп как-то всем пох.
Мне больше интересно - производительность-то какая будет в реальных условиях, без ансейф байтоебли? Есть бенчмарки?
Как примерно чувствуете, шарп с кором выстрелит еще сильнее со временем и вообще заменит жабомир, или так и останется на подсосе у жаб и го?
Аноним 24/09/22 Суб 11:42:12 2472368 949
>>2471727
Глянул одним глазком
https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/CSharp/aspnetcore-corert/PlatformBenchmarks
таких извращений как выше нету. Ансейф только для UnsafePreferInlineScheduling
Но в целом такой код ты на прод не увидишь, его пишут авторы Нет рантайма и довольно жестко оптимизируют.
аватарки бейля - пидорасы
Аноним 24/09/22 Суб 12:12:39 2472381 950
image.png 247Кб, 500x510
500x510
ХХОСПАДЕ....КАКОЙ ЖЕ ПРЕКРАСНЫЙ ЯЗЫК Я ПРОСТО В ШОКЕ!! Столько фич, такой быстрый, хорошая оптимизация, приятный синтаксис, две великолепные IDE........................
Аноним 24/09/22 Суб 12:17:52 2472386 951
>>2472381
Не дохлая жава - уже хорошо
Аноним 24/09/22 Суб 17:32:30 2472709 952
>>2464619
>В целях безопасности в асп выпилили идентифицирующие хедеры
а можно ссылку какую-нибудь на это? а то меня как вкатыша напугала эта статистика...
Аноним 24/09/22 Суб 18:22:13 2472753 953
Есть один WPF-проект с переопределённой точкой входа, чтобы было удобнее работать с четырьмя независимыми окнами одновременно Это условие лабы, уменьшить количество нельзя. Но из-за этого после открытия окон они сразу же закрываются, т.к. программа доходит до логического завершения.

В связи с чем сам вопрос — каким грязным хаком я могу заставить свой грязный хак работать нормально? Вечный цикл после открытия всех окон? Какая-то пауза? Где-то есть настройка вечной работы с окнами? При этом вся информация с окон стекается в один обработчик, по сути
Аноним 24/09/22 Суб 18:55:10 2472800 954
>>2472753
Кто куда доходит. Запущенное окно и есть эта точка даже если не модально
Аноним 24/09/22 Суб 20:03:01 2472859 955
изображение.png 37Кб, 519x287
519x287
>>2472800
Доходит до конца main и заканчивается, что ожидаемо. Но мне этого не надо
Аноним 24/09/22 Суб 20:03:20 2472860 956
изображение.png 37Кб, 519x287
519x287
>>2472800
Доходит до конца main и заканчивается, что ожидаемо. Но мне этого не надо
Аноним 24/09/22 Суб 20:12:53 2472875 957
>>2472859
какой еще маин. переопределяй метод OnStartup
(ну и из хамла App.xam не забудь убрать вызов)

и в этом методе запускай окна как хочешь
Аноним 24/09/22 Суб 20:45:06 2472904 958
Аноним 24/09/22 Суб 20:59:23 2472912 959
goautism2.png 136Кб, 612x401
612x401
>>2472163
Срач был в твоем маня-мирке, а так тебя там обоссали и объяснили, что шарп второй язык в интернете (как по количеству, так и по миллионникам, даже при условия того что хедеры asp убрали тонну лет назад).

Все тесты там настоящие, единственное где-то есть без mvc, то есть вариант для API, никакого байтоебства нет. Но радует, что если надо, можно навернуть максимум железный код (который обычно нужен в 1 случае из 100).

Но ванильный го, необрезанный, не вывозит даже противостояние с mvc
Аноним 24/09/22 Суб 21:19:42 2472932 960
>>2472709
Где-то еще в 2009 началось безумие и все, даже в пхп начали удалять хедеры с ответом. Что ты именно хочешь узнать и что тебя напугало? Запусти сервер и посмотри x-powered-by.
Аноним 24/09/22 Суб 22:01:16 2472968 961
>>2472875
Это был самый прямой и очевидный способ

>>2472904
Выглядит рабочим, попробую
Аноним 25/09/22 Вск 09:50:54 2473162 962
>>2472932
>что тебя напугало?
что шарп теряет популярность судя по голой статистике
>Запусти сервер и посмотри x-powered-by.
я вкатышек который проходил только паскаль и си в школе и на первом курсе, шарп пока не трогал даже, собственно этого не умею.. можешь показать немощному?
и подсказать что выбрать для бэкэнда, без фанатизма? выбор сейчас между джавой и шарпом, в го я так понимаю вкатышам без опыта дорога закрыта
Аноним 25/09/22 Вск 10:14:40 2473165 963
16629625794320.jpg 194Кб, 1280x906
1280x906
>>2473162
>что шарп теряет популярность судя по голой статистике
Оно стало размазываться из-за того что стали прятать хедеры.
С нет-кором популярность шарпа только стала расти, так как нет больше потребности нюхать старую жабу или топорный бойлерплейтный го.

>подсказать что выбрать для бэкэнда
Смотри работу в своем мухосранске или куда будешь релокейтиться. Вкатышам везде трудно, в ИТ сейчас нехватка спецов и переизбыток джунов или крудеров.

Сейчас еще создадут какие-нибудь самооптимизирующие модели, которые будут на декларативном диалекте генерировать круды и айтишечка вообще схлопнется, останутся только тру-инженера.
Аноним 25/09/22 Вск 10:57:39 2473178 964
>>2473165
>стали прятать хедеры
то есть по умолчанию нет хедеров с какого-то года? тогда понятно почему статистика такая. или ты хочешь сказать что хедеры вручную убирают?
>мухосранске
я в дефолт городе. в общем с точки зрения перспектив технологии лучше шарп выбрать? (вакансий то вроде везде много)
Аноним 25/09/22 Вск 12:17:56 2473237 965
>>2473178
>то есть по умолчанию нет хедеров с какого-то года? тогда понятно почему статистика такая. или ты хочешь сказать что хедеры вручную убирают?
Тут я возможно ошибся или перепутал, не могу сейчас поднять дефолтный сервер. Но на работающих приложениях у меня хедеров этих нет (но и новость не нашел, поэтому засомневался).

>дефолт городе. в общем с точки зрения перспектив технологии лучше шарп выбрать? (вакансий то вроде везде много)
Считаю шарп/дотнет перспективной технологией, потому что жаба не стоит тех денег с чем приходится там работать в бэкенде, как бы там не натягивали жабу, но это чистой воды COBOL Серьезно, считаю, что даже пхп будет лучше, чем жаба
Аноним 25/09/22 Вск 13:35:31 2473352 966
image 195Кб, 1659x897
1659x897
>>2465612
Очередное подтверждение, что C# - это детский игрушечный язык. И как следствие, программисты-макакингеры упускают из виду решения, которые давно известны.
В языках для взрослых, типа С и С++, такие проблемы умели решать ещё 40 лет назад.
Все Rent и все Return нужно обернуть в конструкцию #if DEBUG / #else / #endif.
И в дебаг-режиме вместо прямого использования ArrayPool<T>.Shared, использовать обертку с подсчётом одалживаний и возвратов.
Аноним 25/09/22 Вск 13:51:47 2473369 967
>>2473165
>переизбыток джунов
Подмена понятий.
Переизбыток претендентов на джунов. Реальных джунов - дефицит.
Аноним 25/09/22 Вск 17:57:57 2473709 968
Можно ли в студии включить предупреждение статического анализатора, что в свитчах не представлен исчерпывающий перечень енумов?
25/09/22 Вск 21:53:34 2473972 969
Как там собесы сейчас проходят? Литкоды уже везде?
Вопросы какие? инбифо: хуи сосал?
Аноним 25/09/22 Вск 22:46:26 2474014 970
Флешкаcыпется.png 32Кб, 866x700
866x700
16638221414320.png 11Кб, 421x338
421x338
16638221414332.png 65Кб, 602x660
602x660
>>2445746 (OP)
Анон, смотри.
Иногда флешка тупо сыпется случается пикрилы.
Первое, чо пришло в голову, при такой хуйне - сделать raid-1 массив, из двух флешек.
Но хуй знает как, для этого нужны какие-то железяки, и короче raid-1 контроллеры, там.

Поэтому, пришла в голову другая мысль.
Очевидно, что если флешка сыпется, то несколько копий не поможет, однако очевидно, что несколько копий на флешке - нужно иметь.

Ну так вот, мысль состоит в следующем.
Пусть есть две посыпавшиеся копии одного и того же файла, или даже копии раздела, тома с файлами.
Пусть эти файлы/тома, читаются прогой в два потока.
Если ячейки битые, и контрольные суммы секторов - невалидные, то - заполнение сектора - нулевыми байтами.
Если в одном потоке - нулевые байты, а в другом потоке - какие-то данные - данные, то XOR секторов.
В реультате, с двух, посыпавшихся копий, а лучше из трёх-четырех, вероятностно-предопределённо получится изначальный файл,
который можно записать снова в две-три копии, если было задетекчено, что предыдущие копии посыпались, и содержат битые сектора.

Вопрос. Как реализовать сие на шарпе, и стоит ли использовать шарп?
Первое что приходит в голову- это работать с байтами, внутри filestream.
А вообще, хотелось бы заебенить это на уровне драйвера какого-нить, чтобы тупо разделить флешку на два-четыре раздела, заебенить raid-1 на этой флешке, и подмонтировать всю хуйню, как один раздел поменьше, с регулярной перезаписью данных в нормальные, не битые сектора.
Аноним 25/09/22 Вск 23:01:08 2474019 971
>>2474014
Ты ебанутый?
Хочешь до пенсии на своей флешке криптоговно держать?
Аноним 26/09/22 Пнд 01:48:04 2474139 972
>>2474019
Ну а как ещё с такими? Или хочь сказать, что щас бы самое время всё посливать нахуй - за обоссанные эти копейки ёбанные?
Аноним 26/09/22 Пнд 03:30:26 2474169 973
>>2473709
Да. В .editorconfig прописываешь следующее:

dotnet_diagnostic.CS8509.severity = error

Теперь если если в switch-e с enum-ом будет какой-то недостижимый вариант, то будет ошибка. Чтобы ее не было, нужно либо чтобы были расписаны все варианты енамов, либо был default.

Еще можешь добавить вот такую команду:

dotnet_diagnostic.CS8524.severity = none

Это отключит предупреждение если у тебя расписаны все варианты, но нет дефолтного.
Аноним 26/09/22 Пнд 17:37:05 2474674 974
Если в вакансии написано винформы и асп.нет это сейчас актуально?
Аноним 26/09/22 Пнд 18:01:23 2474706 975
>>2474674
Винформы точно нет.
Про Asp.Net нужно уточнять. Если это обычный, .Net-фреймворковый Асп - то нахуй. Если Asp.Net Core то - актуально.
Но в нормальных конторах обычно знают разницу и везде указывают приставку Core.
Аноним 26/09/22 Пнд 18:04:17 2474712 976
>>2474706
> Про Asp.Net нужно уточнять. Если это обычный, .Net-фреймворковый Асп - то нахуй. Если Asp.Net Core то - актуально.
А между ними такая большая разница?
Аноним 26/09/22 Пнд 18:07:06 2474717 977
>>2474706
Написано без Кор, просто асп.нет. Поэтому стремаюсь немного. Как бы там скуфидронов небыло, которые затянут меня в бесперспективный кал мамонта свой.
Аноним 26/09/22 Пнд 18:32:15 2474745 978
Как вашу хуйню учить-то? Дайте книги какие-нибудь.
Аноним 26/09/22 Пнд 21:09:18 2474909 979
>>2474139
На листочек свои ключи перепиши - надежнее будет, чем твои костыли.
Аноним 26/09/22 Пнд 21:54:32 2474956 980
Есть какая книга или цикл статей о разработке крупных систем?
Вот желательно было бы в виде истории типо начали разрабатывать интернет магазин сделали, а потом начали допиливать и вот такие косяки вылезли.
Везде пишут как правильно но ни кто не пишет как не правильно(
Я уже второй раз пытаюсь написать свой сервис и блять через неделю получается такая ебань что я не могу вообще разобрать как и почему это работает.
Аноним 26/09/22 Пнд 23:16:58 2475025 981
>>2474706
>Винформы точно нет.
И какие же альтернативы для написания легковесных приложений для ПК с виндой?
Аноним 27/09/22 Втр 00:52:31 2475097 982
>>2474712
Для разраба в принципе не особо. Есть некоторые запарки и ньюансы, но не критично.
Вопрос в работодателе, если у него там до сих пор .net framework и он не собирается переходить на core, то делать там нехуй.
Аноним 27/09/22 Втр 00:53:17 2475098 983
>>2474717
>Как бы там скуфидронов небыло, которые затянут меня в бесперспективный кал мамонта свой.
Скорее всего ты будешь там один и будешь тянуть на себе весь этот 'кал мамонта'
Аноним 27/09/22 Втр 01:09:53 2475110 984
>>2475025
>И какие же альтернативы для написания легковесных приложений для ПК с виндой?
Да пиши пожалуйста, только это не та область (десктоп) где сейчас хоть как-то нормально заработать можно. Вопрос, то про вакансию изначально был, а не про хобби.
Аноним 27/09/22 Втр 02:16:35 2475130 985
>>2474909
А если забуду где лежит листочек?
Аноним 27/09/22 Втр 03:25:49 2475153 986
>>2475130
опубликуй ключи тут. Кто-нибудь да запомнит и подскажет.
Аноним 28/09/22 Срд 13:50:57 2476426 987
Хочу назвать таблицу БД Image, как избежать конфликтов имён?
Аноним 28/09/22 Срд 13:54:54 2476430 988
Аноним 28/09/22 Срд 16:11:40 2476558 989
Почему не грузится?
Аноним 28/09/22 Срд 16:11:56 2476559 990
изображение.png 11Кб, 1071x228
1071x228
Аноним 28/09/22 Срд 16:14:25 2476564 991
Уважаемые, кто знает где достать BufferedStream который имел бы динамический размер буфера, или хотя бы позволил один раз поменять его размер? А то мне нужно в потоке сначала взять небольшое число байт и принять решение с какого места продолжать чтение большими блоками.
Аноним 28/09/22 Срд 16:20:36 2476572 992
Работяги хотел кое-что спросить в профессиональном плане.
Я сейчас работаю в финтехе, пишу под мобилке на кросс платформе(Flutter). Вакансий по стране(не снг) не так много, штук 15. Возвращаться в Андроид натив не хочу, так как не хочу работать в узком направлении и запирать себя на определенной платформе.
Я думал перейти в бекенд. Думал о Java либо C#, так как nodejs, golang это не то. Посмотрел как изменился сишарп за последние годы, очень впечатляюще да и вакансии есть

Стоит тратить время и переходить в С#?
Можно теоретически если подтяну знания попробовать податься на мидла или нужно с джуна начинать?
Аноним 28/09/22 Срд 16:33:15 2476601 993
>>2476558
Короче всё, без впн доступа к серверам майков больше нет.
Аноним 28/09/22 Срд 17:39:07 2476683 994
>>2476572
>Стоит тратить время и переходить в С#?
Если ты уже в финтехе, то стоит. Там сейчас много где шарп используется. И даже старые предпочитают на .net6 перетаскивать, а новые сразу на нем делают.

>Можно теоретически если подтяну знания попробовать податься на мидла или нужно с джуна начинать?
Скорее на мидл++, т.к. в финансах сейчас только опытных набирают. В некоторых банках уже ниже ведущего разраба и нет никого. Джунам там точно ничего не светит.
Аноним 28/09/22 Срд 17:57:43 2476700 995
>>2476683
А не будет смущать работодателя, что опыта в беке нет? Либо стоит немного приукрасить резюме?
Аноним 28/09/22 Срд 17:57:43 2476701 996
>>2476683
> ниже ведущего разраба и нет никого
И кого же ведёт этот ведущий, если никого нет?
Аноним 28/09/22 Срд 20:58:03 2476799 997
>>2476701
Про голландский штурвал не знаешь?
Аноним 28/09/22 Срд 22:01:08 2476833 998
>>2476799
Но никого же нет, он один там "ведущий". Причём тут твой гейский штурвал?
Аноним 28/09/22 Срд 22:47:16 2476874 999
Котаны, насколько сейчас C# и .net core в частности даёт проспаться джаве?
Правильно ли я понимаю, что благодаря последним изменениям и переходу к кросплатформе, нет смысла использовать джаву в новых проектах?

Насколько это верно? Стоит ли ожидать увеличение вакансий в будущем?
Аноним 29/09/22 Чтв 01:39:20 2477002 1000
>>2476874
Отмотай время на три года назад и сравни сколько вакансий было в 2020-м и сколько в 2021-м. Вот и ответ на твой вопрос. 2022-й год по понятным причинам в обзор не берем.
Аноним 29/09/22 Чтв 02:05:47 2477013 1001
>>2477002
Но брать 22 нужно. Фиг уже знает что будет дальше. Мелкософт не показал себя непредвзятым.
Аноним 29/09/22 Чтв 03:43:16 2477026 1002
>>2477013
>Но брать 22 нужно. Фиг уже знает что будет дальше.
Все это так же применимо и к другим платформам/языкам. Даже на опенсорс не стоит надеятся, как показал предыдущий год - там тоже дохуя ебанутых крыс, говтовых подкинуть говна.
Поэтому тут все в равных условиях.
>>2477013
>Мелкософт не показал себя непредвзятым.
Да и похуй совершенно. Core сейчас позволяет полностью вести разработку совсем не касаясь майковской инфраструкту.

Я тебе даже немного инсайдов подкину. В тех же банках, которые подпали под санкции, спокойно продолжают наяривать на дотнете и переводить старые/разрабатывать новые проекты на .net6 и даже, сюрприз, корпоративные лицензии на студию 2022-ю покупают. Сервера только с винды, на линуксы потихоньку переводят, там где еще не перевели, но и то, в основном, из соображений экономии.
Аноним 29/09/22 Чтв 04:11:57 2477032 1003
>>2477026
>спокойно продолжают наяривать на дотнете
речь не о говне, а об ожиданиях говна
им то незачем менять, вон как с коболом
а другой, которому только выбирать - подумает

да и что банки
и в те банки, что уже есть, не попадешь (а новых не будет)
Аноним 29/09/22 Чтв 05:48:34 2477050 1004
изображение.png 7Кб, 565x29
565x29
изображение.png 5Кб, 509x32
509x32
Студия предлагает исправить первый пик на второй, но по мне так он куда менее очевиден, разве я не прав?
Аноним 29/09/22 Чтв 06:34:48 2477061 1005
javaiscobol.png 421Кб, 900x900
900x900
>>2476874
Мне и многим другим приходилось есть жабу, так как альтернатив не было (выше скрипты, ниже кресты). Потом высрали го, но даже после топорной жабы на нем было больно что-то делать, но этот "вентиль" был открыт и часть комьюнити все же хлынуло туда под напором и у нас появилась хоть какая-то альтернатива этому болоту на жабе. А теперь появился нормальный современный и развивающийся язык, с похожим на джава синтаксисом и стало легче.

Не все еще вышли из криокамер и думают о шарпах как языке для винды, но интерес растет и понятно почему. Так же шарп открывает окно в гейм-дев, особенно для инди-разработчиков, что весьма вкусно, даже просто поковыряться на досуге для себя.

PS Была какая-то надежда на котлин, но он почти полностью тянет джава инфраструктуру, от чего воняет той тем же болотным тырпрайзом.
Аноним 29/09/22 Чтв 07:32:36 2477070 1006
Аноним 29/09/22 Чтв 07:59:26 2477073 1007
>>2477050
Второй очевиднее и проще в поддержке.
Аноним 29/09/22 Чтв 09:56:16 2477096 1008
Шарпаны, как в студии добавить файлы в игнор при quick fix рефакторе? Например я нажал на кнопку apply in project scope, но я не хочу чтобы он шел по некоторым файлам, т.к. это у меня сырые жирные хтмлки на которых он виснет и непонятно почему туда лезет если фикс касается шарп кода.
Аноним 29/09/22 Чтв 14:42:48 2477329 1009
Ребят, есть куча классов в домене - которые я ентити фреймворком загружаю в постгрес (типа кодфёрст). В этих классах есть интовые проперти (а может еще какие value типы), которые я не могу сделать nullable, иначе могут ошибки появиться в текущем некроентерпрайзе. Так вот - ЕФ в постгрес все мои вэлью тайпы загружает как NOT NULL, а мне надо, чтобы он загружал просто (с возможностью null туда писать), без добавления nullable к пропертям в домене.

Может есть какие настройки в ЕФ для этого? Я чет не могу нагуглить пока
Аноним 29/09/22 Чтв 15:33:05 2477370 1010
>>2477050
А зачем тебе is null в первой пикче? Знак вопроса уже делает сравнение. Напиши:
> return _canExecute ? true : _canExecute(parameter);
Посмотрим, что скажет студия на это.
Аноним 29/09/22 Чтв 16:10:38 2477416 1011
>>2477329
В конфигурации для нужного поля добавь: .IsRequired(false)
Аноним 29/09/22 Чтв 16:17:45 2477420 1012
>>2477416
Конфигурация это в моделбилдере же? А если у меня классов как говна, каждое поле всех классов так ставить? Я вот нашел такое - modelBuilder.Properties().Where(p => p.Name != "Id").Configure(p => p.IsOptional());
Аноним 29/09/22 Чтв 16:52:49 2477439 1013
>>2476874
Тулинг в целом все еще ощутимо хуже, чем в жабе. Куча либ и инструментов работают только на винде, что-то навсегда осталось в старом дотнете.

>нет смысла использовать джаву в новых проектах
Все еще есть, и ее используют, особенно там, где уже есть команды с экспертизой в жабе.

>>2476874
>Стоит ли ожидать увеличение вакансий в будущем
В РФ точно нет, в ЕС вряд ли, может быть в США, но не уверен. Про Азию ничего говорить не буду.
Аноним 29/09/22 Чтв 16:58:13 2477443 1014
>>2473237
>Серьезно, считаю, что даже пхп будет лучше, чем жаба
Почему так считаешь?
Аноним 29/09/22 Чтв 17:00:17 2477445 1015
>>2472932
Так если все удалили свои хедеры еще 10 лет назад, то почему популярность только падает?

А разгадка проста: народ переезжает на go, либо стартует новые проекты на go/js/python
Аноним 29/09/22 Чтв 17:03:17 2477446 1016
>>2472163
>так и останется на подсосе у жаб и го
this.
Нет киллер фич, ради которых нужно переехать с условной жабы на шарп, если у тебя есть команды с экспертизой в жабе. Проще переехать на новую жабу.
Даже с го нет смысла перебираться на дотнет, потому как в дотнете нет тех фишек, ради которых берут гошку (виртуальные треды, прозрачный код без магии и orm, отсутствие монструозного ООП, компилируемость в бинарник)
Аноним 29/09/22 Чтв 17:05:56 2477447 1017
>>2472163
>производительность-то какая будет в реальных условиях, без ансейф байтоебли
Обычная, стандартная, обыкновенная для бекенда. Все будет упираться в базу данных.

>>2471727
>почему всем крупным компаниям до сих пор похуй на шарп
А зачем переходить, когда вся высокопроизводительная хуета уже написана на С++, круды на жабе и инфра на го? Смысл перепиливать все с нуля?
Аноним 29/09/22 Чтв 18:15:47 2477503 1018
>>2477443
Когда кодил 14 лет назад на пхп, во многих решениях старались как-то переживать за оптимизацию, даже следили за количеством запросов в базу, оптимизировали каждый, нередко CMS выводили даже об этом инфу в футере сайтов/форумов (еще с инфой времени исполнения кода).
Мы даже писали в процедурном стиле, ибо классы в 5.2 имели некоторые ощутимые проблемы с производительностью, в отличие от массивов.

Когда перешел на жабу, увидел что всем насрать вообще на производительность. Полухолостое приложение, слоившиеся годами от рук около-студентов (по возрасту или мозгам), которое жрало планками память и тормозило, делая при этом - нехера. И это не только к внутренним продуктам, по большей части весь стек такой в джаве.
Аноним 29/09/22 Чтв 18:29:13 2477518 1019
image.png 238Кб, 728x728
728x728
>>2477445
>Так если все удалили свои хедеры еще 10 лет назад, то почему популярность только падает?
Ты не очень умный, да? Инет за 10 лет вырос хер знает как, цифры размазываются, там пхп хоть и терял позиции по процентам, но сайтов многократно навернул.

>go/js/python
С появлением нет кора жрать говном можно уже перестать.
Аноним 29/09/22 Чтв 18:32:40 2477521 1020
>>2477446
Го начинает сосать болт когда сталкивается с хипом 10-100-1000Гб. И шедулер не бесплатная вещь, именно поэтому го сосет во многих тестах.
Асинхронность не панацея.
Аноним 29/09/22 Чтв 18:51:25 2477540 1021
137594463518506[...].png 232Кб, 559x604
559x604
>>2477446
Покоромлю зумера
>отсутствие монструозного ООП
Выросло поколение для которых ООП - это сложна! Помню 6 лет назад гоферы с пеной у рта затирали, что ООП у них есть.

>компилируемость в бинарник
Офигеть фича, ты руками деплоешь? В NET 7 теперь тоже можно в бинарь c AOT (вероятно для додиков которые по ftp руками заливают), правда в случае шарпа AOT дает прирост почти в два раза (и по памяти тоже).

>прозрачный код без магии
Кодогенирация, касты с рефлексией, свитчи из-за полустатичной типизации. Возможность пропуска ошибки если возврат одного значения (зато проверяются используемость переменных и не компилится, лол), и банально можно забить на обработку ошибки (для чего исключения и были придумали, где надо явно заигнорить ошибку). Ну и вишенка - утиная типизация интерфейсов, открывающая просто кладезь плавающих ошибок.

Дальше писать лень, ибо некрасиво издеваться над гоферами.
Аноним 29/09/22 Чтв 18:56:44 2477548 1022
Го - это кал для ебаньков.
Аноним 29/09/22 Чтв 19:01:32 2477553 1023
Решил запилить галерею на впф, в качестве контейнера использовал listview с wrappanel, каково же было мое разочарование, когда оказалось, что wrappanel не поддерживает виртуализацию и при открытии папки с 1000 картинок, программа отжирает 12 гигов оперативы и крашится. Хз даже что и делать, придется видимо свой контейнер пилить.
Аноним 29/09/22 Чтв 20:07:16 2477594 1024
>>2477553
С виртуализацией там спец контейнеры. Например VirtualizingStackPanel
А потому можно взять любую реализацию VirtualizingWrapPanel и использовать ее как
Аноним 29/09/22 Чтв 23:24:38 2477792 1025
>>2477540
> ООП - это сложна!
Он не о сложности говорит, а о монструозности. Если я правильно понимаю, речь тут вот о чём. ООП может быть простым:
> class animal {}
> class mammal : animal {}
> class human : mammal {}
> human uasia = new();
Это простой и элегантный ООП, в котором всё ясно и логично.
Но можно и выебнуться, например:
> list(list(list(list)))
> hui(pizda(koncha(kharcha())))
> hurr = durr(derp)
И ты такой сидишь, смотришь на это. А что на нём пишут? Бэк? Фронт? Бизнес-логику? - Да неее... Задачки у себя в универе решают.
Аноним 30/09/22 Птн 00:01:41 2477821 1026
>>2477792
Монструозное ООП это про интерпрайз решения, когда просто специфика работы заставляет пилить так, чтобы сегодня лодка, завтра - самолет.
Условные абстрактные фабрики абстрактных билдеров абстрактных фабрик, мемные бин-фактории и прочие медиаторы, врапперы, контексты и т.д.

Ну а по факту. В реальности - все зависит от проектов и того что делается. Когда задача простая и понятная - никто в реальности вот этой вот мурой не занимается, кроме мидлов. Когда у тебя много неизвестных - ты пилишь так, чтобы как уже сказано выше - сегодня у тебя туду-лист, а завтра - облачное приложение с билингом, сотней интеграций со сторонними сервисами, дашборды, совместная рисовалка, чатик, видоконференции и диаграмма Ганта, потому что эту ебучую диаграмму каждый хуй просит впихнуть в абсолютно любую хуйню, чтобы была, блядь, и похуй что на деле оно ничего не дает и нихуя не помогает.

А то что ты привел в пример - это нарушение закона Деметры, к ооп оно относится слабо, просто говнокод обыкновенный.

Ну и да. Я не тот чел что про это говорил. Может быть он тоже видел только плохой код под соусом ООП или вообще ИРЛ его не видел, а только слышал что оно монструозное, я не знаю. Говорю просто про особенности работы с интерпрайзом на личном опыте работы.
Аноним 30/09/22 Птн 00:02:41 2477822 1027
>>2477792
Шиззо, ты привел пример наследования и композиции, это как раз инструменты борьбы со сложностью и используются совместно а не противопоставляются.
У тебя каша в голове, иди читай букварь.
Аноним 30/09/22 Птн 00:04:51 2477825 1028
>>2477821
> Условные абстрактные фабрики абстрактных билдеров абстрактных фабрик
Во-во! Оно.
>>2477822
Нет ты.
Аноним 30/09/22 Птн 00:07:53 2477827 1029
>>2477792
>list(list(list(list)))
>hui(pizda(koncha(kharcha())))
Это же фп, лол.
Аноним 30/09/22 Птн 00:11:32 2477830 1030
>>2477827
Ты разговариваешь с ребёнком не осилившим букварь по ООП, какое уж там ФП.
Аноним 30/09/22 Птн 00:26:10 2477839 1031
Аноним 30/09/22 Птн 00:26:52 2477841 1032
dur.mp4 1157Кб, 1280x720, 00:00:09
1280x720
Аноним 30/09/22 Птн 00:28:36 2477844 1033
1664486917016.jpg 52Кб, 490x604
490x604
>>2477841
Мальчик, иди осваивай букварь.
Аноним 30/09/22 Птн 00:33:58 2477854 1034
16611027729940.webm 771Кб, 640x268, 00:00:12
640x268
>>2477844
Освоил клитор твоей мамаши.
Аноним 30/09/22 Птн 02:48:27 2477889 1035
>>2475153
Лучше в блокчейн зашить ключи в зашифрованном виде. Так и сделаю, впрочем, гы.

Дык а что по теме? Что если на харде/флешке лежит пиздатый 640ГБ-йтный dd-образ, который может посыпаться нах, из-за парочки бед-секторов/битых ячеек.
Аноним 30/09/22 Птн 03:47:09 2477896 1036
>>2477889
да. но где хранить пароль (ключ) от шифра ключа
тоже в блокчейн будешь класть?
Аноним 30/09/22 Птн 04:14:54 2477898 1037
goautism2.png 136Кб, 612x401
612x401
>>2477792
Покоромлю зумера
Хотел тебя обоссать, а тебя уже обоссали.
ООП не панацея, но лучше когда оно есть, чем когда его нет.
Ничто не мешает писать ООП в около процедурном стиле (в жаба тырпрайзе это давно уже мейнстрим, это называется анемичная модель данных https://www.martinfowler.com/bliki/AnemicDomainModel.html )

Но ООП даже в анемичной модели позволяет лучше декомпозировать сложность и предметную область, чем процедуршина и это было доказано императивно еще когда твои родители ходили в пеленки, или даже не родились.

То есть, ооп позволяет писать в процедурном стиле (такой процедурный++ стиль) и процедурный позволяет писать в ооп, но уже ценой бойлерплейта (дроча композицию).

В общем, хорошо когда у тебя язык мультипарадигменный, у тебя есть выбор.

И да, языки в который по стекам надо пробрасывать ошибки и нет возможности в этих ошибках развернуть стектрейс - не являются промышленными языками. Стектрейс в 100-200 функций это сейчас почти минимум для продвинутого приложения разрабатываемого в команде. Если всякие Си просто устарели для промышленного кодинга, то го и расты просто примитивные игрушечные перделки, не отвечающие потребностям современности.
Аноним 30/09/22 Птн 05:02:48 2477906 1038
image.png 904Кб, 1440x960
1440x960
>>2477896
Ключём может быть хэш парольной фразы, а её - в башке уже несложно запомнить.
Ну или застеганографировать в какой-нибудь фотке,
с помощью алгоритма f5 steganography https://username1565.github.io/js-jpeg-steg/
А фотку уже на карты памяти раскидать и на харды, в тел засунуть, в камеру, на флешку, на магнитную плёнку стримера вхуярить, в стекле вписать там, ну хуй знает.
Но опять же, фотка может посыпатся, а вот нейроны в башке по 150 лет могут жить, какбэ.
Я даже помню нашли какую-то акулу, которой 512 лет.

Кстати, в этом контексте, а чо бы уж сразу, в нейронах не писать инфо?
Были уже опыты по сохранению бекапов внутрь нейросетей?
Уже представил себе нейросетку, выращенную в чашке Петри, помещённую в бункер, и USB/SATA-разъём, из неё выходящий. Гы.

Хотя не, вечный диск из кварцевого стикла, всё-же пижже:
>Накопитель вмещает до 360 ТБ данных и при обычной комнатной температуре работоспособен в течение 13,8 миллиардов лет.
https://invict.info/lifehacks/sozdan-5d-disk-kotoryj-smozhet-hranit-360-terabajt-informatsii-milliardy-let
Аноним 30/09/22 Птн 06:00:55 2477908 1039
Безымянный.png 41Кб, 402x800
402x800
Есть какой-нибудь плагин для студии, который позволит писать вот так и приводить к такому вот стилю автоматом?
Аноним 30/09/22 Птн 06:22:53 2477909 1040
>>2477908
Капец
Противник скобочек в треде
Аноним 30/09/22 Птн 06:27:03 2477910 1041
Аноним 30/09/22 Птн 07:23:36 2477920 1042
>>2477906
>а вот нейроны в башке по 150 лет могут жить, какбэ
а на деле через год забудешь
Аноним 30/09/22 Птн 13:05:03 2478087 1043
>>2477898
Спасибо. Понял. Принял. Извинился.
> То есть, ооп позволяет писать в процедурном стиле (такой процедурный++ стиль) и процедурный позволяет писать в ооп, но уже ценой бойлерплейта (дроча композицию).
То есть, лучше когда я в ООП-языке объявляю статик метод, чем когда я в процедурном языке объявляю процедуру Объект.Метод()? Об этом речь?
Палю лайфхак Аноним 30/09/22 Птн 13:06:44 2478089 1044
>>2477908
Возьми шрифт, которым пользуешься, возьми редактор шрифтов. Замени скобачки на пробелы. Установи шрифт в студию. Профит!
Аноним 30/09/22 Птн 13:14:29 2478092 1045
installation-py[...].png 3Кб, 444x84
444x84
Аноним 30/09/22 Птн 13:56:26 2478128 1046
wftkotlin.png 85Кб, 700x595
700x595
>>2478087
>То есть, лучше когда я в ООП-языке объявляю статик метод, чем когда я в процедурном языке объявляю процедуру Объект.Метод()? Об этом речь?
Там больше плюшек, но если по твоему случаю, то да. Ты так и так будешь группировать функции в файле, почему бы не сгруппировать их статик классом, чтобы не иметь импорта по звезде как в котлине (или в противном случае портянке импортов), ну и в последующем видеть откуда вызов по типу "Class.method()", чтобы видеть что это вызов из импорта, а ее внутренний метод текущего объекта.
Аноним 30/09/22 Птн 13:58:07 2478132 1047
>>2478128
В нормальных языках для этого есть неймспейсы
Аноним 30/09/22 Птн 14:02:08 2478136 1048
Аноним 30/09/22 Птн 14:17:00 2478153 1049
>>2478136
Да это какой-то левый хуй высрался.
>>2478128
Спасибо. Всё так, но я по большей части в уме держал не котлин, а паскаль, в качестве процедурного бойлерплейтного контрпримера. Паскалешкольник я, азбуку паскаля читавший.
Аноним 30/09/22 Птн 14:34:31 2478183 1050
>>2478153
>по большей части в уме держал не котлин,
Просто картинка по котлину была и пример, что не всегда функции это прям круто, хотя иногда и удобно, пока не пишешь что-то большое.

На самом деле и статик классы плохо, на практике делают обычные классы без состояний (называют их в анемичной модели - сервисы). Это дает там некоторые плюшки в плане работы с интерфейсами, DI (IoC), возможности моков в тестах и еще чего-то, но не помню уже.
Аноним 30/09/22 Птн 14:36:28 2478185 1051
>>2478087
>То есть, лучше когда я в ООП-языке
Лучше если дебилы вроде тебя съябут нахуй из профессии, а не то что в ООП-языке. Т.е. дебилов вроде тебя даже в процедурных языках быть не должно.
Аноним 30/09/22 Птн 17:09:43 2478417 1052
>>2478185
А я и так не в профессии. Я - любитель.
Аноним 30/09/22 Птн 19:42:47 2478575 1053
>>2478417
Любитель поесть говна?
Аноним 30/09/22 Птн 22:27:56 2478779 1054
>>2478132
Вообще то то, что на скрине, и есть "как в неймспейсах"
А не такой пипец в шарпе не потому что неймспейсы
а потому что нельзя методы и переменные держать вне класса, поэтому вынужден писать имя класса в коде, что чуть более информативно (для блокнота конечно) откуда оно.
Аноним 30/09/22 Птн 22:37:28 2478792 1055
>>2478183
>что не всегда функции это прям круто, хотя иногда и удобно

Вообще то вполне нормально, если язык заточен под DSL и при этом DSL является легальным кодом. Оно как раз читается лучше
И пример на скрине превосходно читается, то какой то школьник не знает основ языка.
Аноним 30/09/22 Птн 23:43:21 2478891 1056
Есть готовые решения, чтобы впендюхать Wireguard в приложение с .net?
Аноним 01/10/22 Суб 06:58:37 2478994 1057
>>2478792
На практике, без доки, эти DSL понятно как писать только авторам самого этого DSL. Код без IDE выглядит как чистая магия. Лесенка из лямбд вложенная в лямбды, нехера это не круто, у тебя вместо вертикального последовательного кода получается какой-то горизонтальный звездец и тебе приходиться читать весь этот каскад кишков.

Единственное, наверное, будет круто гуишки описывать так, но опять же тебе придется доку писать и проверять валидность значений, обязательные и необязательные параметры, в общем все то, что ты бы делал и с псевдоязыком. Котлин DSL для DSL слишком кастрированный и ничего кроме каскадной вложенности не дает.
Аноним 01/10/22 Суб 08:04:49 2479005 1058
>>2478994
>у тебя вместо вертикального последовательного кода
Какого еще последовательного кода. На пике декларативное описание конфигурации.

Кстати в asp.net core точно такой же
Только в асп что то типа services.AddFeature() вместо install(Feature)
но это просто семантика так выбрана - фактически в обоих случаях используется метод расширение + метод билдер.
Просто в котлин лямбда блок переданный как последний параметр можно писать так и this в этой лямбде можно не писать.
поэтому выглядит магически. Но это самые обычные лямбды.

Я и в шарпе могу так сделать, просто из-за необходимости явно использовать в лямбде объект (не могу его сделать как this) будет больше шума (плюс или минус это - спорно)

>горизонтальный звездец и тебе приходиться читать весь этот каскад кишков.
Вообще проблем нет. Кто выбирает декларативный подход - у него и в шарпе будет примерно так же, только более зашумлено всякими ()=> ведь не каждая лабда является семантически калбэком.



>проверять валидность значений, обязательные и необязательные параметры
хз о чем ты. это не псевдоязык, который во что-то транслируется, а самый обычный код и поэтому проверяется компилятором.
в шарпе выглядело бы точно так же, но с () =>

>но опять же тебе придется доку писать
Ничем не отличается от шарпа. В том же асп.нет коре в самом его рождении когда видел всякие куски кода типа
services.AddFeature() на гитхабе, то копировал, а оно красным горит - потому что нужно подкинуть пакет какой-то, в котором нужный метод расширение AddFeature
а поди узнай какой. Даже знание неймспейса не дает знание где оно.
Позже стабилизировалось, потому что все это распихали в метапакет или же НАПИСАЛИ ДОКИ, но кошмар "я тут скопировал кусок кода и он не компилится" - такой же и причины те же.


>Котлин DSL для DSL слишком кастрированный и ничего кроме каскадной вложенности не дает.
как раз он наполнен фичастостью на эту тему - скоупы у функций, расширения статиков, скоупные extension методы, делегирования свойств, настоящие инлайны, встроенные функции let/run/apply...
А каскадная вложенность вообще не фича - это обычные лямбды.

>будет круто гуишки описывать так
О да. jetpack compose охеренно крут именно из-за того что язык заточен под DSL
Шарп такое увы не сможет - всего вышеописанного добра в нем просто нет.
Впрочем, поскольку мауи это наследник замарина, то они этим путем и не пошли даже, но если бы пошли, то получилось бы сильно не так изящно.
Аноним 01/10/22 Суб 09:45:16 2479025 1059
Шарпаны, помогите стать фрилансером. Суть такова - сейчас немношко кодю в одной организации и накодил для них бота для телеги. Бот понравился там кое-кому из сотрудников, дескать кому-то из его знакомых нужен аналогичный и возник вопрос - смогу ли повторить? Накодить то не проблема, но где его потом хостить? Первого то на серверах кампании разместил, а со сторонними заказчиками что делать? Арендовать им виртуальный, запихать туда и типа нате, плотите ежемесячно? А это не моветон? Где-то н бесплатном? А там проблем с производительностью не будет? Что делать, как быть? Какие вообще годные сервисы для хостинга на дотнете есть?
Аноним 01/10/22 Суб 10:07:34 2479028 1060
>>2479005
> На пике декларативное описание конфигурации.
Тем временем на пике:
> установи установи установи, получи, вызови
Аноним 01/10/22 Суб 10:11:03 2479032 1061
>>2479025
Нам-то это зачем обесняешь? Сотруднику - халявщику это обесняй:
> Для нужд организации юзается инфраструктура организации. Для нужд твоей бляди ты мне подгоняешь инфраструктуру и я на ней тебе бота поставлю. Вопросы оплаты инфраструктуры (сервака) ты решаешь сам со своей блядью.
Аноним 01/10/22 Суб 10:30:51 2479045 1062
>>2479028
признаю.
просто я под влиянием jetpack compose, который хоть и выглядит как императивный код, но является декларативным по сути.

но все же не все однозначно - install может сам выполнять конкретную работу (то есть быть императивным), так и быть просто контейнером описания конфигурации
Аноним 01/10/22 Суб 18:02:09 2479337 1063
image.png 43Кб, 650x453
650x453
Как мне подчеркнутый вар снаружи код блока использовать? Задавать до код блока не помогло. Я еще пытался using использовать, но .Net такое не поддерживает.

Алсо https://learn.microsoft.com норм для старта? я посмотрел дотнет из шапки, там вроде все то же

4 день изучения btw
Аноним 01/10/22 Суб 18:04:43 2479338 1064
>>2479337
цель задания - реверснуть буквы в словах, но слова оставить в том же порядке
Аноним 01/10/22 Суб 18:42:34 2479360 1065
>>2479337
>Задавать до код блока не помогло
помогло, просто ты не захотел принять помощь.
Аноним 01/10/22 Суб 19:05:53 2479372 1066
image.png 183Кб, 1366x768
1366x768
>>2479360
в каком смысле? Пока что просто выдает еще ошибок. Надо как-то по-другому задавать?
Аноним 01/10/22 Суб 19:32:56 2479385 1067
>>2479372
надо на котлин переходить. ну или на го.
внутри блока убери обьявление новой переменной, тоесть БЕЗ слова string
Аноним 01/10/22 Суб 19:41:57 2479389 1068
>>2479372
в прямом. если переменная не видна снаружи блока
значит и задавать ее нужно снаружи блока.
Аноним 01/10/22 Суб 19:54:14 2479397 1069
>>2479372
> Надо как-то по-другому задавать?
Надо инглиш учить.
Аноним 01/10/22 Суб 20:32:22 2479414 1070
>>2479385
вот зачем ты ему подсказал
теперь он ничему не научится.
Аноним 01/10/22 Суб 23:38:15 2479518 1071
>>2479414
Так хули там учится?
как до замыканий дойдет - там и заинтересуется скопами
Если на такой хуйне страдать, то перегоришь и пойдешь в шлюхи
Аноним 02/10/22 Вск 03:36:39 2479600 1072
>>2479518
если перегоришь, то значит в программисты лучше и не идти.
Несчастливы те, для кого это "айтишнике норм зарабатывать я тож хочу"
Правда несчастливы и те, кому это в радость
Аноним 02/10/22 Вск 08:30:35 2479638 1073
изображение.png 1Кб, 326x45
326x45
изображение.png 1Кб, 39x512
39x512
Как перенести вкладку с первого пика на второй?
Аноним 02/10/22 Вск 09:03:25 2479646 1074
Аноним 02/10/22 Вск 13:54:57 2479731 1075
124851078928.png 45Кб, 521x500
521x500
>>2479600
>Несчастливы те, для кого это "айтишнике норм зарабатывать я тож хочу"
>Правда несчастливы и те, кому это в радость
Соснули все
Аноним 03/10/22 Пнд 05:37:50 2480423 1076
16616289798600.webm 9970Кб, 640x360, 00:00:36
640x360
Здравствуйте, господа. А вот в связи с уходом всяких заморских компаний с рынка РФ перспективы в С# программировании есть?
Аноним 03/10/22 Пнд 06:53:34 2480442 1077
>>2480423
Нету перспектив - все сдохло. Забудь про шарп.
Майкрософт уже все заблокировал, а в дальнейшем вообще будет закладки делать, так что все российские компы просто взрываться будут если на них хоть один их продукт будет установлен.
Пиздуй 1С учи.
Алсо, если ты такие тупые вопросы задаешь, то программирование, это скорее всего не твое.
Аноним 03/10/22 Пнд 07:11:57 2480447 1078
>>2480442
Я си шарп начал учить из-за того, что у него логотип прикольный.
Аноним 03/10/22 Пнд 09:21:36 2480478 1079
>>2480442
Ловко ты от конкуренции избавляешься
Аноним 03/10/22 Пнд 11:55:36 2480541 1080
>>2480478
Скорее от душнил, которые вместо работы будут доебывать идиотскими вопросами.
Аноним 03/10/22 Пнд 13:51:15 2480663 1081
Через несколько дней собеседование, сразу сказали, что будут спрашивать об ООП, можете подкинуть исчерпывающий материал на эту тему?
Аноним 03/10/22 Пнд 14:25:27 2480690 1082
Что за миграции надо генерировать для асп? Нафига они нужны? Почему это выглядит так инородно, как-будто пришили эту фичу в последний момент?
Аноним 03/10/22 Пнд 15:11:06 2480737 1083
За сколько месяцев можно вкатиться в шарп, если знаю джава кор?
Сильно ли сложные тут фреймворки?
Нужно ли знать англюсик?
Правда ли, что надо будет учить ещё фронт? Я не хочу на фронт, а хочу заниматься бэком.
Аноним 03/10/22 Пнд 15:12:06 2480740 1084
Аноним 03/10/22 Пнд 15:14:46 2480742 1085
>>2480740
Почему нельзя самому писать sql-запросы, а обязательно надо наворачивать тонну автосгенерированного кала?
Аноним 03/10/22 Пнд 15:22:35 2480757 1086
>>2480737
>За сколько месяцев можно вкатиться в шарп, если знаю джава кор?
Полгода-год. Если сразу выкинешь джавовские привычки, то может и меньше.
>Сильно ли сложные тут фреймворки?
Не сложнее джавовских.
>Нужно ли знать англюсик?
Лучше знать чем, не знать.
>Правда ли, что надо будет учить ещё фронт? Я не хочу на фронт, а хочу заниматься бэком.
Да. Сразу клади хуй на все что связано с десктопом (WPF, Winforms) и на все где есть слово MVC. Учишь ASP.Net строго до уровня WebApi и идешь в бэкэндеры. Хотя подучить фронт не помешает на уровне HTML, CSS и что-нибудь вроде React-а, просто, чтобы быть в курсе как там все работает, ну и при отладке больше возможностей иметь.
Аноним 03/10/22 Пнд 15:25:44 2480763 1087
>>2480742
Во первых можно.
Во вторых ты долбоеб не понимающий сути механизма миграций. И то, что они вообще не имеют отношения к тому используешь ты ORM или нет.
Аноним 03/10/22 Пнд 15:33:17 2480772 1088
>>2480763
Дак никто про них не пишет. Фримен говорит, что делайте миграции, а зачем они - не поясняет.
Аноним 03/10/22 Пнд 15:42:00 2480783 1089
image.png 350Кб, 837x801
837x801
Аноним 03/10/22 Пнд 15:46:47 2480785 1090
>>2480772
Ну наверное потому что миграции - это механизм не из ASP.Net
Аноним 03/10/22 Пнд 16:09:02 2480804 1091
Аноним 03/10/22 Пнд 16:10:45 2480805 1092
Аноним 03/10/22 Пнд 16:12:39 2480806 1093
>>2480804
Из ORM, а по дефолту для асп.нет это EF
вот к нему и относится.

А так пиши миграции как хочешь. Многие вон (то есть я 1 и еще несколько во всем мире) вообще не юзают EF
Аноним 03/10/22 Пнд 16:28:33 2480825 1094
>>2480757
А почему React, а не Angular? Я слышал, что как раз последний совместим с ASP.NET.
Аноним 03/10/22 Пнд 16:35:22 2480837 1095
>>2480541
Почему во всех тредах форсят шарп, а в самом треде по шарпу обижают вкатутосей?
Аноним 03/10/22 Пнд 16:41:41 2480848 1096
Вот микрософт форсит свой продукт, что всё доступно из коробки, но при этом надо всё равно из каких-то репозиториев догружать кучу библиотек. Нельзя было их включить в дотнет?
Аноним 03/10/22 Пнд 16:42:41 2480851 1097
Как вы изучали юнит-тестирование? Действительно ли, что сам программист на сишарп должен писать юнит-тесты, а не специальный юнит-тестировщик?
Аноним 03/10/22 Пнд 16:58:05 2480867 1098
Стоит ли читать Рихтера в 2023 году?
Аноним 03/10/22 Пнд 17:14:43 2480878 1099
>>2480825
Да х.з. просто я за всю карьеру только с реактовым фронтом связывался. Ну и насколько я понимаю Angular уже вроде как приближается к статусу "говно мамонта", чтобы начинать его учить. А vue используется меньше чем react.
>>2480825
>Я слышал, что как раз последний совместим с ASP.NET.
Я х.з. что ты под этим подразумеваешь, т.к. фронт по факту с бэком общается через API и им должно быть строго похуй, что по другую сторону находится.
Аноним 03/10/22 Пнд 17:16:18 2480880 1100
>>2480848
>Нельзя было их включить в дотнет?
Нельзя, на то они и библиотеки, что не всегда нужны

>>2480851
>Как вы изучали юнит-тестирование?
Нинужно. Интеграционные тесты нужны.

>>2480867
50/50, но скорее стоит ознакомиться
Аноним 03/10/22 Пнд 17:21:11 2480886 1101
>>2480837
>обижают
Пусть сядут в уголок и поплачут.
Аноним 03/10/22 Пнд 17:27:56 2480894 1102
>>2480851
>Как вы изучали юнит-тестирование?
Что-то почитал, что-то посмотрел. В основном чужой код изучал.
>Действительно ли, что сам программист на сишарп должен писать юнит-тесты, а не специальный юнит-тестировщик?
Чтобы писать юнит тесты нужно как минимум быть разрабом, а садить целого разраба только на юнит тесты дохуя дорого будет.
Просто не стоит переоценивать юнит тесты, а четко понимать, что и как ими тестировать. Где-то они будут просто бесполезны, а где-то прямо в самую писечку подойдут. Например для каких-нибудь кастомных мапперов это вообще маст хэв.
Аноним 03/10/22 Пнд 18:06:39 2480943 1103
>>2480880
Почему EF не включили в состав дотнете, а приходится его закачивать как левую библиотеку от каких-то васянов?
Аноним 03/10/22 Пнд 18:09:29 2480944 1104
Как вы привыкали к тому, что надо ставить фигурную скобочку { в новой строке, а не на той же? Ещё заглавные буквы для методов не привычны, всё таки с маленькой выглядит элегантнее.
Аноним 03/10/22 Пнд 18:12:21 2480946 1105
>>2480878
Блин, ещё реакт учить...
Аноним 03/10/22 Пнд 18:14:16 2480947 1106
А реально ли программировать на сишарпе в линуксе или надо ставить виртуалку с виндой?
Аноним 03/10/22 Пнд 18:15:54 2480948 1107
Аноним 03/10/22 Пнд 18:16:48 2480949 1108
Аноним 03/10/22 Пнд 18:22:28 2480952 1109
>>2480947
Нужна физическая винда обязательно, ни на какой виртуалке шарп не заработает.
Аноним 03/10/22 Пнд 18:23:55 2480953 1110
>>2480952
Он даже виртуалку роняет?
Аноним 03/10/22 Пнд 18:32:25 2480959 1111
>>2480944
Настраиваешь .editorconfig и IDE сама все расставляет.
Алсо джавовский стиль, когда скобка оставляется на предыдущей строке (он же K&R) очень уебищен. Говорю как работающий сейчас и с ним и со стандартным шарповым стилем (Олман)
Олман в сто раз лучше.
Аноним 03/10/22 Пнд 18:36:08 2480963 1112
>>2480943
Потому что EF может быть слишком медленный и нужен будет Dapper. Потому что может быть no-sql БД. Или БД не будет вообще. Так нахуя подгружать в проект ненужную библиотеку, которая будет только нагружать процесс?
Аноним 03/10/22 Пнд 18:36:37 2480965 1113
>>2480959
Ну чем джавовский плох, а шарповский хорош?
Вот я вижу, что теряется лишняя строка и код становится объемнее. Учитывая, что ещё и методы с большой буквы, то кажется, что у тебя просто куча кода. Хотя то же самое в джаве куда компактнее.
Аноним 03/10/22 Пнд 18:40:30 2480968 1114
>>2480805
>Из EF.
>>2480806
>Из ORM, а по дефолту для асп.нет это EF
Да с хуя ли это из ORM, это один из паттернов при работе с реляционными БД связанный с версионированием. Ты можешь вообще с чистым sql работать и все равно использовать механизм миграций. ORM просто позволяют этот процесс автоматизировать. Те же EF или даппер можно использовать в режиме pure sql, отдавая ему на откуп только версионирование базы в соответствии с моделями данных. Т.к. писать эти миграции руками та еще ебанистика.
Аноним 03/10/22 Пнд 18:41:33 2480969 1115
А вы читаете мурзилки?
Аноним 03/10/22 Пнд 18:44:41 2480975 1116
>>2480969
Здесь не знают, что это такое.
Аноним 03/10/22 Пнд 18:45:49 2480977 1117
>>2480949
Ну кстати соглашусь с Фленовым, что все эти прослойки не нужны. SQL сам по себе норм язык, дак нафига заменять его на всякие ORM-ки.
Аноним 03/10/22 Пнд 18:50:45 2480983 1118
>>2480965
> а шарповский хорош?
Тем что четко отделяет тело метода/цикла/блока и т.д. от их сигнатуры/определения/базы. Особенно заметно когда например в сигнатуре метода несколько параметров и их приходится врапить, чтобы они за экран не вылезали. Тогда вообще хуй поймешь, где кончаются параметры, а гду уже тело метода началось. Особенно на конструкторах заметно.

Во вторых более удобно когда нужно отельный блок скопировать и перенести куда-то. Не приходится искать где эта ебучая открывающая скобка притаилась. В олмане просто копируешь все нужные строки и все.

>>2480965
>Вот я вижу, что теряется лишняя строка и код становится объемнее.
Во первых нехуй байты и строки экономить. Во вторых если тебе прямо так жмет, то можешь в студии экстеншен вроде Shrink Empty Lines, который уменьшает пустые строки и строки со скобками/знаками и т.д. (вобщем без кода) по вертикали и они намного меньше места занимают.

>>2480965
>Хотя то же самое в джаве куда компактнее.
В пизду компактность если она мешает читаемости. Потом в любой момент можно все ненужные блоки свернуть по хоткею и разворачивать только то, что нужно.
Аноним 03/10/22 Пнд 18:52:42 2480984 1119
>>2480977
Да-да, только дебажить его заебешься. Ну и на большом проекте при изменении чего-нибудь одного может все пиздой накрыться, т.к. хер ты узнаешь, что какая-то стопитсотая хранимка не соответствует новой модели.
Аноним 03/10/22 Пнд 19:11:37 2480993 1120
>>2480949
ну он уходит в другую крайность
и вообще все в кучу свалил. репозиторий вообще перпендикулярен и так же используется с даппером - это просто класс "где будут методы для такой то сущности, а внутри даппер или что угодно"

Мои претензии
- много жрет памяти
- медленно стартует
- танцы с бубном если нужно выбрать без трекинга, а потом обновить одно поле в базе
- он орм, а значит "мы не можем использовать фишки такой то базы, а вдруг будем переезжать" (на деле никогда)
- он орм, а значит над "думаем как написать на SQL" добавляется "теперь нужно придумать, как написать в терминах орм, чтобы в итоге все транслировалось во что нужно"
Вот последнее просто бесит

А так даппер как легковесный маппер, но по возможности генерация sql с помощью LINQ, только тут не цель абстрагироваться от SQL максимально, а всего лишь использование Expression как спецификаций.

Чистый SQL...чист, но морока править если имя колонки изменилось и вообще собирать эту строку. Тут можно взять примитивный билдер, а потом добавить в него expression и получим LINQ )))

Есть еще подход как вот FastCRUD, но он как то вырвиглазно получается.

>>2480963
>Потому что EF может быть слишком медленный и нужен будет Dapper
по наносекундам если будет, то ты перепишешь на SQL и будет равно дапперу, так что даппер ты брать не станешь (это я про последний и будущие EF кор говорю). Оно проиграет по памяти

>>2480968
>Ты можешь вообще с чистым sql
ты можешь делать что угодно, но первоначальный вопрос был "что за миграции такие в асп.нет вон в книжках о них пишут". А это как раз EF и его миграции
Аноним 03/10/22 Пнд 19:27:50 2481006 1121
>>2480943
Потому что смысл нет кора в модульности.
Аноним 03/10/22 Пнд 19:40:03 2481020 1122
А как в ASP.NET можно управлять бинами в контексте? К примеру, я создал свой класс и как мне его поместить в контекст, чтобы потом он внедрился в другой класс?
Аноним 03/10/22 Пнд 19:47:59 2481025 1123
Аноним 03/10/22 Пнд 19:56:23 2481027 1124
async/await круче горутин в голанге?
Аноним 03/10/22 Пнд 19:59:09 2481030 1125
Аноним 03/10/22 Пнд 20:13:53 2481035 1126
csharplinux.png 21Кб, 634x309
634x309
>>2480952
Хеллоу ворлд вроде запустился
Аноним 03/10/22 Пнд 20:52:24 2481056 1127
Аноним 04/10/22 Втр 00:20:25 2481230 1128
>>2480952
>Нужна физическая винда обязательно
А химическая винда не подойдёт?
Аноним 04/10/22 Втр 00:40:19 2481244 1129
>>2481230
Биологическая винда.
Аноним 04/10/22 Втр 00:41:35 2481245 1130
>>2477920
А я напоминалку пооставлю в тилибоне, чтобы нейрончики будоражить в ячейках ассоциативной памяти с адресацией по содержанию и короче какбэ чтобы память себе освежать. Пусть тилибонькает раз в месяц, хуйле.
Аноним 04/10/22 Втр 09:25:14 2481376 1131
Нужно ли учить IL-код?
Аноним 04/10/22 Втр 10:01:02 2481388 1132
Аноним 04/10/22 Втр 10:09:47 2481390 1133
>>2481388
Я в универе с удовольствием программировал на ассемблере и вообще люблю такое ковыряние в байтиках.
Аноним 04/10/22 Втр 10:27:11 2481397 1134
Как принято распределять код по файлам и папкам? В джаве есть жесткие требования, что файл - это имя класса, а папка - пакет. А тут как?
Аноним 04/10/22 Втр 11:19:08 2481420 1135
>>2481397
В шарпе похуй. Т.е. имя класса может не совпадать с именем файла. Но, крайне рекомендуется, чтобы оно совпадало. По крайней мере на реальных проектах тебе точно предъявят если они будут различаться и попросят обосновать.
Если в файле несколько классов, то обычно файл называют по первому классу.
С именами каталогов/проектов та же фигня.
Аноним 04/10/22 Втр 11:47:12 2481431 1136
>>2481390
Ну если только для удовольствия и ради познавательного интереса.
Я сам старый байтоеб и до сих пор иногда на ассемблере пишу в качестве хобби. IL я потрогал ровно в той степени, чтобы понимать при случае что это и как с ним работать. Ну и просто посмотреть во что в итоге высокоуровневый код превращается. Но в реальной работе это ни разу не понадобилось.
Аноним 04/10/22 Втр 12:56:29 2481459 1137
16578132809960.jpg 266Кб, 720x1096
720x1096
>>2481035
Не говори об этом больше некому.
Аноним 04/10/22 Втр 13:08:16 2481473 1138
Аноним 04/10/22 Втр 13:44:36 2481491 1139
Аноним 04/10/22 Втр 15:16:56 2481564 1140
image.png 33Кб, 1319x197
1319x197
Что значит это предупреждение?
И как его правильно обработать?
Аноним 04/10/22 Втр 15:31:53 2481577 1141
Вот вы метанит-метанит, а там все примеры созданы в расчете на вижлу, которая только под виндой. А кто хочет программировать на линуксе, не может использовать метанит.
При этом многие новые книги зарубежных авторов стали ориентироваться больше на вс код и консольные команды.
Аноним 04/10/22 Втр 15:34:04 2481578 1142
>>2481577
> При этом многие новые книги зарубежных авторов стали ориентироваться больше на вс код и консольные команды.
В новом издании Прайса наоборот автор выкинул vs code и перешёл на студию.
Аноним 04/10/22 Втр 17:14:17 2481651 1143
>>2481473
Ещё бы Фримена новую книгу перевели
Аноним 04/10/22 Втр 17:34:09 2481664 1144
flenov.jpg 135Кб, 1280x720
1280x720
Аноним 04/10/22 Втр 19:16:53 2481739 1145
>>2480423
>срынок пидорахии
Проиграй. Просись к заморским баринам в ЛЮБОМ случае
Аноним 04/10/22 Втр 22:01:19 2481840 1146
Аноним 05/10/22 Срд 08:20:06 2481940 1147
Вот C# Core учится легко и быстро, а на ASP.NET буксую, потому что не понимаю зачем нужны все эти конфигурации, миграции, сервисы.
Как вы учили ASP.NET?
Аноним 05/10/22 Срд 10:32:48 2482020 1148
>>2481940
ASP.Net вообще один из самых легких фреймворков для освоения. Он хорош тем, что с ним можно начать работать не зная и половины его возможностей.
>конфигурации, миграции,
Это не часть ASP.NET
>сервисы.
А это вообще просто способ/шаблон проектирования.
Ты можешь на ASP написать приложение вообще без единого сервиса запихнув всю логику в контроллеры. Это правда совсем говнокодисто будет, но сделать так можно.
Аноним 05/10/22 Срд 11:08:53 2482043 1149
Сап работяги, столкнулся с EF core багом когда он пытается через async читать varbinary с базы - ловит лютую просадку по перфомансу в 10-20 а то и больше раз. Чтение с базы у меня на гет апи контроллере. Вот тред:
https://stackoverflow.com/questions/28543293/entity-framework-async-operation-takes-ten-times-as-long-to-complete

Вопрос, что лучше использовать - просто убрать async с контролера или завернуть его в TaskCompletionSource? Или может итт знают какой-то лучше вариант?
Аноним 05/10/22 Срд 15:17:54 2482291 1150
Поясните за json сериалайзеры, конкретно Newtonsoft и System.Text.Json.JsonSerializer? В тырнете пишут второй по бенчмаркам быстрее, алсо еще заметил что второго есть поддержка стримов которые работают еще в полтора-два раза быстрее чем просто десериализация строки. Есть ли какой-то профит юзать Json.Net если мне не нужны его дополнительные фичи?
Аноним 05/10/22 Срд 18:06:58 2482419 1151
>>2482291
первый фичастее, второй экономнее в плане алоков и быстрее (но не самый быстрый), но менее фичастый.
Аноним 05/10/22 Срд 20:11:14 2482489 1152
>>2481027
Нет. Голанг как раз хорош тем, что не делит функции на синхронные и асинхронные.
Аноним 05/10/22 Срд 20:14:08 2482510 1153
>>2480949
ORM не нужны в 2022 году.
Аноним 05/10/22 Срд 20:25:34 2482536 1154
Аноним 05/10/22 Срд 20:27:05 2482537 1155
Аноним 05/10/22 Срд 20:28:54 2482540 1156
>>2477503
>классы в 5.2 имели некоторые ощутимые проблемы с производительностью, в отличие от массивов
Странно слышать про сравнение производительности классов и массивов, когда это соврешенно разные вещи.

>увидел что всем насрать вообще на производительность
В чем это конкретно проявлялось?
Аноним 05/10/22 Срд 20:29:42 2482541 1157
>>2477518
>С появлением нет кора жрать говном можно уже перестать.
Нет кор появился несколько лет назад, но народ до сих пор жрет говно в виде go и js. В чем причина?
Аноним 05/10/22 Срд 20:30:47 2482542 1158
>>2482536
Обычный SQL. Один хуй никто базу данных менять никогда не будет. Ну разве что вы на оракле сидели, а тут петух в жопу клюнул и пришлось на постгрес мигрировать в сжатые сроки.

>>2482537
Двачую.
Аноним 05/10/22 Срд 20:34:19 2482544 1159
>>2482542
Так ORM используют не потому что хотят облегчить миграцию между бд.
Аноним 05/10/22 Срд 20:39:41 2482545 1160
>>2482541
Дотнет кор опоздал везде. Да и до сих пор нет нормальной кроссплатформенности как в джаве.
Аноним 05/10/22 Срд 21:59:51 2482572 1161
>>2482510
>ORM не нужны в 2022 году.
Нахуй тебя.
>>2482537
>SQL
И тебя.
>>2482542
>Обычный SQL.
И тебя тоже.

В рот ебал я при вечно меняющихся требованиях бизнеса постоянно перебирать код на вашем SQL-е. И ебаться с его отладкой потом. Спасибо, наелся.
Аноним 05/10/22 Срд 22:18:45 2482579 1162
>>2482541
Тяжелое наследие маркетинга по майкрософтовски. Народ до сих пор им не верит и думает, что еще чуть-чуть и они опять включат свой агрессивный ЕЕЕ и всех повяжут.
Примерно так же как и с гуглом. Т.е. все конечно пользуются потихоньку go, стартапчики там всякие и т.д. Но в уме упорно держат, то что это гугл и завтра он с ненулевой вероятностью скажет "Нам надоело, нахуй го, мы его закрываем"
Аноним 05/10/22 Срд 22:21:55 2482580 1163
Аноним 06/10/22 Чтв 10:15:28 2482693 1164
>EntityFramework
>2k22
>не юзать божественный linq2db

>а пачиму EF не в стандартной библиотеки
>да я вообще голый SQL пишу

Суть треда.
Аноним 06/10/22 Чтв 10:31:00 2482704 1165
>>2482693
Можно подумать у большинства тут есть хоть какое-то право выбора чем пользоваться. Выбирать стек удел архитекторов, а макаки уже будут жрать, что дают и писать как им скажут.
Аноним 06/10/22 Чтв 10:49:18 2482721 1166
Как проверить, содержит ли один массив строк другой? Есть какие-то стандартные методы для таких коллекций?
Аноним 06/10/22 Чтв 11:21:41 2482737 1167
>>2482704
С таким мышлением ты никогда не станешь архитектором.
Аноним 06/10/22 Чтв 12:08:25 2482779 1168
>>2482721
var isSubset = !collection2.Except(collection1).Any();
var isSubset = collection2.All(a=> collection1.Contains(a));
Не знаю, что у тебя за задача, но поиграйся с linq
Аноним 06/10/22 Чтв 12:12:28 2482783 1169
Планирую написать пет-проект который будет отключать GC. Куда потом пытаться с таким проектом можно резюме кидать? Лиды уважать будут?
Аноним 06/10/22 Чтв 12:13:27 2482784 1170
>>2482779
Я уже избавился от необходимости проверки, но всё равно спасибо

Теперь есть другой вопрос. Есть возможность собрать шарповое приложение так, чтобы оно не зависело от наличия .NET рантайма в винде? Чтобы у меня был абсолютно топорный бинарник, без зависимостей и бла-бла
Аноним 06/10/22 Чтв 12:14:33 2482786 1171
image.png 236Кб, 1004x419
1004x419
image.png 352Кб, 1396x650
1396x650
Аноны, нужна пояснительная бригада. Объясните, пожалуйста, понятным русским языком - что такое преобразование типов в наследовании где еще используются операторы as и is и нахуй оно нужоно? Посмотрел уже несколько раз пару видосов на ютубе, и не понял, наверное, даже 10%. Что человек делает на пикриле? Зачем при создании объекта материнского класса он использует конструктор дочернего, если методы из него все равно нельзя использовать? Что делает 30 строка? В новый объект дочернего класса запихивает объект материнского, созданный при помощи конструктора того же дочернего класса? Зачем тут (Point)? Зачем вообще эти шуешные многоходов очки?
Аноним 06/10/22 Чтв 12:27:15 2482789 1172
>>2482786
Продолжай накачивать мозги сишарпом и понимание однажды придёт.
Хотя на самом деле мозг лишь выходит на нужную частоту, а знания подгружаются из космоса.
Аноним 06/10/22 Чтв 12:29:41 2482792 1173
>>2482789
>Продолжай накачивать мозги сишарпом и понимание однажды придёт.
Я бы с удовольствием. Только наследование - основополагающая тема, и если я пойду дальше, нормально не разобравшись с ней, ничего хорошего из этого не выйдет.
Аноним 06/10/22 Чтв 12:48:35 2482806 1174
>>2482786
Ну ты открой троелсена, там всё написано.
Аноним 06/10/22 Чтв 12:49:46 2482807 1175
>>2482786
Вот то, что тебе нужно понять, чтобы понять код выше:
1. explicit и implicit приведение типов
2. upcast и downcast
3. boxing/unboxing (ты можешь посмотреть на то что это на сайте sharplab.io, справа надо будет выбрать "IL" и вникать в инструкции IL кода в нужном тебе методе)
Аноним 06/10/22 Чтв 12:59:29 2482811 1176
Аноним 06/10/22 Чтв 13:44:54 2482828 1177
Почему моя говнософтина может не запускаться с флешки? Она использует доступ к файлам, но без абсолютных путей
Аноним 06/10/22 Чтв 13:50:18 2482836 1178
>>2482828
Отбой, я понял. Оно хочет либу с собой потянуть. Как мне встроить либу в экзешник без ебли?
Аноним 06/10/22 Чтв 13:53:42 2482838 1179
>>2482836
self-contained надо указывать во время публикации, либо вместе с экзешником dll-ку тащить
Аноним 06/10/22 Чтв 13:55:28 2482839 1180
>>2482783
отключение GC предоставляется искаропки. что тут сложного то?
Аноним 06/10/22 Чтв 13:58:56 2482844 1181
>>2482838
В гробу я видал таскать с прогой ещё и либы. Я ж поэтому и спрашиваю, как мне влинковать всё в экзешник, как в тех же плюсах?
Аноним 06/10/22 Чтв 14:11:29 2482847 1182
>>2482839
>отключение GC предоставляется искаропки
Это залупа. Предоставляется отключение GC в рамках какого-то региона в коде, но не в целом.

>>2482844
>Я ж поэтому и спрашиваю, как мне влинковать всё в экзешник, как в тех же плюсах?
Я же говорю, self-contained надо указывать во время публикации проекта
Аноним 06/10/22 Чтв 14:15:09 2482853 1183
>>2482847
И где я его публиковать буду, не подскажешь?
На самом деле я нихуя не понимаю, где это выставлять, и как это повлияет на экзешник
Аноним 06/10/22 Чтв 14:20:25 2482857 1184
image.png 7Кб, 394x175
394x175
image.png 43Кб, 1381x750
1381x750
image.png 43Кб, 1207x696
1207x696
>>2482853
На 2 пике надо везде жать "далее" и "финиш"
Аноним 06/10/22 Чтв 14:22:31 2482861 1185
Аноним 06/10/22 Чтв 14:26:02 2482864 1186
>>2482857
>>2482861

Я в перерывах между нытьём уже успел через консоль попробовать. Получилась один в один та же хрень. Дллка и экзешник, хотя указано как селфконтейнед
Аноним 06/10/22 Чтв 14:28:06 2482868 1187
Аноним 06/10/22 Чтв 14:32:21 2482874 1188
>>2482868
Уже поебался, спасибо. Завелось
Аноним 06/10/22 Чтв 14:52:16 2482890 1189
>>2482784
Гугли AOT компиляцию.
Хотя я думаю там тоже будут ограничения, вроде использования рефлексии и т.д.
Аноним 06/10/22 Чтв 15:17:42 2482901 1190
>>2482847
>GC в рамках какого-то региона в коде, но не в целом.
вжух и считаем весь код одним большим регионом. Кто тут в сеньоры крайний?
Аноним 06/10/22 Чтв 15:18:21 2482902 1191
>>2482901
>вжух и считаем весь код одним большим регионом.
Ебало своё имаджинировал когда у тебя в проекте будет 500 файлов?
Аноним 06/10/22 Чтв 15:19:53 2482903 1192
Аноним 06/10/22 Чтв 15:31:57 2482905 1193
>>2482902
какая разница сколько файлов
>>2482903
оберну метода Main
Аноним 06/10/22 Чтв 16:23:58 2482936 1194
Как можно порезать экзешник, не порезав функциональность? Что в программе на 50 строк должно тянуть на 130 мегабайт нахуй?
Аноним 06/10/22 Чтв 16:35:26 2482939 1195
>>2482936
Весь рантайм дотнета, ведь так не хочется тащить dll-ки.
Аноним 06/10/22 Чтв 18:47:41 2483048 1196
>>2482786
> Объясните, пожалуйста, понятным русским языком
> нахуй оно нужоно?
Конкретно мне это нужно, чтобы создавать списки. Допустим у тебя есть классы: мужчина, женщина, человек, бот, нейросеть. Все они наследуются от разных классов, а некоторые и друг от друга, но все они реализуют интерфейс "двачер". Вот это-то мне и нужно. Мне нужен список двачеров. Я пишу:
> List<IDvacher> dvachersList = new();
> while (Watch.IsWatching(OnDvach)) {
> dvachersList.Add(AbstractTaschMayorFactory.GetMimokrock());
> }
Как-то так. Понел?
Аноним 06/10/22 Чтв 18:54:32 2483056 1197
>>2482936
Юзать фрипаскаль, генерирующий экзешники по полкилобайта, плюс твой контент, и не зависящие ни от чего, кроме системных библиотек целевой платформы. Если делаешь оконное приложение, подтянет еще 15 кило графониума в экзешник, в винде зависимостей не притянет, а в линуксах притянет в зависимость ГТК или КТ.

Если ты пришёл в шарп и вообще в дотнет за компактными однофайловыми приложениями, то это ты ошибочно пришёл. Здесь другие ребята. Мы собираем ПРОЕКТЫ, ПРОЕКТИЩА, с кучей либ, которые запаковываем в инсталлеры, которые после загрузки и запуска пользователем чекают пререквизиты и предлагают юзеру докачать при их отсутствии.
Аноним 06/10/22 Чтв 20:13:54 2483133 1198
>>2482939
Его же можно как-то вырезать, полагаю. Сократить до необходимого

>>2483056
Лучше уж плюсы
Аноним 06/10/22 Чтв 20:23:17 2483139 1199
>>2483133
Хеллоу ворд на плюсах со статической линковкой будет весить несколько мегабайт.
Аноним 06/10/22 Чтв 21:15:03 2483198 1200
>>2483139
Это если не знать про strip и флаги оптимизации.
Аноним 06/10/22 Чтв 21:50:16 2483237 1201
Аноним 06/10/22 Чтв 22:35:33 2483270 1202
>>2483237
Мало того, что депрекейтед все уехало в другую репу, так еще и куча невнятных статей из нулевых и 10-х годов. Зачем ты это притащил сюда?
Аноним 06/10/22 Чтв 22:39:07 2483272 1203
Реально ли запилить софтину, которая будет исполнять разный код в зависимости от оси, на которой она вертится?
Аноним 06/10/22 Чтв 22:49:48 2483279 1204
>>2483272
#IFDEF 2CH
Реально.
#ELSE
Нереально.
#ENDIF
Аноним 06/10/22 Чтв 22:56:10 2483283 1205
>>2483272
Через System.Environment.OSVersion можешь определить, какая у пользователя винда, а дальше через if/else.
Аноним 07/10/22 Птн 00:14:46 2483325 1206
Аноним 07/10/22 Птн 08:33:58 2483369 1207
Нафига в сишарп напихали столько сахара? Ладно бы ещё это выглядело как-то органично, а то некоторые конструкции выглядят как говорится - не пришей пизде рукав...
Аноним 07/10/22 Птн 08:39:53 2483371 1208
>>2483369
Ты о чем? Весь сахар понятный абсолютно.
Аноним 07/10/22 Птн 09:12:42 2483387 1209
>>2483369
Тупой вопрос. Ровно затем же зачем вообще появились языки программирования. Чтобы человек мог объяснить машине, что он хочет от нее на более понятном для себя языке и с наименьшим числом смысловых единиц.
Апофеозом всего этого будет один единственный метод DoPizdato()
Аноним 07/10/22 Птн 09:21:23 2483390 1210
>>2483371
понятный != изящный
Аноним 07/10/22 Птн 09:23:58 2483391 1211
>>2483390
Он и изящный, и понятный.
Аноним 07/10/22 Птн 09:32:52 2483399 1212
Аноним 07/10/22 Птн 09:39:20 2483403 1213
>>2483399
Я после крестов, петухона и жабы удвою, что изящный и приятный.

мимо
Аноним 07/10/22 Птн 09:45:38 2483411 1214
Почему не переводят новую книгу Фримена по АСП?
Аноним 07/10/22 Птн 09:53:14 2483414 1215
>>2483411
Потому что читай в оригинале.
Аноним 07/10/22 Птн 10:03:33 2483420 1216
>>2483399
Весь сахар в C# - ахуенен, я не могу привести ни одного примера сахара который бы выглядел хуёво или непонятно. Лямбды понятны интуитивно если у тебя больше 9 классов образования или хотя бы ПТУ где давался матан. Авто-свойства тоже понятны: генерятся backing field и 2 метода get set. Различные *=, +=, -=, /= пришли вообще из других языков которым по сто лет и так же являются интуитивно понятными. Сахар над событиями точно такой же как и над свойствами. Сахар с проверкой на null: myDelegate?.Invoke() - тоже понятен если его один раз увидеть. Оператор ?? тоже понятный с первого раза: если слева Null - делаем то что справа, иначе слева. Хуй его знает, что тебе непонятно.
Аноним 07/10/22 Птн 11:08:38 2483460 1217
>>2483420
опять же
понятно != изящно

>генерятся backing field и 2 метода get set
и нет доступа к этому backing field. хочешь в геттер сеттер что то свое - пиши полную портянку

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

await ура ура, но нет чтобы сделать await и await! допустим. нет. пиши ConfigureAwait() в каждом вызове.
изящно уровня "да нихера не изящно. дичь"

конструктор обязан иметь имя класса. Пошло с жавы, но увы это не изящно.

лямбды с его обязательными ()=>

(Class) vs var as Class - часто вижу как народ использует as ВЕЗДЕ
Раз уж так лучше было бы as?

хватит пожалуй
Аноним 07/10/22 Птн 15:50:28 2483665 1218
Если C# так хорош, то почему так много компаний используют Java?
Аноним 07/10/22 Птн 15:55:28 2483677 1219
Аноним 07/10/22 Птн 16:20:08 2483716 1220
>>2483677
Ну що тут сказати?
В связи с недавними событиями (Z-событиями) количество легаси вангую поубавится.
Потому что поддержки нет. Фирмы ушли. Они конечно вернутся, но будут ли их ждать? И будут ли на них полагаться?
Это же, выражаясь языком инфобезопасности, компрометация. Все ушедшие с рынка фирмы на многие годы скомпрометировали себя, как ненадёжная хуйня, которая может отказать в обслуживании клиентам по независящим от клиентов причинам.
Однако это может не помочь и шарпу. Сейчас-то он как бы опенсорц, но все мы прекрасно понимаем, какой "опенсорц" у майков. Кто-нибудь вообще собирал из исходников дотнет с мсбилдом?
Аноним 07/10/22 Птн 17:58:17 2483864 1221
Аноним 07/10/22 Птн 18:43:19 2483907 1222
1665157401605.png 65Кб, 222x345
222x345
>>2483864
А опенорсный опенсорс.
Аноним 07/10/22 Птн 19:16:37 2483938 1223
>>2483665
Так исторически сложилось, а на переписывание кодовой базы на шарп с джавы мало кто согласится выделить бабла. Проще со старой жабы то есть восьмой мигрировать на 11/17 либо сразу на котлин, это в десятки раз дешевле будет.
Аноним 07/10/22 Птн 20:35:06 2483998 1224
>>2483716
Ну под эльбрусы дотнет сделали, значит как минимум они собирали. Будем пользоваться нашим православным мцст.нет если что
Аноним 08/10/22 Суб 00:36:38 2484152 1225
>>2445746 (OP)
делаю свой стартапчик
стек с++ (функционал) питон (бек+функционал) +nginx
с ui на авалонии(c#) какие есть тулкиты под неe
Аноним 08/10/22 Суб 01:55:39 2484176 1226
>>2484152
Пиздец, какой же винегрет.
Аноним 08/10/22 Суб 06:02:45 2484213 1227
перекат будет в этом столетии?
Аноним 08/10/22 Суб 08:24:59 2484218 1228
>>2484213
LTS-треды поддерживаются 3 года
Аноним 08/10/22 Суб 08:31:52 2484219 1229
>>2484218
Думаешь шарп столько проживет?
Аноним 08/10/22 Суб 14:11:19 2484363 1230
>>2484176
qt платный а Gtk всратый
Аноним 08/10/22 Суб 14:31:40 2484370 1231
Аноним 08/10/22 Суб 16:19:49 2484393 1232
Аноним 07/11/22 Пнд 20:53:34 2508270 1233
Повторяю сишку, вот такая задача:
Калипта Анны, которая считается самой быстрой птицей в мире относительно своего размера, может развивать скорость до 80 км в час.

Задача
Напишите программу, чтобы вывести, сколько километров она будет преодолевать каждый час за 5 часов полета.

Выходные данные
80
160
240
320
400

Подсказка
Просто умножьте 80 на счетчик для каждой итерации.
Используйте цикл for для итеративного выполнения умножения.

Я вот сейчас час думал над тем, что требуется, даже заснул от того, что сложно понять. Что она. По условию задачки. Летит на максимальной скорости и надо просто количество км с нуля каждый час выводить. ПРИ УСЛОВИИ, ЧТО НЕПРЕРЫВНО ЛЕТИТ ПО ПРЯМОЙ!!!
Пиздос, ну кто так условия ставит.
А как проходит ваш день?
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов