소스 정보
- 저장소
- JohnNuwan/EVA_CORE
- 최근 소스 활동
- 2026년 7월 18일 08:30
- 감지된 SKILL.md 언어
- 프랑스어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill elixir-programming명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | elixir-programming |
| description | Programmer en Elixir, utiliser OTP et les outils Mix. |
| version | 1.0.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"tags":["elixir","otp","mix","nerves","functional-programming","iot","industrial-protocols"],"related_skills":["siemens-scl-generation","rockwell-l5x-generation"]} |
Cette compétence régit l'écriture de code Elixir, la conception d'architectures concurrentes et tolérantes aux pannes avec OTP, et l'intégration d'applications industrielles embarquées via le framework Nerves.
Activez cette compétence lorsque l'utilisateur demande :
Elixir est un langage fonctionnel dynamique conçu pour créer des applications scalables et maintenables.
=) : L'opérateur = n'est pas une simple affectation, mais une assertion d'égalité de motifs.
{status, result} = {:ok, "Donnée capteur"}
|>) : Enchaîne les appels de fonctions en passant le résultat de la fonction précédente comme premier argument de la suivante.
capteur_id
|> lire_mesure()
|> filtrer_bruit()
|> normaliser_echelle()
Mix est l'outil d'automatisation de build d'Elixir. Il gère la création de projets, la compilation, les tests et la gestion des dépendances.
mix new mon_app --sup
Le drapeau --sup configure automatiquement un arbre de supervision de base.iex -S mix
Permet d'exécuter l'application interactivement et de recharger les modules à la volée avec recompile().mix test
mix.exs sous la fonction deps/0, et récupérées avec :
mix deps.get
L'atout majeur d'Elixir réside dans son modèle d'acteurs de processus légers (indépendants des threads de l'OS) managés par la machine virtuelle BEAM.
Composant standard pour encapsuler l'état d'un processus et gérer des requêtes synchrones (call) ou asynchrones (cast).
defmodule EVA.TelemetryWorker do
use GenServer
# API Client
def start_link(opts) do
GenServer.start_link(__MODULE__, opts, name: __MODULE__)
end
def get_last_measure() do
GenServer.call(__MODULE__, :get_last)
end
# Rappels (Callbacks) Server
@impl true
def init(_opts) do
# Initialise l'état du capteur
{:ok, %{last_value: 0.0}}
end
@impl true
def handle_call(:get_last, _from, state) do
{:reply, state.last_value, state}
end
end
Les superviseurs surveillent d'autres processus (leurs enfants) et les redémarrent automatiquement en cas de crash suivant des stratégies précises (one_for_one, one_for_all, rest_for_one).
defmodule EVA.Supervisor do
use Supervisor
def start_link(opts) do
Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
end
@impl true
def init(_opts) do
children = [
{EVA.TelemetryWorker, []}
]
Supervisor.init(children, strategy: :one_for_one)
end
end
Nerves permet de compiler du code Elixir directement en une image système minimale (firmware) démarrant instantanément sur du matériel embarqué (Raspberry Pi, BeagleBone, PC industriels).
export MIX_TARGET=rpi4
mix deps.get
mix firmware
mix firmware.burn
Elixir excelle dans le décodage binaire grâce au pattern matching sur les binaires.
# Exemple de parsing d'une trame Modbus/TCP en Elixir
def parse_modbus_response(<<transaction_id::16, protocol_id::16, length::16, unit_id::8, function_code::8, data::binary>>) do
%{
transaction_id: transaction_id,
unit_id: unit_id,
function: function_code,
payload: data
}
end
with plutôt que de multiples blocs if ou case imbriqués.Poolboy).@spec et utilisez Dialyxir pour valider la correction statique des types lors des analyses CI.