لقد اتصل بي أحد العملاء مؤخرًا بشأن تطبيق جافا سكريبت "للتقييم المالي" على موقع Wordpress الخاص به والذي لم يعد يعمل. لقد واجه عددًا كبيرًا من المشاكل، وفي النهاية، كان الطريق الأسهل هو إعادة بنائه.
في هذا التطبيق، يمكن للمستخدمين إدخال المعلومات المالية والشخصية الأساسية، ويخبرهم التطبيق ما إذا كانوا على الطريق الصحيح فيما يتعلق بالتخطيط المالي. إنه ليس منطقًا معقدًا للغاية، ولكن هناك قدرًا كبيرًا منه.
أنا لست مطورًا للواجهة الأمامية في المقام الأول. أنا أكثر راحة في الخلفية. لكنني قمت بتنفيذ مشاريع في Vue وAngular وReact... إنهم يعملون، لكنني لا أثق بهم تمامًا. ومع مرور الأشهر والسنوات، ينتابني دائمًا قلق متزايد بشأن مدى تقادم التبعيات، بما في ذلك سلسلة أدوات التطوير نفسها.
Gleam هي لغة سهلة الاستخدام لبناء أنظمة آمنة وقابلة للتوسع!
~ موقع جليم
لقد كنت متحمسًا بشأن Gleam منذ أن أعلنوا لأول مرة أن الإصدار الأول جاهز للإنتاج. إن أسلوبه الوظيفي، وثباته، ومطابقة الأنماط الشاملة، واستدلال النوع، واستقرار Go البسيط يعني أن Gleam قد وصل إلى كل نقاطي الرائعة.
يضمن نظام الكتابة إلى حد كبير أنه إذا تم تجميع التعليمات البرمجية الخاصة بك، فإنها تعمل. لم أواجه حتى الآن خطأً في كود Gleam الخاص بي والذي لم يكن نسخة من "خطأي، لقد نسيت الانتهاء من تنفيذ ذلك."
تم تصميم Gleam ليتم تشغيله على BEAM (جهاز VM الأسطوري الذي تم اختباره في المعركة من Erlang)، ولكنه يحتوي أيضًا على هدف تجميع Javascript. وهذا يعني أنه يمكن شحنه بسهولة إلى Node والمتصفح.
Lustre هو إطار عمل الواجهة الأمامية البارز لشركة Gleam. إنه منفذ مخلص لـ Elm لنظام Gleam البيئي، ويتميز ببنية إدارة الحالة "Model -> View -> Update" الخاصة بـ Elm.
هذا نموذج مفاهيمي أبسط بشكل جذري من أطر الواجهة الأمامية الأخرى. بدلاً من تقديم إدارة الحالة كمكتبة اختيارية (أنا أتطلع إلى إعادة الإنشاء)، فإن نموذج إدارة الحالة الخاص بشركة Lustre هو جوهرها النابض.
أنت ببساطة تصف كلفعل الذي يمكن أن يحدث لتعديل الحالة داخل تطبيقك، وتعيين هذا الفعل إلى عملية خالصة آمنة من النوع والتي تُرجع نسخة محدثة من النموذج. تتدفق وظائف العرض (الخالصة أيضًا) مباشرةً من حالة هذا النموذج الوحدوي.
يوفر Lustre أيضًا نظام تأثيرات مُدار بحيث أنه حتى مع عمليات الإدخال/الإخراج المختلفة التي قد تفشل،رمز التطبيق الخاص بك يمكن تنفيذه باستخدام وظائف خالصة تمامًا.
الشيء الرائع في الوظائف النقية؟ ويضمن لهم دائمًا تقديم نفس المخرجات في ضوء نفس المدخلات. وهذا يجعلها قابلة للتنبؤ، وسهلة الاختبار، ومستقرة للغاية. الوظائف النقية لا تنكسر. إنهم نوعًا مالا يستطيعون رياضيًا.
لوحة حلوة، حلوةقليلًا من النموذج المعياري لإعداد التطبيق وإنشاء جميع الأنواع وما شابه. لكن ...
لم يكن هناك أبدًا إطار عمل أكثر ملاءمة تم تطبيق مصطلح "النموذجي" عليه. إنه يمنحني نفس الشعور بالثقة الذي أشعر به من خلال غرس برشام في لوح من الفولاذ. بمجرد وضعه في مكانه، لن يذهب هذا الشيءإلى أي مكان .
أجد صعوبة في التعبير عن مدى اختلاف هذا الشعور مقارنة بتجربتي السابقة مع جافا سكريبت. ربما كان تطبيقي أقل LOC إذا كنت قد قمت بذلك في إطار عمل آخر. ولكن هل أثق في أنه لن ينكسر؟ هل سيكون الأمر بهذه البساطة؟المنتج النهائي
.
ليس هذا فحسب، بل إنه يعيش بشكل مريح فيWordpress من جميع الأماكن. لقد أنشأت رمزًا قصيرًا لتحميل الأصول المجمعة، ووضعته على الصفحة، وهذا كل شيء.
يبلغ حجم حزمة JS 18.1 كيلو بايت، وهي مصغرة ومضغوطة بواسطة gz. وهذا صغير جدًا مثلhtmx. للبكاء بصوت عال!
لدي بعض التحفظات بشأن شحن مشروع باستخدام لغة وإطار عمل لا يزال غامضًا نسبيًا. لكن هذه التحفظات تهدأ عندما تعلم أن التطبيق لن يتعطل، وأنه يمكن تعلم Gleam نفسه في فترة ما بعد الظهر.الأهم - أنا بصراحة لا أعتقد أنني سأكون واثقًا من المنتج النهائي، أو في استقرار سلسلة الأدوات، أو في قدرتي على ترقيتها في المستقبل، إذا كنت قد بنيتها باستخدام أي شيء آخر .
معدل ضربات القلب
لقد مر أسبوعان منذ أن تم شحن هذا التطبيق، وما زلت أرغب في إعادة النظر فيه من وقت لآخر. ليس لأن العميل طلب التغييرات. فقط لإلقاء نظرة على الكود.
أشعر بالحرج تقريبًا عند قول هذا، ولكن معظم التعليمات البرمجية الأخرى الخاصة بي تبدو وكأنها مسؤولية على مستوى ما.
خاصة جافا سكريبت. حتى لو كان Typescript، حتى لو كان به اختبارات. يجعلني أشعر بالقلق، كما لو كانت مليئة بالألغام الأرضية المخفية والأفخاخ المتفجرة.
ربما تكون مشكلة مهارة. ربما تم حرقي مرات عديدة.
النظر إلى رمز Gleam/Lustre الخاص بي يجعلني أشعر بالهدوء.
هذا كل شيء. هذه هي التغريدة.في الختام، أمنيتي الصادقة أن يقوم المطورون الآخرون بتجربة Gleam وLuster، حتى يتمكنوا أيضًا من الاستمتاع بنفس النعيم الشبيه بـ Zen عند التفكير في كود الواجهة الأمامية الخاص بهم.
شكرا على القراءة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3