لمحة 👀 برمجية – Telegram
لمحة 👀 برمجية
607 subscribers
144 photos
8 videos
13 files
141 links
Download Telegram
لا يوجد علي الإطلاق ORM يتكامل بشكل مثالي مع مفاهيم ال DDD مثل EF core ⚡️

عظمة في mapping و تمثيل سهل جدا لكل مفاهيم ال ddd ك ال aggregate و ال entity و ال value object و غيرها✨️
جمعة مباركة
أنت عندما تتعلم framework عسى الله الشركة مثلا الي دخلت معها كم عدد الأنظمة الي ستنفذها أي فريمورك يتطلب منك أن تفهمها في أي مجال أنت فيه هل مثلا ميكروسوفت عاجزة عن انها تعمل فريمورك أفضل من باقي الفريم ورك أو جوجل خذ بالك دي سياسات شركات وفي علاقات بينهم وتبادل واحترام وفي معيار بينهم لذلك لاتبحث ايه الأفضل أنت ايه يهمك تدخر فلوس خلاص سيبك من المقارنات واتعلم أي حاجة تجيب لك فلوس ميكروسوفت والله انها بتستخدم منتجات جوجو مثلا Angular تبع جوجل ميكروسوفت بتستخدمها في مشاريعها بينما ميكروسوفت معها فريمورك الي هو Blazor .
فذكر‼️
Full stack Developer هذا مفهوم مستنزف للطاقة البشرية يستعمله بعض اصحاب المشاريع والشركات من أجل التوفير واستغلال الاشخاص وخصوصي ان تسارع التكنولوجيا والتقنيات في هذا المجال اصبح أمر متعب وخصوصاً للخريجين الجدد والمخضرمين القدامى إن موضوع التحديث اليومي ومتابعة الأمور التقنية اليوميه في هذا المجال أمر لا يقدره أرباب العمل للأسف بذات في بلادنا ولايعرفون مقدار التعب الجسدي والنفسي في هذا المجال على حساب صحتك النفسية وحياتك والضغوط التي نواجهها هذه الأيام لذلك نصيحة أن تختص في مجال واحد فقط سواءً كان Frontend or Backend or Mobile
وغيرها
والعمل بقاعدة : يجب أن تعرف كل شيء عن شيء وشيء عن كل شيء

