كيف يمكنك تنظيم مساحة عمل التعليمات البرمجية والمجلد الرئيسي؟

StackOverflow https://stackoverflow.com/questions/1413945

  •  06-07-2019
  •  | 
  •  

سؤال

كيف تنظم مساحة العمل الشخصية الخاصة بك لمشاريع التعليمات البرمجية الخاصة بك في المجلد الرئيسي الخاص بك؟وكيف تحافظ على كفاءة مساحة العمل للتعامل مع مشاريع متعددة في نفس الوقت؟


الجانب الأكثر أهمية في سؤالي هو أعلاه.يمكنك التوقف عن القراءة إلا إذا كنت تريد معالجة أجزاء فرعية محددة من الموضوع.فيما يلي العديد من الأسئلة ذات الصلة حول تنظيم مساحات العمل.ليست هناك حاجة لمعالجة كل منهم.مهتم بسماع إجابات ولو جزئية لبعض الأسئلة التالية ذات الصلة.

هذا السؤال هو في الغالب في سياق UNIX وOS X.يمكن لمستخدمي Windows تقديم اقتراحات ولكني مهتم في الغالب بالمجلد الرئيسي واتفاقيات سطر الأوامر الموجودة عادةً في UNIX وليس Windows (إلا إذا كنت تستخدم cygwin).

على وجه الخصوص، ما هو نوع بنية المجلد الذي تجده مفيدًا عند صيانة مشاريع التعليمات البرمجية المتعددة في نفس الوقت؟وعندما تقوم بتنزيل مجموعة متنوعة من مشاريع التعليمات البرمجية مفتوحة المصدر، كيف يمكنك الحفاظ على تنظيم جميع أشجار المصدر المختلفة دون تشويش مساحة العمل الخاصة بك كثيرًا؟

على وجه الخصوص، أتساءل ما هي الحيل أو النصائح التي قد تكون لديك لتسهيل الوصول إلى المشاريع عبر سطر الأوامر وسهولة التصفح أثناء الخروج من الطريق عندما تحتاج إلى التركيز على مشروع معين.

هل هناك اتفاقيات مفيدة تجدها مفيدة للحفاظ على مستودعات المصدر المختلفة منظمة؟على وجه الخصوص، مع git، كيف يمكنك الحفاظ على تنظيم الفروع المختلفة والمستودعات ذات الصلة؟هل تقوم في كثير من الأحيان بتفجير نسخ العمل وتحديثها بشكل روتيني بالكامل من التحكم بالمصدر؟ماذا تبقي حولك ولماذا؟وكيف تتعامل مع مساحات الأسماء والمسارات إذا كان مشروع معين يحتوي على الكثير من تبعيات المسار التي يتعين عليك تعيينها إلى بنية المجلد الرئيسي الخاص بك؟

ماذا عن مجلدات بن والمكتبات المشتركة؟كيف يمكنك إدارة ذلك إذا كنت بحاجة إلى إنشاء الكثير من بيئات التطوير المحتملة لمشاريع مختلفة (ربما إصدارات مختلفة من PHP، وRuby، وPerl، وخوادم الويب، والمترجمين، وما إلى ذلك).

بالنسبة لمسؤولي النظام المتمرسين، ما الذي ينجح من خلال الخبرة وما الذي لا ينجح؟

كيف تجعل الأمر بسيطًا قدر الإمكان ولكن ليس بسيطًا جدًا؟

وما الذي يمنحك أكبر قدر من المرونة للعمل على مشاريع متعددة في وقت واحد؟

هل تقوم بشكل روتيني بنقل المشاريع من مساحة العمل الخاصة بك وإعادة استيرادها من التحكم بالمصادر؟كيف يمكن منع تراكم المواد الخام مع تقليل الحاجة إلى إعادة إنشاء بيئات المشروع كثيرًا؟

كيف يمكنك تنظيف مساحة العمل بالكامل أو تفجيرها حتى تتمكن من البدء بصفحة بيضاء، دون أن تفقد إمكانية الوصول إلى كود المصدر القيم والكفاءات التنظيمية المكتسبة من المشاريع السابقة؟

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

المحلول

