169 похожих чатов

Всем доброго пятничного дня! Можете подсказать, так вообще на фшарпе

норм пацаны пишут? Или это можно как-то проще сделать? Я прост смотрю и такое ощущение, что я как на сишарпе это все написал
https://gist.github.com/De-Su/838b92986d7ccf621956bb9dbb982268

4 ответов

23 просмотра

выглядит в целом норм, не как на сишарпе, что именно не нравится?)

Denis-Sudeev Автор вопроса
V S
выглядит в целом норм, не как на сишарпе, что имен...

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

Denis Sudeev
да думал мб принято более декларативно писать, там...

DU обычно используется на стыке двух и более контекстов, в некотором смысле это наша альтернатива DI. Способ разорвать связь с управляемым ресурсом, через представление намерений или произошедших событий в отдельном объекте. Причём под ресурсом не обязательно понимается долгоживущий актор, это может быть одна функция по обработке файла, просто с эпическим количеством опций и данных. Чем больше источников команд и потребителей событий, тем больше промежуточных стадий облекается в типы. В порядке возрастания сложности начинаешь с состояния и команд, двигаешься через запросы, события, проекции и дифы, заканчиваешь сущностями, компонентами и другими ECS-подобными механизмами. Процесс итеративный и, в принципе, предсказуемый. Подзуживать можно, если знаешь, что делаешь, или готов выделить время, чтобы узнать в процессе. Но в целом ориентируешься на сложность происходящего. Если блюдо требует от тебя навыков звезды вебкама, то распиливаешь эту сосиску на куски и продолжаешь спокойно жить в зоне задачек для дошколят. Конкретно в твоём случае DU потенциально может выразить твои команды бота, чтобы унифицировать работу с литералами, но пока они не фигурируют в сообщениях к пользователю, в этом особого смысла нет. В перспективе поможет, если будешь запускать ядро бота где-то ещё или тестировать его не через E2E, но тогда в коде вообще много чего придётся поменять. В остальном, в глаза бросается |> Async.RunSynchronously |> ignore в sendMessage, который вызывается не в корне. Обычно за это полагается строгий аяяй. Async надо холить и лелеять до последнего.

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта