يعد محلل النظام البيئي التنبؤي (PEcAn) نظامًا علميًا لسير العمل لإدارة الكميات الهائلة من البيانات البيئية المتاحة للجمهور ونظام استيعاب البيانات الافتراضية لتجميع هذه المعلومات ضمن نماذج النظم البيئية الحديثة.
المنظمة: مشروع بيكان
الموجهون: كريستوفر بلاك (#infotropic)، شاشانك سينغ (#moki1202)
المساهم: أبهيناف باندي (#Sweetdevil144)
مدة المشروع: 350 ساعة
عنوان المشروع: تحسين PEcAn للاستخدام المستقل للفرد
الحزم
شكرًا جزيلاً، كريس، على الاستماع بعناية إلى أساليبي وتحسينها بطرق أفضل بكثير !!
شكر خاص للموجهين الآخرين أيضًا: ديفيد ليباور وشاشانك سينغ ومايكل ديتز
كان الهدف من هذا المشروع هو تعزيز مشروع PEcAn من خلال تحسين وحداته للاستخدام المستقل. على الرغم من إطار عمل PEcAn القوي والوحدات المترابطة، كانت هناك حاجة متزايدة لجعل هذه الوحدات قابلة للتشغيل بشكل مستقل. كان هذا التحول ضروريًا لتبسيط استخدام الوحدة واختبارها وتطويرها، مما يجعل النظام أكثر سهولة وفعالية للمستخدمين والمساهمين. كان التركيز على تحسين الوحدات النمطية للاستخدام المستقل، وتعزيز قابلية تشغيلها الفردية ضمن إطار عمل PEcAn المترابط. كانت أولويتنا القصوى هي "إعادة فك أدوات التوصيل هذه" من خلال إعادة النظر في تصميم وواجهة حزم PEcAn.
هذا الصيف، حظيت بشرف المشاركة في Google Summer of Code، 2024 مع PEcAn Project. من بين العديد من المرشحين الموهوبين الذين تم اختيارهم لبرنامج هذا العام، كنت من بين هؤلاء الذين تم اختيارهم للمساهمة في العالم الحقيقي البرمجيات مفتوحة المصدر التي لها تأثير عالمي كبير. مع اقتراب البرنامج من نهايته، أود أن أتأمل في ما تعلمته خلال الأشهر الثلاثة الماضية مع PEcAn.
بدأت رحلتي مع مشروع PEcAn قبل فترة طويلة من فترة GSoC الرسمية، مع دمج أول علاقات عامة في وقت مبكر من ديسمبر 2023 - قبل خمسة أشهر من الجدول الزمني GSoC. أعطتني هذه المشاركة المبكرة خبرة قيمة في التنقل في بنية PEcAn المعقدة وتصميم قاعدة التعليمات البرمجية المعقدة. كما سمح لي بالتعرف على عمل المنظمة، وخاصة في لغة البرمجة R. منذ تلك الأيام الأولى، كنت حريصًا على التعمق أكثر في المشروع وتقديم مساهمات ذات معنى.
الدرس الأكثر قيمة الذي تعلمته من GSoC هو هذا: نحن نتعلم من خلال الممارسة، ونمهد الطريق إلى الأمام حتى عندما يبدو الطريق أمامنا غير مؤكد. لقد أظهرت لي تجربتي خلال رحلة GSoC أن ما لقد خططت في البداية لإنجازه وكان مجرد جزء صغير مما حققته في النهاية.
مع 15 طلب سحب، 6 تم حل المشكلات، وساعات لا حصر لها قضيتها في الاجتماعات مع الموجهين، وجدت نفسي متوافقًا بشكل تدريجي مع أهداف مشروع PEcAn.
(جميع أعمالي التي سأناقشها موجودة في أسفل هذه الصفحة.)
تم تنظيم فترة GSoC إلى ثلاث مراحل رئيسية:
المرحلة الأولى: فترة الترابط المجتمعي : خلال هذه المرحلة، تعرفت على المشروع وقمت ببناء علاقات قوية مع الموجهين. أتاحت لي هذه المرة اكتساب فهم قوي لأهداف المشروع وتعقيداته. لقد بدأت بإجراء تغييرات طفيفة على قاعدة التعليمات البرمجية مع استيعاب الجوانب الرئيسية لـ PEcAn. ركزت جهودي على جمع البيانات التي ستصبح فيما بعد حاسمة في مواجهة تحديات المشروع.
المرحلة 2: فصل حزم PEcAn : كانت مهمتي الرئيسية في هذه المرحلة هي البدء في فصل حزم PEcAn، حيث كانت نقطة البداية هي حزمة data.land. وتضمن ذلك فحصًا دقيقًا للحزم التي تتطلب تحسينًا في النمطية والمرونة داخل المشروع. خلال هذه المرحلة، قمت بإزالة تبعية data.land من حزمة data.atmosphere عن طريق اكتشاف مثيلات دقيقة من التبعيات وإعادة توجيهها مرة أخرى إلى مكالمات قاعدة البيانات بدلاً من ذلك مما أدى إلى تقليل التبعيات الإجمالية. بالإضافة إلى ذلك، قمت أيضًا بإجراء بعض التغييرات الطفيفة على إضافة مجموعات اختبار لـ met2Cf.csv.R وعلى إزالة وظيفة db.site.lat.lon واستبدال جميع الاستخدامات بـ query.site . لقد قمت أيضًا بدمج العديد من مكالمات قاعدة البيانات مما ساعد بشكل أكبر في تقليل مكالمات قاعدة البيانات التي يتم إجراؤها في نظامنا وتقليل زمن الوصول إلى قاعدة البيانات. لقد أنشأت أيضًا برنامجًا نصيًا مخصصًا بلغة بايثون لتحديد الوظائف المعزولة التي لم تعد تُستخدم في قاعدة التعليمات البرمجية بعد الآن وقمت بإجراء عمليات تنظيف لمثل هذه الحالات.
المرحلة 3: تعزيز وظيفة Convert_input : أثبتت هذه المرحلة أنها الأكثر تحديًا على الإطلاق بسبب تعقيد وظيفة Convert_input في PEcAn. لقد كرست وقتًا كبيرًا لإيجاد نهج جيد لمعالجة مختلف القضايا التي كنا نواجهها. ومع ذلك، كانت هذه المرحلة أيضًا هي الأكثر إنتاجية، وذلك بفضل الفهم الأعمق بكثير لقاعدة التعليمات البرمجية التي اكتسبتها في هذه المرحلة.
خلال هذه المرحلة، اقترحت وظيفة جديدة لاسترداد site.info اختياريًا بحلول #3324، مما يعزز المرونة. بالإضافة إلى ذلك، ساعدت في إعادة بناء وإزالة حزمة BrownDog المتوقفة الآن، مما يضمن قاعدة تعليمات برمجية نظيفة وحديثة عبر #3348. لقد نجحت في إزالة جميع مثيلات BrownDog أثناء مناقشة هذه التغييرات بشكل فعال مع الموجهين.
لمزيد من تحسين نمطية وظيفة converter_input، قررت تقسيمها إلى وظائف مساعدة أصغر في #3338. تعمل عملية إعادة الهيكلة هذه على تبسيط التنقل وفهم قاعدة التعليمات البرمجية، مما يسهل على المطورين المستقبليين العمل معها.
طوال فترة GSoC، عقدت اجتماعات منتظمة (كل يوم أربعاء) مع الموجهين لمناقشة تقدمنا الأسبوعي والخطط المستقبلية والإستراتيجية للمضي قدمًا في المشروع. لقد ساعدتني هذه المساعدة المنتظمة من المرشدين في تركيز اهتمامي على المشروع.
أنا ممتن للغاية لفريق PEcAn بأكمله لتزويدي بهذه الفرصة الرائعة للنمو والتعلم والتعاون مع الآخرين. إن ما يجعل GSoC فريدة حقًا هو متعة الرحلة نفسها. لم أكتسب الكفاءة في لغة برمجة جديدة فحسب، بل تطورت أيضًا كشخص، وخرجت من منطقة الراحة الخاصة بي من خلال الاجتماعات والتفاعلات الأسبوعية مع مرشدي. لقد كانت هذه التجربة تحويلية، على المستويين الفني والشخصي.
من الآن فصاعدا، أخطط لمواصلة العمل مع PEcAN على المدى الطويل وتحسين قدرات PEcAN بأي صفة أستطيع !! هذا هو التفاف الآن! ??
المعرفات | عنوان | ولاية |
---|---|---|
3359 | تحديث DEV-INTRO.md | تم الدمج |
3312 | دمج استدعاءات PEcAn.db المتعددة في استعلام واحد | تم الدمج |
3308 | إزالة الدالة db.site.lat.lon واستبدال جميع الاستخدامات بـ query.site | تم الدمج |
3301 | إضافة مجموعات اختبار لـ met2Cf.csv.R | تم الدمج |
3300 | إزالة التبعية على data.atmosphere من data.land | تم الدمج |
3291 | إضافة برنامج نصي لتحديد الوظائف المعزولة في قاعدة التعليمات البرمجية | تم الدمج |
3290 | إزالة inst/met2CF.R غير المستخدمة | تم الدمج |
3283 | تحديث عناوين URL لنقطة نهاية واجهة برمجة التطبيقات | تم الدمج |
3281 | إصلاح البحث عن امتداد الملف في وظيفة met2model.SIPNET | تم الدمج |
3276 | تحديث الوثائق الخاصة بوظيفة cos_solar_zenith_angle | تم الدمج |
3246 | إصلاح الأخطاء المطبعية والأخطاء في وثائق Markdown | تم الدمج |
3243 | تحديث book.yml | تم الدمج |
3348 | إزالة Browndog | يفتح |
3338 | إعادة تحويل الإدخال لتنفيذ المهام عبر وظيفة المساعدة | يفتح |
3324 | إضافة وظيفة للحصول على site.info بشكل اختياري إذا لم يكن موجودًا | يفتح |
3319 | معالجة عامل المعالجة وملفات dbfiles | يفتح |
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3