Yhya Nesb – Telegram
Yhya Nesb
613 subscribers
141 photos
1 video
1 file
111 links
شاب سوري طموح محب لعالم التقنية مهندس برمجيات
منشوراتي تعكس وجهة نظري الشخصية فقط.
Download Telegram
استخراج بيانات إلى ملف إكسل مع لارفيل؟
نعم انه ممكن، يمكنك متابعة الصور التالية
ملاحظة: (الحزمة المستخدمة تتطلب: php_zip و php_xml و php_gd2 و php_iconv و php_simplexml و php_xmlreader و php_zlib)

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#laravel #laravel_excel #excel #database #export #laravel_export #php
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
نعم إنها بلاد حرية التعبير 👍
المكان المناسب لتعبر عن رأيك هو القبر 👍 ارجوك لا تنخدع
👍1
لماذا لا يجب عليك تعلم بايثون أولاً؟
1-أغلب من يقوم بشرحهاً ليس ذي خبرة في البرمجة 🙃 نتحدث عن خبرة عمل وليس خبرة تدريس (في حال كنتُ ادرس لغة x منذ 5 سنوات دون أن أعمل 🧑‍💻 فمعلوماتي لم تتغير منذ 5 سنوات)
2-بايثون تستطيع القيام بكل شيء وهي ليست لكل شيء ‼️
المبرمج العبقري هو من يستخدم كل لغة في المجالات الصحيحة لها، ومن أشهر هذه الأمور
- كوتلن و فلاتر وجافا لتطبيقات الهاتف 📱
- و .net و php و nodejs للويب 🌐
- و c# و c++ لسطح المكتب 💻
- و c و c++ لأنظمة التشغيل 👩‍💻
- و بايثون و R لتحليل البيانات 📚
- و جافاسكربت و بايثون و c++ للذكاء الإصطناعي
- و بايثون لأتمتة المهام 🎯
- جميع اللغات دون استثناء للأمن السيبراني، (يطلب بايثون لكتابة أدوات لكن اليوم أغلب الأدوات موجودة بالفعل قد يتطلب عليك تعديل صغير، لكن الأهم معرفة اللغة المراد إستغلال مجالها)
3-لتكون مبرمج عليك تعلم التفكير، اغلب من يشرح بايثون دائماً ما يقوم بالبحث عن مكتبة لحل مشكلتك وليس حلها بطريقة منطقية 🤦‍♂️
4-بايثون ليست
print("Hello World")

5-عندما تبدأ بتعلم قواعد البيانات 👩‍💻 سيصعب عليك فهم البيانات الأساسية وما الفرق بينهم وضرورة إستعمال كل نوع مناسب من البيانات وخاصة أن من يشرح بايثون يخبرك بالفروقات الأساسية
أخبرني ما هو رأيك 🤔

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#python #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
جدول القناة لشهر 5/2024 📅
- لماذا لا يجب عليك تعلم بايثون أولاً 👩‍💻
- إختصارات الكيبورد وأهمية التعامل بإختصارات الكيبورد ⌨️
- أهم المواقع لأي مبرمج 🧑‍💻
- نصائح لتحسين ظهور الموقع على محرك البحث جوجل SEO 🌐
- ماذا يجب أن أتعلم بعد c++ 🖥
سيتم النشر بمعدل رسالة اسبوعياً ❤️ ورسالتين لسلسلة #CleanCode 😅
في حال اعجبت بمحتوى القناة لا تنسى مشاركتها ❤️

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
Please open Telegram to view this post
VIEW IN TELEGRAM
3
إختصارات الكيبورد وأهمية التعامل بإختصارات الكيبورد ⌨️
من اسمها هي إختصار تنفيذها يؤدي لتنفيذ مهمة ⭐️ معينة، تختلف المهمة بإختلاف الإختصار ⁉️ ولعل من أشهر هذه الإختصارات هو
إختصار CTRL + C مع CTRL + V في مجال البرمجة 😅 (اشتهر من خلال مفهوم نسخت كود شغال وما اشتغل معي)

لماذا أنا كمبرمج يجب أن أستخدم الإختصارات 🧑‍💻
لأن توفير الوقت والجهد من أهم الأمور التي تميز المبرمجين (في حال كنت تنفي هذه الفرضية فأنت تنفي أهمية التكرار Loop 😉)
وتوفير الوقت ليس من أجل أن تعمل قليلاً وتستريح كثيراً 🙂 بل لأن اليوم السرعة من العمل تعد جزءً أساسياً في أي عمل، لم أقابل سوا القليل من العملاء الذين لا يبالون بالتأخير بالوقت 😅 (مع تفضيلي لهذا النوع) فأكثرهم يود أن ينتهي العمل الخاص به قبل الوقت المحدد ! وهذا له عواقب سواءً في مرحلة الإطلاق الأولى أو في مرحلة التطوير القادمة 🔜

هل يجب أن أتعلم كامل إختصارات النظام الذي أستخدمه 🤔
صديقي أنت عليك تعلم الإختصارات التي تزيد من إنتاجيتك وتوفر وقت 🕐 ما الفائدة من تعلم إختصارات خاصة بالطباعة وأنت لا تملك طابعة بالواقع 🖨
عليك تعلم إختصارات النظام 👩‍💻👩‍💻 المهمة بالنسبة لك، إختصارات المحرر 👩‍💻👩‍💻 المستخدم، وأنصح أيضاً بتعلم سطر الأوامر 👩‍💻

