Yhya Nesb
626 subscribers
141 photos
1 video
1 file
112 links
شاب سوري طموح محب لعالم التقنية مهندس برمجيات
منشوراتي تعكس وجهة نظري الشخصية فقط.
Download Telegram
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثاني في هذه القناة 2️⃣
استخدم المتغيرات التوضيحية:
تشبه سابقتها 😅 من حيث اسم المتغير، لكن لو لديكم متغير من نوع Array - مصفوفة - يجلب لك قيم محددة لكن المفاتيح (Key - Index) لهذه القيم Values أرقام 😐 ستجبر على فهم الكود الكامل الذي يقوم بتعبئة المصفوفة 😭 أو طبعتِها 🤷‍♂️ (الأمر قد يعتبر سهل في الطباعة لكن ماذا لو كان مشروعك بشكل كامل يحوي نفس المشكلة 😅 ستاخذ أيام لتفهم المشروع فقط دون البدء في التحديث 😕)
الاستخدام السيء:
$address = 'One Infinite Loop, Cupertino 95014';
$cityZipCodeRegex = '/^[^,]+,\s*(.+?)\s*(\d{5})$/'; // تعبير نمطي
preg_match($cityZipCodeRegex, $address, $matches); // تنفيذ التعبير النمطي
// ما المقصود من المفتاح 1 و 2
saveCityZipCode($matches[1], $matches[2]);

الاستخدام العادي:
$address = 'One Infinite Loop, Cupertino 95014';
$cityZipCodeRegex = '/^[^,]+,\s*(.+?)\s*(\d{5})$/';
preg_match($cityZipCodeRegex, $address, $matches);
// قمنا هنا بتعريف متغير لكل قيمة في المصفوفة، بحيث أول قيمة في هذه المصفوفة لن يتم تخزينه
[, $city, $zipCode] = $matches;
saveCityZipCode($city, $zipCode);

حسناً لماذا هذا الاستخدام ليس جيد!؟ ببساطة قد تضع الأمر الخاص بإنشاء المصفوفة في function خاص والإستدعاء في function أخر بملف أخر، وعند إستدعاء هذا ال function من جديد وطباعة النتيجة قد تكون النتيجة غير مفهومة لان النتيجة ستكون من نوع:
int:mixed

الاستخدام الجيد:
$address = 'One Infinite Loop, Cupertino 95014';
// قمنا في التعبير النمطي بإعطاء مفتاح للقيمة حتى توضع به، مع الاحتفاظ على مفتاح بالرقم
$cityZipCodeRegex = '/^[^,]+,\s*(?<city>.+?)\s*(?<zipCode>\d{5})$/';
preg_match($cityZipCodeRegex, $address, $matches);

saveCityZipCode($matches['city'], $matches['zipCode']);

تجنب التدخل بعمق وقم بترجيع النتيجة بشكل مبكر:
قد يؤدي وجود عدد كبير من من عبارات if-elseif إلى صعوبة في متابعة كامل الشروط ‼️
الاستخدام السيء:
function isShopOpen($day): bool
{
if ($day) {
if (is_string($day)) {
$day = strtolower($day);
if ($day === 'friday') {
return true;
} elseif ($day === 'saturday') {
return true;
} elseif ($day === 'sunday') {
return true;
}
return false;
}
return false;
}
return false;
}

الاستخدام الجيد:
function isShopOpen(string $day): bool
{
if (empty($day)) {
return false;
}

$openingDays = ['friday', 'saturday', 'sunday'];

return in_array(strtolower($day), $openingDays, true);
}

مثال آخر 😁 - الاستخدام السيء:
function fibonacci(int $n)
{
if ($n < 50) {
if ($n !== 0) {
if ($n !== 1) {
return fibonacci($n - 1) + fibonacci($n - 2);
}
return 1;
}
return 0;
}
return 'Not supported';
}

