Mohcin Space
186 subscribers
44 photos
12 videos
8 files
60 links
{فَأَمَّا الزَّبَدُ فَيَذْهَبُ جُفَاءً ۖ وَأَمَّا مَا يَنفَعُ النَّاسَ فَيَمْكُثُ فِي الْأَرْضِ} [الرعد: 17]

خواطر في الدين و الدنيا و هندسة البرمجيات في محاولة لإصلاح نفسي ولعلني اجعل لنفسي أثرا في إصلاح الاخرين.. على قلتهم، لعلنا نلقى الله بهذا.
Download Telegram
لو أنت كمبرمج عارف ماذا تريد، من أين تنطلق و الى اين تصل - في مهمة ما - فال ai يساعد كثيرا في عملية كتابة الكود و عمل Refactoring افضل منك بكثير بحكم ال data التي يستخدمها و له الوصول اليها.

لكن مرة اخرى يجب ان تكون لديك دراية قوية ومعرفة ب:

- الأساسيات في علوم الحاسوب عموما و البرمجة خصوصا،
- تكون على دراية ببعض اشهر ال design patterns،
- تكون لديك مهارة التفكير و حل المشكلات،
- ان تكون لديك مهارة ال debugging لانها مهمة جدا،
- ان تفهم لغة البرمجة/الفريمووركس التي تستخدمها بعيوبها و نقاط قوتها لكي تعرف كيف تستغل ال ai لصالحك،
- أن تحاول القراءة كثيرا في هندسة البرمجيات و ما الى ذلك.. ففهم العلم الان صار ضرورة لا اضافة.

و نسأل الله ان نوفق لما كتبناه ايضا.

#Softwareengineering #programming #AI
4
لكي تطور نفسك في مجال البرمجيات سواءا قبل ال ai أو بعد ال ai.

افتح ال code editor الخاص بك و اكتب برامج وتطبيقات بمختلف الأحجام..

و قم بالاخطاء و اسهر لحلها و هكذا..

اقرأ ما استطعت حول المجال..

و بعدها الاشياء تأتي تباعا.. غير هذا هو فقط كلام لا نفع يأتي من وراءه.

هو تذكير فقط، واللهم انا نسألك هذا.

#programming #softwaredevelopment
5❤‍🔥1
عبارة في البرمجيات تريحك كثيرا في معرفة الطريق "Programming is rewriting"

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

وقد يكون لهذا الحل الذي وصلت اليه مئات الطرق، ويمكن تحسينه بعدة أساليب ربما مئات ايضا.. بما يسمى ال Refactoring

و حتى الكود المُعاد صياغته ليس مثاليًا، و لن يكون،، فدائمًا ما توجد هنالك فرصة لتطوير ذلك الكود.

واصل التعلم، واصل التحسين و التحسن، كلما تطورت، زادت قدرتك على رؤية طرق مختلفة لحل المشكلات وإصلاح الأخطاء.

#Refactoring #codeRefactor #programming #coding
7
استخدم الـ AI، فمعظم الكود الذي يُدفع للإنتاج حالياً هو AI generated. لكن الكود ال:
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.

*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).

#coding #programming #softwareEngineering #software #ai
3👍2
تبدأ بالإحساس بأنك سينيور أو سائر على طريق السينيورتي عندما؛

- تفكر في السيستيم عموما على المدى المتوسط و البعيد،
- تكتب كود اقل لحل مشاكل معينة،
- تفهم الاساسيات جيدا او تعود لفهمها جيدا.. لانك ستحتاجها قطعا في مسيرة السينيورتي.

اقرأ آخر نقطا و افهمها جيييييييدا.

#programming #softwaredevelopment
2
عند استخدام 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