Programmers Caffe
975 subscribers
286 photos
9 videos
23 files
69 links
قناة "كافي المبرمجين" تخص علوم البرمجيات والتكنولوجيات وتهتم بمساعدة المبرمجين في الوصل الى الطريق المناسب لتطوير الذات في البرمجة.
تابعونا على تويتر:twitter.com/ProgrammersCaff
لينك موقعنا: https://programmerscaffe.com/home
Download Telegram
من اليوم شركة ميكروسوفت تنهي الدعم لمتصفح إنترنت اكسبلور 11
👎1
ما هو مبدأ DRY ؟
ال DRY تعني "لا تكرر نفسك"، وهو مبدأ لتطوير البرمجيات بهدف تقليل وتكرار الأكواد الخاصه بك.

شاع فى كتاب "المبرمج البراغماتي" :
ينص مبدأ DRY على أن "كل قطعه من المعرفة يجب ان يكون لها تمثيل واحد لا لبس فيه وموثوق داخل النظام" باستخدام المبدأ او المنطق او الخوارزميات التي لها وظائف معينه يجب ان تظهر مره واحد في برنامجك
🔥2
نحن لا ندعم اي نوع من الافكار المخلة بالعقيدة والفطرة مثل مجتمعات الفطرة و الفكر المنحل (الم*يم) ونتعارض معها جوهرا و مضمونا .

اذا كنت تري ان اي شيئ يتعارض معك سجل خروج من الصفحة ❤️

#استمر_تصل

programmerscaffe.com
20👍1
النهاردة في مصر اتقبض على 3 أفراد بتهمة سرقه المحتوى الرقمي الخاص بمجموعة BeinSports

العملية اللي شارك فيه 60 ضابط شرطة حسب بيان Bein نجحت في القبض على 3 أفراد ووقف أربع مواقع بمتوسط زيارات 4 مليون زائر شهريا، بالإضافة إلى مصادرة الأجهزة المستخدمة في البث والنطاقات الخاصة بالمواقع:
• Goalarab
• Yalla-Shoot-7sry
• Yalla-shoot
• Yallashoot-news
😂 😂 😂
😁7
كافي المبرمجين يقدم بتهنئة لجميع المسلمين في انحاء البلاد بمناسبة عيد الأضحى المبارك أعاده الله علينا وعليكم بالخير واليمن والبركات ❤️
وكل عام وانتم بخير والعام المقبل جميعا نكون علي جبل عرفات
#استمر_تصل
1
مناقشه بين اتنين مبرمجين
تفتكروا بيقولوا اى ؟؟
😁5
الإنسان ليس صبوراً بطبعه ، بل يتعلم الصبر من التجارب التي يمر بها

