ثلاثة أفكار مرت في مخيلتي اليوم منذ الصباح الباكر وعلى مدار اليوم دارت بخلدي وكنت أود أن أكتب تدوينات منفصلة عنها، ولكن ما اختليت إلى حاسوبي بعد منتصف الليل حتى نسيت ما وددت أن أكتبه، يبدوا أني في المرحلة القادمة سأدون على ورقة جميع الأفكار التي تجول في خاطري، ولماذا على ورقة والتقنية موجودة سأدونها على حاسوبي أو على الهاتف النقال..
اليوم وبالإضافة إلى عملي التحريري بدأت في برمجة أحد الأنظمة الجديدة للعمل، النظام نمطي وليس معقداً وتنحصر فيه أفكار البرمجة البسيطة من قراءة وحفظ وعرض من قاعدة بيانات، بالإضافة إلى مجموعة من التقارير، سأطور النظام على قاعدة بيانات” أوركل” وباستخدام أدوات Developers 2000..
البرمجة بالنسبة لي رحلة ممتعه أتشوق لها كلما بعدت عنها، ولكن ما عقد الموضوع أنه عندما أسند لي تحليل النظام وبعد أن أعددت مذكرة التحليل والتصميم وحددت الجدول الزمني لها لم يعجب المسئول تاريخ الانتهاء وطلب مني أن أجل إجازتي السنوية التي من المفترض أن تبدأ بعد أسبوع إلى ما بعد ثلاثة أسابيع، والمشكلة هنا أن أمر الإجازة لم يعد في متناول يدي الآن، فمن الصعب بأي حال من الأحوال أن تنكمش فترة تنفيذ النظام من ثلاثة أشهر تتخللها إجازة سنوية وإجازة عيد الفطر إلى ما يزيد عن الشهر وخمسة عشر يوماً بقليل تتخللها إجازة سنوية مدتها 26 يوماً، أعتقد أن هذا هو السبب في ضعف البرمجيات العربية..
سألت أحد زملائي في العمل عن سر إنهاء برامجه بهذه السرعة فقال “شوف يا محمد أنت الآن وأنت تبرمج تطيح منك الكفر فخلك منها، وتنكسر المساحة لا تشيل لها هم، ولا تلقي بال للي يطيح منك، راح يأتي يوم ونأخذ راحة ونرجع نلم ما طاح منا”، استغربت هل أتكلم مع مبرمج أو مع ميكانيكياً.. قلت بعدها في نفسي البرمجة ليست ميكانيكا سيارات البرمجة فكر ومتعة وليست سلق بيض..
أنهيت في الأسبوع الماضي بناء قاعدة البيانات واليوم كانت رحلة البرمجة، ملامحها ليست غريبة والشاشة الأولى وربما هي الأصعب في البرنامج تحتاج إلى أكثر من عشر أيام عمل، في الحقيقة لا أدري ماذا أعمل؟..
ربما سوف انتحر هذا هو الواقع!..
مرحبا
مايتكلم عنه صديقك هو شئ معروف في عالم SWE ويسمى أسلوب XP أو البرمجة القصوى بالعربية الهدف من هذا الأسلوب هو الخروج ببرنامج يعمل بأي طريقة ثم بعد الانتهاء منه يحلها الحلال 🙂
اذا كان برنامجك يهدف الى تنفيذ العمليات الأساسية CRUD فبامكانك الاستفادة من بعض اطارات العمل frameworks التي ستنتجها لك بضغطة زر ..
سوالفي:
هذا الأسلوب لا يعجبني لأن أغلب برامجنا ننتجها في شهر مثلاً ونعدل عليها أضعاف هذه المدة، إذا لماذا لا ننتهج إسلوب الاصدارات، أي تقسيم البرنامج إلى مراحل متعددة في كل مرة يتم برمجة مهام متنوعة وإصدار شيفرة برنامج تنفيذي خالي من العيوب يتم العمل عليها من المستفيد النهائي مباشرة، بينما نحن نقوم ببرمجة مهام جديدة في للصدار القادم، بذلك نقلل زمن التنفيذ، ويكون تشغيل النظام فوري..
شكراً لك..
كلامك صحيح ومأخوذ بالاعتبار لكن فيه مسألة أنه لايمكنك الوصول الى كود مثالي فمع الوقت ستحتاج الى بعض اللمسات هنا وهناك وبالطبع يجب أن تأخذ بالاعتبار من يريد البرنامج هل يعرف ماذا يريد أم لا ففي بعض الأحيان العميل لا يعرف فتظر الى كتابة برنامج بسرعة ثم تريه اياه فيطلب بعض التعديلات فتصلحها بسرعة وهكذا ثم تعطيه اياه في النهاية 🙂 والبعض يفضل اعادة كتابته قبل اعطاءه اياه.. الخلاصة كل واحد ينام على الجنب اللي يريحه وفي بعض الأحيان اللي يريح العميل
قائمة بفلسفات في البرمجة 🙂
http://en.wikipedia.org/wiki/List_of_software_development_philosophies
أكيد لا يمكن الوصيل إلى كود مثالي، ولكن يمكن تقليل الأخطاء إلى حد كبير حتى يكون الكود صالح للعمل..
أعتقد أن العمل البرمجي يحتاج إلى الدقة أكثر من السرعة، وإن إجتمعت الإثنتين فهذا ممتاز، لأن السرعة وبدون دقة لا أعتقد أنها ستصنع برنامج يوافق وجهة نظر المستفيد النهائي هذا من جهة، ومن جهة أخرى كثرة التعديل على الكود البرمجي تؤثر على جودة تتبع البرنامج وعلى جودة تنظيم الشيفرة البرمجية وبهذا تقل درجة فهم البرنامج إذا أسند لمبرمج آخر..
عند زيارتي لمعرض سيبيت بألمانيا عام 2006 كنت أبحث عن أدوات تساعد على إعادة هندسة الإجراءاتوما لفت نظري أنني وجدت أدوات تساعد على إعادة هندسة البرمجيات، لأنه بعد التعديلات المتعددة على الأنظمة يقل أدائها وتضعف سرعتها وهنا نحتاج إلى إعادة بناء أجزاء من الأنظمة لكي نزيد من جودة الأداء، وهذه البرامج المخصصة لإعادة هندسة البرمجيات تساعد على إعادة إصدار نسخة من الشيفرة المصدرية للنظام بدون تدخل بشري تحمل في طياتها الإجراءات الأساسية مع الضوابط المثلي وتوقف الكود الي ما له داعي، فهل إن طبقنا فكرة زميلنا المبرمج الميكانيكي سنستطيع الاستفادة من هذه الأدوات؟..
مجرد سؤال..
عزيزي سوالفي أنا سعيد جداً بهذا النقاش، وأحب أن أسمع منك أكثر..
شكراً لك..
اقتباس ” ربما سوف انتحر هذا هو الواقع!.. ”
إذا انتحرت من يبقالنا يابوسطام ، بس على فكرة إذا عزمت على الانتحار قل لي عشان أخليها سبق صحفي .. واحط لها ملف تفاعلي ..
على طاري الإجازة شكلك ناوي على تركيا ،،
وإذا رحت لاتنسى تجيب لنا معك ترنج
خلاص يا أبو حيمد..
أنت أول المدعويين على حفل الإنتحار..
والله ماعندي أكثر أنا لساتني مخلص كورس هندسة البرمجيات فعشان كذا طازج 🙂 وجالس اتفلسف عموما أنا أشوف أن الموضوع يعتمد على نوعية التطبيق بعض التطبيقات لشدة أهميتها تتم بناء بطريقة رياضية مثل تطبيقات الأمان والاجهزة الطبية وبعضها غير حساسة ويمكن تلافي الاخطاء لاحقاً بسهولة.
شكراً لك سوالفي..
وأنا أيضاً لم يبقى لدي شيئاً لأقوله..
ولكن تأكد أن ما بني بسرعة سينهار بسرعة..
خذها من واقع تجربة..
عزيزي محمد لاداعي للقلق اذا لم تحقق كل ماتريد,ولكنك عندما تتمتع بذهن صافي وهادئ,وعندما يكون مستوى توترك اقل من المعتاد ستنجز اكثر من أي وقت مضى..
انا اثق في ذلك ..
السلام عليك ورحمة الله وبركاته
الاخ الفاضل محمد …
كما سعدت بتواجدي في مدونتك وهذه اول مدونة اكتي بها حياتي رغم علاقتي بالانترنت الطويلة…ماتركز عليه تحصل عليه … فلا تقلق مما تواجه من متاعب حلاة الشيء انك تتعب عشانه وتحس بقيمته…
المستشاره…..غير…
المستشاره:
شكراً لك على المرور..