إدارة الوقت بدون جداول صارمة ، خبرة في تطوير تطبيقات الهاتف المحمول

تخطيط الوقت والتحكم وزيادة الكفاءة. تم اختراق الموضوع ، لكني أجرؤ على تقديم حل آخر.


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

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

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

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

المفهوم


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

افترض رقم 1


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

الفرضية رقم 2


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

الفرضية رقم 3


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

Qp=100 frac(Td1+Td2+ ldots+Tdi+ ldots+Tdn)(Tp1+Tp2+ ldots+Tpi+ ldots+Tpn)100

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

تطبيق Android


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

لذا

تم تنفيذ تطبيق ChessTM.

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

وظائف:

  1. إنشاء تجمع مهام
  2. تخطيط الوقت للمهام لكل يوم
  3. نقل خطة اليوم السابق
  4. تبديل مهمة سهلة
  5. الإحصائيات

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

كانت الفكرة الرئيسية هي جعل مثل هذه الآليات للتفاعل مع التطبيق من أجل القيام بأقل قدر ممكن. لجعل كل شيء سهل وبسيط - بنقرة واحدة.

يتم تنفيذه على النحو التالي - هناك شاشة واحدة وثلاث علامات تبويب يمكنك التنقل بينها عن طريق saip:

  • مجموعة من المهام حيث توجد جميع المهام المتاحة حاليًا ؛
  • الخطة اليومية ، حيث يتم تحديد الوقت المجدول للمهام ؛
  • التحكم ، حيث ننتقل من مهمة إلى مهمة ونحسب الوقت.


بعد ذلك ، أود التركيز على لحظات التطوير نفسها. آمل أن تكون تجربتي مفيدة للمطورين المبتدئين ، وربما سيخبرك المعلمون بما يمكن تحسينه في عملية تنظيم التطوير.

تطوير البنية التحتية


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

  • IDE (بيئة التطوير المتكاملة) ؛
  • مستودع تخزين التعليمات البرمجية ؛
  • تعقب المهام
  • التوثيق
  • الاختبار.

IDE


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

تخزين الرمز


تم اختيار Git كنظام تخزين الكود.

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

تم اختيار Bitbucket كمخزن بعيد:

  • مجانًا ؛
  • يسمح لك بإنشاء مستودعات خاصة ومفتوحة ؛
  • يسمح لك بإنشاء فريق للعمل مع مستويات مختلفة من حقوق الوصول ؛
  • لديها تعقب المهام البسيطة الخاصة بها.

تعقب المهام


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

التوثيق


للوثائق قررت استخدام readthedocs.io:

  • نظام مجاني يسمح لك بنشر الوثائق بتنسيق Sphinx ؛
  • يتكامل مع bitbucket (وغيرها الكثير) ، أي أنه يمكنك تخزين مصادر التوثيق في bitbucket وسيتم جمعها تلقائيًا عند كل التزام ، يمكنك أن تقول التكامل المستمر للوثائق - وهذا أمر مريح للغاية ؛

لسوء الحظ ، التوثيق ليس صحيحًا تمامًا الآن. ولكن في ذلك الوقت ، كانت كتابتها ذات فائدة كبيرة. لذلك ، أوصي بشدة بكتابة الوثائق لكل من يبدأ مشروعه - وهذا يضع أفكارهم في مكانها ويوضح رؤية المشروع.

الاختبار


الاختبار موضوع ضخم ويمكنك العثور على الكثير من المواد حول هذا الموضوع.

لدي مستوى نموذج في التطبيق حيث يتم تنفيذ جميع العمليات الحسابية والحسابات.
لذلك ، قررت التركيز على اختبار هذه الوحدة البرمجية المحددة.

لهذا أستخدم JUnit4 . تعمل الاختبارات على الجهاز.

الاختبارات عبارة عن اختبارات وحدة للفئة الرئيسية للنموذج.

يتم إنشاء مجموعة بيانات اختبار ، وبالتالي ، يتم استدعاء جميع وظائف فئة النموذج بنتيجة معروفة.

من التجربة يمكنني أن أقول ما يلي:

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

العمارة والتنفيذ


جوهر هذا القسم هو التحدث عن ما يجب تعلمه للمبتدئين لكي يكونوا قادرين على تنفيذ الوظائف كما في هذا التطبيق.

في بداية الرحلة ، كانت المشكلة الرئيسية أنه لم يكن من الواضح من أين تبدأ وفي أي اتجاه للتفكير. كيف تفعل ذلك وكيف تفعل ذلك بشكل خاطئ.

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

أنا شخصياً بدأت بـ "البرمجة لنظام Android. للمحترفين "ب. هاردي ، ب. فيليبس. بشكل عام ، يمكنني أن أوصي به. ربما الآن عفا عليها الزمن في بعض الأماكن ، ولكن من الممكن البدء.

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

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

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

إلى هيكل فصل منفصل


يتم تضمين قائمة المهام داخل فئة ActionsManager وكل الوصول إليها من خلال وظائف هذه الفئة. أي في كل مكان في التطبيق ، يتم تنفيذ جميع عمليات التلاعب بالمهام من خلال فئة ActionsManager.

تتم تهيئة كائن قاعدة البيانات في كائن التطبيق. يأخذ أي شخص آخر الكائن من هنا ، بدلاً من إنشاء كائن جديد في كل مرة.

هنا يمكنني تقديم هذه النصيحة - خذ المنطق إلى فصول منفصلة. اقرأ عن أنماط التصميم - لا حاجة لاختراع دراجة حيث يوجد بالفعل حل.

يستند GUI إلى ActionBarDrawerToggle. في البداية ، تم استخدام ActionBarSherlock ، بالطبع ليس سيئًا على الجميع ، ولكن بعد ذلك واجهت مشكلات في التوافق مع المكونات الأخرى وتحولت إلى مكونات Google القياسية (القوائم وعلامات التبويب والقوائم مع تحميل البيانات الديناميكي وما إلى ذلك).

في عملية وعي التطبيق ، بالإضافة إلى مكونات Android القياسية ، تم استخدام ما يلي:

  • تنفيذ أساليب التعامل مع حدث شريط البحث ؛
  • تنفيذ الضغط الطويل عبر حدث اللمس ، حيث لا يمكن إجبار الضغط الطويل الأصلي على العمل وفقًا لاحتياجاتك ؛
  • MPAndroidChart - إنشاء الرسوم البيانية والرسوم البيانية.
  • com.roomorama: caldroid - عرض التقويم حسب الشهر ؛
  • com.github.paolorotolo: appintro - إنشاء معالج بدء.

تحقيق الدخل


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

ملاحظة:
أخيرًا ، رسالة إلى جميع المبتدئين ، أو أولئك الذين يرغبون في البدء - لا تخف من الصعوبات ، لا تخف ، تدريجيًا ، ستنجح!

Source: https://habr.com/ru/post/ar429490/


All Articles