أحتفظ بالبرامج التي كتبتها بنفسي في دليل خاص، يحمل اسم موقع الويب الرئيسي الخاص بي - دعنا نسميها "التلاعب" من أجل الجدال.سيكون لدي ~/juggle/software/ يوجد بداخله دليل فرعي لكل مشروع أكتبه (عادةً ما يتم إدارته باستخدام git) و ~/juggle/websites/ والذي بموجبه لدي دليل فرعي لكل مجال موقع ويب، سواء كان HTML خامًا أو شيء من هذا القبيل مثل webgen أو ثابت.

لمساعدتي في التنقل بينهما، أستخدم "apparix" الذي يرتبط بـ bash بشكل جيد جدًا.

$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix

والآن يمكنني القيام بذلك من أي مكان

$ to wolfsbaen

بالنسبة للبرامج التي قمت بتنزيلها، لدي ~/software/ وداخل ذلك:

  • الأرشيف - للاحتفاظ بكرات القطران المصدرية التي تم تنزيلها
  • الوثائق - لمستندات HTML وكتب PDF التي تم تنزيلها
  • hack - للمشاريع السريعة لتجربة أفكار جديدة أو مكتبات برمجية
  • المشاريع - للمشاريع التي أتعاون فيها، ولكنني لم أبدأ بنفسي
  • بسيط - لبرامج bash/python/Ruby التي يمكن تشغيلها داخل أدلةها غير المعبأة
  • عمليات التخريب - لجميع عمليات فحص التحكم في المراجعة:السيرة الذاتية، svn، بوابة، زئبق الخ.
  • unpacked - لكرات القطران غير المعبأة قبل أن أقوم بتجميعها

لدي أيضًا ~/bin للنصوص البرمجية المفيدة التي أكتبها وأجد نفسي أستخدمها طوال الوقت.أقوم بإضافة هذا إلى PATH في ~/.bashrc

لا أعتقد أن بقية أسئلتك تنطبق علي جيدًا؛باستثناء أنه مع git، لم أضطر مطلقًا إلى مهاجمة أي من مساحة العمل الخاصة بي.أقوم بإنشاء فروع جديدة أثناء وجودي في دليل العمل، وأقوم بتخزين التغييرات الأخيرة إذا اضطررت إلى تبديل الفرع فجأة.أحتفظ أيضًا بنسخة من المستودع لجميع البرامج الخاصة بي ومصدر موقع الويب:

$ git clone --bare . /srv/git/wolfsbaen.git

أقوم بالدفع إلى هذا في نهاية كل مرحلة عمل.وهذا يجعل /srv/git خيارًا واضحًا للنسخ الاحتياطي.

نصائح أخرى

وأنا لا أذهب للرد على جميع أسئلتك. سأقول، مع ذلك، أن يمكنني استخدام SVN، وأتابع اتفاقياتها للمشاريع. لذلك ليس لدي مجلد يسمى:

d:\development

وداخل ذلك، كل مشاريعي هي كما مجلدات فرعية (ربما 20 أو نحو ذلك). في كل منها، هو

\trunk
\branches
\tags

وهذا كل شيء. لدي الجهاز الثاني هنا في الداخل في غير خدمة بلدي (وكذلك المركز الاعلامي: P)، وعلى ذلك لقد SVN يعمل تحت اباتشي، وأيضا <لأ href = "http://trac.edgewall.org/" يختلط = "نوفولو noreferrer"> تراك ، لإدارة المهام والبق في كل واحد. أيضا لدي CC.net، ليبني.

<اقتباس فقرة>   

وكيف تنظم الشخصية الخاصة بك   مساحة العمل للمشاريع التعليمات البرمجية في   المجلد الرئيسي الخاص بك؟

وبقدر ما يذهب UNIXy الاشياء، أضع المجلدات المشروع تحت ~ / ديف. أنا عادة ما تنتهي سحب شيء من التخريب في تلك المجلدات المشروع.

<اقتباس فقرة>   

وما يمنحك أكثر   المرونة للعمل على عدة   مشاريع في وقت واحد؟

لمشاريع ويب، والحفاظ على مجموعة من طراز أباتشي المضيفين الظاهري القائم على اسم هو مفيد للغاية للعمل على مشاريع متعددة في وقت واحد. http://foo.localhost/ يمكن أن نشير إلى ~ / ديف / فو / الجمهور، http://bar.localhost/ -> ~ / ديف / شريط / الجمهور، وهلم جرا

GNU شاشة هو أيضا المفتاح لبلدي سير العمل للتنمية المحلية. إذا كنت بحاجة إلى تبديل التروس إلى مشروع آخر، وسوف أكون مجرد الضغط على مفتاح Ctrl أ، ج ولها محطة معزولة جديدة لاستخدام.

