سؤال

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

عندما تبدأ، ما هي خطوتك الأولى؟هل تخطط للمشروع؟جعل الرسم التخطيطي؟كتابة بعض التعليمات البرمجية على الورق؟كيف تبدأ مشروعًا بطريقة تعلم أنك ستنجح فيها؟

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

المحلول

الشيء الوحيد الذي يعمل بالنسبة لي:قم بإنشاء أصغر تطبيق ممكن له يمكن استخدامه بطريقة أو بأخرى ثم استخدمه.

نصائح أخرى

من 7 عادات للأشخاص الأكثر فعالية, العادة 2:تبدأ مع نهاية في الاعتبار.

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

خطوتي التالية هي رسم تصميم للوحدات التي ستكون مطلوبة وواجهات برمجة التطبيقات بين كل وحدة.إذا كانت واجهات برمجة التطبيقات نظيفة، فمن المحتمل أن تكون الوحدات صحيحة.ثم أبدأ في تنفيذ الوحدات واختبارها أثناء تقدمي.

أقضي الكثير من الوقت في التفكير في الجوانب المختلفة للمشروع حتى قبل أن ألمس لوحة المفاتيح.

أراجع ما تعلمته من المشاريع السابقة وأكتبه في فئات مختلفة ('تقني'، 'ترويج'، إلخ)

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

قمت أيضًا بإعداد نظام تذاكر خفيف الوزن لتتبع 1.issues و 2.edeas بواسطة "خفيفة الوزن" ، أعني أنه إذا كان الحفاظ على مستندتين نصيين مع هذه القوائم يعمل من أجلك ، فهذا جيد بما فيه الكفاية.

أتمنى أن يساعدك هذا.

وأنا أتفق مع النصيحة المقدمة بالفعل من:

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

أود أيضًا أن أوصي بالبدء بتصميم خفيف الوزن لك بشكل عام بنيان حتى تتمكن من الحصول على خريطة الطريق حول كيفية بناء المنتج الخاص بك.

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

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

تحديد الهدف للمشروع.يبدو أنك تنظر بشكل حصري تقريبًا إلى الحل بدلاً من المشكلة.

لن يكون البرنامج مفيدًا لك أو لأي شخص آخر ما لم يعالج بعض المشكلات.تعد كتابة التعليمات البرمجية للتحرك أمرًا رائعًا، ولكن يبدو أنك تفقد الاهتمام والتركيز بعد أن تبدأ - لأنك تنظر إلى التعليمات البرمجية، وليس المشكلة.

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

بعد ذلك، ابحث عن بعض هؤلاء الأشخاص واعرض عليهم الحل (الجزئي)، وسوف تثير الاهتمام والاقتراحات بينهم جميعًا.

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

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

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

مثل الآخرين، مشاريعي الشخصية تحتوي دائمًا على:

  • هدف نهائي
  • قائمة المهام
  • وحدات صغيرة قابلة للاستخدام
  • التحكم في المصدر

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

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

يعتمد ذلك على المشروع - ما حجمه؟

إذا كنت أكتب النسخة التالية من برنامج Notepad، فقد أتعمق فيها، وإذا أردت تشغيل نظام التشغيل الخاص بي، فسوف يستغرق الأمر الكثير من العمل غير الترميزي.

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

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

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

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

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

يعد استخدام Fusion للتحكم في المصدر أمرًا مهمًا أيضًا.يستغرق تثبيت SVN دقيقتين.

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

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

كل ما سبق ولكن البدء بتثبيت الخطة في مكانها .....

انتقل للحصول على بعض الأدوات SmartSeet - حتى لو كنت تعمل بمفردك ، فيجب عليك تحديد بعض المراحل والتواريخ YED - والرسومات من www.yworks.com

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