انضموا معنا فى جروبنا على الفيسبوك
https://www.facebook.com/groups/programmerscaffe
https://www.facebook.com/groups/programmerscaffe
كل ما تود معرفتة حول NPM ❤️❤️
Cheat Sheet : NPM Commands for Node.js Developers
#استمر_تصل
programmerscaffe.com
Cheat Sheet : NPM Commands for Node.js Developers
#استمر_تصل
programmerscaffe.com
ما هو مبدأ DRY ؟
ال DRY تعني "لا تكرر نفسك"، وهو مبدأ لتطوير البرمجيات بهدف تقليل وتكرار الأكواد الخاصه بك.
شاع فى كتاب "المبرمج البراغماتي" :
ينص مبدأ DRY على أن "كل قطعه من المعرفة يجب ان يكون لها تمثيل واحد لا لبس فيه وموثوق داخل النظام" باستخدام المبدأ او المنطق او الخوارزميات التي لها وظائف معينه يجب ان تظهر مره واحد في برنامجك
ال DRY تعني "لا تكرر نفسك"، وهو مبدأ لتطوير البرمجيات بهدف تقليل وتكرار الأكواد الخاصه بك.
شاع فى كتاب "المبرمج البراغماتي" :
ينص مبدأ DRY على أن "كل قطعه من المعرفة يجب ان يكون لها تمثيل واحد لا لبس فيه وموثوق داخل النظام" باستخدام المبدأ او المنطق او الخوارزميات التي لها وظائف معينه يجب ان تظهر مره واحد في برنامجك
🔥2
نحن لا ندعم اي نوع من الافكار المخلة بالعقيدة والفطرة مثل مجتمعات الفطرة و الفكر المنحل (الم*يم) ونتعارض معها جوهرا و مضمونا .
اذا كنت تري ان اي شيئ يتعارض معك سجل خروج من الصفحة ❤️
#استمر_تصل
programmerscaffe.com
اذا كنت تري ان اي شيئ يتعارض معك سجل خروج من الصفحة ❤️
#استمر_تصل
programmerscaffe.com
❤20👍1
النهاردة في مصر اتقبض على 3 أفراد بتهمة سرقه المحتوى الرقمي الخاص بمجموعة BeinSports
العملية اللي شارك فيه 60 ضابط شرطة حسب بيان Bein نجحت في القبض على 3 أفراد ووقف أربع مواقع بمتوسط زيارات 4 مليون زائر شهريا، بالإضافة إلى مصادرة الأجهزة المستخدمة في البث والنطاقات الخاصة بالمواقع:
• Goalarab
• Yalla-Shoot-7sry
• Yalla-shoot
• Yallashoot-news
العملية اللي شارك فيه 60 ضابط شرطة حسب بيان Bein نجحت في القبض على 3 أفراد ووقف أربع مواقع بمتوسط زيارات 4 مليون زائر شهريا، بالإضافة إلى مصادرة الأجهزة المستخدمة في البث والنطاقات الخاصة بالمواقع:
• Goalarab
• Yalla-Shoot-7sry
• Yalla-shoot
• Yallashoot-news
كافي المبرمجين يقدم بتهنئة لجميع المسلمين في انحاء البلاد بمناسبة عيد الأضحى المبارك أعاده الله علينا وعليكم بالخير واليمن والبركات ❤️
وكل عام وانتم بخير والعام المقبل جميعا نكون علي جبل عرفات
#استمر_تصل
وكل عام وانتم بخير والعام المقبل جميعا نكون علي جبل عرفات
#استمر_تصل
❤1
الإنسان ليس صبوراً بطبعه ، بل يتعلم الصبر من التجارب التي يمر بها
كل عام وانتم بخير 🤍❤️
#استمر_تصل
programmercaffe.com
كل عام وانتم بخير 🤍❤️
#استمر_تصل
programmercaffe.com
ستشرح هذه المقالة الاختلافات بين 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
ما هما 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:
في هذه المقالة ، سنناقش أوامر 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
الخطوة الأولى هي بدء 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