الاستخدام الجيد:
function fibonacci(int $n): int
{
if ($n === 0 || $n === 1) {
return $n;
}

if ($n >= 50) {
// إنشاء خطأ أفضل من إرجاع نص string حتى تكون نتيجة ال function من نوع int فقط
throw new Exception('Not supported');
}

return fibonacci($n - 1) + fibonacci($n - 2);
}

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1
هل تعلم أنه في عام 1971 📅 تمت أول عملية إحتيال بشكل إلكتروني في العالم 🌐 حيث قام طالب أمريكي 🇺🇸 (جوزيف ليونارد) بتزوير حوالة بنكي
ة بقيمة 220$ (قيمته اليوم تعادل 12,757$) ‼️
حسناً ما هي الطرق السليمة للحماية من هكذا عمليات من الاحتيال الإلكتروني 😅 والتي أصبحت جزء لا يتجزء من حياتنا 🥲
0️⃣-في العجلة الندامة 😶
1️⃣-اقراء بتروي أي رسالة تستلمها مرتين عندما يتعلق الأمر بالنقر على زر 📱 للدخول إلى رابط
2️⃣-لا تقم بتحميل أي ملف من مصدر غير موثوق ⚠️ الأمر جداً مهم مهما يكن الملف بسيط لا تقم بتحميله 😕 فقد يكون صديقك الإفتراضي الذي تعرفت عليه من يومين يريد أن يحذف جميع بيانات هاتفك من خلال تحميل تطبيق يعطيك شدات ببجي 🎀
3️⃣-جميعنا نعمل بشكل أو بأخر لنكسب المال 💵 فلا تعتقد أنّ شركة الألعاب المفضلة لديك تريد إهدائك مكافئة الموسم 🗣️ بشكل مجاني 💯 فقط إذا وضعت الإيميل الخاص بك 😈
4️⃣-لا تعطي كلمة السر للدعم الفني الذي يملك في الأساس صلاحية الوصول لحسابك بدون أن يطلبوا منك ذلك ‼️، (مرحباً نحن شركة فسبوك بدنا كلمة سر حسابك نحدثه)
5️⃣-لا تتصل لأي رقم تابع لجهة حكومية/تجارية على رقم عادي ⚠️ وفي حال كان ذلك فهو لا يحتاج سوا اسم الحساب فقط وتذكر أنّ لأي جهة حكومية وتجارية أرقام خاصة ✉️ (3-6 أرقام وليس 10 😒)
6️⃣-عند إستلامك لأي حوالة إلكترونية مجهولة المصدر لا تحزن على صاحبها فهي ليست من حقه ‼️ (ليس إحتيال لا تقلق 😅) لكن عند مراجعتك لمصدر الإشعار ستستنج أن الإشعار جاء من رقم لإستخدام شخصي 👤 (ليس من جهة البنك) وأيضاً ينطبق هذا الشيء على شركات الإتصالات 📞 (من قرابة السنة والنصف انتشرت هذه الشائع في سوريا 🇸🇾 فقامت شركة MTN بتخصيص رقم رباعي للإبلاغ عن هذه الفئة من المستخدمين)
7️⃣-مرحبا أنا محمد هذا رقمي الجديد؛ من الأساليب التي يتبعها البعض 👻 وهي إنتحال شخصية حقيقة لكن هي بالأصل وهمية لإستغلال الضحية بتنفيذ بعض الأمور التي سيعتبر الضحية أنها موجهة لمحمد (الشخص الوهمي)
8️⃣-لقد ربحت مليون دولار 🧨🤩 يمكنك إستلام مكافئتك الأن من خلال الإتصال بالرقم التالي 😁 ويمكنك الإتصال من خلال شركة الاتصال المتوفرة في بلدك 😍، بعد الإتصال وسماع موسيقى لمدة غير متناهية سيتوقف الإتصال بشكل تلقائي 🙃 لنفاذ رصيدك 😅
9️⃣-مرحباً يحيى، أنا محامي السيد خالد المليونير الذي توفى في الهند وقد أوصى بصافي ثروته التي تبلغ 300 الف $ لحضرتكم لوجود قرابة قديمة، سأقوم بتسليمك نصف المبلع وسأحصل على النصف الأخر من المبلغ كأجور أتعاب ........ هل يمكنك إرسال مبلغ 10 الف $ لدفع بعض الضرائب 🙂
نعم إنها الطريقة الأكثر إنتشاراً استلمت أول رسالة بعام 2015 ولليوم هي مستمرة 😅
0️⃣1️⃣-مرحباً عزيزي لقد إنبهرنا في بعض أعمالك (تصميم/برمجة) ونود أن ننمي مهاراتك من خلال فرصة تدريب مجانية ل 3 أشهر معنا 😎 وبعدها ستبدء معنا بشكل فعلي بالعمل 👨‍💻، قد تظن أن حلم حياتك قد تحقق 😍 لكن إنهم يحتالون عليك ويكررون العملية مع غيرك في كل 3 أشهر ♻️ التدريب أو الفترة التجريبية تكون مدفوعة ⚠️ وعند البدء بالعمل بشكل فعلي يزداد الراتب بأقل أحواله ل 20% 📌
هذه الطرق ال 1️⃣1️⃣ الشائعة في عملية الإحتيال وبمجرد التفكير بأي عملية والتأكيد على الأفكار السابقة لن يستطيع شخص الاحتيال عليك 😅
هذا كل شيء لليوم 😁
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الثالث في هذه القناة 3️⃣
تجنب رسم الخرائط الذهنية:
تشبه سابقتها أيضاً 😅 حيث يقصد منها أن تقوم بإنشاء اسم متغير مفهوم 👀 ولا تجعل قارئ الكود مجبراً على فهم ما يعنيه المتغير، الاسم الصريح 😶 أفضل من الضمني 🫥
بمعنى مختلف 👋 بدلاً من أن تعرف ما المقصود من المتغير من خلال البحث 🔍 ومعرفة القيم الذي يحويه ✉️ ستعرف ما المقصود منه أو إلى ما يشير من خلال اسمه 🚩:
الاستخدام السيء:
$l = ['Austin', 'New York', 'San Francisco'];

