ربط الخلفية Elixir و Go باستخدام مُغلف Crystal
2025-06-19
احتاج فريق Mozi إلى توصيل تطبيق Elixir Phoenix LiveView جديد بخلفية Go موجودة. لقد استكشفوا NIFs و Ports ، لكنهم اختاروا في النهاية نهج عقدة C من Erlang ، باستخدام Crystal لكتابة مُغلف C لتحسين الصيانة. هذا يفك ارتباط قواعد البيانات في وقت التجميع والتشغيل ، باستخدام `Node.list` في Elixir للكشف عن اتصال عقدة C و S6 لإعادة التشغيل داخل الحاوية. على الرغم من وجود عقوبة في الأداء عند عبور الحد C / Go ، إلا أن هذا مقبول لحالة الاستخدام الخاصة بهم. والنتيجة هي مزيج أنيق من ثلاث لغات (Elixir و Crystal و Go) يحسن من الصيانة.
التطوير