Telegram Web Link
* ماهي ملفات الكوكيز :-

ملفات الكوكيز على أنّها عبارة عن ملفات نصية، بحيث تودعها المواقع التي تتم زيارتها على القرص الصلب في الجهاز، بحيث تحتوي هذه الملفات على مجموعة من المعلومات التي تتيح للموقع استعادتها عند الحاجة، تحديداً عند الزيارة المقبلة لهذا الموقع، وتجدر الإشارة إلى اختلاف المعلومات التي تخزن ضمن ملفات الكوكيز من موقعٍ لآخر، إلا أنّ هذه المواقع غير قادرة على استرجاع أي معلومات إضافية خاصة بالمستخدم أو حتى بالجهاز، عدا المعلومات المخزنة في الملف النصي الخاص بالموقع نفسه.

* كيفية إيداع ملفات الكوكيز على جهاز المستخدم :-

يحزن المتصفح عند إدخال المستخدم عنوان الموقع في شريط العناوين المعلومات التي تحتوي على عنوان IP الخاص بالجهاز، وكذلك نوع المتصفح المستخدم، بالإضافة إلى نظام التشغيل الذي يدير الجهاز، بتخزين هذه المعلومات في ملفات خاصة وهي ملفات Log Files، وفي الوقت نفسه يبحث المتصفح عن ملفات الكوكيز، الخاصة بالموقع المطلوب، وفي حال تم إيجادها يتم إرسالها مع طلب مشاهدة الموقع، وهنا يستخدم الموقع عند استلامه لطلب المشاهدة مع ملف الكوكيز المعلومات الموجودة في الملف لعدة أهداف مختلفة، وفي حال عدم إيجاده لملف الكوكيز فإنّ الموقع سيدرك أنّ هذه الزيارة هي الزيارة الأولى للمستخدم لهذا الموقع، وبالتالي فهو يرسل ملفات الكوكيز إلى الجهاز الخاص بالمستخدم بحيث يتم تخزينها عليه.


* كيفية تغيير المعلومات الموجودة ضمن ملفات الكوكيز :-

يستطيع الموقع تغيير المعلومات الموجودة ضمن ملفات الكوكيز وإضافة بعض معلومات جديدة في كلّ زيارة يقوم فيها المستخدم لهذا الموقع، ويشار إلى أنّ عملية تخزين ملفات الكوكيز تتم في الذاكرة فقط، ثمّ تتم حذفها مباشرة عند إغلاق المتصفح، حيث تعرف باسم ملفات الكوكيز المثابرة، ويتم تخزينها لفترة محددة على القرص الصلب حتى تنتهي فترة صلاحيتها التي قد تدون لعدة أشهر أو عدة سنوات في بعض الأحوال، ويشار إلى أنّ بعض ملفات الكوكيز التي تعرض تاريخ صلاحية لتاريخ سابق يتم حذفها مباشرةً ولا يتم تخزينها على القرص الصلب، ومن الجدير بالذكر أنّ بعض الشركات الكبرى قد تعمم ملفات الكوكيز التي تصدرها على جميع مزوداتها بهدف تنسيق المعلومات المتضمنة، وحتى لا تصدر مزوداتها ملفات كوكيز للمستخدم نفسه في كل زيارة يقوم بها للصفحات المختلفة للموقع نفسه.


*معلومات تستطيع ملفات الكوكيز الحصول عليها :-

