استخدم الـ AI، فمعظم الكود الذي يُدفع للإنتاج حالياً هو AI generated. لكن الكود ال:
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
❤3👍2
يجب ان تتعلم الادارة و اساليب الرد، و الذكاء الاجتماعي، و اللغات، و مهارات التواصل الفعال، وان تقول "لا" و أن تتعلم السكوت و الصمت و ان تعبر عن نفسك بإحترام لكن بقوة.
كل هذا مهم بالنسبة لك كمهندس برمجيات، كل الاشياء التي ذكرتها فوق ستجعلك تمر بمواقف صعبة و انت تحاول تعلمها و العمل بها، لكن في الاخير انت مطالب بها.
اذا افتقدتها ستفقتقد الكثير من الاشياء و ستأتي على نفسك كثيرا.
احدثك من واقع تجارب تعلمت فيها بعضا من هذه الاشياء بالطريقة الصعبة، فلو وقتك و وضعيتك تسمح تعلمها و انت مرتاح.. و استعن بالله و لا تعجز.
كل هذا مهم بالنسبة لك كمهندس برمجيات، كل الاشياء التي ذكرتها فوق ستجعلك تمر بمواقف صعبة و انت تحاول تعلمها و العمل بها، لكن في الاخير انت مطالب بها.
اذا افتقدتها ستفقتقد الكثير من الاشياء و ستأتي على نفسك كثيرا.
احدثك من واقع تجارب تعلمت فيها بعضا من هذه الاشياء بالطريقة الصعبة، فلو وقتك و وضعيتك تسمح تعلمها و انت مرتاح.. و استعن بالله و لا تعجز.
❤1
عندما تنشر - أو تحاول النشر - شيئا في مجال تخصصك او دينك او دنياك، لا تنتظر من الناس الثناء، و لا تنتظر ان تجمع اللايكات و التعليقات.. و الا ستتوقف.
اصلح النية، و ضع الله اولا قدر الامكان و اسقط الناس من حسابك.
- وعَنْ سَهْلِ بن سعدٍ، ، أنَّ النَّبيَّ ﷺ قَالَ لِعَليًّ، : فو اللَّهِ لأنْ يهْدِيَ اللَّه بِكَ رجُلًا واحِدًا خَيْرٌ لكَ من حُمْرِ النَّعم متفقٌ عليهِ.
- وعن عبدِاللَّه بن عمرو بن العاص، رضي اللَّه عنْهُما، أنَّ النَّبيَّ ﷺ قَالَ: بلِّغُوا عَنِّي ولَوْ آيَةً، وحَدِّثُوا عنْ بَنِي إسْرَائيل وَلا حَرجَ، ومنْ كَذَب علَيَّ مُتَعمِّدًا فَلْيتبَوَّأْ مَقْعَدهُ مِنَ النَّار رواه البخاري.
- وعنْ أَبي هُريرةَ، ، أنَّ رسُول اللَّه ﷺ، قالَ: ومَنْ سلَك طرِيقًا يَلْتَمِسُ فِيهِ عِلْمًا، سهَّلَ اللَّه لَهُ بِهِ طَرِيقًا إِلَى الجَنَّةِ رواهُ مسلمٌ.
اصلح النية، و ضع الله اولا قدر الامكان و اسقط الناس من حسابك.
- وعَنْ سَهْلِ بن سعدٍ، ، أنَّ النَّبيَّ ﷺ قَالَ لِعَليًّ، : فو اللَّهِ لأنْ يهْدِيَ اللَّه بِكَ رجُلًا واحِدًا خَيْرٌ لكَ من حُمْرِ النَّعم متفقٌ عليهِ.
- وعن عبدِاللَّه بن عمرو بن العاص، رضي اللَّه عنْهُما، أنَّ النَّبيَّ ﷺ قَالَ: بلِّغُوا عَنِّي ولَوْ آيَةً، وحَدِّثُوا عنْ بَنِي إسْرَائيل وَلا حَرجَ، ومنْ كَذَب علَيَّ مُتَعمِّدًا فَلْيتبَوَّأْ مَقْعَدهُ مِنَ النَّار رواه البخاري.
- وعنْ أَبي هُريرةَ، ، أنَّ رسُول اللَّه ﷺ، قالَ: ومَنْ سلَك طرِيقًا يَلْتَمِسُ فِيهِ عِلْمًا، سهَّلَ اللَّه لَهُ بِهِ طَرِيقًا إِلَى الجَنَّةِ رواهُ مسلمٌ.
❤8
اذا كنت تستطيع القيام بمهمة ما كمبرمج باستخدام ال ai وتفهم الكود و تستطيع تعديله و تحسينه، فقم بها بال ai.
شركات كبرى اصبحت تطلب هذا.
*لكن تعلم في الطريق..
شركات كبرى اصبحت تطلب هذا.
*لكن تعلم في الطريق..
💯8
Mohcin Bounouara's Space
اذا كنت تستطيع القيام بمهمة ما كمبرمج باستخدام ال ai وتفهم الكود و تستطيع تعديله و تحسينه، فقم بها بال ai. شركات كبرى اصبحت تطلب هذا. *لكن تعلم في الطريق..
لأحدثك نفسيا قليلا.
الامر ليس فيه غش، هو اداة تستعملها تنجز لك كثيرا وتحسن من جودة عملك و بسرعة أكثر.. و كما قلت عديد الشركات الان تطلب من موظفيها استخدامه.
احيانا اقوم بكتابة كود بسيط و غير قابل للصيانة وبعمل ai review اقوم ب Refactoring عالية و انتج كود افضل.
لن تستطيع فهم كل ما يقوم ال ai باعطائك اياه، لكن لو قمت بالمطلوب في المهمة الموكلة اليك فهذا جيد - قبل ال ai كنا نقوم بعمل اشياء لا نفهمها ايضا، الامر مستمر في هندسة البرمجيات الى ان نلقى الله-.
كل هذا اقوله لك، لكي لا تجلد نفسك وتقلل من قيمتها، او تقول انني قمت بانجار مهمة لا أفهم فيها كثيرا من الكود المكتوب - كلنا كذلك - لو فهمت السياق العام لما تقوم به فهذا جيد.
لكن استغل ولو نصف ساعة يوميا لفهم مثلا شيء معين في ال javascript مع الوقت لو استخدمت ال ai في مشاريع js ستتقدم اسرع و تفهم اكثر و هكذا..
و الله ولي التوفق.
الامر ليس فيه غش، هو اداة تستعملها تنجز لك كثيرا وتحسن من جودة عملك و بسرعة أكثر.. و كما قلت عديد الشركات الان تطلب من موظفيها استخدامه.
احيانا اقوم بكتابة كود بسيط و غير قابل للصيانة وبعمل ai review اقوم ب Refactoring عالية و انتج كود افضل.
لن تستطيع فهم كل ما يقوم ال ai باعطائك اياه، لكن لو قمت بالمطلوب في المهمة الموكلة اليك فهذا جيد - قبل ال ai كنا نقوم بعمل اشياء لا نفهمها ايضا، الامر مستمر في هندسة البرمجيات الى ان نلقى الله-.
كل هذا اقوله لك، لكي لا تجلد نفسك وتقلل من قيمتها، او تقول انني قمت بانجار مهمة لا أفهم فيها كثيرا من الكود المكتوب - كلنا كذلك - لو فهمت السياق العام لما تقوم به فهذا جيد.
لكن استغل ولو نصف ساعة يوميا لفهم مثلا شيء معين في ال javascript مع الوقت لو استخدمت ال ai في مشاريع js ستتقدم اسرع و تفهم اكثر و هكذا..
و الله ولي التوفق.
❤8
Forwarded from وسام الحداد - رشاد الأعمال
من الأرشيف - المنشورات المحذوفة عن طريق الخطأ 5
ما بالك تقلق على رزقك ويشغل جل وقتك وتفكيرك ثم تنسى أهم باب، باب العجائب
الباب الذي لا يخيب طارقه، ولا يرجع عنه خاويًا أبدًا قاصده.
إلى كل قلقٍ على رزقه… وظيفته… مشروعه… مستقبله المهني:
تذكّر أن للمؤمن مزيةً لا تُقارن، تُضاهي كل امتيازات الدنيا:
تهدّئ روعه، وتُقرّ عينه، وتُسكّن قلبه، وتشُدّ عزيمته.
إنها قيام الليل…
ذلك المفتاح الربّاني الذي لا يُغلق دونه باب،
ولا يُخاف معه على رزق،
ولا يُقلق بعده من تأخّر،
ولا يُحزن بعده من فُقد.
يقول ربنا سبحانه:
“ومن يتق الله يجعل له مخرجًا * ويرزقه من حيث لا يحتسب…”
[الطلاق: 2-3]
وقال:
“إنّ ناشئة الليل هي أشدّ وطئًا وأقومُ قيلًا”
[المزمل: 6]
أي أن قيام الليل هو الأشد أثرًا في تقويم النفس، وتركيز الفكر، واستقامة القول والعمل.
وعن النبي صلى الله عليه وسلم:
“عليكم بقيام الليل، فإنه دأب الصالحين قبلكم، وقُربة إلى الله، ومنهاة عن الإثم، وتكفير للسيئات، ومطردة للداء عن الجسد.”
رواه الترمذي.
كما يقول ابن القيم رحمه الله:
“في القلب شعث لا يلمه إلا الإقبال على الله، وفيه وحشة لا يزيلها إلا الأنس به في الخلوة.”
⸻
نحن نُخطّط ونبذل ونستثمر، نعم.
لكن الرزق لا يُطلب بالعقل فقط… بل بالعقل والقلب معًا.
والقلب لا يثبت إلا إذا وقف خاشعًا بين يدي ربّ الرزق في هدوء الليل.
قيامك بين يدي الله…
هو أعظم استثمار في الطمأنينة، وأصدق تدريب على الثبات، وأقوى تحصين أمام تقلبات السوق والحياة.
فكما تتحصن بالعلم والادوات والمهارات المهنية، لا ينبغي لك أن تغفل زوادة اليقين التي تجعلك راسخًا كالجبل أمام مغريات السوق
#رشاد_الأعمال
#الطمأنينة_المهنية
#قيام_الليل
#الرزق_والإيمان
ما بالك تقلق على رزقك ويشغل جل وقتك وتفكيرك ثم تنسى أهم باب، باب العجائب
الباب الذي لا يخيب طارقه، ولا يرجع عنه خاويًا أبدًا قاصده.
إلى كل قلقٍ على رزقه… وظيفته… مشروعه… مستقبله المهني:
تذكّر أن للمؤمن مزيةً لا تُقارن، تُضاهي كل امتيازات الدنيا:
تهدّئ روعه، وتُقرّ عينه، وتُسكّن قلبه، وتشُدّ عزيمته.
إنها قيام الليل…
ذلك المفتاح الربّاني الذي لا يُغلق دونه باب،
ولا يُخاف معه على رزق،
ولا يُقلق بعده من تأخّر،
ولا يُحزن بعده من فُقد.
يقول ربنا سبحانه:
“ومن يتق الله يجعل له مخرجًا * ويرزقه من حيث لا يحتسب…”
[الطلاق: 2-3]
وقال:
“إنّ ناشئة الليل هي أشدّ وطئًا وأقومُ قيلًا”
[المزمل: 6]
أي أن قيام الليل هو الأشد أثرًا في تقويم النفس، وتركيز الفكر، واستقامة القول والعمل.
وعن النبي صلى الله عليه وسلم:
“عليكم بقيام الليل، فإنه دأب الصالحين قبلكم، وقُربة إلى الله، ومنهاة عن الإثم، وتكفير للسيئات، ومطردة للداء عن الجسد.”
رواه الترمذي.
كما يقول ابن القيم رحمه الله:
“في القلب شعث لا يلمه إلا الإقبال على الله، وفيه وحشة لا يزيلها إلا الأنس به في الخلوة.”
⸻
نحن نُخطّط ونبذل ونستثمر، نعم.
لكن الرزق لا يُطلب بالعقل فقط… بل بالعقل والقلب معًا.
والقلب لا يثبت إلا إذا وقف خاشعًا بين يدي ربّ الرزق في هدوء الليل.
قيامك بين يدي الله…
هو أعظم استثمار في الطمأنينة، وأصدق تدريب على الثبات، وأقوى تحصين أمام تقلبات السوق والحياة.
فكما تتحصن بالعلم والادوات والمهارات المهنية، لا ينبغي لك أن تغفل زوادة اليقين التي تجعلك راسخًا كالجبل أمام مغريات السوق
#رشاد_الأعمال
#الطمأنينة_المهنية
#قيام_الليل
#الرزق_والإيمان
❤4
تبدأ بالإحساس بأنك سينيور أو سائر على طريق السينيورتي عندما؛
- تفكر في السيستيم عموما على المدى المتوسط و البعيد،
- تكتب كود اقل لحل مشاكل معينة،
- تفهم الاساسيات جيدا او تعود لفهمها جيدا.. لانك ستحتاجها قطعا في مسيرة السينيورتي.
اقرأ آخر نقطا و افهمها جيييييييدا.
#programming #softwaredevelopment
- تفكر في السيستيم عموما على المدى المتوسط و البعيد،
- تكتب كود اقل لحل مشاكل معينة،
- تفهم الاساسيات جيدا او تعود لفهمها جيدا.. لانك ستحتاجها قطعا في مسيرة السينيورتي.
اقرأ آخر نقطا و افهمها جيييييييدا.
#programming #softwaredevelopment
❤2
Media is too big
VIEW IN TELEGRAM
حول مسألة العودة للأساسيات البرمجة او علوم الحاسوب عموما.
سواءا عودة للتاسيس الصحيح او لعمل refresh للمعارف.
نسأل الله التوفيق.
سواءا عودة للتاسيس الصحيح او لعمل refresh للمعارف.
نسأل الله التوفيق.
السلام عليكم،
مرة أخرى كتابة الاختبارات يجعلك مبرمجا افضل.. خصوصا لو كتبتها باتباع ال TDD.
هذا يجعلك تتذوق حلاوة كتابة ال features.
اللهم علمنا و انفعنا وغيرنا بما تعلمنا.
مرة أخرى كتابة الاختبارات يجعلك مبرمجا افضل.. خصوصا لو كتبتها باتباع ال TDD.
هذا يجعلك تتذوق حلاوة كتابة ال features.
اللهم علمنا و انفعنا وغيرنا بما تعلمنا.
❤3
عندما تواجه وظيفة لا تعمل، او لا تؤدي المطلوب في كود تعمل عليه، رغم ان هذا الكود خارج مهمتك الحالية، لا تتجاوزه فقط قم أمرين لك الحرية في اختيار واحد منهما:
- أصلح الكود فالأفضل ان تتعود على ان تجعل الكود افضل مما وجدته (و هذا الاختيار الذي احاول ان اعود نفسي عليه)
- أخبر المسؤول عنك، او قائد القريق بهذا و بانكم يجب ان تعودوا لاصلاحه.
لكن لا تتغافل عنه.. فهذا من تقوى الله حيثما كنت، و مما يجعلك اقوى و اكثر ثقة بنفسك من ذي قبل.
مرة أخرى حسِّن من الكود الذي تعمل عليه و حاول جعله افضل مما وجدته.
و الله ولي التوفيق.
- أصلح الكود فالأفضل ان تتعود على ان تجعل الكود افضل مما وجدته (و هذا الاختيار الذي احاول ان اعود نفسي عليه)
- أخبر المسؤول عنك، او قائد القريق بهذا و بانكم يجب ان تعودوا لاصلاحه.
لكن لا تتغافل عنه.. فهذا من تقوى الله حيثما كنت، و مما يجعلك اقوى و اكثر ثقة بنفسك من ذي قبل.
مرة أخرى حسِّن من الكود الذي تعمل عليه و حاول جعله افضل مما وجدته.
و الله ولي التوفيق.
❤3
ال feature tests و ال e2e tests تجعلك تفهم التطبيقات بطريقة افضل و اسرع.
خصوصا ال TDD في ال features وحتى لو كنت تريد كتابة اختبارات بعد ان تكون لديك الميزة موجودة بالفعل (عمليا ليست tdd)، اكتب اختبارك بال tdd في مخيلتك.
هذا سيجعلك تفهم الميزات اكثر و تصير مطورا افضل.
خصوصا ال TDD في ال features وحتى لو كنت تريد كتابة اختبارات بعد ان تكون لديك الميزة موجودة بالفعل (عمليا ليست tdd)، اكتب اختبارك بال tdd في مخيلتك.
هذا سيجعلك تفهم الميزات اكثر و تصير مطورا افضل.
ان تكون senior او software engineer ليس متعلقا قطعا بالمهارات التقنية، اي نعم المهارات التقنية مهمة و هي الأساس.. خصوصا اساسيات علوم الحاسوب و البرمجة و اتقان لغة ما، لكي تبزغ في مهمتك كسينيور او كمهندس حقيقي.
لكن مع الوقت تزيد الحاجة الى مهارات التفكير، مهارات التقييم، مهارات كتبتة كود اقل، مهارات كتابة كود يعيش طويلا دون الحاجة لتغييره، مهارات لغوية تواصلية، مهارات ان تكون دافعا لفريقك و لنفسك، مهارات التعلم المستمر، مهارات اقل القليل لانه مجال مرهق كي لا تحرق نفسك، مهارات التعامل مع الفشل و مع الضغوط..
و مع كل هذا المهارات النفسية للبقاء في المجال و عدم مقارنة نفسك بالآخرين، و التعامل مع الخوف المستمر في الجال و و و و.
وهكذا...
لكن مع الوقت تزيد الحاجة الى مهارات التفكير، مهارات التقييم، مهارات كتبتة كود اقل، مهارات كتابة كود يعيش طويلا دون الحاجة لتغييره، مهارات لغوية تواصلية، مهارات ان تكون دافعا لفريقك و لنفسك، مهارات التعلم المستمر، مهارات اقل القليل لانه مجال مرهق كي لا تحرق نفسك، مهارات التعامل مع الفشل و مع الضغوط..
و مع كل هذا المهارات النفسية للبقاء في المجال و عدم مقارنة نفسك بالآخرين، و التعامل مع الخوف المستمر في الجال و و و و.
وهكذا...
❤3
الحمد لله، المركز التاسع في قائمة الأعلى تأثيرًا على منصة قبيلة!
رغم أن هدفي كان ولا يزال أن أساعد شخصًا ما، في مكانٍ ما، على تفادي الأخطاء التي وقعتُ فيها في مجال البرمجيات، وأن أُعطي دافعًا لي ولغيري للتعلُّم والتطوُّر المستمرّين، إلا أن الشعور بأن تكون مؤثّرًا إيجاباً في آخرين، شعور مفرح، الحمد لله.
شكرًا للقائمين على منصة قبيلة، ونسأل الله التعلُّم والتعليم وتطوير المجتمع من حيث نحن.
*و قبيلة باختصار هي شبكة اجتماعية عربية للمحترفين، حيث يتجمع المحترفون لتبادل المحتوى المهني الأصلي المفيد وبناء المعرفة التقنية، وقد نشرت قائمة بأعلى 100 شخص تأثيرا على المنصة، وفيها منّ الله علينا بالترتيب التاسع.
الترتيب العام هنا: https://qabilah.com/posts/6goSgU--jio
رغم أن هدفي كان ولا يزال أن أساعد شخصًا ما، في مكانٍ ما، على تفادي الأخطاء التي وقعتُ فيها في مجال البرمجيات، وأن أُعطي دافعًا لي ولغيري للتعلُّم والتطوُّر المستمرّين، إلا أن الشعور بأن تكون مؤثّرًا إيجاباً في آخرين، شعور مفرح، الحمد لله.
شكرًا للقائمين على منصة قبيلة، ونسأل الله التعلُّم والتعليم وتطوير المجتمع من حيث نحن.
*و قبيلة باختصار هي شبكة اجتماعية عربية للمحترفين، حيث يتجمع المحترفون لتبادل المحتوى المهني الأصلي المفيد وبناء المعرفة التقنية، وقد نشرت قائمة بأعلى 100 شخص تأثيرا على المنصة، وفيها منّ الله علينا بالترتيب التاسع.
الترتيب العام هنا: https://qabilah.com/posts/6goSgU--jio
❤8
نصائحي لاستخدام افضل لل ai في البرمجة، منذ بدأت استخدمه:
https://qabilah.com/posts/iDbMhCRo71I
https://qabilah.com/posts/iDbMhCRo71I
Qabilah
Mohcin Bounouara | "استخدام الذكاء الاصطناعي في عملك كمبرمج أو كمهندس برمجيات أص..."
استخدام الذكاء الاصطناعي في عملك كمبرمج أو كمهندس برمجيات أصبح ضرورة. من لا يستخدمه يفقد الكثير. لكن استخدمه بذكاء؛ لا حرج في الاستفادة منه، ولكن يجب أن يكون لد...
❤2
Forwarded from محمود نصر الدين 🇵🇸
١. مفيش شئ معين حسب ظروفك وقدرتك، أبذل أقصى مجهود ووقت بحيث جوانب المهمة، صحتك، عيلتك، نفسك ميتأثروش، وربك كريم
٢. لازم تتعلم JavaScript كويس الأول قبل ما تدخل باك، لو ناوى تبقى Full-stack اتعلم React وبعدين Node.js، بعدين أتخصص.
والله أعلم
٢. لازم تتعلم JavaScript كويس الأول قبل ما تدخل باك، لو ناوى تبقى Full-stack اتعلم React وبعدين Node.js، بعدين أتخصص.
والله أعلم
❤2
عندما تقرأ documnetation لغة برمجة أو أداة، فإنك تعرف الكثير من الأشياء، طبعا لن تتذكرها كلها أو تتقنها كلها، ولكن عندما تكون قد قرأتها وتقع في مشكلة تحتاج لحلها، فإنك تتذكر أن هناك شيئًا مرتبطًا بمشكلتك في documnetation التي قرأتها، لذلك تعود وتبحث وتجد الحل بسرعة.
لذا اقرأ ال documnetation من الألف إلى الياء حتى لو لم تفهم كل التفاصيل.
لذا اقرأ ال documnetation من الألف إلى الياء حتى لو لم تفهم كل التفاصيل.
❤7
عند استخدام Laravel Factories في اختباراتك، احرص على التمييز بين make() و create()، فالأمر بالغ الأهمية في سياق اختبارات قواعد البيانات.
- حالة استخدام:
ترغب في اختبار إمكانية إنشاء Category جديدة:
it('can create a category', function () {
$categoryData = CategoryFactory::new()->make()->toArray();
$response = $this->post(route('category.store'), $categoryData);
$this->assertDatabaseHas('categories', [
'name' => $categoryData['name'],
'slug' => $categoryData['slug'],
]);
$response->assertStatus(302);
expect(Category::count())->toBe(1);
});
هذا الاختبار سيؤدي إلى نتيجة خاطئة Assertion Failure في الغالب،، وذلك لأن make() تُنشئ Collection دون حفظه في قاعدة البيانات، ومع استخدام RefreshDatabase تُفقد البيانات بعد عملية إعادة التوجيه التي يقم بها ال Route.
الحل: استبدل make() بـ create():
$categoryData = CategoryFactory::new()->create()->toArray();
- ال make() تُنشئ ال Collection فقط دون حفظه في قاعدة البيانات.
- ال create() تُنشئ Collection وتُخزّنه في قاعدة البيانات مباشرة.
#Laravel #Factories #PHP #Backend #TDD #programming
- حالة استخدام:
ترغب في اختبار إمكانية إنشاء Category جديدة:
it('can create a category', function () {
$categoryData = CategoryFactory::new()->make()->toArray();
$response = $this->post(route('category.store'), $categoryData);
$this->assertDatabaseHas('categories', [
'name' => $categoryData['name'],
'slug' => $categoryData['slug'],
]);
$response->assertStatus(302);
expect(Category::count())->toBe(1);
});
هذا الاختبار سيؤدي إلى نتيجة خاطئة Assertion Failure في الغالب،، وذلك لأن make() تُنشئ Collection دون حفظه في قاعدة البيانات، ومع استخدام RefreshDatabase تُفقد البيانات بعد عملية إعادة التوجيه التي يقم بها ال Route.
الحل: استبدل make() بـ create():
$categoryData = CategoryFactory::new()->create()->toArray();
- ال make() تُنشئ ال Collection فقط دون حفظه في قاعدة البيانات.
- ال create() تُنشئ Collection وتُخزّنه في قاعدة البيانات مباشرة.
#Laravel #Factories #PHP #Backend #TDD #programming
إنشاء قاعدة بيانات خاصة للاختبارات هو من أفضل الممارسات أثناء تطوير تطبيقات عموما، حيث يضمن عدم التأثير على بياناتك الحقيقية ويوفر بيئة نظيفة لتجربة الكود واكتشاف الأخطاء.
في laravel إليك كيف تقوم بذلك:
الخطوات:
إنشاء قاعدة بيانات جديدة للاختبارات،
كيف؟
انشاء و تعديل ملف .env.testing ليحتوي على إعدادات قاعدة البيانات الجديدة، الذي ستكون قد أنشأتها. لا تحتاج لان تملئها بأي table، ال php artisan migrate --env=testing ستقوم اوتوماتيكيا بملأ قاعدة بيانات الاختبارات بال migrations الموجودة لديك.
ما الذي تكسبه من هذه الطريقة؟
- عزل بيانات الاختبار عن بيانات التطوير والإنتاج.
- تشغيل الاختبارات بأمان دون القلق من حذف أو تعديل بيانات حقيقية.
- تسريع وتسهيل عملية تصحيح الأخطاء
- إنشاء بيئة مخصصة للاختبار يمكن إعادة ضبطها بسهولة
#Laravel #TDD #testing #php
في laravel إليك كيف تقوم بذلك:
الخطوات:
إنشاء قاعدة بيانات جديدة للاختبارات،
كيف؟
انشاء و تعديل ملف .env.testing ليحتوي على إعدادات قاعدة البيانات الجديدة، الذي ستكون قد أنشأتها. لا تحتاج لان تملئها بأي table، ال php artisan migrate --env=testing ستقوم اوتوماتيكيا بملأ قاعدة بيانات الاختبارات بال migrations الموجودة لديك.
ما الذي تكسبه من هذه الطريقة؟
- عزل بيانات الاختبار عن بيانات التطوير والإنتاج.
- تشغيل الاختبارات بأمان دون القلق من حذف أو تعديل بيانات حقيقية.
- تسريع وتسهيل عملية تصحيح الأخطاء
- إنشاء بيئة مخصصة للاختبار يمكن إعادة ضبطها بسهولة
#Laravel #TDD #testing #php
👍3👌1