Yhya Nesb
626 subscribers
141 photos
1 video
1 file
112 links
شاب سوري طموح محب لعالم التقنية مهندس برمجيات
منشوراتي تعكس وجهة نظري الشخصية فقط.
Download Telegram
منشور من سلسة #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
أهمية استخدام أداة Git 👩‍💻 في المشاريع البرمجية

تعد Git أداة تحكم في الإصدارات 🔢 موزعة مفتوحة المصدر، تُستخدم على نطاق واسع في المشاريع البرمجية 👩‍💻 لإدارة التغييرات وتتبعها. وإليك بعض أهم مزايا استخدامها:

1. إدارة التغييرات:
* تسمح Git 👩‍💻 بتتبع التغييرات التي يتم إجراؤها على ملفات المشروع بمرور الوقت.
* يمكنك بسهولة 😍 استرجاع الإصدارات السابقة من المشروع إذا لزم الأمر.
* يمكنك دمج التغييرات من فروع 🔥 مختلفة من المشروع.

2. العمل التعاوني:

* تسمح Git للمطورين 🧑‍💻 بالعمل على نفس المشروع في نفس الوقت دون حدوث تعارضات.
* يمكنك بسهولة مشاركة التغييرات مع المطورين الآخرين.
* يمكنك تتبع من قام بتغيير أي ملف 📁 ومتى تم تغييره.

3. كفاءة عالية:

*حيث تعد Git أداة سريعة 🔥 وفعالة للغاية.
* يمكنك استخدام Git لإدارة مشاريع كبيرة الحجم 💯 دون أي مشاكل.
* و Git أداة موثوقة للغاية، حيث يتم استخدامها من قبل ملايين المطورين 🧑‍💻 حول العالم.

4. سهولة الاستخدام:

* حيث Git 👩‍💻 أداة سهلة التعلم والاستخدام.
* هناك العديد من الموارد المتاحة عبر الإنترنت لمساعدتك على تعلم Git.
* هناك العديد من الأدوات الرسومية المتاحة لجعل استخدام Git أكثر سهولة.

5. مجانية ومفتوحة المصدر:

* تتميز Git بأنها أداة مجانية 🆓 ومفتوحة المصدر.
* يمكنك استخدام Git دون أي تكلفة.
* يمكنك المساهمة في تطوير Git من خلال المشاركة في مجتمع Git.

**في الختام، فإن استخدام Git 👩‍💻 في المشاريع البرمجية له العديد من المزايا. Git أداة قوية وفعالة يمكن أن تساعدك على تحسين كفاءة عملك 😬 وإدارة مشاريعك بشكل أفضل.

**إذا كنت لم تبدأ باستخدام Git، فإنني أوصي بشدة بتجربتها. ستجد أن Git أداة لا غنى عنها لأي مشروع برمجي.


#Git #تحكم_في_الإصدارات #أداة_برمجية #مشاريع_برمجية #مزايا_Git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
تعبير من التعابير النمطية المفيدة Regular Expressions
يمكنك التأكد من أن النص يحوي على محارف عربية
$pattern = "/\p{Arabic}/u";
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء الخامس في هذه القناة 5️⃣
سنتابع بالنصائح الخاصة بالتوابع Functions 🛠
اسم التابع يجب أن يوضح مهمته:
بحيث لا يجبر أي مطور 🧑‍💻 على قراءة محتويات التابع لمعرفة مهمته عندما يكون الاسم غامض نواعاً ما
الاستخدام السيء:
class Email
{
//...

public function handle(): void
{
mail($this->to, $this->subject, $this->body);
}
}

$message = new Email(...);
// ما المقصود بالتابع التالي!؟ وماذا يشير التابع الذي يدعى بـ: "يتعامل" في البريد الإلكتروني
$message->handle();

الاستخدام الجيد:
class Email
{
//...

public function send(): void
{
mail($this->to, $this->subject, $this->body);
}
}

$message = new Email(...);
// التابع "إرسال" في البريد الإلكتروني سيشير لإرسال رسالة فقط دون الحاجة لقراءة الكود البرمجي المخصص له
$message->send();