لماذا أضيع الوقت في هذه التفاهات وأنا أستطيع إستخدام الماوس 😒
أنا لا يمكنني الإستغناء عن الماوس أثناء إستخدام حاسوبي الشخصي في حال كنت أتصفح الإنترنت 🌐 أو أقضي بعض الوقت في لعب الألعاب الإلكترونية 🙄
لكن أثناء عملي في كتابة أي كود برمجي صغير الماوس لا تتحرك ‼️ لأن العمليات التي سأقوم بها بالماوس يمكنني القيام بها من خلال إختصارات الكيبورد بحيث يكون هذا توفير للوقت (توفر دقيقة؟ في حال كنت أجري 7 عمليات سأوفر بهذه الطريقة 7د مع العلم هناك إختصارات توفر الكثير من الوقت يمكنك رأيت التعليقات)

حسناً ماهي أشهر هذه الإختصارات 🎮
النسخ: Ctrl + C
القص: Ctrl + X
لصق: Ctrl + V
التراجع: Ctrl + Z
إعادة: Ctrl + Y
حفظ: Ctrl + S
فتح: Ctrl + O
البحث: Ctrl + F
استبدال: Ctrl + H أو Ctrl + R
التبديل بين علامات التبويب: Ctrl + Tab
تعليق/إلغاء تعليق السطر: Ctrl + /
التبديل بين النوافذ: Alt + Tab
سطر الأوامر: Ctrl + Shift + ` أو Ctrl + Alt + T
فتح ملف موجود في المحرر من خلال اسمه أو أحرف من اسمه Ctrl + E

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#programming #shortcuts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🥰1
في حال كنت تستخدم هاتف من هواتف شاومي xiaomi ❤️ وحصلت على تحديث للنظام أو التطبيقات فقم بالتحديث بالفور ⁉️
فهذه الهواتف تعاني من عيوب متعددة في تطبيقات ومكونات النظام ⚠️ (تم اكتشاف هذه العيوب والابلاغ عنها قبل 10 أيام تقريباً)
يمكنك تقليل الآثار أو الحد منها من خلال:
- حذف وعدم إستخدام أي برنامج لم يتم تثبيته من مصدر موثوق (غير متجر google 🛒 مثلا)
- عدم الإتصال بالشبكات العامة المفتوحة (حتى لو حلت المشكلة لا تعتبر هذه الشبكات آمنة)
- عدم تحميل أي ملف من جهة غير موثوقة (وخاصة من الايميل أو التلجرام أو الوتس اب من أرقام مجهولة)
لقراءة المزيد عن هذه العيوب:
20 Security Issues Found in Xiaomi Devices

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#bug #xiaomi #MIUI
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Yhya Nesb
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثامن في هذه القناة 8️⃣
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء التاسع في هذه القناة 9️⃣
تجنب التحقق من الأنواع الجزء الأول:
بمعنى أصح لماذا تريد التحقق من الأنواع type بنفسك في حال كانت php تدعم هذا الخيار 😁، الفرق هنا بأن وضع النوع المحدد في المعامل (Parameter) سيفيد المطور أكثر بحيث لن يجبر لقراءة الكود البرمجي أو حتى إجراء عملية تجربة للتحقق من النوع بأنه مقبول 😊
الاستخدام السيء:
function travelToTexas($vehicle): void
{
if ($vehicle instanceof Bicycle) {
$vehicle->pedalTo(new Location('texas'));
} elseif ($vehicle instanceof Car) {
$vehicle->driveTo(new Location('texas'));
} else {
throw new Exception("Error Type");
}
}

الاستخدام الجيد:
function travelToTexas(Vehicle $vehicle): void
{
$vehicle->travelTo(new Location('texas'));
}

تجنب التحقق من الأنواع الجزء الثاني:
في حال كنت تستخدم أنواع البيانات الأساسية مثل int - string فقم بإضافتها للمعامل (Parameter) فهي تفيد أيضاً لعملية الإختبار الأولية أيضاً 🧑‍💻
الاستخدام السيء:
function combine($val1, $val2): int
{
if (! is_numeric($val1) || ! is_numeric($val2)) {
throw new Exception('Must be of type Number');
}

return $val1 + $val2;
}

الاستخدام الجيد:
function combine(int $val1, int $val2): int
{
return $val1 + $val2;
}

احذف الكود البرمجي القديم:
حذف الكود البرمجي القديم والغير مستخدم ضروري 🙂 للأسف قابلت البعض ممن يظنون أن وضع التعليقات هي الطريقة السليمة لهذا 🤦‍♂️ لكن العكس فأنت بكل يوم تتعلم شيء جديد وكتابتك للكود ستختلف حتماً من يوم لأخر فعند إعادة كتابتك لكود جديد فسيكون مختلف وأفضل من القديم 🔥
بالإضافة لماذا تريد أن نضيع بأسماء هذه البرمجيات 🙂 v1 و v2 و new و old 🤦‍♂️ كلما كانت برمجياتك نظيفة كلما زاد تقديرك لمن طور بعدك 🫡
الاستخدام السيء:
function oldRequestModule(string $url): void
{
// ...
}

function newRequestModule(string $url): void
{
// ...
}

$request = newRequestModule($requestUrl);
inventoryTracker('apples', $request, 'www.inventory-awesome.io');

الاستخدام الجيد:
function requestModule(string $url): void
{
// ...
}

$request = requestModule($requestUrl);
inventoryTracker('apples', $request, 'www.inventory-awesome.io');

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2👍1
Yhya Nesb
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء التاسع في هذه القناة 9️⃣
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء العاشر في هذه القناة 0️⃣1️⃣
الكائنات Objects وهياكل البيانات Data Structures
قم بتغليف الكائن encapsulation:
في لغة php 👩‍💻 يمكن تعيين كلمات رئيسية للخصائص بالأسماء التالي (private, protected, public) التي تستخدم في تعديل خصائص (properties) الصنف
التغليف:
هو جعل الخصائص خاصة private على مستوى الصنف object ويتم التعديل ✏️ على هذه الخصائص من خلال توابع تسمى ب set + get أو setter and getter، وهذه العملية تعد طبقة حماية 🔐
من مميزاتها:
- عندما تريد القيام بإجراء أو تنفيذ أمر معين عندما تقوم بجلب خاصة معينة عند عمل get، فلن تحتاج لإستخدام التوابع السحرية أو حتى البحث عن مكان الإستدعاء 😅 لتنفيذ هذا الأمر.
- يجعل إضافة تحقق أو شرط لعملية الإسناد ⬇️ أمر بسيط عند عمل set.
- إخفاء التفاصيل 📝 الداخلية، فلست مهتم بآلية عمل شروط الإسناد مثلاً.
- من السهل العثور على الدخول (loging) ومعالجة الأخطاء (errors) 🤖 عند الحصول او تغير قيم الخصائص.
- عند وراثة هذا الصنف class، يمكنك تعديل الوظائف أو التوابع (function) الافتراضية.
- يمكنك التحميل البطيء (lazy load) لخصائص الكائن ، دعنا نقول الحصول عليه من خادم.
بالإضافة لذلك يعد هذا جزء من مبدأ فتح/إغلاق
الاستخدام السيء:
class BankAccount
{
public $balance = 1000;
}
$bankAccount = new BankAccount();
// عند شراء شيء، في هذا المثال يصبح رصيدي سالب 9 الف بسبب نسياني لشرط التحقق من رصيد المحفظة قبل الخصم !
$bankAccount->balance -= 10000;

الاستخدام الجيد:
class BankAccount
{
private $balance;

public function __construct(int $balance = 1000)
{
$this->balance = $balance;
}

public function withdraw(int $amount): void
{
if ($amount > $this->balance) {
throw new \Exception('Amount greater than available balance.');
}

$this->balance -= $amount;
}

public function deposit(int $amount): void
{
$this->balance += $amount;
}

   public function getBalance(): int
{
return $this->balance;
}
}

$bankAccount = new BankAccount();

// Buy shoes...
$bankAccount->withdraw($shoesPrice);

// Get balance
$balance = $bankAccount->getBalance();

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
أهم المواقع لأي مبرمج 🧑‍💻
كونك مبرمج يعني لازم ولا بد انك تستخدم المواقع التالية 🌐 أو على الأقل البعض منها، في حال ماكنت عم تستخدم ولا موقع منهم فبنصحك تدخل على الشي يلي بيلفت انتباهك 🔍 لحتى تعرف كيف تمشي وشو لازم تتعلم 💬
مواقع حل المشكلات Problem solving:
أهمية حل المكشلات تكمن في زيادة الوعي ومنطق التفكير لحل مشكلات حقيقة
LeetCode - HackerRank - Codewars -
مواقع استلهام:
مواقع مفيدة لمصممين ال UI/UX ومبرمجين ال Front-End:
dribbble - pinterest - mobbin - uxcrush
مواقع تعلم البرمجة:
من المواقع التي تحوي على شروحات كتابية لمجال البرمجية، تفيدك للمراجعة أو في حال كنت تريد التعلم من خلال قراءة المقالات:
geeksforgeeks - harmash - w3schools
مواقع كورسات:
مواقع لمشاهدة كورسات مجانية أو مدفوعة أو مساقات
udemy - coursera - learning paths
مواقع صور SVG:
undraw - noscripthub - manypixels
مواقع للبحث عن فرصة عمل:
المواقع التالية بعضها فريلانسر وبعضها التوظف بشركة، مع تأكيدي على ضرورة العلاقات للعثور على عمل:
mostaql - nafezly - fiverr - indeed - amazon jobs
مواقع مهمة لأي مبرمج:
موقع linkedin يعد أشهر منصة تواصل إحترافية، مخصصة للأعمال أي تعتبر عن منصة لعرض ال CV الخاص بك ومناقشة مواضيع مهنية مثل مجالات البرمجة
موقع notion لوضع خطة لأهدافك وتنظيم عملك من خلال قائمة مهام
موقع dev.to موقع تواصل اجتماعي خاص بالبرمجين فقط لنشر مقالات حول البرمجة، أنصحك بالإشتراك بالقائمة البريدية الخاصة به
موقع frontendfoc للإشتراك بقائمة بريدية خاصة بكل تطورات مجال ال front end
موقع 10015.io موقع يحوي على أدوات مهمة منها تحويل نص الكود إلى صورة
موقع regex101.com للتحقق من التعابير النمطية وتجربتها بشكل مباشر
موقع roadmap.sh لعرض خارطة الطريق لتعلم أي لغة أو مجال أو تقنية (يحوي على الكثير من الخرائط)
في حال اعجبت بمحتوى القناة لا تنسى مشاركتها ❤️

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #python #cpp #programming #algorithms #data_structure #dataStructure #sites #problems_solving #problemsSolving
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤‍🔥1
Yhya Nesb
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء العاشر في هذه القناة 0️⃣1️⃣
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الحادي عشر في هذه القناة 1️⃣1️⃣
جعل الكائنات تحوي على خصائص من النوع private/protected:
النوع أو الطريقة public للخصائص أو المتغيرات أكثر خطورة ☠️ ، لانه التعليمات البرمجة الخارجية قد تكون تعتمد عليه 😬 ولا يمكن التحكم بهذه التعليمات، والتعديل على الخاصية بدون قيود 🔐 سيؤدي لمشكلة للصنف object بأكلمه 🛡

النوع أو الطريقة protected التعديل على الخصائص من هذا النوع أقل خطورة 😊 فهي محصورة بالأصناف classes الأطفال child (اي الأصناف التي ترث من الصنف الأساسي) وهذا ال فرق الجوهري 💎 بين النوع public والنوع protected فقط من ناحية الوصول، لكن ضمان التغليق يبقى كما هو فيمكن التعديل على الخاصية على صنف يرث من الصنف الذي يحوي الخاصة 🖥 (أقل خطورة بحيث لن يقوم بتعديلها إلا شخص يفقه الشيء الذي يقوم به 🧑‍💻 لكن يظل خطورة تجاوز التحقق من المدخلات موجود)

النوع أو الطريقة private تتم تعديل الخصائص من خلال تابع (setProperty) في حال يريد المبرمج 🧑‍💻 السماح بالتعديل من خارج الصنف class، فالطريقة private تسمح بالوصول ✏️👀 للخاصية من داخل الصنف class فقط (أي لا يمكنك الوصول للقيمة أو تعديل الخاصية من خلال class child أو من خلال object للصنف المستخدم) وأنت في هذه الحالة ستكون بآمان من تأثير Jengaphobia
تأثير Jengaphobia 🧐؟
هو الخوف من تعديل الكود البرمجي حتى لا ينهار النظام بأكمله ☠️ وسميت بلعبة Jengaphobia حيث يقوم اللاعبين بإزالة قطعة خشبية من قطع خشبية مكدسة (مثل مبنى تم بنائه من قطع خشبية تقوم بإزالة القطع الخشبية من الأسفل)

لمزيد من المعلومات يمكنك قراءة هذه التدوينة

الاستخدام السيء:
class Employee
{
public $name;

public function __construct(string $name)
{
$this->name = $name;
}
}

$employee = new Employee('John Doe');
// Employee name: John Doe
echo 'Employee name: ' . $employee->name;

الاستخدام الجيد:
class Employee
{
private $name;

public function __construct(string $name)
{
$this->name = $name;
}

public function getName(): string
{
return $this->name;
}
}

$employee = new Employee('John Doe');
// Employee name: John Doe
echo 'Employee name: ' . $employee->getName();

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
تقدم منصة IT legend مبادرة مجانية 🆓
محتوى المبادرة: باقة تحوي على 3 كورسات التي تعتبر هي كورسات أساسية أو مدخل لتعلم البرمجة 🧑‍💻 بشكل صحيح، حيث تضمن:
- مدخل لعلوم الحاسوب 💻
- مدخل للخوارزميات مستوى 1
- مدخل إلى c# 👩‍💻 وحل بعض المشكلات
هل منصة IT legend منصة موثوقة للتعلم؟
نعم، فهي ليست مجردة منصة ‼️ بل هي أيضاً شركة برمجية تقدم بعض الخدمات لشركات أخرى والمدرب في هذه المنصة هو المهندس علي شاهين ذو خبرة بأكثرر من 10 أعوم 💯
ويمكنك أن ترى تقيمات بعض الطلاب على المنصة
للتسجيل في المبادرة من هنا علماً أن هذه المبادرة ستنتهي بعد 3 أيام و14 ساعة من الآن 🕐، لا تنسا مشاركة المنشور ليستفيد أكبر عدد ممكن 😉
للمزيد من المنشورات ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Yhya Nesb
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الحادي عشر في هذه القناة 1️⃣1️⃣
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثاني عشر في هذه القناة 2️⃣1️⃣
هذا المنشور هو أكثر منشور أخذ الجهد في كتابته لمحاولة تبسيط وايصال المعلومة الصحيحة، الرجاء مشاركته في المجتمعات البرمجية؛ وفي حال اعتقدت ان هناك تفصيل غير صحيح أو دقيق الرجاء إخباري وشكراً

الأصناف Classes
فصل التكوين او الإنشاء عن الوراثة (Prefer composition over inheritance):
كما هو مذكور في أنماط تصميم البرمجيات أو Design Patterns يجب أن تفصل التكوين عن الوراثة، أي لا يجب أن ترث صنف وتقوم بإستدعاء تابعه الباني construct في التابع الباني construct للصنف الجديد ‼️
حسناً دخلت الأمور ببعضها 😵‍💫 وهذا شيء طبيعي، ببساطة في حال تريد إنشاء صنف class ويحوي على تابع باني construct وسوف ترث صنف ثاني يحوي أيضاً على تابع باني construct فلا تقم بهذا ⚠️ لعدة أسباب منها:
1️⃣- ستخلق مشكلة باسم dependency injection أي في حال عدلت على التابع الباني للصنف الموروث فستجبر على تعديل كافة التوابع البانية للأصناف التي ترثه ❗️ مع العلم قد لا تستخدم هذه التعديلات إلا في صنف واحد من الكثير منه (عند اتباعك للطريقة السليمة سيكون لديك عدة حلول منها: التعديل على الصنف حين الإستخدام فقط، أو الإستفادة من مفهوم التغليف أو الكبسلة) وإليك فيديو يشرح المشكلة وحلها
2️⃣- سيصح الكود غير نظيف ‼️ وستجبر من يعمل 🧑‍💻 على تعديل التابع الباني للصنف الوارث على فهم التابع الباني للصنف الموروث لضمن عدم حدوث تضارب ❗️
حسناً هل هذا يعني ألا استخدم الوراثة بعد اليوم 🔍
بالطبع لا فتستخدم الوراثة عندما:
1️⃣- يوجد علاقة بين الأصناف الوراثة والموروثة تدعى بـ: "يكون" أو "is-a" وليست علاقة "يملك" أو "has-a" مثل:
صنف البشر تتم وراثته للمستخدمين 👥 وتم وراثت الأخر لمعلومات المستخدمين، لكن ليس منطق أن تكون السيارات تنتمي للبشر، علماً أنه يمكن أن تكون سيارة أو البعض منها تُملك لبشري أو أكثر
2️⃣- يمكن إعادة إستخدام التعليمات البرمجية من الفئة نفسها: فالبشر جميعهم يقومون بالتفكير والمشي، ولا بد أيضاً للمستخدمين أن يقومون بالعمليات أيضاً (فالمستخدم هو كل بشري يستخدم خدمة أو شيء معين)
3️⃣- عندما تريد إجراء تغير على الصنف الأب، فهناك بشر من الجنس الذكري، وبشر من الجنس الأنثوي (الفطرة السليمة التي خلقنا الله عليها)؛ فلا يمكن للذكر أن يحمل اسم أنثى (على سبيل المثال) والعكس ⚠️
الاستخدام السيء:
class Employee
{
private string $name;

private string $email;

public function __construct(string $name, string $email)
{
$this->name = $name;
$this->email = $email;
}

// ...
}

// Bad because Employees "have" tax data.
// EmployeeTaxData is not a type of Employee

class EmployeeTaxData extends Employee
{
private string $ssn;

private string $salary;

public function __construct(string $name, string $email, string $ssn, string $salary)
{
parent::__construct($name, $email);

$this->ssn = $ssn;
$this->salary = $salary;
}
}

الاستخدام الجيد:
class EmployeeTaxData
{
private string $ssn;

private string $salary;

public function __construct(string $ssn, string $salary)
{
$this->ssn = $ssn;
$this->salary = $salary;
}

// ...
}

class Employee
{
private string $name;

private string $email;

private EmployeeTaxData $taxData;

public function __construct(string $name, string $email)
{
$this->name = $name;
$this->email = $email;
}

public function setTaxData(EmployeeTaxData $taxData): void
{
$this->taxData = $taxData;
}

// ...
}

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
ما المقصود بـ SEO !؟
هو تحسين محركات البحث وهو إختصار لـ: Search engine optimization والمقصد الأعم هو تحسين ترتيب الموقع أو التدوينة الخاصة بك في النتائج الأولى لمحرك البحث بشكل مجاني 🔥
ملاحظة: هذه نصائح لتحسين الظهور؛ ليست سحر وبنفس الوقت ليست شاملة أنا أفقط أعطيك نصائح تساعدك لزيادة الظهور فلا يمكنني برسالة واحدة أن أجعلك تفقه كل شيء في هذا المجال؛ أنا أذكر تجربتي بحصولي على 70 ألف ظهور على بحث جوجل بأقل من 20 تدوينة و ألفين نقرة
لماذا أريد ترتيب موقعي بنتائج البحث 🤔؟
تزيد من مصداقية نشاطك التجاري 🏆 ويعد مصدر تسويقي طويل الأمد 📈 فعند قيامك بحملات إعلانية مدفوعة ستكون مؤقتة وتحتاج لدفع المزيد للقيام بهذه العملية 💵 على عكس ترتيب موقعك فهو يضمن لك المزيد من العملاء وعلى المدى الطويل 🔜 فقد تتفاجئ بأن متجرك الإلكتروني بعد 3 أشهر من إنقطاع الاعلانات مازال يحصل على عملاء جدد 👥 لكونك تتبع إسترتجيات تحسين محركات البحث 👑
ماهي أنواع تحسين محركات البحث 🔍؟
* التحسين داخل الصفحة (On-Page SEO):
ويقصد بها كل التحسينات الداخلية، ومن هذه التحسينات:
1️⃣- ضع عنوان 🖥 ملفت للنظر، العنوان يجب أن يكون جاذب للأنظر 👀 بالإضافة لكونه عنوان قابل للبحث 🔍، مثلاً:
أرخص 10 هواتف ذكية لعام 2024
أهم المواقع لأي مبرمج
كيف أحصل على أول وظيفة لي.
- أنصحك وبشدة أن يكون العنوان الخاص بك يحوي على كلمة: "أفضل، أحسن، أرخص"
- أيضاً إضافة أرقام 10 أو 5 في حال التعداد (الرقم 10 أكثر رقم من بين الأرقام يتم البحث عنه)
- أيضاً إذا كانت التدوينة عبارة عن جواب فضع العنوان هو السوأل، أتذكر أنًي قرأت دراسة أن 50% من عمليات البحث في Google 🌐 كانت عبارة عن أسئلة
- في حال لديك تدوينة قديمة وتريد تحديثها فقط ضع بنهاية العنوان العام التي تم التحديث له 2025 مثلاً
2️⃣- حاول تكرار الكلمة المفتاحية ومرادفاتها بشكل غير جنوني 🗣️ لتستطيع محركات البحث فهم محتوى التدوينة
3️⃣- لا تنسى إضافة بعض الصور 👥 فهي تجذب انتباه القارئ 👀
4️⃣- حسن سرعة إستجابة الموقع الخاص بك نحن اليوم في عصر السرعة وبطء موقعك بمعدل ثانيتين قد يسبب خسراتك لأكثر من نصف عملائك المحتملين ‼️
5️⃣- بناء محتوى قيم © يستحق مشاركته والأهم صحته
* التحسين خارج الصفحة (Off-Page SEO):
ويقصد بها كل التحسينات التي تحدث خارج موقعك، ومن هذه التحسينات:
1️⃣- الروابط الخلفية (Backlink) 🔗 هي الروابط التي توضع في مواقع غير موقعك، وتزيد من قوة موقعك وتنقصها بحسب الموقع (لا تقوم بشراء ألف رابط خلفي ب 5$) ومن طرق تنقيص ترتيب الموقع: الرابط الخلفي موجود على كلمة "انقر هنا" أو في موقع ذو سمعة سيئة 🚫 وأتمنى الانتباه لأمر مهم: وضع الرابط في تذيل الموقع أو مقدمته لا يعد رابط خلفي 🙂
2️⃣- بناء علامة تجارية عبر وسائل التواصل الاجتماعي، وسائل التواصل الاجتماعي 📲 لن تفيدك ببناء روابط خلفية، لكن ستقدم الوعي 💭 للأشخاص بعلامتك التجارية وترسخ بذهنهم
3️⃣- نشر الروابط في المجتمعات المتعلقة بالموضوع، مشاركة موقع عن السياحة في مجموعات السفر 🧳
* التحسين التقني (Technical SEO):
كل شيء يتعلق بالأمور التقنية مثل:
1️⃣- جعل موقعك سريع من خلال ضغط ملفات التصميم 🎨 وإضافته لشبكة CDN وخاصة في المناطق القريبة من الفئة المستهدفة 🎯
2️⃣- تصميم جذاب يلفت المستخدم، والأهم الذي يعد شيء أساسي اليوم هو تصميم متجاوب على جميع الشاشات 📱 بالنسبة لي أكثر من 65% من الزيارات التي حصلت عليها من تجربتي كانت من هاتف محمول 📱
3️⃣- راقب الأخطاء واعرف كيف تتعامل معها ✖️
4️⃣- لا تقم بقتل موقعك من خلال إعادة التوجيه 302 التي يقصد بهذا ال status code بانتقال الصفحة بشكل مؤقت لهذا العنوان (سيظن محرك البحث أن هذه العملية لصيانة الموقع) وقم لإعادة التوجيه 301 🔄
5️⃣- بعض السمات المهمة في ال Meta Tag 🖥
6️⃣- استخدام خرائط الموقع XML لتعريف محركات البحث بمحتوى الموقع
7️⃣- اخبر محركات البحث نفسها بوجود موقعك على الانترنت 😁

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#SEO #search #google #html #wordpress
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
من اللغات البرمجية المستخدمة في برمجة الألعاب هي HTML5 🧐⁉️
للأسف أولا خطء ان HTML5 👩‍💻 هي لغة ترميز وليست لغة برمجة ‼️ والألعاب التي يقال أنها برمجت ب HTML5 هي بالأساس مبرمجة ب JavaScript 👩‍💻 وفقط جرب تعطيل جافا سكريبت في المتصفح والعب اللعبة 😁 و HTML5 يمكن القول أنها مساعدة للمتصفح لبناء لعبة من خلال الرسومات (عنصر Canvas) ‼️ لكن اللعبة تبقى لعبة ويمكنك إنشاء لعبة من خلال HTML4 مع جافا سكريبت مثلاً لعبة XO 🤷‍♂️
ولهذا يجب الانتباه لمصدر المعلومة 🔍 ولا تصدق كل من يقول أن المحتوى الأجنبي هو أفضل من العربي 🙂
#html #javanoscript #games #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3
احصائية اللغات البرمجية المستخدمة في بناء مواقع الويب من جهة السيرفر back-end

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#back_end #php #python #asp_net #aspnet #dotnet #java #javanoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Yhya Nesb
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثاني عشر في هذه القناة 2️⃣1️⃣
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثالث عشر في هذه القناة 3️⃣1️⃣
قد يحوي هذا الجزء على بعض المصطلاحات الغريبة؛ مصطلاحات خاصة بهندسة البرمجيات (software engineering) وتصميم البرمجيات (design pattern)

تجنب الواجهات السلسة Avoid fluent interfaces:
تعد واجهة fluent واجهة برمجة التطبيقات API في البرمجة كائنية التوجه OOP حيث تهدف إلى تحسين قراءة الكود من خلال تتابع أو تسلسل التوابع (function) وتسمى بـ Method chaining
مصطلاحات غريبة 😔
واجهة fluent: ترجمتها: بطلاقة أو سلسة، لكن ليست ❗️ اسم على مسمى(لترجمة طلاقة)؛ المقصود ليس تجنب إستخدام الواجهات interfaces البرمجية بشكل مباشر أو طليق - وسنشرح في الأجزاء القادمة 🔜 ضرورة إستخدام الواجهات البرمجية -
بل هي عبارة عن وجه أو شكل لواجهة برمجة التطبيقات API (حيث API يقوم بعمل الوسيط بين برنامجين لتبادل البيانات؛ أي ليس المقصد هنا إستخدام APIs من جهات خارجية، فقد تقوم بجلب اسم الموقع من قاعدة بيانات وتعرضها للمستخدم) تستخدم تسلسل التوابع (function) في البرمجية كائنية التوجيه OOP لكن بدون إنشاء object (أو بإنشاء لكن القيام بكل العمليات في تسلسل واحد) في متغير، انظر للمثال لتفهم القصد بدقة مع التغير الذي سيحصل لإصدار php8.4 😉:
$name = (new Employees())->topEmployee()->getName();
// in php >= 8.4
$name = new Employees()->topEmployee()->getName();

طريقة التسلسل Method chaining: وهي أحد الطرق التي تستخدم إستدعاء التوابع function بشكل مستقل عند التعامل مع البرمجة كائنية التوجه OOP، حيث يعيد التابع الصنف نفسه الذي تستخدمه - الفرق بينها وبين واجهة fluent أن واجهة fluent تستخدم هذه الطريقة، لكن الطريقة يمكن إستخدامها بدون التعرض لتأثير fluent - في المثال السابق عرضنا طريقة التسلسل مع تأثير fluent أما المثال التالي سيكون بدون تأثير fluent بحيث نقوم بجعل الكائن في متغير خاص به:
$employees = new Employees();
$nameTopSalaryEmployee = $employees->topEmployee()->getName();
$namesTopSalaryEmployees = $employees->topTenEmployee()->getNames();

وفي أول تعليق ستشاهد صورة توضح العلاقة بين المفهومين
في حين أنها تستخدم في بعض السياقات، غالباً في كائنات objects البناء builder (مثل query builder في Laravel) لكن في كثير من الأحيان يأتي ذلك على حساب أنه:
1️⃣- يلغي مفهوم التغليف Encapsulation
2️⃣- يلغي فاعلية نمط المزخرف Decorator (هو نمط من أنماط تصميم البرمجيات)
3️⃣- صعوبة القيام بتجارب متتابعة على الكائن الوهمي (Mock object)
4️⃣- يجعل معرفة الإختلافات بعد التحديثات أكثر صعوبة (الاختلاف في الكود البرمجي)
لمزيد من المعلومات يمكنك قراءة المقالة التالية التي كتبها Marco Pivetta
الاستخدام السيء:
class Car
{
private $make = 'Honda';

private $model = 'Accord';

private $color = 'white';

public function setMake(string $make): self
{
$this->make = $make;

// NOTE: Returning this for chaining
return $this;
}

public function setModel(string $model): self
{
$this->model = $model;

// NOTE: Returning this for chaining
return $this;
}

public function setColor(string $color): self
{
$this->color = $color;

// NOTE: Returning this for chaining
return $this;
}

public function dump(): void
{
var_dump($this->make, $this->model, $this->color);
}
}

$car = (new Car())
->setColor('pink')
->setMake('Ford')
->setModel('F-150')
->dump();

الاستخدام الجيد:
class Car
{
private $make = 'Honda';

private $model = 'Accord';

private $color = 'white';

public function setMake(string $make): void
{
$this->make = $make;
}

public function setModel(string $model): void
{
$this->model = $model;
}

public function setColor(string $color): void
{
$this->color = $color;
}

public function dump(): void
{
var_dump($this->make, $this->model, $this->color);
}
}

$car = new Car();
$car->setColor('pink');
$car->setMake('Ford');
$car->setModel('F-150');
$car->dump();

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
ماذا يجب أن أتعلم بعد c++ 🖥
تعلم لغة c++ يقصد به بعد التأسس بهذه اللغة الرائعة، فتعد لغة c++ لغة تأسيسة 🖥 وينصح بها الكثير؛ لكن هناك عدة نقاط يغفل عنها الكثير ‼️ فالتأسيس ليس فقط في تعلم كيف تكتب كود بهذه اللغة 🙂 فلا أحد بحاجة لك لأن أي Model ذكاء اصطناعي يمكنه القيام بذلك 🙃 ؛ تابع القراءة لمعرفة التفاصيل 🔍
ماذا يجب أن أتعلم قبل c++ 🖥
- أساسيات الحاسوب الذي ستتعامل معه 😬 فهو صديق مسيرتك البرمجة 😁 فعليك البدء بتعلم فوائد أو وظائف القطع الأساسية للحاسوب 💻 فمثلاً:
مفهوم خاطئ بأن الذاكرة المؤقتة RAM كلما كانت أكبر كلما كان الحاسوب أقوى 🔥
- بالإضافة لذلك يجب أن تتعلم أنظمة العد 🖥 التي قد تحتاج لها في يوم من الأيام (ركز على النظام الثنائي)
- مدخل إلى الخوارزميات 🖥؛ لا تقلق لا أقصد الخوارزميات التي ستكتب كود برمجي بها 😅 بل التي تجعلك تحلل فكرة صغيرة (الهدف منها هو مساعدك للتفكير كمبرمج، ما الهدف من كتابتك كود برمجي وأنت تبحث عن كود على الانترنت لوضعه في مشروعك - تقوم بكتابه لتشعر بأنك من استطاع حل المشكلة - فحل المشاكل سمة ضرورية للمبرمج الناجح)
- نظام التشغيل الذي ستعمل عليه، كيف تقوم بتحميل برنامج من الانترنت، البحث عبر الانترنت
حسناً أين يمكن العثور على كورسات 👥 لها؟ ببساطة قناة المهندس ابو هدهود
ماذا يجب أن أتعلم أثناء تعلم أساسيات c++ 🖥
- يجب أن تتعلم البنى الأساسية 📌 (الشروط - التكرار - التوابع)
- تقوم بحل بعض التحديات التي ستساعدك لتثبيت مفهوم التكرار (تحديات رسم الأشاكل) وأنصحك بالتحديات الموجودة في موقع هرمش، السبب ببساطة: موقع هرمش موقع تعليمي عربي، يقوم بتحديث محتوى موقعه باستمرار، التحديات الموجودة محلولة باللغات البرمجية التالية: (python - c# - c++ - c - java) التي تعد لغات تأسيسة أيضاً
ملاحظة ⁉️: في حال كنت تريد البدء بتعلم python أتمنى أن تقراء رسالة: لماذا لا يجب عليك تعلم بايثون أولاً؟
- تعلم الفرق ℹ️ بأنواع البيانات (int - short - bigint - unsigned int)
- تعلم البرمجة كائنية التوجه OOP والتي كانت لغة c++ هي أساساً لها عوضاً عن لغة C 👩‍💻
بالنسبة للمصادر أنصحك بكورس الاستاذ أسامة الزيرو وكورس OOP للمهندس عادل نسيم
ماذا يجب أن أتعلم بعد تعلم أساسيات c++ 🖥
- حل المشكلات على مواقع التحديات البرمجية
- تعلم هياكل البيانات والخوارزميات Data Structures تكمن أهمية الكورس في حل المشكلات التي واجهت المبرمجين، بالإضافة لفهم أنواع البيانات الموجودة في اللغات البرمجية الحديثة مثل: php - python
- ابحث عن بعض المكاتب والحاويات الديناميكية الأساسية التي قد تساعدك في حال أردت العمل بهذه اللغة الرائعة 💯 مثل Math - queue - vector
- ابداء بالتعرف على الاختصاصات البرمجية 👀 للتعرف على المجال التي تميل له لبتدأ تعلمه وفي حال كنت قد تعلمت كل ما سابق سيساعدك ويوفر عليك الوقت لتعلم أي لغة برمجة
أما لو كنت تريد احتراف هذه اللغة الرائعة فادعوك لقراءة الخريطة التالية roadmap.sh
تجارب تعلم c++ كلغة تأسيسة 📍
بالنسبة لي ☺️: بعد تعلم هذه اللغة الرائعة، تغيري مفهومي للبرمجة بشكل كامل، من أهمية البرمجة كائنية التوجه حتى فهم أدق 👌 التفاصيل في النتيجة النهائية للكود، والأهم التخطيط الصحيح 🤓 قبل البدء في عملية التكويد، ولا يمكنني أن أنكر فهمي لأنواع البيانات المتعدة التي ساعدتني على بناء قواعد بيانات 📊 بكفائة عالية 🔥
تجربت صديقي 😊 كانت: فهمه للأنواع المختلفة للبيانات بالإضافة لتعلمه أمور دقيقة جداً لم يتطرق لها في أي لغة برمجية قام بتعلمها، علاوة على ذلك فهم ضرورة التأسيس الجيد؛ يمكنك قراءة رائيه بشكل كامل هنا

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #python #cpp #programming #algorithms #data_structure
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
كيف تحمي بيانات مشروعك في Laravel


كلنا معرضون للخطأ، ولا يوجد شخص معصوم عن الخطأ؛ لكن تفاديك للمشكلة بأقل الخسائر هو أفضل حل للمشكلة

أحياناً قد تعمل على مشروع بمفردك أو مع فريق وأثناء التحديثات قد يغفل عليكم خطأ معين، وسيسبب كارثة في حال حدثت تعديلات كثيرة في قاعدة البيانات

فالحل الأمثل هو عملية النسخ الإحتياطي للبيانات، فببساطة في حال حدوث خلل يمكنك الرجوع للإصدار السابق من خلال git وإعادة البيانات القديمة ريثما تتم حل المشكلة (أحد الحلول الممكنة)

تحوي الصورة التالية على كود برمجي يقوم بإنشاء نسخة إحتياطية للبيانات لتحميلها، وحذف النسخ القديمة في حال وجدت

يتطلب تحميل مكتبة: spatie/laravel-backup

بالإضافة لإصدار php أعلى من 8.0 و Laravel 9.0 و إمتداد zip في php (للمزيد من التفاصيل يمكنك قراءة كامل المتطلبات في أول تعليق)

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #laravel #zip #backup #backend #data
Please open Telegram to view this post
VIEW IN TELEGRAM
1🥰1
جدول القناة لشهر 6/2024 📅
- ما المقصود ب SOLID 🔍
- العمل الحر في مجال البرمجة 🧑‍💻
- ما الفرق بين Model و Query builder في Laravel 👩‍💻
وسيتم النشر بمعدل رسالة اسبوعياً ❤️ ورسالتين لسلسلة #CleanCode 😅 لننهي هذه السلسلة هذا الشهر بإذن الله
بالإضافة لنشر بعض الأخبار التقنية 🖥
في حال اعجبت بمحتوى القناة لا تنسى مشاركتها ❤️

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2