أخيرًا في موضوع جامد ودسم 👀😅 هو ال Event sourcing العنوان معك والباقي عليك بهشتاج #ورط نفسك كان كورس أو أي شيء
لو تكلمنا عن ال Event sourcing لو قلت لك انت الان بتعمل نظام صح و ب تحفظ ال data في الداتابيز البيانات الي بتحفظها لو قلت لك انها ال current state الحاله الي بتحفظ بها البيانات هي الحاله الي هي فيها الآن طيب في عمليات مثلا بتتغير من حين إلى آخر تخيل مثلا اريد احفظ كل العمليات الي بتمر بها مثل من عملية سحب مال من أي صراف الي إلى داخل الحساب داخل البنك في نفس الترانز اكشن اريد احفظ ال history الي حدثت حتى آخر عمليه مثلا دخلت موقع الاكتروني تشتري شيء مثلا اريد احفظ كل عمليات الدفع الي بتمر بها ستقول لي انا بينحفظها انت مثلا في نفس الترانزاكشن الطلب الان مثلا فيه مرحله تحت المعالجة بعدها أصبح approved الطلب انت هنا ستعدل الحاله في الداتابيز طوالي وغيرها من الحالات حتى تتم عملية shipping وستحدث في الداتابيز آخر حاله لطلب وستعرضها كل هذ الهيستوري اريد ان اعمله ياسطى ايش snapshot
ايش بستفيد لو كان نظامي مبني على Event sourcing أو شيء أي عمليات مسجله ك events تقدر ترجع لها متى ماتريد ثانيا لو وقف النظام فجأة تقدر تستعيد النظام إلى حالة ماقبل ان يسقط مثلا ثالثا أنت بتخزن بيانات تقدر تعملها BI وتحللها وتتنبأ للمستقبل عن حالة النظام ومستقبله من خلال البيانات كذلك تقدر من خلالها تقدر تدرس طبيعة العملاء وتقييم وغيرها من التحليل طباعة تقارير بكل بعسسه في النظام ماتضيع كذلك هذا هو جانب حل في الأداء وتحسين في الأنظمة الكبيرة مثلا البنكية وغيرها الذكاء الاصطناعي على ماذا اعتمد هو على history تبعك ياعم الحج بيحفظ كل حدثانت تفعلت مع النظام خوارزميات البحث الي فجأة بحثت في جوجل طلع لك اقترح في يوتيوب
جزء بسيط من عالم يهتم ب تكامل البيانات للماضي والحاضر والمستقبل
1
الي عاده بدأ اعمل نجمة للموضوع بعد فتره وقد مشيت في البرمجة اقرا الموضوع لا تشوش حالك الان عاد انا وغيري مشوش ماقد زبط معي😂 الموضوع صح مواضيع ثقيله ومع الزمن تهضمها
لا تبحث على مراجع بل ابحث على slides تخرج لك ب المختصر المفيد
DEV
writefastthinklater_munichmicroservicemeetup01_2018_180122112635.pdf
Event sourcing بشكل رسومي وسهل
وظف لسلوك ودرب للمهارة
اسأل gpt عنها
👍1
قد مانتكلم عن اشياء أساسية للي عادهم في بداية المشوار لكن لو أردت أن تدر ال database بجذورها ناس تشرح لك صح تنقلك إلى حته ثانيه خالص ليس لدي كورس بل معسكر يبنيك صح في database بالعربي ويفهمك بطريقة اعتقد لن تحصلها لا في جامعات ولا في كورسات سوى مدفوعة أو مجانية ان كنت تريد المعسكر كلمني بنسخة لك ان شاءالله تدعي لي
👍5
Forwarded from الرسمية CS4 Class-22 (أحمد جلال | 𐩱𐩢𐩣𐩵 𐩴𐩡𐩱𐩡)
اعلان فرص عمل عن بعد طبيعة العمل نوعين سهله جدا
1- اما شروحات لكورسات عن بعد (لمن لديه القدرة وعنده خبره في الشرح )
2 - او خدمات مصغرة (نفس فكرة خمسات او مستقل) او تصاميم او انجاز مهام جامعية (كأنهن تكاليف الجامعة) ومشاريع برمجية



حساب التواصل:

تيليجرام :
T.me/TTThiT
واتساب :
wa.me/+967776012378
انستقرام :
https://www.instagram.com/manss_tak
السلام عليكم,
ده بوست للتوعية وللتوضيح عن ما هو ال Hacking وأمتي اقول علي شركة انه تم اختراقها.

كلمة الهاكينج في حد ذاتها بتعبر عن التفكير بره الصندوق, ان حاجه معينه ممكن تتعمل بطريقة X بس انا هلاقي طريقة Y وطريقة Z عشان اقدر اوصل لنفس الحاجة. ده حتي من الكوميديا انه اللي بيفتح الخزن للسرقة بيقول عليها عملية Hacking, وهو عنده حق لأن المطلوب منك تدخل رمز لفتحها فانت لقيت طريقة تانية غير نمطية تقدر بيها توصل لنفس الهدف فده هو ال Hacking. وده نفس اللي انا شرحته لما كتبت حلقة #الدحيح اللي اسمها "الهاكر".

طب هو انا أمتي اقدر اقول علي شركة انه تم اختراقها؟
طيب علشان نفهم النقطة دي تعالي نسأل, إيه هي أهم حاجة عند أي شركة؟
أهم حاجه عند اي شركة هي السرفس اللي الشركة بتقدمها وبتكسب منها فلوس. يعني مثلا الفيس بوك أهم حاجه عنده هي انه الناس تفضل تستخدم مواقعهم طول الوقت, لان استخدام الناس للموقع هو اللي بيخليه يكسب من بيانات الناس ومن الاعلانات والخدمات التفاعليه اللي بيقدمها الفيس بوك. لو شركة نقل سيارات زي أوبر مثلا فأهم حاجه عندها هي الموبايل أبلكيشن بتاعهم, لأن ده اللي من خلاله بيضمن انه اسطول السيارات المشترك معاه شغال وانه العميل نفسه قادر يطلب الخدمة وبالتبعية عمولة أوبر شغالة مع كل رحلة.
وقيس علي ده بقي أي بزنس.

