الآن لا يمكنني حتى إنشاء موقع ويب صغير





باختصار ، أتذكر جيدًا كيف جلست في عام 2013 وكتبت موقعًا إلكترونيًا صغيرًا في يوم واحد.



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



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



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



قررت أن أبدأ العمل وبدأت أفكر.



حسنًا ، لا يمكنني فقط أخذ PHP وكتابة بضع صفحات فيه مختلطة مع HTML. كيف سأدعم هذا بدون OOP وتقسيم الكود العادي بشكل عام؟ بالإضافة إلى ذلك ، يقول الجميع أن PHP ليست جيدة جدًا ، وكم عدد الإصدارات الجديدة التي ظهرت!



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



بعد أن قررت استخدام Python أو Node.js ، أدركت أن مجرد إعطاء صفحات كاملة من الخادم ليس جيدًا. كيف يمكنني إنشاء نوافذ منبثقة أو تحميل ديناميكي في هذه الحالة؟ حسنًا ، ليس مع jQuery ، لا سمح الله! سأستخدم على الأرجح React أو Vue.js لكتابة واجهة مناسبة قائمة على المكونات. الزاوي سيكون مبالغة بالطبع. باستخدام إطار العمل ، أحتاج إلى الاتصال بالواجهة الخلفية عبر API ، لذلك أستخدم إطار عمل Django REST أو شيء من هذا القبيل. من الجيد أن يتمكن Express.js من القيام بذلك من تلقاء نفسه ، ربما يستحق اختيار Node.js في النهاية. في الواجهة الأمامية ، يجب أن أقوم بتوصيل Axios ، على الرغم من وجود ميزة Fetch الآن ، ولكن هل تدعمها جميع المتصفحات؟ أو ربما يجب علي استخدام Svelte على الإطلاق لتعلم شيء جديد في نفس الوقت ؟!



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



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



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



أوه ، لا يزال نفس DB! يبدو أن PostreSQL جيد ، وقد عملت معه أيضًا ، لكن ربما أحتاج إلى قاعدة بيانات nosql؟ يبقى السؤال ، كيفية نشره على الخادم ، وكيفية الحفاظ على نفس الهيكل على جهاز الكمبيوتر الخاص بي وفي السحابة دون فقدان البيانات ، ولكن هذا لا يزال بعيد المنال.



آه ، لقد نسيت تقريبًا. نظرًا لأن الواجهة الأمامية موجودة في أطر عمل JS ، فأنت بحاجة إلى التفكير في عرض جانب الخادم ، فمن المهم فهرسة مشروعي. حسنًا ، ألا تحتاج إلى استخدام Next.js أو Nuxt.js لهذا الغرض؟ بحاجة الي التفكير.



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



لم أفكر أيضًا في TS و ES6 و SASS و PUG و GraphQL و OOP والبرمجة الوظيفية والثبات وكل هذه الأشياء. وسيكون من الضروري ربط شهادة HTTPS! ربما ينبغي عليّ الحصول على بعض الأصدقاء في الفريق للقيام بذلك بشكل صحيح؟ ثم لا يمكنك الاستغناء عن طلبات سكروم وسحب.



في هذه الملاحظة ، شعرت بالتعب أخيرًا وظننت أنه ربما ينبغي عليّ البحث عن كتاب قديم عن PHP والقيام بكل شيء مثل عام 2013 ، عندما لم يكن لدي أي فكرة عن أي شيء أعلاه ، ونصف التقنيات لم تظهر بعد؟ يبدو أنني أفكر كثيرًا في المستقبل. سأحل كل هذا لاحقًا ، الآن سأشاهد المسلسل وأخلد للنوم ، وغدًا سأبدأ بالتأكيد في البرمجة.



All Articles