أرغب في مشاركة تجربتي الخاصة في تنظيم النظام (على الرغم من أن السؤال قديم جدًا، إلا أنني آمل أن يساعد هذا شخصًا ما أو قد أحصل على اقتراحات أفضل)

أستمر في تغيير توزيعات Linux وأحيانًا أستخدم Windows للعمل.لذلك قمت بتقسيم القرص الصلب إلى 4 محركات أقراص.

  1. شبابيك
  2. لينكس
  3. رئيسي
  4. واحدة إضافية


يتم تنفيذ كل أعمالي في محرك الأقراص الثالث وهو NTFS، لذا يمكن الوصول إليه في كل من نظامي التشغيل Windows وLinux.(قد تحتاج إلى بعض fstab التكوين لعدم العبث بأذونات الملفات عند تركيب محرك الأقراص هذا في نظام التشغيل Linux).الآن في محرك الأقراص هذا، أضع المجلدات التالية.

  • وثائق
    • جميع المستندات التي قمت بتخزينها (على سبيل المثال.الكتب والأوراق البيضاء وما إلى ذلك)
  • الصور
  • موسيقى
    • الأغاني
    • قوائم التشغيل (تستخدم حاليًا Banshee)
  • أفلام
  • عمل
    • مكتب
      • مشروع مكتب 1
      • مشروع مكتب 2
    • شخصي
      • عام (معظم المشاريع التي قمت بنشرها على جيثب)
        • مشروع شخصي 1
        • مشروع شخصي 2
      • خاص
        • مشروع شخصي 3
        • مشروع شخصي 4
    • موارد
      • يتم تنزيل معظم عمليات إعادة الشراء من github أو أي كود مصدر آخر أو أشياء ذات صلة
  • يخدش
    • بشكل أساسي، يتم وضع كل شيء هنا أولاً في حال لم أكن أعرف مكان وضعه أو كنت في عجلة من أمري.في وقت لاحق أقوم بفرزها حسب الضرورة
    • كما قمت أيضًا بتعيين روابط إلكترونية في هذا الدليل لمختلف الأدلة الأخرى التي أقوم بالوصول إليها بشكل متكرر.والسبب في ذلك هو أنني وضعت scratch المجلد كما Desktop
  • أحمق
    • الأشياء التي تناولتها بالفعل ولكن يجب أن أحتفظ بها لبعض الوقت ثم أزيلها
    • أستمر في تنظيف هذا المجلد في وقت الفراغ
  • بصندوق الإسقاط
    • يتم تخزين القليل من الأشياء التي يمكنني الوصول إليها من أجهزة متعددة في صندوق الإسقاط.ولكن بسبب مشكلات الخصوصية في صندوق الإسقاط، لا أستطيع تخزين كل شيء فيه.وما زلت أجد الحل الأمثل لذلك.لقد حاولت تشغيل بدائل صندوق الإسقاط مفتوحة المصدر على خوادمي الخاصة ولكن مع الحفاظ عليها في متاعب.(كما أنني من إحدى دول العالم الثالث، يجب أن أخرج من الشبكة عدة مرات)
    • أقوم حاليًا بطرح تطبيق ويب بسيط لتخزين أشياء مثل الاقتباسات/الكتب التي أحبها.كما أنني أقوم بتدوين الكثير من الملاحظات أثناء العمل.حاليًا أقوم بتخزينها في صندوق الإسقاط، ولكن قريبًا سأنقلها إلى تطبيقي.

عندما أقوم بتثبيت نظام تشغيل جديد، أقوم أولاً بتغيير المجلدات الافتراضية والمواقع ذات الإشارات المرجعية مثل سطح المكتب والموسيقى والمستندات وما إلى ذلك إلى مجلدات محرك الأقراص الرئيسية وصندوق إسقاط الإعداد.لقد قمت بتعيين مجلد الصفر كسطح مكتب
بالنسبة لملفات التكوين (المحرر/القشرة وما إلى ذلك)، يمكنك استخدام محرك الأقراص الرئيسي/صندوق الإسقاط/الملفات النقطية.
ملاحظة جانبية أيضًا، أستخدم zsh/vim/emacs مع عدد قليل من المكونات الإضافية المثيرة للاهتمام لجعلي أكثر إنتاجية.

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