طيب أمتي بقي اقول انه الشركة دي تم اختراقها؟ ببساطة لو حصل وتم اكتشاف واستغلال أي ثغرة تمكن المخترق من التأثير علي الخدمة الرئيسية اللي بتقدمها الشركة.
يعني لو حضرتك موقع كورسات زي Udemy فأخطر حاجتين عندك هما الكورسات المعروضة علي الموقع وبيانات العملاء (الطلبة) بتوع الكورسات دي وده بيشمل بياناتهم الشخصية وبيانات الدفع.

يعني ببساطة يا حبيب اخوك, مفيش حاجه اسمها لازم تعمل كذا عشان الموقع يبقي اسمه اخترق (اتهكر بالمصطلح الدارج). اي حاجه تأثر علي خصوصية المستخدمين وبياناتهم Confidentiality أو إمكانية الوصول للخدمة Availability زي هجمات حجب الخدمة كده, أو مصداقية الخدمة Integrity علي الخدمة الرئيسية للموقع فهو اختراق بالفعل, ولو هنتكلم علي Udemy كمثال, فأي حد يقدر يوصل لكورسات يوديمي ببلاش يبقي كده اخترق الشركة, أي حد يقدر يخلي المستخدمين ميوصلوش للكورسات فهو كده اخترق الشركة, وأي حد يقدر يوصل للبيانات الشخصية (PII) لعملاء الشركة (طلبة الكورسات) فهو كذلك اخترق الشركة.