for ($i = 0; $i < count($l); $i++) {
$li = $l[$i];
doStuff();
doSomeOtherStuff();
// ...
// أكواد كثيفة هنا وهناك
// ...
// بعد عدة أسطر ستنسى ماذا يعني متغير $li وخاصة لو كان المتغير موجود في ملف مختلف
dispatch($li);
}

الاستخدام الجيد:
$locations = ['Austin', 'New York', 'San Francisco'];

foreach ($locations as $location) {
doStuff();
doSomeOtherStuff();
// ...
// ...
// هل كلمة location التي تعني بالعربية موقع ستدل على شيء غير الموقع؟ لا داعي لفهم الكود من بدايته لمعرفة ماذا يحمل المتغير من قيم
dispatch($location);
}

لا تقم بإضافة أي سياق غير ضروري:
في الأصناف Classes والكائنات Objects لا يوجد أي داعي لكتابة اسمه في المتغير ‼️
الاستخدام السيء:
class Car
{
public $carMake;

public $carModel;

public $carColor;

//...
}

الاستخدام الجيد:
class Car
{
public $make;

public $model;

public $color;

//...
}

الأن انتهينا من قسم المتغيرات 😀 الذي بدأنا به بأول جزء
المقارنة:
إستخدم المطابقات بدلاً من المقارانات:
أنت تعلم بأن 10 لا تساوي "10" 🙂 (int != string 🙂👍) لكن هل تعلم ℹ️ أن التطابق لا يشبه المساواة ‼️ إليك المثال التالي 🧑‍💻:
الاستخدام السيء:
$a = '42';
$b = 42;

if ($a == $b) {
// الشرط سيتحقق لأنه سيتحول متغير $b إلى نص👎
}

