سؤال

في مشروعنا، نكتب الكثير من سجلات التطبيقات (أحيانًا تكون مفيدة جدًا). tmp مجلد.

في هذا المجلد لدينا أدلة المكونات، مثل:

  • واجهة برمجة التطبيقات
  • email2sms
  • مجدولة_إرسال
  • الفواتير
  • إلخ.أقل من 10 مجلدات، في تلخيص.

المشكلة:ينشأ مجلد المكون الجديد بمرور الوقت - يجب أن يكون كل مجلد من هذه المجلدات قابلاً للكتابة.

لذلك يستغرق كل مطور وقتًا لتعديل كل مجلد من هذه المجلدات في بيئاته المحلية، ويستغرق الأمر وقتًا لتعديل هذا المجلد في الإنتاج.

كيف يمكن حل هذه المشكلة؟كيف يمكن أتمتة هذه العملية (مهمة Apache Ant، ​​وخصائص SVN، والبرنامج النصي للتطبيق - الذي يجب أن يكون مسؤولاً عن المهمة)؟

بيئة:بيئات التطوير - أوبونتو، ويندوز؛الإنتاج - فري بي إس دي

هل كانت مفيدة؟

المحلول

الطريقة السريعة والقذرة التي استخدمتها في معظم الشركات التي أعمل بها كانت كالتالي:

  1. ضع كل التعليمات البرمجية في نظام إصدار (مثل SVN أو شيء من هذا القبيل) بحيث يكون لدى جميع المطورين مصدر واحد للملفات.من الواضح أنك تفعل هذا بالفعل. يا هلا!
  2. ضع جذر هذا الكود في ملف اسمه setup_permissions.sh الذي يقوم بتحديث جميع عناصر البيئة المحلية.يمكن أن يشمل ذلك الأذونات، أو أي شيء تحتاجه للتشغيل.
  3. كل صباح، كل المبرمجين يفعلون ذلك svn update, ، الذي يقوم بتحديث الملفات، وكذلك setup_permissions.sh.
  4. يحاولون تشغيل التعليمات البرمجية الخاصة بهم.ترى مشكلة.هم يجرون setup_permissions.sh.
  5. كل شيء على ما يرام في العالم!

أما بالنسبة لمحتويات setup_permissions.sh, ، يمكن أن يكون شيء مثل:

#/bin/sh
TMP=/tmp

mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing

وأضف أي أوامر أخرى تشعر أنك بحاجة إليها.
(أوه، ولا تستخدم chmod 777...إنها فكرة رهيبة.فقط انظر إلى هذا كمثال.)

المفتاح لهذا النهج هو تأديب.يجب أن تثق في أن المبرمجين لديك لديهم الانضباط اللازم لتشغيل البرنامج setup_permissions.sh عندما يقومون بتحديث بيئاتهم المحلية.وينطبق الشيء نفسه على من يقوم بتحديث نظام الإنتاج.

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

نصائح أخرى

يجب أن يكون الشخص (البرنامج/المكون) الذي يقوم بإنشاء السجل مسؤولاً عن جعل ملفات السجل قابلة للكتابة للجميع - لاستخدام mod=777 (الجميع قابل للكتابة) عند إنشاء السجلات.

إذا كانت عملية النشر تحتوي على برنامج نصي للتثبيت، فافعل ذلك أيضًا في البرنامج النصي.

يجب أن يكون mkdir وchmod في برنامج نصي بسيط كافيًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top