#وعى_سيبرانى
م/ إبراهيم حجازي
🔥1
《الوقاية خيرًا من العلاج 》--(>100%👇

لماذا 🤔 هل قد سمعت بهذا ؟ ضروري تعمل Health Checks في Web API !

شوف لما تكون شغال على تطبيق ويب كبير كل حاجة فيه بتعتمد على قواعد بيانات خدمات خارجية مثل APIs وكذلك أدوات كاش مثل Redis لو أي مكون من هذي المكونات حصل فيه مشكلة أو وقف ممكن يوقع التطبيق حقك أو يخليه يرجع استجابات غلط الكارثة أنك ما بتعرف إلا لما الزباين يشتكوا أو المشاكل تتفاقم.

هنا يدخل دور Health Checks فكر فيها كطريقة علشان تتأكد أن كل حاجة شغالة كما ينبغي سواءً الـ Web API قاعدة البيانات أو أي خدمة ثانية تعتمد عليها.

كيف تشتغل Health Checks؟

أول حاجة نتأكد أن الـ Web API نفسه شغال بعدها نفحص قاعدة البيانات إذا بترد بشكل صحيح. كيف؟ عن طريق استعلام بسيط جدًا زي SELECT 1
وإذا كان عندك خدمات خارجية نتأكد أننا نقدر نتواصل معها ونحصل ردود مظبوطة.

كيف تضيف Health Checks في الـ Web API؟

1️⃣ تشغيل Health Checks في المشروع
أول حاجة تضيف Middleware خاص بـ Health Checks هذه حاجة بسيطة جدًا تعملها باستخدام مكتبة في NET Core. بتعطيك Endpoint (مثلاً /health) تقدر تستدعيه علشان تفحص الخدمات.

2️⃣ فحص قاعدة البيانات
تضيف Check مخصص لقواعد البيانات مثلًا لو شغال على SQLite تستخدم مكتبة مثل AspNetCore.HealthChecks.Sqlite علشان تتأكد أن قاعدة البيانات بترد.

3️⃣ فحص خدمات خارجية
تضيف Check علشان تفحص أي خدمة خارجية تستخدمها مثل API مثلاً.

بعد ما تضيف Health Checks

تقدر تستدعي الـ Endpoint (GET /health) في أي وقت وتشوف تفاصيل كل حاجة شغال عليها التطبيق:

هل قاعدة البيانات شغالة؟

هل الاتصال مع الكاش تمام؟

هل الخدمات الخارجية بترد؟


ليش هذا الشيء مهم؟

اكتشاف المشاكل بدري
لو وقفت قاعدة البيانات أو خدمة خارجية بتعرف مباشرة بدل ما تنتظر زباين يشتكوا.

استجابة سريعة للمشاكل
ممكن تربط الـ Health Check مع Azure Function اللي بدورها تعمل طلبات دورية للـ Endpoint لو اكتشفت مشكلة ترسل لك تنبيه على البريد أو حتى واتساب علشان تتحرك بسرعة.

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

بختصار :
Health Checks مش مجرد فكرة كويسة تضيفها هذه خطوة أساسية لأي تطبيق كبير يعتمد على خدمات كثيرة لو ما عندك شوف تضيفها اليوم قبل بكرة!

وشكرًا
👍1
في 2024 أكثر كلمات كتبتها أو قلتها:

"Please generate"

"Regenerate"


وطبعًا مع أصدقائنا أدوات الـ Gen AI دائمًا شغالين 😃
أما بالنسبة لأكثر زر استخدمته أكيد هو Tab.
طيب خلينا نحسب عمره لو تضغط عليه 40 مرة باليوم:

في اليوم تضغطه 40 مرة.

في الأسبوع (7 أيام) = 40 × 7 = 280 ضغطة.

في السنة (365 يوم) = 40 × 365 = 14,600 ضغطة

لو افترضنا أن عمر الزر 100,000 ضغطة (كمثال)، فبيعيش معاك
100,000 ÷ 14,600 = 6.8 سنة، يعني تقريبا 7 سنوات 😅.

مرحبًا بك يا 2025 لنبدأ مغامرتنا! 🚀
Forwarded from IS4 PM_2025
https://chat.deepseek.com/

ذكاء إصطناعي صيني 🇨🇳
على فكره وأنت في وضع التطوير كنت مشغل سيرفر عملية التطوير وسيرفر مرحلة ال stagging و سيرفر ل مرحلة production الغلطه ان نسيت السيرفرات شغاله فتره خمسة أيام وكانت هذه التكلفه بيحسب بالساعة لذلك الي بيتعلمو حتى الي لفتره مدتها شهر عندما كن تكمل تطور غلق اي resources من أجل لا تكمل عليك ال 200 دولار بذات لو شغلت machine تكلفتها عاليه
ما تقوله هو فكرة ممتازة وتندرج تحت مفهوم Infrastructure as Code (IaC)، مع تبسيط وإدخال لغات برمجة مألوفة مثل C# بدلاً من التعامل المباشر مع YAML أو لغات مخصصة مثل Terraform أو Bicep. في الحقيقة، هناك بعض الأدوات التي تسعى لتحقيق هذا الهدف، منها:

1. Pulumi
Pulumi يسمح لك بكتابة الكود المطلوب لإدارة البنية التحتية باستخدام لغات برمجة مألوفة مثل C# أو Python أو TypeScript بدلاً من YAML أو HCL. تقوم Pulumi بترجمة الكود البرمجي إلى الصيغة المطلوبة خلال وقت التشغيل، مع إمكانية إدارة الموارد السحابية بشكل مباشر.


2. CDK (Cloud Development Kit)
أمازون AWS تقدم CDK الذي يمكنك من كتابة كود البنية التحتية باستخدام لغات مثل TypeScript أو Python أو C# بدلاً من كتابة ملفات JSON أو YAML مباشرة.


3. Custom Workflow Generators
يمكنك كتابة Generator خاص بك باستخدام C# مثلاً. يعمل كودك على إنتاج ملفات YAML تلقائيًا من تعريفات مكتوبة بكود C#. الفكرة تشبه كتابة Template Engine يحول المنطق البرمجي إلى ملفات YML جاهزة للتشغيل.



مزايا الفكرة

سهولة الفهم: إذا كنت مرتاحًا أكثر مع C#، يمكنك استخدامه لكتابة التعريفات.

إعادة الاستخدام: يمكنك كتابة مكونات قابلة لإعادة الاستخدام بدلًا من تكرار النصوص YAML.

الاختبار البرمجي: تسهُل عملية اختبار الكود قبل إنشاء الموارد.


خطوات أولية لتنفيذ فكرتك

1. كتابة مكتبة لتحويل C# إلى YAML:

استخدم مكتبة مثل YamlDotNet لتحويل الكود إلى ملفات YAML.



2. تطبيق الموارد:

اجعل الكود يدير إنشاء الموارد باستخدام CLI خاص بـ Docker أو Kubernetes أو غيرها.



3. إدارة البنية التحتية:

استخدم خدمات إدارة البنية التحتية السحابية مثل Azure أو AWS SDKs لدعم تطبيق الموارد مباشرة.




مثال بسيط لتحويل كود C# إلى YAML:

using YamlDotNet.Serialization;
using System.IO;

public class Workflow
{
public string Name { get; set; }
public Job[] Jobs { get; set; }
}

public class Job
{
public string JobName { get; set; }
public string[] Steps { get; set; }
}

class Program
{
static void Main(string[] args)
{
var workflow = new Workflow
{
Name = "My Workflow",
Jobs = new[]
{
new Job { JobName = "Build", Steps = new[] { "dotnet build", "dotnet test" } }
}
};

var serializer = new SerializerBuilder().Build();
var yaml = serializer.Serialize(workflow);

File.WriteAllText("workflow.yml", yaml);
}
}

عند التشغيل، سيتم توليد ملف workflow.yml يمكن استخدامه في أدوات CI/CD مثل GitHub Actions.
نعم، كلا الطريقتين شائعتان وتعتمدان على فلسفة تصميم المشروع واحتياجاته. دعنا نوضح كل طريقة مع مميزاتها وعيوبها:


---

1. بناء الـ Business Domain أولاً

الخطوات: تبدأ بتصميم الطبقة المسؤولة عن منطق العمل (Domain Layer)، بما في ذلك الكيانات (Entities)، الخدمات (Services)، وقواعد العمل (Business Rules).


المميزات:

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

المرونة: يمكنك بسهولة تبديل أو تحديث طبقات أخرى (مثل Infrastructure) لاحقًا.

تطبيق DDD (Domain-Driven Design): تتماشى هذه الطريقة مع ممارسات DDD التي تركز على منطق العمل كمحور رئيسي.


العيوب:

قد يتطلب المزيد من الجهد في البداية لتحديد المتطلبات بدقة.

صعوبة التحقق من صحة منطق العمل إذا لم تكن البنية التحتية جاهزة.



---

2. بناء الـ Infrastructure أولاً

الخطوات: تبدأ ببناء قاعدة البيانات، واجهات API، والطبقات التقنية (Infrastructure Layer) مثل إدارة البيانات، والاتصالات بالخدمات الخارجية.


المميزات:

سهولة البدء: يمكنك رؤية نتائج العمل سريعًا من خلال واجهات أو قواعد بيانات جاهزة.

دعم التطوير السريع (Rapid Prototyping): يمكن إنشاء نموذج مبدئي لعرضه على الأطراف المعنية.

مفيد عند التعامل مع تكنولوجيا جديدة: إذا كان المشروع يعتمد بشكل كبير على تقنية أو نظام خارجي.


العيوب:

خطر بناء بنية تحتية قد لا تتناسب مع منطق العمل النهائي.

قد يؤدي إلى تصميم أقل مرونة، لأن التركيز يبدأ على التقنية بدلًا من منطق العمل.



---

أفضل الممارسات:

إذا كان المشروع كبيرًا ومعقدًا: يفضل البدء بـ Business Domain أولاً مع استخدام أسلوب DDD.

إذا كنت تعمل على نموذج مبدئي (Prototype) أو مشروع بسيط: يمكن أن تبدأ بالـ Infrastructure.

الدمج بين الطريقتين:

يمكن تطوير أجزاء من منطق العمل والبنية التحتية بالتوازي.

استخدم TDD (Test-Driven Development) لضمان التوافق بين الطبقات.



ما الأنسب لمشروعك؟
Forwarded from الرسمية CS4 Class-22 (أحمد جلال | 𐩱𐩢𐩣𐩵 𐩴𐩡𐩱𐩡)
📢 مطلوب مبرمج (متميز) في
الاوراكل 11g
و ديفلوبر 6i
Forms & Reports
الراتب بعد المقابلة
للتواصل 777264107