تتضمن المعلومات المخزنة على الكوكيز كلاً من نوع الجهاز الحاسب الآلي، وكذلك نوع المعالج، ورقم IP الخاص بك، والطريقة التي يتم بها الاتصال بالإنترنت، وكذلك نوع المودم، والمواقع التي تداوم زيارتها، بالإضافة إلى عدد الساعات التي يقضيها المستخدم متصلاً بالشبكة وكذلك اهتماماته، والأمور التي يبحث عنها
هل توافق على فكره اضافة منشورات تقنيه وتطبيقات بشكل عام ؟
Anonymous Poll
85%
نعم 👍
10%
لا 👎
5%
لايهمني
URL Blocker v1.1.0.22.rar
16.2 KB
ما هو Git، ولماذا كل هذا الاهتمام المتزايد به؟ هل أحتاج فعلا إلى استعماله؟ هل سأصبح مُبرمجا من الدرجة الثانية لو لم تكن لدي أدنى فكرة حول ماهية Git؟ كيف لي أن أستعمله لأزيد مردوديتي البرمجية؟ هل سأصبح [ضع أي وصف هنا] لو استعملت Git؟

هذا المقال سيحاول الإجابة على بعض هذه الأسئلة، يُشوقك للبحث عن إجابات لأخرى، أو يدفعك لقراءة المقال إلى آخره لترى إن كانت هناك أية إجابة على السؤال الأخير.

git-intro.thumb.png.f3273f170e7b0602df8f

فلنبدأ ببساطة وبكلام يفهمه الجميع، … ما هو Git؟

هل هو لغة برمجة؟ – لا
هل هو قاعدة بيانات؟ – لا
هل هو نظام تشغيل؟ – لا
(جميع هذه الأسئلة وردتني شخصيا)

إذا ماهو Git؟ وما وظيفته بالتحديد؟

لفهم ماهيته، علينا أولا فهم المشكلة التي أدّت إلى وجوده، فخذ هذا كمثال بسيط، وأسقطه على نفسك لتفهم المشكلة.

المشكلة
أنت مبرمج أو مطور ويب، تعمل على مشروع ما، سهرت الليالي فرحًا، لقد حققت تقدما وإنجازا في مشروعك، مرّت بضعة أيام أو بضعة أسابيع، فإذ بك تجد نفسك في مشكلة، كتبت شفرة برمجية عاثت في مشروعك فسادًا، وليتك تستطيع الرجوع للوراء، أو وصلت إلى مرحلة أين يشتغل فيها المشروع بشكل جيد، لكنك تخاف أن
لكنك تخاف أن تُفسد الخطوة التالية عليه، ﻷنك لست متأكدا أن الميزة القادمة التي ستبرمجها في المشروع ستتكامل معه ولن تقلبه رأسا على عقب، حسنا، أنت شخص ذكي (ربما أنت بلال؟)، لن تقع في فخ كهذا!

تبدأ بإنشاء مجلد يحوي المشروع في حالته الحالية، وإن كنت حَذِقا زيادة، ستعطي المجلد اسما بتاريخ اليوم وتوقيته، وتعمل على نسخة أخرى منه في مجلد آخر، وهكذا تفعل في كل مرة يتكرر المشكل، وبهذا يسهل عليك الرجوع إلى حالة المشروع السابقة في حال سارت الأمور علي عكس ما كنت تُخطط له مستقبلا.

Screenshot_from_2016-01-17_21-41-13.thum

مرّ مزيد من الوقت، كَبُر المشروع، أصبحتَ مرّة تتكاسل عن إنشاء مجلد جديد ﻷنه ليس لديك وقت لهذا، ومرّة تريد الرجوع إلى حالة سابقة للمشروع لاسترجاع جزء من الشفرة البرمجية في الملف الفلاني كانت تعمل بشكل أفضل، دقيقة، متى كان هذا؟ أين وضعت ذاك المجلد؟ ما كل هذه المجلدات الكثيرة! أيّها هي المجلد الذي أحتاجه؟ حسنا لقد وجدته، أين كانت تلك الشفرة البرمجية حينذاك وفي أي ملف؟! ضاعت الدقائق والساعات، وضاع الجهد والسّهر.