الاستخدام الجيد:
$a = '42';
$b = 42;

if ($a === $b) {
// الشرط لن يتحقق لأن لكل متغير نوع بيانات مختلف🙂
}

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥 حيث أقوم بنشر كل يوم إثنين في الساعة 9 مساءً منشور من هذه السلسلة 😁 ويوم الخميس منشور تقني مختلف 😍
Please open Telegram to view this post
VIEW IN TELEGRAM
4
مرحباً، React 👩‍💻 هي مكتبة برمجية مفتوحة المصدر 🖥 لإنشاء تطبيقات الويب الديناميكية. تم إنشاؤها بواسطة Facebook (تعد نقطة قوة) 📒 في عام 2013 وهي واحدة من أكثر المكتبات شيوعًا لإنشاء واجهات المستخدم.
لنتكلم قليلاً عنها بشكل تقني وبشكل فني 👋:
تقنياً:
- تعد react مكتبة وليست إطار عمل ‼️ فهناك الكثير من المفاهيم الخاطئة بأنها إطار عمل ⚠️ لذلك لا يمكنك مقارنتها مع اطر عمل ثانية مثل Angular 🙃
- تستخدم لبناء واجهة المستخدم UI 🖥 بمعنى مختصة في التصميم 😬 لذلك ستجد الكثير والكثير من مكتبات JavaScript 👩‍💻 المدعومة في react 👩‍💻
- يمكنك بناء تطبيقات ويب 🌐 (تطبيق الويب يحتلف عن موقع الويب ⚠️ حيث التطبيق يتميز بأنه موقع ذات الصفحة الواحدة أي لست بحاجة لتحديث الصفحة في عملية التنقل بين الصفحات) وذلك من خلال مكتبة React Router 👩‍💻
فنياً:
- تقوم شركة ميتا (فيسبوك سابقاً) 📒 بدعم المكتبة بكل ما تملك من إمكانيات (ميزانية الشركة ككل 946,66 مليار $ 🙂)
- دعم كبير على المكتبة من المجتمع 😁 حيث في 2023 التقنيات واطر العمل الأكثر تفضيلاً للمبرمجين كان التريب :
1️⃣-Node.js 👩‍💻 42.65%
2️⃣-React 👩‍💻 40.58%
3️⃣-jQuery 👩‍💻 21.98%
ملاحظة جانبية 👋:
هل تعلم أن 77.3% من المواقع التي صدرت في 2023 تعتمد على jQuery 👩‍💻

هل تريد تعلم React 👩‍💻
يمكنك إتباع مسار freecodecamp بعد تعلم JavaScript 👩‍💻 ولا تنسا تعلم ES6

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥 ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الرابع في هذه القناة 4️⃣ منشورنا اليوم سريع 😅🚀
استخدم عامل التحقق Null coalescing operator:
بدلاً من إنشاء شجرة ذهنية عبارة عن if elseif لتنفيذ شرط isset يمكنك إستخدم هذا المعامل الذي تمت إضافته في php7 👩‍💻 حيث يقوم بإعادة أول قيمة صحيحة 👋 وفي حال كانت القيمة null سيعود القيمة التي تليها ... 🙏
الاستخدام السيء:
if (isset($_GET['name'])) {
$name = $_GET['name'];
} elseif (isset($_POST['name'])) {
$name = $_POST['name'];
} else {
$name = 'nobody';
}

الاستخدام الجيد:
$name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';

هل تعلم أن نفس هذه المشكلة كنا نعاني منها 😓 عندما نود بجلب تفرعات الكائنات Objects لكن تم حلها في php8.0 😍
الاستخدام السيء: (والوحيد في PHP7)

$country = null;

if ($session !== null) {
$user = $session->user;

if ($user !== null) {
$address = $user->getAddress();

if ($address !== null) {
$country = $address->country;
}
}
}