كل عام وانتم بخير 🤍❤️
#استمر_تصل
programmercaffe.com
تجميعات خاصة رائعة خاصة Google cloud ❤️❤️
يمكنك استخدام طريقة "virtualAs" لإنشاء عمود افتراضي في لارفيل
1
ستشرح هذه المقالة الاختلافات بين NPM و :Yarn
ما هما NPM و Yarn؟
الـ NPM و Yarn كلاهما مديري حزم:
- يعد مديرو الحزم في الأساس وسيلة لأتمتة عملية تثبيت البرامج أو ترقيتها أو تكوينها أو إزالتها.
الـYarn تم إنشاؤه بواسطة Facebook كبديل لـ NPM قاموا بإنشاء Yarn لحل المشكلات التي كانوا يواجهونها أثناء استخدام NPM خاصةً المشكلات المتعلقة بالاتساق والأمان والسرعة يحتوي Yarn على نفس مجموعة الميزات أثناء التشغيل بشكل أسرع وأكثر أمانًا والأهم من ذلك أنه أكثر موثوقية.
مع إدخالYarn ، تفوقت على NPM كمدير مفضل باستخدام عداد النجوم الخاص بـ GitHub ؛ فإن Yarn تقترب من ضعف نظيرتها NPM.
وهذه بعض الأسباب التي قد تدفعك للتخلص من NPM:
1- السرعة:
من حيث سرعة التثبيت، يتفوق Yarn على NPM لقد أجرى العديد من الاختبارات المعيارية وتفوق Yarn على NPM في كل جانب؛ هذا يرجع إلى حقيقة أن Yarn يقوم بتثبيت حزم متعددة في وقت واحد مقارنةً بـ NPM الذي يقوم بتثبيت حزمة واحدة في كل مرة.
2- الحماية:
سبب آخر لتطوير Facebookل Yarnهو مشكلات الأمان NPM ,سمح للحزم بتشغيل التعليمات البرمجية عند التثبيت سيقوم NPM بتشغيل التعليمات البرمجية من التبعيات تلقائيًا وعلى الفور في حين أن هذه الميزة لها وسائل الراحة الخاصة بها، إلا أنها أثارت بعض المخاوف الأمنية.
3- تثبيت الحزم:
يختلف Yarn عن NPM هو أن Yarn لا يتم تثبيته إلا من ملفات yarn.lock أو package.json، يضمن Yarn.lock تثبت نفس الحزمة في جميع الأجهزة، وهذا يقلل من احتمال وجود أخطاء من تثبيت إصدارات مختلفة.
واجه Facebook مشاكل في الاتساق مع NPM عند تثبيت التبعيات عبر مستخدمين وأجهزة مختلفة.
4- الاتصال بالإنترنت:
يمكن أيضًا تشغيل Yarn في وضع عدم الاتصال لتثبيت الحزم) إذا كنت قد قمت بالفعل بتثبيتها في الماضي) بينما يحتاج NPM إلى اتصال بالإنترنت لتثبيت الحزم.
#استمر_تصل
programmerscaffe.com
15 أوامر Git يجب أن تعرفها
في هذه المقالة ، سنناقش أوامر Git المتنوعة التي يجب أن تعرفها كمطور وعالم بيانات.
1- git clone:
-يتيح لك هذا الأمر تنزيل repository لجهازك الخاص.
في المرة الأولى التي نبدأ فيها العمل على مشروع جديد ، يتعين علينا استنساخه من Github أو خادم آخر باستخدام الأمر أدناه، ستحتاج إلى توفير عنوان URL الذي يوجد به المستودع.
git clone <repository-url>
2- git fetch:
-سنستخدم هذا الأمر بمجرد استنساخ الrepository بالفعل ونريد الحصول على فروع جديدة من خادم التحكم في المصدر عن بُعد.
3- git branch:
-سيعرض هذا الأمر على الشاشة الbranch الحالي الذي نعمل عليه والbranches المحلية الأخرى التي عملنا عليها في الماضي.
بوصف بسيط للbranch: هو المكان الذي ننشئ فيه نسخة جديدة من الكود دون إزعاج المطورين الآخرين، وبهذه الطريقة يمكننا العمل بشكل مستقل عنهم ومنع خطر حذف عمل الآخرين.
4- git checkout:
-العمل في branch منفصل لمهام مختلفة هو حقًا منهجية عمل يجب أن يعتمدها كل فرق المطورين؛ لذا ربما تسأل نفسك كيف نقوم بالفعل بإنشاء branch جديد، فقط باستخدام الأمر التالي سيفعل السحر:
git checkout -b <your-branch-name>
لاحظ أن السمة -b ضرورية هنا. إذا حذفت هذا ، فستتمكن من مشاهدة رمز branch آخر موجود بالفعل.
5- git pull:
-لنفترض أن لديك branch لمطور آخر في جهازك المحلي قمت بفحصه منذ عدة أيام، هناك احتمال كبير أنه قد تم تحديث بعض أجزاء التعليمات البرمجية؛ للحصول على أحدث التغييرات، فقط قم بتنفيذ الأمر التالي:
git pull
6- git stash:
-يأتي هذا الأمر لمساعدتنا في حفظ أجزاء من التعليمات البرمجية التي لم تكن جاهزة بعد لدفعها إلى الbranch.
7- git add:
- انتهيت من تطوير جزء من التعليمات البرمجية ولا تريد أن تفقده؟ هذا هو الوقت المناسب لحفظ عملنا في الbranch الحالي!
يرجى ملاحظة أنه من أجل القيام بذلك، يتعين علينا استخدام ثلاثة أوامر مختلفة، بشكل متتالي:
git add, git commit, git push
والطريقة كالتالي:
انتقل إلى المجلد الأساسي لمشروعك باستخدام الأمر التالي:
cd “/your/main/folder”
ثم استخدم ما يلي لإضافته:
git add .
8- git status:
من أجل التحقق من إضافة جميع الملفات، نستخدم git status :
إذا رأينا جميع الملفات باللون الأخضر ، فكل شيء على ما يرام، وإلا سيتم عرض بعض الملفات باللون الأحمر؛ تعني الملفات باللون الأحمر أننا لم نستخدم git add. في المجلد الرئيسي لمشروعنا، أو تم إجراء تغييرات أخرى بعد تنفيذ هذا الأمر.
9- git commit:
- بعد إضافة الكود الخاص بنا، نعلن أن كل شيء على ما يرام وهذا هو كل الكود الذي نريد دفعه إلى الbranch، بالشكل التالي:
git commit -m “A message that describes the changes”
يرجى ملاحظة أن السمة -m ضرورية لإضافة وصف للعمل الذي نضيفه إلى الفرع.
إذا كنا نرغب في إضافة جزء من التعليمات البرمجية إلى الcommit الحالي؛ فهذا يعني أنه لا داعي لإضافة وصف جديد يمكننا استخدام الشكل التالي:
git commit --amend --no-edit
10- git log:
-من أجل رؤية الcommit الحالي، او الcommits السابقة نستخدم هذا الأمر.
وهناك أمر يسهل عليك عرض التفاصيل المختصرة لكل commit في سطر واحد وهو:
git log –oneline
11- git cherry-pick:
يسمح لنا هذا الأمر بأخذ commit واحد مفقود في الbranch الخاص بنا من branch آخر:
git cherry-pick <commit-hash-string>
12- git push:
في الوقت الذي يتم فيه الانتهاء من الكود الخاص بنا وجاهزًا ، يمكننا دفعه إلى ال branch الخاص بنا باستخدام هذا الأمر:
git push origin <your-branch-name>
نواجه أحيانًا مواقف يكون فيها تسلسل الالتزامات في ال branchالمحلي غير متوافق مع ال remote ستؤدي محاولة دفع الكود الخاص بنا إلى الrepository إلى ظهور خطأ، هذه المرة إذا كنا متأكدين تمامًا من أن الbranch المحلي هو الأكثر تحديثًا؛ فيمكننا فرض العملية:
git push origin <your-branch-name> --force
git push origin <your-branch-name> --force-with-lease
يوصى اكثر بإستخدام الأمر الثاني؛ لأنه بهذه الطريقة سنقوم بالكتابة فوق الكود في الbranch البعيد فقط في حالة ما إذا كان الbranch المحلي على دراية بجميع الالتزامات في التحكم بالمصادر عن بُعد.
13- git diff:
للمقارنة بين التغييرات في التزامين، سنستخدم أمرًا مفيدًا للغاية:
git diff <first-commit-hash> <second-commit-hash>
14- git rebase:
في حالة عملنا في فريق، من المحتمل أن تكون منهجية العمل هي إنشاء branch جديد لكل ميزة ثم يقوم كل مطور بإنشاء branch خاص به من branch الميزات.
نستخدم هذا الأمر من أجل مواءمة الbranch الخاص بنا مع الالتزامات الجديدة التي يمكن إضافتها إلى branch الميزات خلال الوقت الذي عملنا فيه من جانبنا:
git rebase origin/<feature-branch-name>
15- git bisect:
👍5
هذا الأمر مفيد جدًا في حالة تلف الأشياء ، لكننا لا نعرف متى و / أو في سبب حدوث ذلك.
الخطوة الأولى هي بدء bisect mode.
git bisect start
الآن نقول في اي commit نحن على يقين تام من أن الأشياء تعمل بشكل صحيح:
git bisect good <commit-hash>
ثم نقول ما هو ال commit الذي لا تعمل فيه الأشياء بشكل صحيح:
git bisect bad <commit-hash>
بعد هذه الخطوات الثلاث، سيكون هناك تكرار واحد أو أكثر للعثور على أول commit سيئ، وفي كل تكرار، نحتاج إلى التحقق من تطبيقنا ومعرفة ما إذا كانت الأمور جيدة.
للتكرار السيئ ، سنستخدم الأمر التالي:
git bisect bad
للتكرار الجيد سنستخدم الأمر التالي:
git bisect good
بمجرد أن نعلن عن commit جيد، ستظهر رسالة بها تجزئة الcommit السيئة وتفاصيلها.
#استمر_تصل
programmerscaffe.com
اليكم 11 ميزة في الاصدار الاخير من JavaScript ES13
1. Class Field Declarations
2. Private Methods and Fields
3. await Operator at the Top Level
4. Static Class Fields and Static Private Methods
5. Class static Block
6. Ergonomic Brand Checks for Private Fields
7. at() Method for Indexing
8. RegExp Match Indices
9. Object.hasOwn() Method
10. Error Cause
11. Array Find from Last
#استمر_تصل
programmercaffe.com
1