مرّ مزيد من الوقت، لقد كبُر المشروع أكثر، بل وزادت أهميته ومسؤوليته، انضم إلى مشروعك أشخاص آخرون، أصدقاؤك المبرمجون يتعاونون معك لتطويره، أو زملاؤك في العمل يتشاركون فيه، أنتم فريق رائع وذكي، لقد وجدتم طريقة لتشارك الشفرة البرمجية، تتراسلونها عبر البريد، أو ترفعونها على خادوم شركتكم البعيد، أو تضعونها على خادومكم الخاص بكل تأكيد، أو ربما ترفعونها على إحدى خدمات التخزين مثل Dropbox.

مهلا، فُلان أضاف شيئا في المشروع، في نفس الوقت أضفت أنت أيضا شيئا فيه، كيف أدمج نسخته مع النسخة التي لدي؟! مشكلة، لقد كتبنا شفرة في نفس الموضع، لتقوم بنفس العمل، فأي الشفرتين أفضل؟

قد تحرّيت الوضع وتبين أن لكلا الشفرتين مزايا وعيوب، فكيف أدمج مزايا الشفرتين في واحدة؟ في نفس الوقت أرسل زيد وسعيد شفرتيهما، أنت مدير المشروع وعلى مسؤوليتك دمج التغيرات التي يُرسلها الفريق، لقد أرفق زيد رسالة وقال يمكنك أن تبدل الملف الفلاني بالملف الذي أرسلته ولا تخف، وقال أنه أفضل من الملف الذي أرسله سعيد، صدّقت زيدًا وتخطيت سعيدا، وتسرعت في استبدال الملف وأنت سعيد، وإذا بالملف يُفسد عليك كامل المشروع، ولا تملك نسخة منه بالحالة التي كان عليها لا من قريب ولا من بعيد،… زيدٌ ذاك له منّي أشد وعيد!

وضاعت دقائق وساعات أخرى.
الحل
لست وحدك في هذا المشكل، فلقد عانى منه المبرمجون قديما، وعملوا على حلّه بتطوير أدوات تتولى أو تسهّل عليهم حفظ التغيرات التي يجرونها عبر الزمن على ملفات الشفرة البرمجية، وتسجيلها (أي التغيّرات) في قاعدة بيانات تحفظ الفروقات بين نُسَخ الشفرة البرمجية عبر الزمن، بحيث يمكن الرجوع إلى نسخة معينة، في مرحلة معينة من الشفرة البرمجية، تماما كما كانت عليه وقت حفظها. ليس هذا وحسب، حيث يمكن للأداة أن تدمج التغيرات التي أجراها أكثر من شخص بعضها ببعض، وتُعلمك بوجود تضاربات بين شفرة فلان وعلان في الملف الفلاني من سطر كذا إلى سطر كذا.

بل وتطورت هذه الأدوات أكثر، وأصبحت تتولى مهمة رفع التغيرات التي أجريتها إلى خادوم بعيد (عبر إنشاء ما يُعرف بالمستودع أو Repository على الخادوم)، أو جلب التغيرات التي أجراها الآخرون من خادوم بعيد (من المستودع)، بل وحتى أكثر من خادوم في نفس الوقت، ثم مساعدتك في عرض الفروقات Diffs بين النُّسخ، ودمج أحدث التغيرات في نسخة واحدة.

سمّوا هذه الأدوات بعدة مسمّيات تصب كلّها في نفس المعنى، من ذلك:

نظام التحكم في النسخ، بالانجليزية: Version Control System أو اختصارًا: VCS، وهذا المُسمّى أشهرهم.
نظام التحكم بالمصدر، بالانجليزية: Source Control.
نظام التحكم بالمراجعات، بالانجليزية: Revision Control.
إدارة الشفرة المصدرية، بالانجليزية: Source Code Management وتختصر إلى: SCM.
كلها مسمّيات يُقصد بها الأداة التي تقوم بتسجيل التغيرات التي تحدث عبر الزمن على ملف أو مجموعة ملفات بحيث يمكن الرجوع إلى مرحلة معينة (نسخة، أو إصدار) لاحقًا. ماهي التغيرات التي حصلت، ما هي التعارضات الموجودة بين نسختين لنفس الملف، من قام بكتابة الشفرة الفلانية، ومن سبب مشكلا ما، ومن عمل على حل المشكل الفلاني. وغير ذلك المزيد.

