هناك مجالات برمجية ممتعة. ممتعة اقصد انها ليست عمل روتيني و ليست بالضرورة نوع من الإبتكار. عندما تشاهد اعمال لمبرمجين آخرين و لنقل مثلاً لعبة تم عملها بجافاسكريبت.
اغلبنا يعرف جافاسكريبت و يعرف كيف هي قوانين لعبة مثل كرة القدم لكن لا يعرف كيف يبرمجها. فما الذي ينقصنا ؟
(سلسلة )
اغلبنا يعرف جافاسكريبت و يعرف كيف هي قوانين لعبة مثل كرة القدم لكن لا يعرف كيف يبرمجها. فما الذي ينقصنا ؟
(سلسلة )
اطلعت على أكواد لألعاب , لم يكون الكود فيها نظيف و لا استخدم الObject oriented فضلاً عن استخدام مباديء SOLID أو Design patterns. لكن الكود يعمل بشكل رائع. هذا المبرمج مهما حاول تعليمنا لن يستطيع ذلك. ليس بسبب الSpaghetti code
لكن لسبب آخر.
لكن لسبب آخر.
الObject Oriented Programming قد تكون هي افضل Programming Paradigm يمكن استخدامه
لبرمجة الألعاب كونها تقوم على المحاكاة , محاكاة و نمذجة شيء موجود في الواقع , له خصائص و له أعمال يقوم بها
و له تفاعل مع اشياء اخرى.
لبرمجة الألعاب كونها تقوم على المحاكاة , محاكاة و نمذجة شيء موجود في الواقع , له خصائص و له أعمال يقوم بها
و له تفاعل مع اشياء اخرى.
لكن هناك شيء اخر نحتاج لتضمينه و هو العالم المحيط , البيئة , او القوانين الطبيعية التي تحكم الأشياء.
مثل الحركة , الاتجاه , السرعة , التسارع , التصادم.
هذه الأشياء نتعامل معها يومياً في حياتنا الواقعية لكن دون الإهتمام بتفسيرها او تحليلها. ربما لأنها اشياء لا يمكننا تغييرها!.
مثل الحركة , الاتجاه , السرعة , التسارع , التصادم.
هذه الأشياء نتعامل معها يومياً في حياتنا الواقعية لكن دون الإهتمام بتفسيرها او تحليلها. ربما لأنها اشياء لا يمكننا تغييرها!.
عندما نلعب كرة قدم او تنس , نحن فقط نتحرك و بالممارسة نتعلم ضمنياً تلك القوانين الطبيعية و تستقر في لاوعينا.
لكن الكمبيوتر لا يعرف شيء عن ذلك. لذا فعليك أن تنشيء كل شيء , الواقع ( البيئة ) بقوانينه ثم تبدأ بإنشاء
الأشياء التي ستتعامل و تتفاعل مع ذلك الواقع.
لكن الكمبيوتر لا يعرف شيء عن ذلك. لذا فعليك أن تنشيء كل شيء , الواقع ( البيئة ) بقوانينه ثم تبدأ بإنشاء
الأشياء التي ستتعامل و تتفاعل مع ذلك الواقع.
لنتكلم عن لعبة 2D, لا يوجد شيء تحتاج لتعلمه في الرياضيات او الفيزياء اكثر مما تعلمته في المرحلة المتوسطة و الثانوية.
لدينا فقط مشكلة في التذكر و مشكلة في المصطلحات الإنجليزية sine بدل جا و cosine بدل جتا .. المتجه Vector
الحركة Velocity , التسارع Acceleration هذا ما اتذكره الان.
لدينا فقط مشكلة في التذكر و مشكلة في المصطلحات الإنجليزية sine بدل جا و cosine بدل جتا .. المتجه Vector
الحركة Velocity , التسارع Acceleration هذا ما اتذكره الان.
الرياضيات تصقل التفكير , إذا ترسبت في العقل و أصبحت شيء كامن مضمّن كاللغة التي لا تحتاج لتذكرها عندما تتكلم.
هذا ايضاً ينطبق على المباديء الاخرى , SOLID و KISS و DRY و YAGNIو الDesign Patterns سواء على مستوى الCode او على مستوى الArchitecture هي اشبه بسلوك عقلي لا مجرد معرفة.
هذا ايضاً ينطبق على المباديء الاخرى , SOLID و KISS و DRY و YAGNIو الDesign Patterns سواء على مستوى الCode او على مستوى الArchitecture هي اشبه بسلوك عقلي لا مجرد معرفة.
ما الذي اريد الوصول إليه ؟
البرمجة تأتي بكج Package. فهم للمشكلة و قوانينها و فهم للادوات و فهم للفنون و فهم للعميل . قد يكون من الأفضل أن تأتي دفعة واحدة بدل تقسيمها على مراحل مهما كان مدى تحصيلنا المعرفي منها. فمع الوقت يزداد. و إن كان ببطيء فهو يزداد في الطريق الصحيح. (انتهى)
البرمجة تأتي بكج Package. فهم للمشكلة و قوانينها و فهم للادوات و فهم للفنون و فهم للعميل . قد يكون من الأفضل أن تأتي دفعة واحدة بدل تقسيمها على مراحل مهما كان مدى تحصيلنا المعرفي منها. فمع الوقت يزداد. و إن كان ببطيء فهو يزداد في الطريق الصحيح. (انتهى)
جاري تحميل الاقتراحات...