استخدم التابع للقيام بوظيفة واحدة فقط:
دائماً اجعل لكل وظيفة تابعاً واحدً 🤖 وفي حال للوظيفة الواحدة عدة اجزاء للمهمة قسمهم على توابع متداخلة 😬 (بدل من تابع واحد function لا بأس بـ 5 توابع functions تسهل عملية التطوير 😉)، ويفضل أن تكون داخل class
يؤدي تقسيم الوظائف إلى إمكانية إعادة الاستخدام 👍 واختبار أسهل 🧑‍💻
الاستخدام السيء:
function parseBetterPHPAlternative(string $code): void
{
$regexes = [
// ...
];

$statements = explode(' ', $code);
$tokens = [];
foreach ($regexes as $regex) {
foreach ($statements as $statement) {
// ...
}
}

$ast = [];
foreach ($tokens as $token) {
// lex...
}

foreach ($ast as $node) {
// parse...
}
}

الاستخدام السيء أيضاً:
يعتبر الكاتب بأن التابع parseBetterPHPAlternative() مازال معقداً، لذلك تعتبر طريقة هذه الحل سيئة، برأي تعتبر مقبولة

function tokenize(string $code): array
{
$regexes = [
// ...
];

$statements = explode(' ', $code);
$tokens = [];
foreach ($regexes as $regex) {
foreach ($statements as $statement) {
$tokens[] = /* ... */;
}
}

return $tokens;
}

function lexer(array $tokens): array
{
$ast = [];
foreach ($tokens as $token) {
$ast[] = /* ... */;
}

return $ast;
}

function parseBetterPHPAlternative(string $code): void
{
$tokens = tokenize($code);
$ast = lexer($tokens);
foreach ($ast as $node) {
// parse...
}
}

الاستخدام الجيد:
الحل الأفضل إزالة تبعيات التابع parseBetterPHPAlternative()

class Tokenizer
{
public function tokenize(string $code): array
{
$regexes = [
// ...
];

$statements = explode(' ', $code);
$tokens = [];
foreach ($regexes as $regex) {
foreach ($statements as $statement) {
$tokens[] = /* ... */;
}
}

return $tokens;
}
}

class Lexer
{
public function lexify(array $tokens): array
{
$ast = [];
foreach ($tokens as $token) {
$ast[] = /* ... */;
}

return $ast;
}
}

class BetterPHPAlternative
{
public function __construct(private Tokenizer $tokenizer,private Lexer $lexer)
{}

public function parse(string $code): void
{
$tokens = $this->tokenizer->tokenize($code);
$ast = $this->lexer->lexify($tokens);
foreach ($ast as $node) {
// parse...
}
}
}

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
Yhya Nesb
مرحباً، React 👩‍💻 هي مكتبة برمجية مفتوحة المصدر 🖥 لإنشاء تطبيقات الويب الديناميكية. تم إنشاؤها بواسطة Facebook (تعد نقطة قوة) 📒 في عام 2013 وهي واحدة من أكثر المكتبات شيوعًا لإنشاء واجهات المستخدم. لنتكلم قليلاً عنها بشكل تقني وبشكل فني 👋: تقنياً: - تعد react…
مرحباً
هل تعتقد أن jQuery 👩‍💻 ماتت!!؟
تأكد أن jQuery لن تموت 😅 فمثلما حدث مع php 👩‍💻 عندما ظن الجميع أنها ماتت في الاصدار الخامس وعادت بالإصدار السابع بقوة (تعد اللغة الأولى في برمجة مواقع 🌐 الويب)
الأن يتم العمل على إصدار jQuery 4.0.0 تجريبي 😁 وهناك نية لإصدار خامس أيضاً منها 😉
للمزيد من التفاصيل:
الموقع الرسمي، jQuery 4.0.0 BETA!
جي كويري.. والقادم أجمل
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
وأخيراً Laravel 11 👩‍💻 سوف تصدر في الثاني عشر من اذار 😍
Please open Telegram to view this post
VIEW IN TELEGRAM
😍2
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء السادس في هذه القناة 6️⃣
لا تستخدم الوسائط كمعلمات دالة:
عندما تكون الوسائط (Flags) تخبر المستخدم أن الوظيفة 🛠 تقوم بأكثر من وظيفة، وهذا على عكس المهمة التي نستخدم الدالة لأجلها 😗 فمهتمها القيام بوظيفة واحدة فقط ‼️
الاستخدام السيء:
function createFile(string $name, bool $temp = false): void
{
$dir = $temp ? './temp/' . $name : $name;
touch($dir);
}

الاستخدام الجيد:
function createFile(string $name): void
{
touch($name);
}

function createTempFile(string $name): void
{
touch('./temp/' . $name);
}