من بين تلك الأدوات، نعرض أشهرها عبر الزمن، وهي:

rcs وقد كانت من بين أشهر الأدوات. حتى نظام OS X المشهور يحتوي على أمر rcs عند تنصيبك لأدوات المطور، تعمل هذه الأداة أساسا على حفظ مجموع الرُّقع (أي الاختلافات الحاصلة بين الملفات) بين كل عملية تغيير ومثيلتها في هيئة خاصة على القرص الصلب، يمكنها بهذا إعادة إنشاء أي ملف بنفس الهيئة التي كان عليها في نقطة ما من الزمن عن طريق دمج الرقع، لكنها أداة بدائية في حال كان يعمل على المشروع أكثر من شخص.
أنظمة التحكم بالنُّسخ المركزية، أو Centralized Version Control Systems وتعرف اختصارا بـ CVCSs، جاءت لتحل المشكل الكبير التالي الذي واجه المستخدمين، وهو حاجتهم إلى التعاون مع مُبرمجين آخرين على أنظمة تشغيل أخرى. تستخدم هذه الأنظمة، مثل كل من CVS، Subversion أو Perforce خادوما واحدا يحتوي كل الملفات التي نقوم بالتحكّم في نُسَخها، إضافة إلى مجموعة من العملاء الذين يقومون باسترجاع الملفات من هذا الخادوم المركزي. ظلت هذه الأنظمة لسنوات عديدة المعيار القياسي لأنظمة التحكم في النّسخ VCS.
أنظمة التحكم في النّسخ المُوزعة أو Distributed Version Control Systems و تعرف اختصارًا بـ DVCSs. في مثل هذه الأنظمة كـ Git، Mercurial، Bazaar أو Darcs فإن ما يقوم به المستخدمون ليس مُجرد التحقق من آخر نسخة من الملفات، لكن يقومون أيضا بأخذ نُسَخٍ كاملة عن المستودعات التي يعملون عليها. وعليه، فإن، وفي حال ما إذا تعرّض الخادوم لأي خلل، فإنه يُمكن مواصلة العمل عبر نَسْخ المستودع الموجود على أي من أجهزة المستخدمين بحكم أن أي عملية التحقق التي يقوم بها المستخدم هي عبارة عن عملية نسخ احتياطي لكامل بيانات المشروع.
كل هذه تدخل تحت مسمّى VCS.

أما Git، فيعتبر نقلة نوعية في عالم VCS بشكل عام، ﻷنه جاء بإدارة التفرعات (branches) المتوازية وإعادة دمجها مع بعض، وهو الأمر الذي كان يُعدّ كابوسا في الأدوات القديمة مثل CVS. وللأمانة، فإن Git ليس أول نظام جاء بهذه الفكرة، بل سبقه إليها bitkeeper لكنه لم يكن برنامجا مجانيا ولا حرّا، وبالتالي فإن Git أوّل نظام حر ومجاني يأتي بإدارة التفرعات المتوازية (mercurial أيضا جاء بها وهو حر مجاني، وقد تم تطويرهما أصلا ليكونا بديلا لـbitkeeper).

إذا، إجابة على السؤال الأول، ماهو Git؟ باختصار هو:

نظام التحكم في النسخ الموزّع غير المركزي، وهي جملة يُفترض أنه يمكنك فهمها الآن.
موقع لمعرفه اللغه اللتي تم بناء الموقع بها

https://builtwith.com/
تطوير تطبيقات الويب pinned «هل توافق على فكره اضافة منشورات تقنيه وتطبيقات بشكل عام ؟»
2024/09/29 05:23:45
Back to Top
HTML Embed Code: