إعادة ترتيب الموقع البرمجي: ما هو أفضل مكان؟

لقد كنت أكتب نصًا برمجيًا، مدفوعًا بملف YAML، لإعادة ترتيب موقع Discourse. هذا لأنني أخطط لإعادة ترتيب ضخمة جدًا لأكبر موقع لدي لجعله أسهل في التنقل، ولن أنتهي منه أبدًا إذا حاولت القيام بذلك من خلال واجهة المستخدم.

النص البرمجي الخاص بي لا يحتوي على أي اختبارات وحدات، وبينما أنا مؤيد عام لاختبارات الوحدات وكنت كذلك لفترة طويلة، لست متحمسًا لكتابة أي منها لهذا النص البرمجي.

النص البرمجي هو في الواقع إطار عمل للبناء عليه - لن يرغب الجميع في نفس الدلالات التي أريدها. بهذا المعنى، فهو يشبه إلى حد ما بعض نصوص الترحيل حيث تتوقع أن يقوم الأشخاص بتعديلها لتناسب احتياجاتهم.

مع هذه القيود، هل هذا شيء يستحق تقديمه كطلب سحب (PR)؟ أم يفضل الأشخاص أن أقوم بنشره ككتلة تعليمات برمجية، ربما في #documentation:sysadmin؟

أريد في الغالب مساعدة أي شخص آخر يحاول القيام بشيء مماثل. أيضًا، قد تساعد الوظائف الفعلية الأشخاص في معرفة ما يجب فعله في وحدة تحكم Rails.

3 إعجابات

ليس لدي أي فكرة عما تعنيه “إعادة ترتيب الموقع”. ربما تنشر أجزاء في عمليات مجمعة إدارية؟

لا أفهم “MSN” ولكن في حالتي، ما أفعله يتضمن نقل المشاركات بين الفئات، وإضافة علامات، وإعادة تعيين الآباء للمشاركات، وإخفاء الفئات، وإضافة عمليات إعادة توجيه… بعض المهام مغطاة في “الإجراءات المجمعة الإدارية” وبعضها لا، ولكن في كلتا الحالتين، كلها من برنامج نصي واحد.

حاليًا، في حالتي، هذه 112 إجراءً. أنا لا أكتب ذلك في مزيج من rails c و rake ذهابًا وإيابًا، ربما عدة مرات في الساعة بينما أستكشف عمليات إعادة تنظيم مختلفة لموقعي مع قيادة موقعي.

السؤال ليس “كيف يمكنني تحقيق ذلك؟” - لقد كتبته بالفعل، على الرغم من أنني أنوي الاستمرار في تحسينه (على سبيل المثال، ربما سأجعله يكتب أيضًا سجل تدقيق كامل ومفصل، وهو شيء لا يفعله بعد ولكن قد أرغب في الحصول عليه قبل أن أقوم بتشغيل هذا بالفعل للموقع المباشر).

السؤال هو: كيف أفضل مشاركته؟ لا أرى شيئًا كهذا في الدليل scripts/ (على الرغم من أنني ربما فاتني شيء ما) وأقدر أن طلبات السحب (PRs) يجب أن تأتي عادةً مع اختبارات آلية (على الرغم من أنني لا أعرف مدى قوة تطبيق هذا على الدليل scripts/). في الوقت نفسه، هو بالفعل أكثر من 150 سطرًا ويتزايد، وهو ما يبدو كبيرًا للمشاركة عن طريق نشره هنا، حيث سيكون أكبر بكثير من صندوق الكود.

عفوًا. كانت “ربما” وليست “MSN”. :person_shrugging:

أعتقد أنك تنشره على github وتربطه به - إما إنشاء موضوع له أو إضافته إلى عمليات المسؤول المجمعة.

إعجابَين (2)

إن إنشاء مشروع مستقل على GitHub هو أفضل طريقة للمضي قدمًا. تأكد أيضًا من إنشاء موضوع حول الأداة هنا على Meta حتى يتمكن الأشخاص من معرفة ذلك.

4 إعجابات

نعم، أريد بالتأكيد أن يتمكن الناس من العثور عليه!

لقد بدأت بـ:

require_relative "../config/environment"

لكي يعمل عند وضعه في دليل البرامج النصية. هل هناك نمط شائع لوضعه خارج دليل discourse؟ (لا أرى شيئًا في .gitignore مثل نمط الإضافات لفحص الأشياء بخلاف الإضافات داخل فحص.)

إذا لم يكن الأمر كذلك، يمكنني فقط القول “انسخه إلى scripts/” كتعليمات التثبيت، ولكني أريد فقط معرفة ما إذا كان هناك شيء يمكنني فعله لكي أتناسب بشكل أفضل.

لدينا مشروع يستخدم إعدادًا مثل:

cd /var/www/discourse/script
git clone https://github.com/user/discourse-config-tool.git
cd ..
bundle exec ruby script/discourse-config-tool/app.rb

شيء مثل هذا سيتناسب مع تعليمات التثبيت لأداتك.

3 إعجابات

شكرا! هذا يسهل دائمًا على الآخرين ملاءمة نمط موجود!

سأقوم بتجميعها ونشرها في #documentation:sysadmin بمعلومات أكثر تحديدًا بمجرد وضعها.

إعجابَين (2)

ربما كانت هذه هي الفئة الخاطئة؛ لقد تم إرسالها للمراجعة.

هل كان يجب أن أقدمها هنا في Dev بدلاً من ذلك؟

لقد وافقت عليه لك.

3 إعجابات

شكراً جزيلاً @Stephen!

لكل من قد يصل إلى هنا بدلاً من هناك في المستقبل:

إعجابَين (2)