엘릭서 프로그래밍

엘릭서 프로그래밍

2023-11-03 Note elixir notes

토머스 (2022) 처음 배우는 엘릭서 프로그래밍: 쉽고 빠르게 익히는 함수형 프로그래밍

Install on Linux 설치

[2023-11-03 Fri 09:53] 버전 24 면 괜찮다.

sudo apt-get install elixir erlang-dev -y

패키지 erlang-dev 는 이미 최신 버전입니다 (1:25.2.3+dfsg-1). 패키지 elixir 는 이미 최신 버전입니다 (1.14.0.dfsg-2).


$ apt show elixir
Package: elixir
Version: 1.14.0.dfsg-2
Priority: optional
Section: universe/interpreters
Source: elixir-lang
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Evgeny Golyshev <eugulixes@gmail.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 7,123 kB
Depends: erlang-base (>= 1:24.3.4.1+dfsg), erlang-crypto (>= 1:24.3.4.1+dfsg), erlang-inets (>= 1:24.3.4.1+dfsg), erlang-parsetools (>= 1:24.3.4.1+dfsg), erlang-public-key (>= 1:24.3.4.1+dfsg), erlang-tools (>= 1:24.3.4.1+dfsg)
Homepage: http://elixir-lang.org/
Download-Size: 4,685 kB
APT-Sources: http://mirror.kaka

$ sudo apt-get install elixir erlang-dev -y

다음의 추가 패키지가 설치될 것입니다 :
  erlang-asn1 erlang-base erlang-crypto erlang-ftp erlang-inets erlang-mnesia erlang-parsetools erlang-public-key
  erlang-runtime-tools erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools libsctp1
제안하는 패키지:
  erlang erlang-manpages erlang-doc lksctp-tools
다음 새 패키지를 설치할 것입니다:
  elixir erlang-asn1 erlang-base erlang-crypto erlang-ftp erlang-inets erlang-mnesia erlang-parsetools erlang-public-key
  erlang-runtime-tools erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools libsctp1
0개 업그레이드, 15개 새로 설치, 0개 제거 및 5개 업그레이드 안 함.
21.3 M바이트 아카이브를 받아야 합니다.
이 작업 후 33.5 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y

잘 된다.

jhnuc :: ~ » elixir --version                                                                                           127 ↵
Erlang/OTP 25 [erts-13.1.5] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]

Elixir 1.14.0 (compiled with Erlang/OTP 24)
jhnuc :: ~ »

build elixir-ls lsp server

[2023-11-03 Fri 09:37]

elixir-lsp/elixir-ls - github.com

git clone git@github.com:elixir-lsp/elixir-ls.git
cd elixir-ls
mix deps.get
MIX_ENV=prod mix compile
MIX_ENV=prod mix elixir_ls.release -o ~/.local/bin

결과 다음 파일을 가지고 서버를 실행하면 된다.

language_server.sh: home/junghan.local/bin/language_server.sh

jhnuc :: nosync/elixir/elixir-ls ‹v0.17.0› » MIX_ENV=prod mix elixir_ls.release -o ~/.local/bin                       130 ↵

warning: This task is deprecated. Consider switching to release2
  lib/mix.tasks.elixir_ls.release.ex:9: Mix.Tasks.ElixirLs.Release.run/1
  (mix 1.14.0) lib/mix/task.ex:421: anonymous fn/3 in Mix.Task.run_task/4
  (mix 1.14.0) lib/mix/cli.ex:84: Mix.CLI.run_task/2
  (elixir 1.14.0) src/elixir_compiler.erl:65: :elixir_compiler.dispatch/4
  (elixir 1.14.0) src/elixir_compiler.erl:50: :elixir_compiler.compile/3
  (elixir 1.14.0) src/elixir_lexical.erl:15: :elixir_lexical.run/3

Generated archive "/home/junghan/.local/bin/jason_v-1.4.0.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/path_glob_vendored-0.1.1.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/elixir_sense-2.0.0.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/erlex_vendored-0.2.6.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/elixir_ls_utils-0.17.0.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/elixir_ls_debugger-0.17.0.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/erl2ex_vendored-0.0.10.ez" with MIX_ENV=prod
Generated archive "/home/junghan/.local/bin/language_server-0.17.0.ez" with MIX_ENV=prod

IDE on Emacs

[2023-11-03 Fri 09:15]

Elixir Emacs Development — 2023 edition | by Victor Nascimento

[2023-11-03 Fri 21:54]

https://medium.com/@victor.nascimento/elixir-emacs-development-2023-edition-1a6ccc40629

/home/junghan/sync/man/dotsamples/vanilla/victoro-dotfiles-elixir/README.<10> 여기를 확인한다.

Emacs - Elixir Setup Configuration Wiki - Wikis & Polls / Wikis

https://elixirforum.com/t/emacs-elixir-setup-configuration-wiki/19196

Phoenix Framework - phoenixframework.org

[2023-11-03 Fri 07:13]

Elixir for Programmer Course

[2023-11-03 Fri 12:09] 결제 했다. 책이랑 같이 보자. 완독하자!

gtgkjh85@naver.com, 현대카드 Elixir for Programmers - codestool.coding-gnome.com

git clone https://github.com/pragdave/e4p2-hangman.git

환영

[2023-11-03 Fri 12:26]

동적 슈퍼바이저를 사용하여 행맹 게임 관리 JavaScript 없이도 서버에서 모든 브라우저 인터랙션을 수행하는 피닉스 라이브뷰

프로젝트 레이아웃에 대한 고민. 애플리케이션 로직과 애플리케이션 런타임 프로세스 구조를 명확하게 분리하는 방법을 알게 됨.

사전 모듈 작성. 게임 자체 로직 작성. 종속성 관리하는 방법. 단일 책임 원칙으로 코드를 작은 모듈로 분할.

다음은 간단한 텍스트 기반 클라이언트. 함수형 언어로 애플리케이션 상태를 유지하는 방법에 대한 논의.

  • 동시 프로그래밍과 관련하여 - 프로세스와 액터 모델 적용

OTP 프레임워크. 수천 개의 모듈과 수백만 개의 프로세스가 포함된 애플리케이션을 배포 하는 방법.

그 다음은 피닉스 프레임워크. 두 개의 웹 프론트앤드. 첫 번째는 일반 HTML 앱, 두 번째는 라이브뷰를 사용하여 작서오딘 단일 페이지 애플리케이션.

  • How to Maximize the Experience 경험을 극대화하는 방법 : 직접 해보라. I’ll probably end up saying this too many times, but we learn by doing. 이 말을 너무 많이 하게 되겠지만, 우리는 실천하면서 배웁니다.

    There’s one thing I really want you to do: code along as we build hangman. I’ll provide you with links to my code as we progress, just in case you need to reset. But please use these as a last resort. The more you code along, the faster you’ll learn.

    한 가지 부탁드리고 싶은 것이 있습니다. 행맨을 만드는 동안 코드를 따라 작성해 주세요. 재설정이 필요한 경우를 대비해 진행하면서 제 코드 링크를 제공할 것입니다. 하지만 이것은 최후의 수단으로 사용해 주세요. 더 많이 코딩할수록 더 빨리 배울 수 있습니다.

  • Your Turn 당신의 차례 연습 문제를 해보라.

DONT Nerves Project - nerves-project.org

[2023-11-03 Fri 11:53]

Elixir ❤️ Embedded

Nerves is an open-source platform that combines the rock-solid BEAM virtual machine and Elixir ecosystem to easily build and deploy production embedded systems.

Related-Notes

References

마지막 수정일자