الاستخدام الجيد:
$country = $session?->user?->getAddress()?->country;

الامر واضح جداً 😁
هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
مشنور قصير لعدة أسباب منها ضعف التفاعل 💔
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
تحدي بسيط بلغة PHP 👩‍💻 قم بكتابة أكواد تقوم بإعطاء نفس نتيجة الكود التالي:
$numbers = array_map(fn($value) => $value ** 2,range(1,10));

هناك حوالي 5 طرق مختلفة 😉 لكن هذا الكود هو أبسط كود ويتبع معايير #CleanCode
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣1
هل الذكاء الاصطناعي مخيف!؟
هذا عنوان مقال كتبته من خلال الذكاء الإصطناعي نفسه 😅 ولتعرف الجواب يمكنك قراءة المقالة الذي أشرفت فقط على تصميم الصور والمحتوى من خلال المعطيات فقط ‼️ وأريدك أن تلاحظ كيف قام الذكاء الإصطناعي بمدح نفسه بشكل زائد 😅 حيث ذكر 3 مخاطر مقابل الكثر والكثير من الفوائد (اكتفيت بأول 4) 😐 وأريدك ملاحظة أن هذا الذكاء هو ذكاء كلاب (وهذا تصريح كبراء المسؤولين عن الذكاء الاصطناعي في شركة ميتا) ولذلك تذكر المقولة الشعبية في الشارع السوري 🇸🇾 (ماحدا بقول عن زيته عكر)
استمتع في التدوينة - مدة القراءة 4د - الرابط 🔗:
https://blogpost.yhyasyrian.com/post/is-artificial-intelligence-scary
Please open Telegram to view this post
VIEW IN TELEGRAM
1👏1
هل سنودع Apache2 و PHP-FPM في سيرفرات PHP 👩‍💻
نعم فقد صدر frankenphp المكتوب بلغة GO 👩‍💻 في نهاية عام 2023 📅
من ميزاته :
- يدعم HTTP/2 & HTTP/3 & HTTP
-HTTPS Automation:
إنشاء شهادة SSL وتجديدها عند إنتهائها
-Structured logging
قم بإحضار تنسيق وتفاصيل أكثر تحديدًا إلى سجلات تطبيقك.
-Zstandard and Gzip compression
يتم دعم تنسيقات الضغط الحديثة خارج الصندوق.
-Extensible
متوافق مع PHP 8.2+، ومعظم ملحقات PHP وجميع وحدات Caddy.
والمزيد
Please open Telegram to view this post
VIEW IN TELEGRAM
Yhya Nesb
تحدي بسيط بلغة PHP 👩‍💻 قم بكتابة أكواد تقوم بإعطاء نفس نتيجة الكود التالي: $numbers = array_map(fn($value) => $value ** 2,range(1,10)); هناك حوالي 5 طرق مختلفة 😉 لكن هذا الكود هو أبسط كود ويتبع معايير #CleanCode
لم أعثر على أي إجابة بشكل كامل 😐 كنت أفكر بمكافئة أول شخص بدومين سنوي .com (لم اطرح ذلك في أثناء نشر المنشور ليكون الشخص الذي ينفذ التحدي مستحق فهو يسعى للتعلم وليس للمكافئة 🙃)
المهم هذه هي الحلول 😊
1️⃣-
$numbers = array_map(function($value) {
return $value ** 2;
},range(1,10));

2️⃣-
function Squaring($value) {
return $value ** 2;
}
$numbers = array_map('Squaring',range(1,10));
// Or
$numbers = array_map(Squaring(...),range(1,10));

3️⃣-
function Squaring($value) {
return $value * $value;
}
$numbers = array_map(Squaring(...),range(1,10));

print_r($numbers);

4️⃣-
$numbers = [];
foreach (range(1,10) as $item){
$numbers[] = $item ** 2;
// or
# $numbers[] = $item ** $item;
// or
# $number[] = Squaring($item);
}

