B
Size: a a a
B
SM
B
MK
DS
./lib/{app_name}/
и называться AppName.{module name here}
Внешний вид кода:def f(x), do:
) делаются однострочными, когда возвращают одно значение или делают что-то очевидное. Практически всегда лучше выносить в do end
Нет слова deregister
, есть unregister
Elixir:./lib/broadcaster.ex:33
лучше написать фильтр не через !=
а через паттернматчинг./lib/client.ex
:9 лучше использовать handle_continue
- В ./lib/client.ex:31
неочевидно используешь пайпы. Лучше было бы если read_line
возвращал {:ok, value} | {:error, reason}
. То же самое в write_line
- В ./lib/client.ex
генсервер слишком часто шлёт себе сообщения - это плохо. Например, ./lib/client.ex:46
не исполнится, пока не закончится serve
Сообщения, которые попадают в генсервер кладутся в его личную очередь сообщений и не вынимаются из неё пока генсервер не закончит handle
- В ./lib/telnet_chat.ex:16
вызов каста никогда не закончится и сервер не будет обрабатывать сообщения. В accept
вызывается loop
, которая исполняется рекурсивно./lib/telnet_chat.ex:10
лучше использовать handle_continue
- В ./lib/telnet_chat.ex
вообще большая ошибка. ПереписатьDS
DS
DS
М
AB
V
AB
VP
DI
M
RI
AB
MK
MK