تجنب التأثيرات الجنابية:
تنتج الدالة تأثيراً جانبياً ☠️ عندما لا تقوم بأخذ قيمة وإرجاع قيمة أو قيم، فقد يكون أحد الآثار الجانبية الكتابة 📁 أو تعديل ملف، التعديل على متغيرات ‼️ من مستوى الملف، تحويل أموال 💰 فقد يرسل لشخص غير متسحق.
حسناً قد تحتاج أحياناً إلى التأثيرات الجانبية لكل بالطبع ليس بكامل التوابع الخاصة بك 🙃
النقطة الأساسية من هذه النقطة هو عدم الوقع في الأخطاء، فقد تكون خطيرة
الاستخدام السيء:
// متغير على مستوى الملف
// إذا كان هناك دالة تستخدم المتغير الذي على مستوى الملف فقد يسبب أخطاء
$name = 'Ryan McDermott';

function splitIntoFirstAndLastName(): void
{
global $name;

$name = explode(' ', $name);
}

splitIntoFirstAndLastName();

var_dump($name);
// ['Ryan', 'McDermott'];

الاستخدام الجيد:
function splitIntoFirstAndLastName(string $name): array
{
return explode(' ', $name);
}

$name = 'Ryan McDermott';
$newName = splitIntoFirstAndLastName($name);

var_dump($name);
// 'Ryan McDermott';

var_dump($newName);
// ['Ryan', 'McDermott'];

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
تحدي المليار صف في PHP أو Processing One Billion Rows in PHP! 👩‍💻
تحدي بقراءة ملف يحوي مليار سطر 😅 لكن التحدي هو تنفيذ الكود البرمجي بأسرع وقت 🔥
في الرابط التالي شخص يشرح تجربته من خلال تعديل الكود وتسريع تنفيذه، قام بتحويل الكود الذي يستغرق 25 دقيقة ‼️ إلى 27.7 ثانية 🔥 لقراءة ملف 13G 😁 (حتى لو لم تكن من مبرمجين PHP عليك إلقاء نظرة على المقالة فسوف تستفيد بطبيعة الحال بطريقة التفكير الذي اتبعها)
https://dev.to/realflowcontrol/processing-one-billion-rows-in-php-3eg0
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Yhya Nesb
مُبارٓكٌ علٓيْكُمْ شّٓهرُ رمضان ❤️ گل عام وأنتم بخير 🌙
مُبارٓكٌ علٓيْكُمْ شّٓهرُ رمضان ❤️
گل عام وأنتم بخير 🌙
شهر رمضان المبارك هو شهر الخير والبركة ولا تدع شياطين الانس تدع رمضان كأي شهر بالنسبة لك
في هذا الشهر تكثر المسلسلات والفعاليات في الألعاب الإلكترونية لتمضية بعض من وقتك (الذي هو وقتك كله)
في العام الماضي استغليت شهر رمضان المبارك في الوقت الذي كنت احضر نفسي لامتحان شهادة الثالث الثانوي وفي هذا الشهر المبارك استطعت دراسة 65% من المطلوب (في 21 يوم منه) ‼️ وعندما شاركت خطتي مع أحبائي جميعهم خالفوها وأخبروني بأني لن أستطيع لأنه شهر العمل والدراسة شاقة به، لكن النتيجة كانت إيجابية وفاجئتهم
في الأمس شارك الاستاذ نور الحمصي خطة دراسة مجال Front End في شهر رمضان المبارك أدعوك لمشاهدة الحلقة في حال كانت لديك النية لتعلمه لكن لا تعرف الوقت المناسب (الوقت المناسب هو الأن)
رجاء حاول تنظيم وقتك واجعل هذا الرمضان أفضل رمضان مرّ عليك، ولا تنسا بنفس الوقت عبادتك ودعائك لأهلنا في عزة ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11
التوابع السحرية في PHP أو PHP function magic هي التوابع التي تستخدم في الأصناف Classes و الكائنات Objects حيث تحجز PHP جميع الدوال التي تبدء ب __ (إشارتان سفليتان) كدوال سحرية حيث تقوم بعمليات سحرية تطابق لإسمها


عندما تتعامل مع البرمجة كائنية التوجه في PHP عليك إلقاء نظرة عليهم، عندما بدأت بتعلم إطار العمل Laravel قابلتني عدة أسئلة حول كيفية بناء صنف class شبيه بصنف Model بحيث أقوم بإستدعاء البيانات من خلال الاسم الخاص به


User::get()[0]->name


وبعد تعرفي على هذه التوابع إستطعت فهم آلية عملها، تابع معي في الصورة للمزيد من المعلومات

ويمكنك قراءة المقالة التالية التي تحوي على أمثلة عملية:

https://blog.yhyasyrian.com/post/التوابع-السحرية-في-php/

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #laravel #oop #php8 #php_trick #laravel_trick
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3