5️⃣-
$numbers = range(1,10);
array_walk($numbers,function(&$number){
$number = $number ** 2;
});

6️⃣-
function Squaring($value) {
$result = 0;
for ($i=1;$i<=$value;$i++)
$result += $value;
return $result;
}
$numbers = array_map(Squaring(...),range(1,10));

7️⃣-
$numbers = [];
for ($item=1;$item<=10;$item++){
$numbers[] = $item ** 2;
// or
# $numbers[] = $item ** $item;
// or
# $number[] = Squaring($item);
}

مع العلم يمكن دمج الحالات السابقة مع بعضها كما فعلت مع بعضها 🙂
ويمكن إستخدام أنواع أخرى من أنواع ال Loop 😁، هذا التحدي ليس للإستعراض 👀 وإنما لعرض الطرق المختلفة لكتابة كود وأفضل طريقة لكتبته لجعل الكود أقصر ما يكون 😁 ومفهوم وذلك إعتماداً على قواعد #CleanCode
في حال اعجبت بمحتوى القناة لا تنسى مشاركتها ❤️

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3😢2🤣2👍1
مشاريع JavaScript 👩‍💻 يجب أن تلقي نظرة عليها 😁
لغة JavaScript من أشهر لغات البرمجة عالية المستوى 🔥 وأخر 10 سنين كانن تتربع على عرش لغات البرمجة من حيث أفضل لغات البرمجة 😉 ووقت بدك تشتغل بأي مجال بالبرمجة لح تلاقي هي اللغة بوجهك 😁 سواء مجالك كان
front-end / back-end / mobile / وقريباً لح تشوفها بمجال ال AI 🤖
طبعاً هي اللغة كثير ناس بتقول عنها صعبة 😅 لكن صدق إذا متعلم البرمجة بالطريقة الصحيحة بأي لغة برمجة لح تلاقيها سهله وبالعكس تتميز ب syntax ظريف ومتنوع 🤡
1️⃣-أفضل الممارسات مع Node.js (Node Best Practices)
تقنية node.js بتتيح الك تشتغل back-end بإستخدام لغة javascript 👩‍💻 وضروري تلتزم بأفضل الممارسات للتقنية يلي عم تستخدمها 😉 لعدة أسباب منها:
تخفف إستخدام موارد 💻 وتجعل مشروعك أخف ما يكون بالإستخدام وما يكون في بطء في حال وجود مستخدمين بشكل كبير 📈 والأهم تكون مبرمج لا يمكن الإستغناء عنك 😉
2️⃣-خوارزميات (JavaScript Algorithms)
الخوارزميات و هياكل البيانات صاروا بمشروع واحد 😍 ولجافا سكربت كمان 🔥 مع شرح لكل خوارزمية 😁
3️⃣-33 مفهوم يجب معرفته (33 JS Concepts)
يحوي المستودع على 33 مفهوم يجب على كل مبرمج جافا سكربت 👩‍💻 معرفتهم ويحوي على مراجع سواء مقالات أو فيديوهات لشرح كل مفهوم 😁
4️⃣-أنت لا تعرف JavaScript حتى الآن! (You Don't Know JS Yet)
المستودع هو عبارة عم مبادرة من المطور Kyle Simpson 👨‍💻 لشرح الآلية الأساسية للغة JavaScript
5️⃣-الكود النظيف (Clean Code JavaScript)
مفهوم Clean Code انتشر بالسنوات الماضية 🕐
هو مفهوم في تطوير البرمجيات 🤖 يشير إلى التنفيذ المنتظم والمنطقي والنظيف والشامل والقابل للتتبع للكود. الهدف من الكود النظيف هو تطوير البرمجيات بكفاءة وفعالية 🔥 وتصميم كود يمكن قراءته وتغييره وتطويره وصيانته بسهولة. للمتابعة انقر هنا 🔗
هذه أهم المشاريع يلي لقيتها تستحق نذكرها 😁 طبعاً في مشاريع ثانية بس ممكن تشوف المصدر وتشوفهم، (dev.to)
في حال اعجبت بمحتوى القناة لا تنسى مشاركتها ❤️

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
مرحباً أنا أستخدم Kali Linux 👩‍💻
تابع حتى النهاية ♻️
نعم أنا أستخدم توزيعة Kali Linux 🙂 لعدة أسباب وأهمها:
وجدت الراحة في إستخدامها في عملية البرمجة، فمثلاً عند التثبيت أنا لست مضطر لتنزيل اغلب البرامج والحزم التي يجب أن أثبتها في Ubuntu 👩‍💻 مثل: php - apache2 - mysql - redis - docker - python - node.js والمزيد ...
لكن لست متأكداً بأن أتمسك بهذه التوزيعة 🤷‍♂️
حسناً نعود للموضع الرئيسي هل هو أمن ويتجسس على المستخدمين 🙂
نعم آمن فهو يخضع لرخصة جنو العمومية 😉 وهذه الرخصة لا تسمح بالتجسس على المستخدمين ‼️
حسنا الفيديو المذكور كيف يأكد ذلك 🧐
صفحة سياسة الخصوصية الخاصة بالموقع تخبرك بأن الموقع يحق له مشاركة معلوماتك مع وكالات حكومية، أي المعلومات الموجودة في الموقع الخاص بهم وليس في التوزيعة ‼️ فكيف تربط الموقع بالتوزيعة 🫤
الرجاء عند نشر المعلومة نشرها مع مراعة الآمانة العلمية 😬، المحتوى العربي يحوي بعض المعلومات القيمة 🔥 لكن رجاءً لا تكن سبب في تدهور هذا المحتوى لكسب بعض المتابعين ‼️
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الخامس في هذه القناة 5️⃣
سبندء بالنصائح الخاصة بالتوابع Functions 🛠
استخدم الوسائط الافتراضية بدلاً من الدوائر القصيرة أو الشرطية:
أي استخدم الوسائط Arguments مع تحديد نوعها والقيمة الإفتراضية لها 😉
الاستخدام السيء:
function createMicrobrewery($breweryName = 'Hipster Brew Co.'): void
{
if (is_null($breweryName)) throw new \Exception('Uncaught TypeError must be of type string, null given');
// ...
}

الاستخدام العادي:
هذا أفضل فأنت تتأكد بأن النتيجة لن تكون من نوع null أي فارغة 😶
function createMicrobrewery($name = null): void
{
$breweryName = $name ?: 'Hipster Brew Co.';
// ...
}

الاستخدام الجيد:
يمكنك إستخدام نوع بشكل صريح بحيث أنت لست مضطر للتأكد من القيمة null أم لا، فهي تتم بمجرد تصريح نوع الوسيط Arguments 😌، بالنسبة لي هذه الطريقة فادتني كثيراً في مراحل ال test 😁
function createMicrobrewery(string $breweryName = 'Hipster Brew Co.'): void
{
// ...
}

قلل وسائط التابع:
أو وسيطات الدالة (2 أو أقل بشكل مثالي)، بمعنى أصح قلل الوسائط الخاصة بالتابع 😁 فكلما قلت سهل إستخدامه وفهمه وعملية التجريب test 🧑‍💻 وعند تكثيرها ستصبح عبء عليك
عدم إستخدام وسيط من أفضل الحالات، ولا بأس بإستخدام وسيطين أما ثلاث فيعد كحد أقصى ⚠️
الاستخدام السيء:
class Questionnaire
{
public function __construct(
string $firstname,
string $lastname,
string $patronymic,
string $region,
string $district,
string $city,
string $phone,
string $email
) {
// ...
}
}

الاستخدام الجيد:
أستخدم طريقة الكتابة الجديدة في PHP8
class Name
{
public function __construct(
private string $firstname,
private string $lastname,
private string $patronymic
) {}

// getters ...
}

class City
{

public function __construct(
private string $region,
private string $district,
private string $city
) {}

// getters ...
}

class Contact
{
public function __construct(
private string $phone,
private string $email
) {}

// getters ...
}

class Questionnaire
{
public function __construct(Name $name, City $city, Contact $contact)
{
}
}

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
4 من أشهر مكتبات #javascript
نتعرف عليها هنا 🔽
1🔥1
هل أنت من محبي التكنولوجيا 👨‍💻 العربية؟
هل تبحث عن محتوى هادف 🔥 ومفيد يثري مهاراتك 😍 ويزيد من معرفتك؟
إذاً، لا تبحث أكثر!
نقدم لك مجموعة من القنوات العربية 😁 المميزة التي تقدم محتوى تقنيًا راقيًا وهادفًا:

1. Marwan's experiences | تجارب مروان:
- قناة لشاب سوري 🇸🇾 يقوم بشرح الأردينو بطريقة سهله ومبسطة، حتى للمبتدئين.
- تعلم أساسيات الأردينو وبرمجتها من خلال فيديوهات 📹 تعليمية شيقة.
- اصنع مشاريع إبداعية باستخدام الأردينو وتعلم 👨‍🏫 مهارات جديدة.

2. Entity: The Black Day:
- قناة لعبة Entity: The Black Day لمطور عراقي 🇮🇶 موهوب.
- ادعم المطور العربي وساعد في صنع ألعاب عربية قوية 🔥 تنافس العالمية 🤩.

3. Hamza Salem:
- مبرمج أردني 🇯🇴 مبدع يشارك تجاربه ومساهمته في تحسين المحتوى العربي.
- تعلم مهارات جديدة وتعرف على أحدث التقنيات من خلال محتوى هادف.

4. Mahmoud Youssef - محمود يوسف:
- مبرمج مصري 🇪🇬 متميز يشارك تجاربه مع الجميع من خلال فيديوهات 📼 متقدمة.
- تعلم مهارات برمجة متقدمة ⚡️ وطور مهاراتك في مجال التكنولوجيا.

لا تفوت هذه الفرصة! انضم إلى هذه القنوات العربية 😁 المميزة وشارك في نشر المعرفة العربية 🔗.

معاً 😬 نستطيع بناء مستقبل تقني عربي مزدهر!

#محتوى_هادف #تكنولوجيا_عربية #ألعاب_عربية #تعلم_برمجة #مستقبل_تقني_مزدهر
👍21
مين منكم جربها مع ال Git؟ 😂 الحل السحري 🤣
#Git #برمجة #مطوري_برامج
شارك هذا المنشور مع أصدقائك المبرمجين! 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣1
مرحباً 👋أعتذر عن عدم النشر في الأيام السابقة بسبب عدم التفرغ التام
سأعود للنشر قريباً بشكل مستمر ♻️ مع نشر معلومات تقنية لعدة فئات، وسأقوم بنشر بعض المنشورات التي تعجبني مع ذكر المصدر ©️ لدعم صاحب المحتوى الذي ينشر محتوى قيم 🔥
لا تنسا مشاركة القناة مع أصدقائك 😉
بعض العروض على متجر ستيم قد تهمك 🙄:
Red Dead Redemption 2 59,99€ 19,80€
Need for Speed Heat Deluxe Edition 69,99€ 3,49€
Need for Speed Most Wanted (2012) 19,99€ 2,99€
Call of Duty®: Modern Warfare® III 69,99€ 48,99€
Call of Duty®: Black Ops Cold War 59,99€ 19,79€
Battlefield 2042 59,99€ 11,99€
Buy Battlefield V Definitive Edition 49,99€ 3,99€
Portal 9,75€ 0,97€
Grand Theft Auto V: Premium Edition 39,98€ 14,98€
Buy Grand Theft Auto: The Trilogy – The Definitive Edition 59,99€ 29,99€
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1