لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/05/22 في كل الموقع
-
أولاً المكتبة Library ، المُسمى مُقتبس من المكتبة الاعتيادية للكتب من خلال المكتبة تستطيع الوصول للكتاب الذي تريده بسهولة ضمن مخطط مُسبق لكيفية الوصول لمحتويات المكتبة. مثال: لديك مجموعة من الدوال/الوظائف للقيام ببعض العمليات الرياضية كالضرب والجمع والطرح والقسمة إلخ... ستجمع كل تلك الوظائف تحت مسمى مكتبة للعمليات الرياضية ويُمكن توسعة المكتبة وإضافة المزيد والمزيد لها تبعاً. ثانياً FrameWork إطار العمل ، هو مجموعة مكتبات/برمجيات المُستخدمة في بناء الهيكل البرمجي لتطبيق ما وتخضع تلك البرمجيات لأسلوب موحد في العمل ضمن منهجية إطار العمل وتستخدم تلك التعليمات بشكل مُتكرر لبناء هيكل التطبيق في كل مرة نريد البدا في بناء تطبيق جديد وتساعدنا في عدم إضاعة الوقت في بناء تلك الوحدات في كل مرة نكون بحاجة لبناء تطبيق جديد ويُتيح إطار العمل توسعته وتطويره عبر إضافات ليتسع لمهام جديد غير مُضمنه به مُسبقاً ويكون مُهيأ بربطه للعمل مع مكتبات خارجية تؤدي وظائف أخرى. يلعب كل من المكتبات - Libraries وإطار العمل - Frameworks دورًا حيويًا في تطوير البرمجيات، وتقوم المكتبة بعملية معينة أو محددة بشكل جيد، بينما يوفر إطار العمل هيكلًا عظميًا، حيث يقوم المبرمجون بتعريف محتوى التطبيق للعملية.2 نقاط
-
يمكن أن تكون أدوات تطوير الويب من طرف العميل غير مفهومة بالنسبة لكثير من المطورين، لذلك سنوضّح من خلال سلسلة من المقالات الغرض من بعض أدوات تطوير الويب الأكثر شيوعًا من طرف العميل، وسنشرح أيضًا الأدوات التي يمكنك ربطها مع بعضها بعضًا، وكيفية تثبيتها باستخدام مدير الحزم، والتحكم فيها باستخدام سطر الأوامر، وسنقّدّم مثالًا كاملًا عن سلسلة أدوات يوضح كيفية زيادة الإنتاجية، ولكن في البداية وقبل محاولة استخدام هذه الأدوات يجب أن تتعلم أساسيات لغات HTML وCSS وجافاسكربت JavaScript. وفّرنا من خلال موسوعة حسوب مرجعًا لكل من لغات HTML وCSS وJavaScript يمكنك البدء منه. سنوضح في هذه السلسلة من المقالات المواضيع التالية لفهم أدوات تطوير الويب من طرف العميل: نظرة عامة على أدوات تطوير الويب من طرف العميل: نقدّم في هذا المقال نظرة عامة على أدوات الويب الحديثة، وأنواع الأدوات المتاحة وأين ستصادفها في دورة حياة تطوير تطبيقات الويب، وكيفية العثور على المساعدة باستخدام هذه الأدوات. دورة مكثفة لفهم سطر الأوامر: سيُطلب منك بلا شك تشغيل بعض الأوامر في الطرفية Terminal أو في سطر الأوامر خلال عملية التطوير، حيث يقدم هذا المقال مقدمة إلى الطرفية والأوامر الأساسية التي ستحتاج إلى إدخالها، وكيفية ربط الأوامر مع بعضها بعضًا، وكيفية إضافة أدوات واجهة سطر الأوامر Command Line Interface -أو CLI اختصارًا. أساسيات إدارة الحزم: سنلقي نظرة على مدراء الحزم بشيء من التفصيل لفهم كيفية استخدامها في مشاريعك لتثبيت اعتماديات Dependencies أدوات المشروع وتحديثها وغير ذلك. سلسلة أدوات كاملة: سنعمل في المقالين الأخيرين من السلسلة على ترسيخ معرفتك بالأدوات من خلال إرشادك خلال عملية بناء نموذج لسلسلة أدوات عن طريق إعداد بيئة تطوير ووضع أدوات التحويل في مكانها لنشر تطبيقك فعليًا على Netlify. كما سنقدم دراسة حالة مع إعداد بيئة التطوير الخاصة بنا وإعداد أدوات تحويل شيفرتنا. نشر التطبيق: سنأخذ في المقال الأخير من هذه السلسلة مثالًا عن سلسلة الأدوات التي أنشأناها في المقال السابق ونضيفها لنتمكن من نشر التطبيق، إذ سنرفع الشيفرة البرمجية للمشروع على موقع مشاركة الشيفرات جيت هب GitHub، وننشرها باستخدام نيتليفاي Netlify، وسنوضّح كيفية إضافة اختبار بسيط لهذه العملية. لنبدأ بمقالنا الأول من هذه السلسلة من خلال إلقاء نظرة سريعة على أدوات تطوير الويب من طرف العميل. المتطلبات الأساسية: الإلمام بمفاهيم لغات HTML و CSS وجافاسكربت الأساسية. الهدف: فهم أنواع الأدوات من طرف العميل وكيفية العثور عليها والحصول على المساعدة بشأنها. استخدام الأدوات الحديثة أصبحت كتابة برمجيات الويب أكثر تعقيدًا بمرور الوقت، وبالرغم من ذلك لا يزال كتابة برمجيات الويب يدويًا بلغة HTML و CSS وجافاسكربت أمرًا ممكنًا إلا أنه يوجد الآن مجموعة كبيرة من الأدوات التي يمكن للمطورين استخدامها لتسريع عملية إنشاء موقع ويب أو تطبيق. توجد بعض الأدوات المستقرة التي أصبحت أسماء مألوفة وشائعة في مجتمع تطوير الويب، بالإضافة إلى الأدوات الجديدة التي نراها تصدر كل يوم لحل مشكلات معينة، فيمكن أن تكتب برنامجًا للمساعدة في عملية التطوير الخاصة بك ولحل مشكلة معينة لا يمكن أن تحلها الأدوات الحالية. يمكنك استخدام عدد هائل من الأدوات وتضمينها في مشروع واحد، كما يمكنك استخدام أداة واحدة مثل Webpack وإعداد ملف تكوينها من مئات الأسطر، وغالبًا ما ينظر المبرمجين المبتدئين لهذه الشيفرة وكأنها تعويذات تؤدي المهمة بطريقة سحرية ولن يفهمها إلا المهندسون الخبراء. إلا أنه في الواقع غالبية الخبراء يواجهون مشاكلًا في استخدام الأدوات من وقت لآخر، إذ يمكن إضاعة ساعات في محاولة تشغيل مسار أدوات قبل لمس سطر واحد من شيفرة التطبيق. لذلك لا داعي للقلق، فأنت لست وحدك. سنزودك من خلال هذا المقال بنقطة بداية مفيدة لفهم أساسيات استخدام أدوات الويب، إذ يُفضَّل أن تبدأ على نطاق صغير، ثم تشق طريقك تدريجيًا إلى الاستخدامات أكثر تقدمًا. نظام أدوات المطورين الحديث يعدّ النظام البيئي Ecosystem الحديث لأدوات المطورين في يومنا الحالي ضخم نسبيًا، لذا يجب من الأفضل تكوين فكرة عامة عن المشاكل الرئيسية التي تحلها هذه الأدوات. إذا انتقلت إلى محرك البحث المفضل لديك وبحثت عن "أدوات مطور الواجهة الأمامية"، فستصل لمجموعة كبيرة من النتائج تتراوح من محرّرات النصوص والمتصفحات وحتى نوع الأقلام التي يمكنك استخدامها لتدوين الملاحظات. وبالرغم من أن اختيارك لمحرّر الشيفرة هو بالتأكيد جزء من خيارات الأدوات، ولكن في هذه السلسلة من المقالات سنتجاوز ذلك من خلال التركيز على أدوات المطور التي تساعدك على إنتاج شيفرة ويب ذات كفاءة عالية. يمكنك تصنيف الأدوات من طرف العميل ضمن الفئات الثلاث التالية: شبكة الأمان Safety Net: أدوات مفيدة أثناء تطوير شيفرتك. التحويل Transformation: الأدوات التي تحول الشيفرة بطريقة ما مثل تحويل لغة وسيطة إلى لغة جافاسكربت التي يمكن أن يفهمها المتصفح. أدوات ما بعد التطوير Post-development: الأدوات المفيدة بعد كتابة شيفرتك مثل أدوات الاختبار والنشر. لنلقِ نظرة على كل واحدة من هذه الفئات بمزيد من التفصيل. شبكة الأمان هي الأدوات التي تحسّن شيفرتك البرمجية التي تكتبها، ويجب أن تكون هذه الأدوات خاصةً ببيئة التطوير الخاصة بك، بالرغم من ذلك من غير المألوف أن يكون لدى الشركات سياسة أو إعدادات جاهزة للتثبيت لكي تضمن أن يستخدم جميع مطوري هذه الشركات العمليات نفسها. تتضمن هذه الأدوات أيّ شيء يسهّل عملية التطوير فيما يتعلق بإنشاء شيفرة مستقرة وموثوقة. كما يجب أن تساعدك أدوات شبكة الأمان في منع حدوث الأخطاء أو تصحيحها تلقائيًا دون الحاجة إلى إنشاء شيفرة من نقطة الصفر في كل مرة. سنوضّح فيما يلي بعض أنواع أدوات شبكة الأمان الشائعة التي يستخدمها المطورون. منقحات الصياغة Linters منقحات الصياغة هي أدوات تتحقق من شيفرتك وتخبرك بوجود أخطاء وبأنواعها وسطور الشيفرة التي توجد فيها. يمكن ضبط منقحات الصياغة للإبلاغ عن الأخطاء، وللإبلاغ عن أيّ انتهاكات لدليل النمط المحدَّد الذي يستخدمه فريقك مثل الشيفرة التي تستخدم عددًا خاطئًا من المسافات البادئة، أو استخدام صياغة قالب Template Literals بدلًا من صياغة سلسلة نصية عادية String Literals. يعدّ Eslint منقّح أخطاء معياري خاص بلغة جافاسكربت ويمكن ضبط هذه الأداة لاكتشاف أخطاء الصياغة المحتملة وتشجيعك لاستخدام أفضل الممارسات ضمن شيفرتك البرمجية. شاركت بعض الشركات والمشاريع إعدادات Eslint الخاصة بها، ويمكنك العثور على أدوات اكتشاف أخطاء للغات أخرى مثل Csslint. كما يمكنك استخدام Webhint وهو منقح أخطاء مفتوح المصدر يمكن ضبطه للويب، ويعرض أفضل الممارسات لاستخدامها بما في ذلك أساليب الوصول والأداء والتوافق مع المتصفحات باستخدام بيانات توافق متصفح MDN والأمان واختبار تطبيقات الويب ذات الصفحة الواحدة PWA وغير ذلك. كما يتوفر كأداة سطر أوامر Node.js وكامتداد VS Code. التحكم بالشيفرة البرمجية يُعرَف أيضًا باسم أنظمة التحكم بالإصدارات Version Control Systems أو VCS اختصارًا، ويُعَد التحكم بالشيفرة البرمجية ضروريًا لدعم العمل الفردي أو ضمن فريق. يتضمن نظام VCS إصدارًا محليًا من الشيفرة التي تجري تغييرات عليها، ثم ترفع التغييرات إلى إصدار رئيسي من الشيفرة داخل مستودع بعيد مُخزَّن على خادم في مكان ما. هناك عادةً طريقة للتحكم في التعديلات التي تُطبَّق على النسخة الرئيسية من الشيفرة وتنسيقها ومتى تطبَّق، وبالتالي لا يكتب فريق المطورين فوق عمل بعضهم بعضًا. يعد نظام جيت هاب Git من أشهر نظم التحكم بالشيفرة البرمجية الذي يستخدمه معظم المطورين حاليًا، إذ يمكن الوصول إليه عبر سطر الأوامر أو عبر واجهات سهلة الاستخدام. كما يمكنك رفع نسخة من المشروع إلى الخادم الخاص بك باستخدام شيفرتك في مستودع جيت، أو يمكنك استخدام موقع ويب مستضاف للتحكم بالشيفرة المصدرية مثل جيت هب GitHub أو جيت لاب GitLab أو بيت باكيت BitBucket، ولكن سنستخدم GitHub في مثالنا. مُنسِّقات الشيفرة Code Formatters ترتبط مُنسِّقات الشيفرة إلى حد ما بمنقّحات الصياغة، باستثناء أنه بدلًا من الإشارة إلى الأخطاء في شيفرتك، فإنها عادةً ما تميل إلى التأكد من تنسيق شيفرتك الصحيح وفقًا لقواعد النمط الخاصة بك، وتعمل تلقائيًا على إصلاح الأخطاء التي تعثر عليها. أحد الأمثلة الشائعة لمنسقات الشيفرة البرمجية هو Prettier، والذي سنستخدمه لاحقًا في مثالنا. الحزم Bundlers أو Packagers هي الأدوات التي تجعل شيفرتك جاهزةً لعملية الإنتاج عن طريق تقنية هز الشجرة Tree-Shaking مثلًا للتأكّد من إدراج أجزاء مكتبات الشيفرة التي تستخدمها فعليًا فقط في شيفرة الإنتاج النهائي، أو التصغير Minifying لإزالة كل مسافة فارغة في شيفرة الإنتاج، مما يصغّرها قدر الإمكان قبل رفعها إلى الخادم. تعد أداة Parcel من الأدوات الذكية التي يمكنها تطبيق المهام المذكورة السابقة، كما أنها تساعد أيضًا في حزم الملفات أو الملحقات assets مثل HTML وCSS وملفات الصور ضمن حزم ملائمة يمكنك نشرها لاحقًا، وتضيف اعتماديات تلقائيًا كلما حاولت استخدامها. كما يمكن لهذه الأداة التعامل مع بعض مهام تحويل الشيفرة نيابة عنك. يذكر أن أداة ويب باك Webpack هي أشهر أداة حزم تطبّق مهامًا مماثلة. التحويل Transformation تتيح هذه المرحلة من دورة حياة تطبيق الويب كتابة شيفرة برمجية إما في شيفرة مستقبلية مثل تحويل الشيفرة البرمجية لأحدث ميزات لغة CSS أو جافاسكربت التي يمكن ألّا تدعمها بعض المتصفحات حتى الآن، أو إنشاء شيفرة برمجية مكافئة لشيفرة برمجية مكتوبة بلغة معينة مثل لغة TypeScript، لتتوافق الشيفرة التي أنشأتها الأداة المطلوبة مع المتصفح لاستخدامها في عملية الإنتاج. يُنظَر إلى تطوير الويب على أنه مؤلَّف من ثلاث لغات هي HTML وCSS وجافاسكربت، وهناك أدوات تحويل لجميع هذه اللغات. يقدّم التحويل فائدتين رئيسيتين هما: القدرة على كتابة شيفرة برمجية باستخدام أحدث ميزات اللغة وتحويلها إلى شيفرة تعمل على جميع الأجهزة، فيمكن أن ترغب مثلًا في كتابة شيفرة بلغة جافاسكربت باستخدام ميزات لغة جديدة متطورة، ولكن لا يزال لديك شيفرة الإنتاج النهائي التي تعمل على المتصفحات القديمة التي لا تدعم هذه الميزات. تشمل الأمثلة التالية: Babel: مصرّف جافاسكربت JavaScript الذي يسمح للمطورين بكتابة شيفرة باستخدام أحدث إصدارات جافاسكربت، والتي يأخذها Babel ويحوّلها إلى إصدار جافاسكربت قديم يمكن لمزيد من المتصفحات فهمه. كما يمكن للمطورين كتابة ونشر إضافات Babel. PostCSS: تطبّق هذه الأداة الشيء نفسه الذي يطبّقه Babel، ولكن مع ميزات CSS المتطورة. إذا لم تكن هناك طريقة مكافئة لتطبيق شيء ما باستخدام ميزات CSS القديمة، فسيثبّت PostCSS تعويض نقص دعم المتصفحات Polyfill بلغة جافاسكربت لمحاكاة تأثير CSS الذي تريده. خيار كتابة الشيفرة بلغة مختلفة تمامًا وتحويلها إلى لغة متوافقة مع الويب مثل: Sass / SCSS: يتيح لك هذا الامتداد من لغة CSS استخدام المتغيرات والقواعد المتداخلة والمزج والدوال والعديد من الميزات الأخرى، إذ يُعَد بعضها متاحًا في لغة CSS الأصلية مثل المتغيرات، وبعضها ليس كذلك. TypeScript: هي مجموعة شاملة من لغة جافاسكربت التي تقدم مجموعة من الميزات الإضافية. يحوّل مصرّف TypeScript شيفرة TypeScript إلى جافاسكربت عند البناء بهدف الإنتاج. توفّر أطر العمل مثل React وEmber وVue الكثير من الوظائف مجانًا وتسمح لك باستخدامها عبر صيغة مخصَّصة مبنية على لغة جافاسكربت الصرفة Vanilla JavaScript. تعمل شيفرة جافاسكربت الخاصة بإطار العمل في الخلفية لتفسير هذه البنية المخصَّصة وتقديمها بوصفها تطبيق ويب نهائي. أدوات ما بعد التطوير Post Development تضمن أدوات ما بعد التطوير أن يصل برنامجك إلى الويب ويستمر في عمله، إذ تتضمن مرحلة ما بعد التطوير عمليات النشر وأطر عمل الاختبار وأدوات التدقيق وغير ذلك. تُعَد هذه المرحلة بأنها المرحلة التي تحتاج أقل قدر من التفاعل النشط بحيث تُشغَّل تلقائيًا بمجرد تهيئتها، وتخبرك بحدوث خطأ ما. أدوات الاختبار Testing Tools تأخذ هذه الأدوات شكل أداة تختبر تلقائيًا شيفرت البرمجية للتأكد من صحتها قبل المضي قدمًا مثل رفع تعديلات إلى مستودع جيب هب GitHub Repo. يمكن أن يشمل ذلك الكشف عن الأخطاء Linting، ويشمل إجراءات أكثر تعقيدًا مثل اختبارات الوحدة إذ تشغّل جزءًا من شيفرتك، مع التأكد من أنها تتصرف كما ينبغي. تشمل أطر عمل اختبارات الكتابة Jest وMocha وJasmine. تتضمن أنظمة التشغيل والاختبارات الآلية Travis CI وJenkins وCircle CI وغيرها. أدوات النشر Deployment Tools تسمح أنظمة النشر بنشر موقع الويب الخاص بك، وهي متاحة لكل من المواقع الثابتة والديناميكية، وتميل للعمل جنبًا إلى جنب مع أنظمة الاختبار، إذ ستنتظرك سلسلة الأدوات إلى أن ترفع التغييرات إلى المستودع البعيد، وتجري بعض الاختبارات لمعرفة ما إذا كانت التغييرات مناسبة، وإذا نجحت الاختبارات، فستنشر تطبيقك تلقائيًا على موقع إنتاج. تعد Netlify واحدة من أكثر أدوات النشر شيوعًا في الوقت الحالي، ولكن هناك أدوات أخرى مثل Vercel وGithub Pages. أدوات ما بعد التطوير الأخرى هناك عدد من أنواع الأدوات الأخرى المتاحة للاستخدام في مرحلة ما بعد التطوير، بما في ذلك Code Climate لجمع مقاييس جودة الشيفرة، وامتداد متصفح Webhint لإجراء تحليل وقت التشغيل للتوافق مع المتصفحات وعمليات التحقق الأخرى، وGithub bots لتوفير المزيد من ميزات GitHub القوية، وUpdown لتوفير مراقبة وقت تشغيل التطبيق وغير ذلك الكثير. أنواع الأدوات تُطبَّق أنواع الأدوات المختلفة في دورة حياة التطوير وفق ترتيب معين، ولكن كن مطمئنًا أنك لست مضطرًا إلى أن يكون لديك كل هذه الأدوات لإصدار موقع ويب، فلن لا تحتاج لأيٍّ منها. لكن سيؤدي تضمين بعض هذه الأدوات في عملياتك إلى تحسين تجربة التطوير، ويُحتمَل أن يؤدي إلى تحسين جودة شيفرتك الإجمالية. يستغرق استقرار أدوات المطور الجديدة بعض الوقت حسب تعقيدها. تشتهر إحدى أشهر الأدوات وهي Webpack بكونها معقدة للغاية للتعامل معها، ولكن كان هناك ضغط كبير لتبسيط الاستخدام في أحدث إصدار رئيسي، لذا قُلٍّل الإعداد المطلوب إلى الحد الأدنى. ليس هناك حل سحري يضمن النجاح باستخدام الأدوات، ولكن ستجد تدفقات عمل تناسبك أو تناسب فريقك ومشاريعك مع زيادة خبرتك، ويجب أن تكون سلسلة الأدوات شيئًا يمكنك نسيانه وأن تركّز على العمل فقط، بمجرد تسوية جميع مكامن الخلل في العملية. كيفية اختيار أداة معينة والحصول عليها تميل معظم الأدوات إلى كتابتها وإصدارها بصورة منفصلة، لذلك لا تتوفر أبدًا في المكان أو التنسيق نفسه، على الرغم من وجود مساعدة شبه مؤكدة، فيمكن أن يكون العثور على مساعدة في استخدام أداة أو حتى اختيار الأداة التي تريد استخدامها أمرًا صعبًا. المعرفة حول أفضل الأدوات لاستخدامها هي معرفة مجتمعية إلى حد ما، مما يعني أنه إن لم تكن بالفعل في مجتمع الويب، فستكون معرفة الأدوات التي تريدها بالضبط أمرًا صعبًا، وهذا هو أحد الأسباب التي دفعتنا إلى كتابة هذه السلسلة من المقالات، ونأمل أن نقدم تلك الخطوة الأولى التي يصعب إيجادها بطريقة أخرى. ستحتاج على الأرجح إلى مجموعة الأشياء التالية: نجح المدرسون أو الموجهون أو الزملاء الطلاب ذوو الخبرة أو الزملاء الذين لديهم بعض الخبرة في حل هذه المشكلات من قبل، ويمكنهم تقديم المشورة. مكان محدد مفيد للبحث، إذ تكون عمليات البحث العامة على الويب عن أدوات مطور الواجهة الأمامية عديمة الفائدة إلا إن عرفتَ اسم الأداة التي تبحث عنها. إذا استخدمتَ مدير الحزم NPM لإدارة اعتمادياتك على سبيل المثال، فيُفضَّل الانتقال إلى صفحة npm الرئيسية والبحث عن نوع الأداة التي تبحث عنها. حاول مثلًا البحث عن "التاريخ date" إن أردتَ أداة تنسيق التاريخ، أو "المُنسِّق formatter" إذا كنت تبحث عن مُنسق شيفرة عام. انتبه إلى درجات الشعبية والجودة والصيانة، وآخر تحديث للحزمة. انقر على صفحات الأداة لمعرفة عدد تنزيلات الحزمة الشهرية، واحتوائها على توثيق جيد يمكنك استخدامه للتأكد من أنها تطبّق ما تريده، وبالتالي تُعَد مكتبة date-fns أداة تنسيق تاريخ جيدة لاستخدامها. إذا أردت البحث عن إضافة Plugin لدمج وظائف الأدوات في محرّر الشيفرة، فألقِ نظرة على صفحة الإضافات / الامتدادات لمحرر الشيفرة، وراجع حزم Atom وامتدادات VSCode على سبيل المثال. ألقِ نظرة على الامتدادات المميزة في الصفحة الأولى، وحاول مرة أخرى البحث عن نوع الامتداد الذي تريده (أو اسم الأداة مثل البحث عن "eslint" في صفحة امتدادات VSCode). إذا حصلتَ على نتائج، فألقِ نظرة على معلومات عدد النجوم أو التنزيلات التي يحتويها الامتداد، إذ يُعَد ذلك مؤشرًا على جودته. المنتديات المتعلقة بالتنمية لطرح أسئلة حول الأدوات التي يجب استخدامها مثل قسم الأسئلة والأجوبة البرمجية في أكاديمية حسوب. إذا اخترت أداة لاستخدامها، فيجب أن يكون طريقة فهم الأداة هو الصفحة الرئيسية لمشروع الأداة والذي يكون غالبًا موقع ويب كامل أو يكون مستندًا تمهيديًا واحدًا في مستودع الشيفرة. يمكن أن ترغب في العثور على بعض البرامج التعليمية المخصصة لبدء استخدام أنواع معينة من الأدوات، لذا تعد المقالات البرمجية ومقالات DevOps في أكاديمية حسوب أماكن الانطلاق الرائعة للبحث. يُحتمَل أن تمر عبر العديد من الأدوات المختلفة أثناء البحث عن الأدوات المناسبة لك، وأن تجربها لمعرفة ما إذا كانت منطقية ومدعومة جيدًا وتطبّق ما تريده منها. يُعَد كل ذلك مناسبًا للتعلم، وسيصبح الطريق أسلس كلما اكتسبت مزيدًا من الخبرة. الخلاصة قدّمنا من خلال هذا المقال مقدمة بسيطة عن أدوات الويب من طرف العميل، وسنقدّم في المقال القادم دورة مكثفة عن سطر الأوامر، إذ تُستدعَى كثير من الأدوات منه، وسنلقي نظرة على ما يمكن أن يفعله سطر الأوامر ثم نحاول تثبيت الأداة الأولى ونستخدمها. هذا المقال جزء من سلسلة مقالات بعنوان تعلم تطوير الويب والتي تشرح كامل عملية تطوير الويب من واجهات أمامية وخلفية بالكامل. ترجمة -وبتصرُّف- للمقالين Understanding client-side web development tools وClient-side tooling overview. اقرأ أيضًا مدخل إلى أدوات التطوير في متصفح الويب DevTools كيف تستخدم أدوات المطوِّر في المتصفحات الحديثة الفرق بين مصمم الويب ومطور الويب وكيفية معرفة الأنسب بينهما الأدوات المستخدمة في بناء مواقع ويب1 نقطة
-
قد يكون الالتزام بالمواعيد النهائية لتسليم العمل أمرًا يصعُبُ تحقيقُه -سواءٌ أكنت تعمل مستقلًا، أو من مكتبك في المنزل- ما لم تكُن مستعدًا لذلك على النحو المطلوب. سأعرض لك فيما يلي قائمةً بالنصائح التي تساعدك على الالتزام بمواعيد تسليم العمل النهاية، والتي تمثل عُصارة خبرتي بعد أن فشلتُ في تحقيق ذلك الالتزام مرارًا وتكرارًا. 1. كن واقعيا من الضروري بدايةً تحديد مواعيد نهائية لتسليم العمل يمكنك الالتزامُ بها فعلًا؛ فأول الأخطاء التي قد ترتكبها في هذا السياق وأكثرها شيوعًا، هو أن تجعل موعد التسليم قريبًا جدًا؛ أي أن تُقصِّر الوقتَ الذي تمنحه لنفسك لتُنجِزَ العملَ فيه، ففي هذه الحالة ستُضطر إلى العمل بأقصى سرعتك كي لا يفوتَك موعدُ التسليم، ولكنك مع ذلك تُمنى بالفشل أحيانًا لاستحالة تحقيق ذلك، فلا فكرة كافية لدى عميلُك عن كيفية سير العمل بالنسبة لك، بل أنت الوحيد العالِمُ بذلك. ونصيحتي لك هنا أن تطلب يومًا أو يومين إضافيَّين إلى المدة التي قدِّرت بدايةً إمكانيةَ إنهاء العمل خلالها؛ فبذلك تمنحُ نفسَك مُتّسعًا من الوقت في حال حدوث أمر غير متوقع. والمقابل، إن أنهيت العمل في وقتٍ أبكر من ذلك، فسيكون ذلك جيدًا لك، وللعميل معًا. 2. التواصل الجيد احرص كل الحرص على أن يكون لديك ولدى العميل التوقعاتُ ذاتها حول الموعد النهائي الواقعي لتسليم العمل، فالهدف من ذلك هو أن تتمكن من تضمين كل شيء له علاقة بالمشروع، وتتجنَبَ حدوث مشاكل في اللحظات الأخيرة قبل حلول الموعد النهائي للتسليم، كما أنّ عليك التواصل باستمرار مع العميل وإرسال عملك إليه، أو على الأقل أجزاءٍ منه، خلال فترة عملك على مشروعه إذا كان وقتُ إنجازه طويلًا، فبذلك تُلبّي ما يحتاج إليه العميل، بدلًا من أن تُبعِدَه أكثر فأكثر عن هدفه. 3. دون الموعد النهائي اكتب الموعد النهائي الذي اتفقتَ عليه مع عميلك واجعله على قصاصة ورقية لاصقة، واضبط تذكيرًا به على حاسوبك، وضمّنه في خطط العمل وتطبيقات إدارة الوقت التي لديك. إنّ حقيقة أنّك تهتم فعلًا بالموعد النهائي لتسليم العمل مهمة جدًا، وهذا ما يفرض عليك ضرورة كتابة ذلك التاريخ في أماكن متعددة. 4. خطط للأيام المقبلة أُخططُ في بداية كل أسبوع لأضمن الحصول على الساعات المطلوبة للعمل على كل المشاريع التي عليَّ إنجازُها، فإذا كان هناك موعد نهائي لتسليم العمل عليك الالتزام به، فمِن المهم أن تحصل على وقت يكفيك للعمل على ذلك المشروع على نحو منتظم، فالنتيجة النهائية ستكون أفضل إذا امتلكت وقتًا كافيًا لإنجاز العمل، وذلك بدلًا من أن تضطر إلى السهر طوال الليلة التي تسبق تسليم العمل لتتمكن من إنهائه قبل الموعد النهائي. عليك إجراء نظرة عامة حول كل المشاريع التي تعمل عليها حاليًا، وأن تقسّمها إلى أسابيع وأيام، فإذا اتّبعتَ ذلك، ستنجح في الإحاطة بالصورة العامة لعملك، وبتفاصيله معًا. 5. كن مدير نفسك اتبِعْ مع نفسك مستوى الصرامة ذاته التي كنتَ لِتُمارسه على موظفيك لو كنتَ مديرًا؛ ولِيَكُن لديك توقعات حول نفسك؛ ولا تقبلْ بأي تراخٍ طوال فترة إنجاز عملك، كما إنها ليس فكرةً سيئة أن تقسوَ قليلًا على نفسك مع مراعاة كل من الجودة والالتزام بتسليم العمل في الموعد المحدد، ولا تنسَ أن تكافئ نفسك حالما تنتهي من العمل ببلاءٍ حَسَن. 6. نقاط تحقق حدِّد نقاطَ تحقّقٍ على طول فترة إنجاز العمل؛ أي ضع قائمةً بالأهداف لكل مشروع، بحيث تستطيع التحقق مما انتهيتَ من إنجازه، ومما تبقى لديك، وستكتشف أن هذا مفيد جدًا في حال كان لديك عدد قليل من المشاريع التي تعمل عليها. ضع تواريخًا محددةً لنقطة البدء، وأمضِ وقتًا أطول على الأجزاء الصغيرة للمشاريع. ومتى استخدمتَ عبارةً مثل: "ينبغي إنهاءُ هذا الجزء من العمل خلال أسبوع أو شهر"، فستزداد احتمالية أن تفشل في إنجاز العمل قبل الموعد النهائي لتسليمه، لذا عليك تحديد تواريخ دقيقة لتقييم كل جزءٍ أنجزته من العمل وإنهائه. 7. أدر وقتك يمثّل إنشاء قائمة بالأهداف ضمن المشروع طريقةً مُثلى لتتبُّعِ التقدّم الذي تنجزه؛ مثلما ذكرنا في النصيحة رقم 4 أعلاه. ولكي تتمكن من إنجاز ذلك على ما يُرام، عليك التفكير في استخدام تطبيق مخصص لإدارة الوقت؛ لكنّ ذلك قد لا يكون ضروريًا بالنسبة لمن يتبعون نظامًا منضبطًا لا تشوبُه شائبة، ولا للذين لديهم روتين أو تجربة خالِيَين من الأخطاء، ولكني أرى أن ما نسبته 75% مِنّا سيؤدون عملًا أكثر كفاءةً إذا استخدَموا تطبيقًا لإدارة الوقت، أو جدولًا تفصيليًا ذا صلة بإدارة الوقت من أي نوع كان. ابحث عن أحد تلك التطبيقات الملائِمة لنظام التشغيل في حاسوبك؛ فهناك تطبيقات مثل تلك لجميع المنصات، بما في ذلك الهواتفُ المحمولة. 8. ركز على أمر واحد في كل مرة إذا كنتَ قد قسّمتَ المشاريع إلى أجزاءِ عملٍ أصغر، فمن المهم أن تكون قادرًا على التركيز على جزء واحد في كل مرة. لا تهدر كثيرًا من الوقت في التفكير بالخطوات أو المصاعب التالية، إلا عندما يجب عليك ذلك؛ فالتركيز على أمر واحد فقط يجعله أسهل، ويتيح لك العملَ بكفاءة أعلى، ويمكِّنك من الالتزام بالمواعيد النهائية لتسليم العمل. 9. لا بأس في استباق المواعيد إذا توفّر لك متّسع من الوقت بعد الانتهاء من الجزء الذي عليك إنجازُه، فيمكنك استغلاله لتحقيق تقدّم في العمل قبل حلول الموعد النهائي لتسليمه، فتسليم العمل قبل موعده النهائي قد يُفرِح العميل كثيرًا ويُشعرك بالرضا، ويمدّك بمزيد من الثقة. 10. الأهداف المحددة بدقة لكي تتجنب إنجاز الكثير من العمل الإضافي في اللحظات الأخيرة التي تسبق تسليم العمل، عليك أن تسعى إلى الاستيضاح من العميل عما يتضمّنه المشروع من مهام. احرص على أن تُبرِم مع عميلك اتفاقًا مكتوبًا تتوخى فيه الدقة قدر الإمكان حول ما عليك إنجازه لكي تُرضيَه، فإذا اكتشفتَ قبل الموعد النهائي لتسليم العمل أنه يشمل أيضًا مهامًا لم تكن تُدرِك أنها مطلوبة منك، فستعمل تحت الضغط خلال وقت قصير؛ وهذا ما قد يؤدي إلى فشلك في الالتزام بالموعد النهائي للتسليم. 11. إذا فسدت الأمور فأصلحها بأسرع وقت إذا وصلتَ إلى نقطة أدركتَ فيها أنك لن تستطيع تسليم العمل المكلّف به قبل الموعد النهائي المحدد، فعليك إبلاغُ العميل بأسرع ما يُمكن؛ ففعلُ ذلك يُجنِّبُك العديدَ من المشاكل، ويحافظ على حُسن سمعتك. قد يقع أيٌّ مِنَا في الأخطاء، وهناك أمور كثيرة قد تحدث معنا خلال يومنا؛ ولذا فأغلب الظنّ أن العميل سيتفهّم ذلك إن كنتَ صادقًا معه في بيان الأسباب التي منعتكَ من تسليم العمل في موعده، ومن المهم أن تراقب تقدّمك لترى هذه الأمور مسبقًا؛ فبهذه الطريقة يمكنك أن تجرّب العمل مع عميلك على وضع حلول اختيارية. وعندما تحددان موعدًا نهائيًا لتسليمه العمل وتتوصلان إلى اتفاق حول ذلك، اذكر له احتمالية حدوث أشياء غير متوقعة، وهو ما قد يسبب تأخيرًا في تسليم العمل. 12. ابذل جهدا إضافيا عند الحاجة إذا كنتَ قد تجاوزت الجدول الزمني بقليل، فعليك الاستعداد لأداء عملٍ إضافي للتعويض عن ذلك. ورغم أنه ليس عليك العمل لأربع وعشرين ساعة وسبعة أيام في الأسبوع خلال الأيام الأخيرة من مشروعٍ ما، إلا أنك بحاجة إلى إفراد مساحة زمنية للعمل الإضافي إن اقتضى الأمر. ويعني ذلك أنه قد يكون عليك العمل لساعات إضافية في وقت متأخر، أو خلال العطل والإجازات؛ فهذا كله جزء من حياة المستقل. وإذا كان ذلك يحدث معك غالبًا، فعليك التحقق من روتينك ومن سير العمل لتعديلهما نحو الأفضل. ومن النصائح الأخرى في هذا السياق، أنك بدلًا من العمل لساعة أو ساعتين في وقت متأخر من اليوم، يمكنك التعويض عن ذلك ببدء العمل في وقت مبكر أكثر صباحًا؛ إذ يعمل بعض المستقلين بكفاءة أعلى في الصباح. 13. هل تريد المساعدة؟ قد لا تتمكن دائمًا في بعض المشاريع الكبرى من إنجاز كل شيء بنفسك، كما قد تتفق مع عميلك في بعض الحالات على تقاضي مقابلٍ أقل في حال تجاوزتَ الموعد النهائي للتسليم بعدة أيام قبل أن تكون قد أنهيت العمل له. ولتفادي حدوث ذلك، قد يكون مهمًا أحيانًا توظيف أشخاص آخرين لمساعدتك في بعض أجزاء المشروع الذي تنجزه. وتذكّر أن تلتزم الواقعية دائمًا في التخطيط. عليك أحيانًا فعل ما هو مطلوب، وقد يكون من الضروري دفع المال لشخص ما يُساعدتك في إنجاز بعض المهام. 14. قيم النهاية أهم درس لك بعد كل مشروع تنجزه هو أن تتعلم من أخطائك، فالتجربة تجعلك أفضل، ولذا تذكَّر أهمية التقييم بعد كل مشروع. اعمل قائمةً بالأمور التي فعلتَها والتي كانت عظيمة، لتتمكن من تكرارها في المرة القادمة أيضًا؛ وقائمةً أيضًا بالأمور التي لم تَسِر على ما يُرام لتُحسِّنَ تجربتك في المشروع القادم. يمثل الالتزامُ بمواعيد تسليم العمل الهاجسَ الأكبر للمستقلين ولغيرهم ممن يقدمون خدماتٍ للعملاء؛ ولكن بوسعك إذا التزمتَ بالنصائح المعروضة أعلاه جعلُ ذلك الهاجس خلفَ ظهرك، ومنعُهُ من تقويض استمتاعك بالعمل؛ ولا تنسَ محورية هذه النقطة في رضا العميل وتكريس سمعة حَسنة لصيقة بك بوصفك مستقلًا ملتزمًا يُعيد عملاؤه الاستعانة به مرةً بعد مرة بفضل تلك الصورة الإيجابية التي تكرّست في أذهانهم عنك. ترجمة وبتصرف للجزء الرابع من مقال Prepare For Challenge: How To Keep Deadlines. اقرأ أيضًا 5 مبادئ لتسليم مشاريعك في أوقاتها دائمًا وبناء سمعة جيّدة كمُستقل كيف تُدير وقتك لتتقن عملك كعامل مُستقل العمل الطارئ في مقابل العمل المهم: أبسط طريقة للقيام بالعمل الأفضل واستمرار الإنتاج 7 طرق لزيادة حظوظك في الاحتفاظ بعميلك لأطول فترة ممكنة1 نقطة
-
1 نقطة
-
1 نقطة
-
تفيدك معرفة تفاصيل عتاد حاسوبك الصلب hardware بعدة نواحٍ، فمثلًا إذا احتجت إلى إصلاح خلل ما ونشرت سؤالًا على منتدى إلكتروني، سيسألك الناس مباشرةً عن تفاصيل حاسوبك. أو إذا أردت أن تطور حاسوبك لا بد أن تعلم مواصفاته والتطويرات المتاحة له بناءً عليها. يجب أن تستجوب حاسوبك لاسكتشاف مواصفاته. إن أسهل طريقة لذلك هي استخدام إحدى برامج لينوكس المعيارية ذات الواجهة الرسومية: i-nex: يجمع معلومات العتاد الصلب ويعرضها بأسلوب مشابه لبرنامج CPU-Z المعروف على نظام التشغيل ويندوز. HardInfo: يعرض مواصفات العتاد الصلب، ويتضمن مجموعةً من 8 برامج قياس الأداء benchmark programs المعروفة التي تشغلها لتقييم أداء حاسوبك. KInfoCenter و Lshw: يعرضان أيضًا تفاصيل العتاد الصلب، وهما متاحان في أغلب مستودعات البرامج software repositories. بدلًا عن ذلك يمكنك فتح صندوق جهازك وقراءة مواصفات الأقراص والذاكرة وغيرهما من الملصقات الموجودة عليه. أو تستطيع الدخول إلى لوحات التحكم خلال عملية إقلاع الجهاز التي تسمى لوحات UEFI أو BIOS، وذلك بضغط مفتاح الوظائف function key المناسب خلال عملية الإقلاع للوصول إليها. تمنحك هاتين الطريقتين تفاصيل العتاد الصلب لكنهما تهملان معلومات البرامج. أو يمكنك تنفيذ أمر على نظام التشغيل لينوكس. لكن مهلًا، يبدو ذلك صعبًا، فلم تلجأ لهذه الطريقة؟ أحيانًا يسهل إيجاد معلومة محددة بتنفيذ أمر موجه بدقة، وقد لا يكون لديك برنامجًا ذا واجهات رسومية أو لا ترغب بتثبيته. قد يكون السبب الرئيسي في استخدام الأوامر هو كتابة النصوص البرمجية، سواءً كنت تستخدم الصدفة shell على لينوكس أو أية لغة برمجية أخرى، فإن كتابة النصوص البرمجية يتطلب عادةً كتابة الأوامر. لا يستطيع أي مستخدم غير المستخدم الجذر أو المسؤول root تنفيذ العديد من الأوامر التي تكشف عن العتاد الصلب. لذا إما بدّل مستخدمك الحالي إلى المستخدم root، أو نفذ الأمر بواسطة مستخدمك العادي نفسه مسبوقًا بالأمر sudo: sudo <the_line_command> ثم أدخل كلمة مرور المستخدم الجذر root. تقدم لك هذه المقالة أكثر أوامر استكشاف النظام فائدةً، وسنلخصها لك في نهاية المقالة في جدول ليكون مرجعًا سريعًا. لمحة عامة عن العتاد الصلب توجد عدة أوامر تمنحك لمحةً عامةً شاملةً عن عتاد حاسوبك الصلب. يعرض الأمر inxi قائمةً بتفاصيل عن نظام التشغيل ووحدة المعالجة المركزية CPU والرسوم البيانية graphics والصوت والشبكة والأقراص وتقسيم الأقراص والحساسات sensors وغيرها. يطلب المشاركون بالمنتديات أن يعرفوا خرج هذا الأمر عندما يحاولون المساعدة في حل مشكلات الآخرين، فهو أداة معيارية لتشخيص المشكلة تستخدم لعلاج المشكلات: inxi -Fxz يعني المعامل F- أن الخرج سيكون كاملًا، ويضيف المعامل x تفاصيلًا على الخرج، ويخفي المعامل z المعلومات التعريفية الشخصية مثل العناوين المنطقية IP والفيزيائية MAC. يعرض الأمران hwinfo و Ishw نفس المعلومات تقريبًا بصياغة مختلفة: hwinfo --short أو lshw -short تعرض الصياغة الطويلة لهذين الأمرين خرجًا مستفيضًا لكن تصعب قراءته: hwinfo أو lshw تفاصيل وحدة المعالجة المركزية اعرض تفاصيل وحدة المعالجة المركزية بتنفيذ الأمرIscpu أو نظيره Ishw: lscpu أو lshw -C cpu تعرض آخر بضع أسطر من الخرج في كلتا الحالتين كافة إمكانيات وحدة المعالجة المركزية، وهنا تستطيع أن تعرف هل يدعم معالج حاسوبك خصائص معينة. تستطيع اختصار الإسهاب في خرج جميع هذه الأوامر وتقليص أية إجابة إلى تفصيل واحد فقط من خلال تحليل خرج الأمر باستخدام أمر grep. فمثلًا للاكتفاء بإظهار نوع وطراز وحدة المعالجة المركزية نكتب: lshw -C cpu | grep -i product لعرض سرعة وحدة المعالجة المركزية فقط بوحدة ميغاهرتز: lscpu | grep -i mhz لعرض معدّل قدرتها وفق مقياس BogoMips: lscpu | grep -i bogo يضمن معامل i- في الأمر grep أن يتجاهل عند البحث حالة الأحرف سواءً كانت صغيرةً أو كبيرةً. الذاكرة تتيح لك الأوامر في لينوكس جمع كافة التفاصيل الممكنة عن ذاكرة حاسوبك، كما تمكنك أن تحدد إمكانية إضافة ذاكرة إضافية إلى حاسوبك دون أن تفتح صندوق حاسوبك حتى. استخدم الأمر dmidecode لعرض كل بطاقة ذاكرة موجودة على حاسوبك وسعتها: dmidecode -t memory | grep -i size جرب تنفيذ السطر التالي للحصول على تفاصيل أكثر عن كل بطاقة من بطاقات الذاكرة RAM مثل النوع والحجم والسرعة والجهد: lshw -short -C memory وإن الأمر الذي لا بد أنك ترغب في معرفته هو الحد الأعظمي للذواكر التي يمكن إضافتها إلى حاسوبك، وذلك من خلال تنفيذ الأمر التالي: dmidecode -t memory | grep -i max ثم اكتشف هل توجد فتحات فارغة لتركيب بطاقات ذاكرة إضافية. يمكنك معرفة ذلك دون الحاجة إلى فك حاسوبك من خلال تنفيذ الأمر التالي: lshw -short -C memory | grep -i empty عندما يكون خرج الأمر فارغًا يعني أن جميع فتحات بطاقات الذواكر مستخدَمة. يتطلب تحديد حجم ذاكرة جهاز الفيديو/بطاقة الشاشة لديك تنفيذ عدة أوامر. ابدأ بعرض جميع الأجهزة لديك باستخدام أمر Ispci، واحصر الخرج ليعرض جهاز الفيديو الذي ترغب بعرض تفاصيله: lspci | grep -i vga سيبدو سطر الخرج الذي يعرّف المتحكم بالفيديو عادةً كالسطر التالي: 00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02) ثم أعد تنفيذ الأمر Ispci مع ذكر رقم جهاز الفيديو باعتباره الجهاز المطلوب: lspci -v -s 00:02.0 يكون سطر الأوامر المحدد بأنه prefetchable هو حجم ذاكرة أجهزة الفيديو على حاسوبك: ... Memory at f0100000 (32-bit, non-prefetchable) [size=512K] I/O ports at 1230 [size=8] Memory at e0000000 (32-bit, prefetchable) [size=256M] Memory at f0000000 (32-bit, non-prefetchable) [size=1M] ... نفذ الأمر التالي لعرض حجم الاستهلاك الحالي للذاكرة بواحدة ميغابايتس: free -m يعرض لك هذا الأمر حجم الذاكرة المتاح والحجم المستهلَك وحجم مساحة الذاكرة swap وهل هي مستخدَمة أم لا. فيما يلي مثال عن خرج هذا الأمر: total used free shared buff/cache available Mem: 11891 1326 8877 212 1687 10077 Swap: 1999 0 1999 يقدم لك الأمر top مزيدًا من التفاصيل عن استهلاك الذاكرة، فهو يعرض الاستهلاك الإجمالي الحالي للذاكرة ووحدة المعالجة المركزية، ويصنفها حسب معرف الإجرائية process ID، ومعرف المستخدم user ID، والأوامر قيد التشغيل. ويكون خرجه نصًا يملأ الشاشة. top الأقراص وأنظمة الملفات والأجهزة لعرض سطر واحد يصف كل قرص على حاسوبك: lshw -short -C disk احصل على تفاصيل عن أي قرص من نوع ساتا SATA، مثل طرازه ورقمه التسلسلي والأنماط التي يدعمها، وعدد قطاعاته وغيرها من التفاصيل بتنفيذ الأمر التالي: hdparm -i /dev/sda طبعًا لا تنسى أن تبدل sda بـ sdb أو أي رمز جهاز device mnemonic عند الضرورة. لعرض جميع الأقراص مع كافة أقسامها partitions المعرّفة بالإضافة إلى حجم كل منها: lsblk لمزيد من التفاصيل مثل عدد القطاعات والأحجام ومعرّفات أنظمة الملفات ونوعها والقطاعات الابتدائية والنهائية لكل قسم: fdisk -l لتشغّل حاسوبًا بنظام تشغيل لينوكس يجب أن تعرّف أقسامًا قابلةً للتحميل mountable partitions إلى محمّل الإقلاع GRUB. يظهر لك الأمر هذه المعلومات؛ إذ يعرض المعرّف الفريد لكل قسم unique identifier (اختصارًا UUID) ونوع نظام ملفاته (مثل ext3 أو ext4): blkid لعرض أنظمة الملفات المحمَّلة ونقط التوصيل mount points الخاصة بها والمساحة المستهلكة والفارغة من كل منها (بواحدة ميغابايتس): df -m وأخيرًا يمكنك عرض تفاصيل كافة نواقل buses منافذ USB و PCI والأجهزة من خلال تنفيذ الأمر: lsusb أو تنفيذ الأمر: lspci الشبكة يوفر نظام التشغيل لينوكس عددًا هائلًا من الأوامر الشبكية، سنستعرض بعضها. لعرض تفاصيل العتاد الصلب الخاص ببطاقة الشبكة ننفذ الأمر التالي: lshw -C network كان الأمر المستخدَم في عرض بطاقات الشبكة network interfaces عادةً ifconfig: ifconfig -a لكن أصبح العديد من الناس الآن يستخدمون الأمر: ip link show أو الأمر: netstat -i تساعدك قراءة الخرج في معرفة الاختصارات الشبكية الشائعة: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } الاختصار المعنى lo بطاقة الاسترجاع Loopback interface eth0 أو enp* بطاقة إيثرنت Ethernet interface wlan0 بطاقة الشبكة اللاسلكية Wireless interface ppp0 بطاقة بروتوكول نقطة إلى نقطة Point-to-Point (يستخدمه مودِم الطلب الهاتفي dial-up modem أو اتصال VPN الذي يعمل ببروتوكول PPTP أو مودِم USB) vboxnet0 أو vmnet* بطاقة الجهاز الافتراضي Virtual machine interface إن النجوم المذكورة ضمن هذا الجدول هي محارف بدل wildcard characters تنوب عن أية سلسلة من المحارف التي تختلف من نظام إلى آخر. لعرض البوابة الافتراضية default gateway لجهازك وجداول التوجيه routing tables نفذ أحد الأمرين التاليين: ip route | column -t أو netstat -r البرامج دعونا نختم بأمرين يعرضان تفاصيل البرامج منخفضة المستوى، مثلًا تساعدك في معرفة برنامج التحكم بالعتاد firmware المثبَّت على جهازك. يعرض الأمر التالي تاريخ وإصدار UEFI أو BIOS: dmidecode -t bios ويساعدك الأمر التالي في معرفة إصدار النواة وإذا كانت 64-bit واسم المضيف hostname للشبكة: uname -a جدول مرجعي سريع يلخص هذا الجدول كافة الأوامر التي تحدثنا عنها في هذا المقال: inxi -Fxz أو hwinfo --short أو lshw -short تعرض جميع معلومات العتاد الصلب للجهاز lscpu أو lshw -C cpu تعرض جميع معلومات وحدة المعالجة المركزية lshw -C cpu \grep -i capabilities يعرض خصائص وحدة المعالجة المركزية مثل PAE و SSE2 lshw -C cpu \grep -i width يبين فيما إذا كانت وحدة المعالجة المركزية 32 أو 64 bit dmidecode -t memory \grep -i size أو lshw -short -C memory يعرض حجم الذاكرة الحالي وإعداداتها dmidecode -t memory \grep -i max يعرض الحد الأعظمي من الذاكرة الذي يمكن إضافته للعتاد الصلب lshw -short -C memory \grep -i empty (عندما يكون خرج الأمر فارغًا يعني أن جميع فتحات بطاقات الذواكر مستخدَمة.) تحديد فتحات slots الذاكرة المتاحة lspci \grep -i vga ثم أعد تنفيذها بإضافة رقم الجهاز، مثل: lspci -v -s 00:02.0 تكون ذاكرة أجهزة الفيديو هي السطر المحدد بـقيمة prefetchable تحدد حجم ذاكرة أجهزة الفيديو free -m أو top يعرض الاستهلاك الحالي للذاكرة lshw -short -C disk يعرض الأقراص الصلبة hdparm -i /dev/sda (بدّل sda إن لزم الأمر) يعرض معلومات مفصَّلة عن قرص صلب محدد lsblk (عرض عام) أو fdisk -l (مفصَّل) تعرض معلومات عن الأقراص وأقسامها partitions blkid يعرض معرفات الأقسام (UUIDs) df -m يعرض أنظمة الملفات المحمَّلة mounted ونقط التوصيل mount points الخاصة بهم ويمكن تحديد الواحدة بميغابايتس لكليهما lsusb يعرض أجهزة USB lspci يعرض أجهزة PCI lshw -C network يعرض تفاصيل بطاقة الشبكة ifconfig -a أو ip link show أو netstat -i يعرض بطاقات الشبكة ip route \column -t أو netstat -r يعرض جداول التوجيه dmidecode -t bios يعرض معلومات UEFI/BIOS uname -a يعرض إصدار النواة واسم المضيف hostname للشبكة وغير ذلك ترجمة -وبتصرف- للمقال Linux commands to display your hardware information لصاحبه Howard Fosdick. اقرأ أيضًا اختيار العتاد والبرامج في العالم الرقمي المدخل الشامل لتعلم علوم الحاسوب ألف باء أساسيات التعامل مع لينكس الدليل النهائي لاختيار توزيعة لينكس1 نقطة
-
المكتبات Libraries تاريخ تسمية المكتبات بذلك بدأ قديما على الحواسيب القديمة حيث كان المبرمجون يخزنون البرامج على أقراص ذاكرة، ولإضافة برنامج أو وظيفة ما يقومون بتركيب أحد تلك الأقراص التي تحوي على البرنامج ضمن الحاسوب ليقوم بتحميلها والعمل عليها. حاول المبرمجون لسهولة العمل تقسيم الوظائف التي تستخدم بكثرة ضمن أقراص منفصلة يمكن إعادة استخدامها ضمن أكثر من برنامج، ورتبو تلك الأقراص ضمن مكتبة مقسمة لفرز الأقراص بحسب وظيفتها البرمجية. من هنا أتت كلمة مكتبة، أي مكتبة وظائف يمكن استخدامها والاستعانة بها ضمن أكثر من برنامج بدلًا من إعادة كتابتها كل مرة، المكتبة تقدم لك توابع ووظائف تقوم باستدعائها تفيد في تطوير برنامجك أطر العمل Frameworks إطار العمل في الناحية الأخرى هو أيضًا مجموعة من الوظائف التي تساعدك في تطوير برنامجك، لكن الفرق هو أن إطار العمل هو من يستدعي أقسام من برنامجك وليس العكس، يكون إطار العمل عادة محدد بطريقة عمل معينة عليك الالتزام بها ليساعدك بشكل صحيح. يفيد إطار العمل بسرعة الإنجاز حيث بنية برنامجك تكون محددة مسبقًا وعليك فقط إضافة أقسام من برنامجك ضمن أماكن محددة وبطريقة محددة مسبقًا، وتوفر عنك خطوة التفكير في بنية المشروع وتنفيذها1 نقطة
-
الفصل بينهما ليس مطلق، قد يضطر مبرمج النظم الخلفية للتطرق لبناء صفحة أو مكون ويب باستخدام HTML و CSS، لكن أغلب تركيزه وعمله يكون في تطوير النظم الخلفية التي تعمل على الخوادم فقط يتميز مطور الواجهات الأمامية بخبرته الأوسع في بناء واجهات المواقع، حيث يستطيع بناء قوالب الويب بشكل كامل وحتى تطبيق منفصل كامل يعمل بطرف العميل (باستخدام مكتبات مثل React و Vue)، وقد يضطر أحيانا للتعامل مع الواجهات البرمجية للنظم الخلفية، كالحاجة لإرسال طلبات HTTP لطلب البيانات من الخادم ليس هناك مطور نظم خلفية فقط ومطور واجهات أمامية فقط، سيحتاج أحدهما في وقت ما ولو بشكل بسيط للتعامل مع مجال عمل الآخر، المطور الكامل Full-Stack هو المطور الذي يملك كلا الخبرتين ويستطيع العمل على الواجهات الأمامية والنظم الخلفية معًا. الدورة تركز بشكل أساسي على النظم الخلفية، لكن الحاجة لبناء مشروع كامل تضطرك لبناء صفحات الويب.1 نقطة
-
كلاهما يمثل paradigm اي أسلوب أو "طريقة" من البرمجة و تختلف نماذج البرمجة عن بعضها البعض بناءً على الميزات والأسلوب الذي تدعمه فهناك العديد من الميزات التي تحدد نموذج البرمجة مثل الوحدات النمطية أو الكائنات أو المقاطعات أو الأحداث و لكل نموذج برمجة ميزته الخاصة لذلك من الأفضل معرفة مكان استخدامه قبل استخدامه و تعد اللغات الموجهة للكائنات oop جيدة عندما يكون لديك مجموعة ثابتة من العمليات على الأشياء ومع تطور التعليمات البرمجية الخاصة بك فإنك تقوم في المقام الأول بإضافة أشياء جديدة يمكن تحقيق ذلك عن طريق إضافة فئات ضمن الفئات القديمة. اما البرمجة الوظيفية functional programming فهي جيدة عندما يكون لديك مجموعة ثابتة من الأشياء ومع تطور شفرتك فإنك تضيف بشكل أساسي عمليات جديدة على الأشياء الموجودة يمكن تحقيق ذلك عن طريق إضافة وظائف جديدة تحسب مع أنواع البيانات الموجودة من الممكن أيضًا استخدام كل من نماذج البرمجة وفقًا لاحتياجاتنا الخاصة نظرًا لأن لدينا لغات مثل python و java وما إلى ذلك تدعم كلا من المفاهيم الموجهة للكائنات oop وتعمل أيضًا بالبرمجو الوظيفية functional programming1 نقطة
-
oop كل شئ في الoop عبارة عن objects حيث يجب وجود class وتأتي منه objects وكل صنف يمكنه الوراثة من صنف أخر بحيث يأخذ منه خصائصه والدوال الخاصة به كل كائن يحتوي على خصائص attributes و bhafiors عبارة عن دوال الدوال تنقسم إلى نوعين pure functions تقوم بإستقبال مُعطيات وتقوم بإخراج معطيات من دون التعديل على خصائص على الكائن, بينما الدوال الغير نقية non-pure functions تقوم بالتعديل على خصائص الكائنات مثال على شفرة برمجية للoop public class Person { private String name; public String getName() { return name; } public void setName(String newName) { this.name = newName; } } هنا نلاحظ وجود الدالة getName التي تقوم بإرجاع إسم الشخص, والدالة setName التي هي دالة غير نقية حيث تقوم بالتعديل على خاصية الإسم لدى الشخص functional programming الدوال في الfunctional programming كلها نقية حيث تقوم بإستقبال المعطيات وإخراج ناتج دون وجود side effects أي أنها لا تقوم بالتعديل أو تغيير أحد القيم الموجودة لدينا تمتاز أنها declarative أي أن نقوم بمعالجة البيانات عبر مجموعة من الدوال الجاهزة بتجميع تلك الدوال معًا دون الإحتياج إلى كتابة الشفرة الخاصة بكل دالة منهم List<Integer> numbers = Arrays.asList(1,2,3,4,5); numbers.forEach(number -> System.out.print( number + " ")); كما تلاحظ في أننا هنا نقوم فقط بأخذ مجموعة من القيم الموجودة في مصفوفة ونقوم بالمرور عليها وطباعة العناصر دون أن نقوم بالتغيير في القيم الأصلية وكل سطر في البرنامج عبارة عن دالة1 نقطة
-
الخطأ Address already in use يظهر عادة لما يكون يكون المنفذ (Port) - في مثالك 8080 أو قيمة مسجلة داخل متغيرات النظام - مستخدمًا بالفعل من قبل بعض تطبيقات بايثون الأخرى أو أي تطبيق آخر. لإصلاح الخطأ قُم باختيار منفذ آخر لتطبيقك: app.run(host = os.getenv('IP', '0.0.0.0'), port=8088)# مثلا 8088 إذا كنت تريد رؤية البرنامج الذي يشغل هذا المنفذ استخدم الأمر: (لمستخدمي linux ) netstat -ntlp | grep 8080 والذي بدوره يقوم بالكشف عن التطبيق الذي يشغل المنفذ. مثلاً: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 6599/python قم بإنهائه باستخدام kill -9 PID #أي kill -9 65991 نقطة
-
يوجد خطأ في الشفرة User.objects.filter(name="mohssen").latest() الدالة latest تُرجع آخر كائن في من النموذج بناءً على حقل أم مجموعة حقول مثلاً: #آخر كائن بناءً على المعرف Entry.objects.latest('id') #آخر كائن بناءً على حقلين المعرف وتاريخ الإنشاء Entry.objects.latest('id', '-creation_date') فللحصول على آخر كائن من نموذج Django استعمل الدالة last: last_user = User.objects.last() #بعد الفلترة last_user_with_name_mohssen = User.objects.filter(name="mohssen").last() أما إذا أردت استعمال latest فعليك إختيار الحقل المُناسب: مثلا تاريخ الإنشاء، أو استعمل المُعَرف last_user = User.objects.latest('id') #بعد الفلترة last_user_with_name_mohsen = User.objects.filter(name="mohssen").latest('id')1 نقطة
-
لكي تحصل على اسم جدول النموذج داخل قاعدة البيانات يُمكنك استعمال: from django.contrib.auth.models import User User.objects.model._meta.db_table #أو استعمل User._meta.db_table # أما اذا كنت تريد الوصول الى اسم الجدول من الكائن مباشرة استخدم # مثلا اسم الكائن هو # my_user my_user._meta.db_table1 نقطة
-
سنلقي الضوء في هذا المقال على بعض الأشياء التي ينبغي التفكير بها عند تثبيت محرر نصوص لتطوير مواقع الويب. ننصحك قبل الشروع بقراءة المقال أن تطلع على مقال ما هي الأدوات المستخدمة في بناء مواقع ويب؟ مقدمة عن المحررات البرمجية لتطوير الويب تتكون مواقع الويب في معظمها من ملفات نصية، ولكي تختبر تجربة مريحة وممتعة في رحلة تطوير موقع ويب، لا بدّ من اختيار محرر النصوص بحكمة! ستجد عددًا كبيرًا من محررات النصوص لكونها أمرًا أساسيًا في علوم الحاسوب (وبالطبع تطوير الويب جزء من علوم الحاسوب). عليك -إن أردنا التكلم بمثالية- أن تجرب أكبر عدد ممكن من المحررات ثم تختار ما تشعر أنه المناسب لاحتياجاتك، لكننا سنحاول إرشادك لتبدأ بطريقة صحيحة. إليك بعض التساؤلات الأساسية التي ينبغي أخذها بعين الاعتبار: أي نظام تشغيل سأعمل عليه؟ ما هي التقنيات التي أريد أن أتعامل معها؟ ما الميزات الأساسية التي أتوقع وجودها في محرر النصوص؟ هل أريد إضافة ميزات إضافية إلى محرر النصوص؟ هل أحتاج إلى دعم أو مساعدة أثناء استخدام محرر النصوص؟ هل يهمني مظهر محرر النصوص وشعوري عند العمل عليه؟ لاحظ أننا لم نذكر التكلفة وهي أمر هام بكل وضوح، لكن تكلفة المنتج لا ترتبط بالضرورة بجودته أو إمكاناته. ويمكن جدًا تجد محرر نصوص مجاني ومناسب. إليك قائمة ببعض المحررات الأكثر شعبية: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } المحرر رخصة الاستخدام السعر نظام التشغيل آلية دعم المنتج توثيقات المنتج قابل للتوسّع Atom MIT/BSD مجاني ويندوز، ماك، لينوكس منتديات دليل استخدام على الإنترنت نعم Bluefish GPL 3 مجاني ويندوز، ماك، لينوكس قوائم بريدية، مستندات تعاونية wikis دليل استخدام على ويب نعم Brackets MIT/BSD مجاني ويندوز، ماك، لينوكس منتديات، محادثة عبر الإنترنت IRC مستندات تعاونية على غت-هاب GitHub Wiki نعم Coda مغلق المصدر $99 ماك تويتر، منتديات، بريد إلكتروني كتاب إلكتروني نعم CodeLobster مغلق المصدر مجاني ويندوز، ماك، لينوكس منتديات، بريد إلكتروني) دليل استخدام على الإنترنت نعم Emacs GPL 3 مجاني ويندوز، ماك، لينوكس الأسئلة الأكثر شيوعًا، قوائم بريدية، مجموعات إخبارية دليل استخدام على الإنترنت نعم Espresso مغلق المصدر $75 ماك الأسئلة الأكثرشيوعًا، البريد الإلكتروني لا توجد توثيقات موجهة إلى المستخدم النهائي، فقط توثيقات للإضافات plug-in doc نعم Gedit GPL مجاني ويندوز، ماك، لينوكس قوائم بريد إلكتروني، محادثات عبر الإنترنت دليل استخدام على الإنترنت نعم Kate LGPL, GPL مجاني ويندوز، ماك، لينوكس قوائم بريد إلكتروني، IRC دليل استخدام على الإنترنت نعم Komodo Edit MPL مجاني ويندوز، ماك، لينوكس منتديات دليل استخدام على الإنترنت نعم Notepad++ GPL مجاني ويندوز منتديات Wiki نعم PSPad مغلق المصدر مجاني ويندوز FAQ، منتديات مساعدة عبر الإنترنت نعم Sublime Text مغلق المصدر $70 ويندوز، ماك، لينوكس منتديات رسمية،غير رسمية نعم TextMate مغلق المصدر $50 ماك تويتر، محادثة عبر الإنترنت، قوائم بريد إلكتروني، بريد إلكتروني دليل استخدام على الإنترنت، مستندات تعاونية نعم TextWrangler مغلق المصدر مجاني ماك الأسئلة الأكثر شيوعًا، منتديات دليل استخدام PDF لا Vim رخصة مصدر مفتوح خاصة مجاني ويندوز، ماك، لينوكس قوائم بريد إلكتروني دليل استخدام على الإنترنت نعم Visual Studio Code مفتوح المصدر خاضع لرخصة MIT/ (رخصة خاصة بالمنتج) مجاني ويندوز، ماك، لينوكس الأسئلة الأكثر شيوعًا توثيق نعم سنلقي نظرة في الفقرات التالية على بعض النقاط التي يجب أن نأخذها بعين الاعتبار عند اختيار محرر نصي. معايير الاختبار ولكن ما الذي عليك التفكير به عند اختيار محرر نصي؟ هيا بنا لنخوض أكثر في التفاصيل. نظام التشغيل الذي تعمل عليه بالرغم من أن الموضوع ما هو إلا تفضيلات شخصية، ولكن تذكر أن بعض المحررات متاحة فقط لأنظمة تشغيل محددة. وإن أردت التنقل من نظام تشغيل إلى آخر، سيحد ذلك من خياراتك. تسهل عليك محررات النصوص التي تعمل عبر المنصات المختلفة Cross-Platform في هذه الحالة أمر الانتقال من نظام إلى آخر. تأكد في البداية من نظام التشغيل الذي تستخدمه ثم اعثر على محرر نصوص يدعمه. تحدد محررات النصوص على مواقعها الإلكترونية الأنظمة التي تدعمها، يمكن ألّا تدعم بعضها سوى إصداراتٍ معينة من أنظمة التشغيل (ويندوز 7 وما بعد وليس فيستا مثلًا). إن كنت تعمل على نظام التشغيل أوبونتو فمن الأفضل البحث ضمن مركز برامج أوبونتو Ubuntu Software Center. إنّ عالم أنظمة التشغيل لينوكس/ يونكس واسع ومتنوع ويمكن ألّا تتوافق حزم البرمجيات بين توزيعة وأخرى. وبالتالي إن وقع اختيارك على محرر نصوص معين لا تدعمه توزيعة لينكس التي تعمل عليها، عليك ترجمة الشيفرة المصدرية للبرنامج بنفسك لتناسب توزيعتك (وهذا عمل للمتمرسين وليس لضعاف القلوب!). التقنيات التي أريد التعامل معها يمكن لأي محرر نصوص أن يقرأ ويحرر أي نص عمومًا. وهذا أمر جيد إن أردت أن تترك لنفسك ملاحظات هنا وهناك، لكن عند تطوير مواقع ويب وكتابة شيفرات HTML وCSS وجافاسكربت، يمكن أن يصل بك الأمر إلى كتابة ملفات كبيرة ومعقدة. لهذا وفر على نفسك العناء واستخدم محرر نصوص يفهم التقنيات التي تتعامل معها. تساعدك الكثير من المحررات النصية في هذا الأمر من خلال مميزاتها التي تقدمها مثل: تلوين العبارات البرمجية Syntax Highlighting: سيغدو الملف أكثر وضوحًا عند تلوين شيفرات الأوامر والكلمات المفتاحية بألوان مختلفة تناسب التقانة التي تستخدمها. الإكمال التلقائي للشيفرة Code Completion: توفر عملية الإكمال التلقائي للبنى البرمجية التي تكتب شيفرتها الوقت كأن يغلق المحرر واسمات HTML المفتوحة، أو أن يقترح عليك خاصية معينة عند كتابة تنسيق CSS. استخدام مقاطع شيفرة (أو قصاصات برمجية) Code Snippets: تستخدم العديد من التقنيات هيكلية متشابهة عند كتابة مستنداتها كما تلاحظ عند كتابة مستندات HTML. لذلك عند استخدامك لمقاطع شيفرة جاهزة سيوفر عليك عناء إعادة كتابتها مرة تلو الأخرى. تدعم معظم محررات النصوص حاليًا تلوين العبارات البرمجية، ولا تدعم بالضرورة الميزتين الباقيتين. لذلك تأكد قبل كل شيء من دعم المتصفح الذي ستعتمده ميزة تلوين العبارات البرمجية لكل من HTML وCSS وجافا سكربت. الميزات الأساسية التي تتوقع أن تجدها في محرر النصوص يعتمد ذلك على احتياجاتك ومخططاتك. إليك بعض الميزات الوظيفية التي تساعدك غالبًا في عملك: البحث والاستبدال في مستند أو أكثر اعتمادًا على التعابير النمطية Regular Expressions أو غيرها من العبارات التي تحتاجها. الانتقال السريع إلى سطر محدد. عرض قسمين من ملف طويل معًا. عرض شيفرة HTML التي تكتبها كما ستظهر على المتصفح. اختيار عدة أسطر من أماكن مختلفة معًا. إظهار مجلدات مشروعك وما تحويه من ملفات. التنسيق التلقائي لشيفراتك باستخدام محسنات مظهر الشيفرة Code Beautifier. التدقيق الإملائي. الإزاحة التلقائية للشيفرة وفقًا لإعدادات الإزاحة. إمكانية إضافة ميزات إضافية إلى المحرر تأتي بعض المحررات القابلة للتوسيع مع عدد قليل من الميزات المدمجة، ويمكن توسيع إمكاناتها بميزات إضافية وفقًا لاحتياجاتك. إن لم تكن متأكدًا من المميزات التي تحتاجها أو افتقر محررك لهذه المميزات، عليك البحث عن محرر قابل للتوسع. وأفضل المحررات هي التي تزودك بالعديد من الإضافات وتقدم لك طريقة للبحث عن هذه الإضافات وتثبيتها تلقائيًا (نتكلم عن محرر مثالي هنا). إن رغبت باستخدام الكثير من الميزات الوظيفية التي أبطأت محررك نظرًا لزيادة الإضافات التي ثبّتها، جرّب استخدام بيئة تطوير متكاملة Integrated Development Environment واختصارًا IDE. تؤمن لك هذه البيئات الكثير من الأدوات ضمن واجهة واحدة، وعلى الرغم من صعوبتها على المبتدئين تبقى خيارًا قائمًا إن شعرت أن محررك محدود القدرة. إليك بعض بيئات العمل المتكاملة: Aptana Studio. Eclipse. Komodo IDE. NetBeans IDE. Visual Studio. WebStorm. الحاجة إلى الدعم أو المساعدة أثناء استخدام المحرر من الجيد أن تعلم إن كنت ستتلقى مساعدة أو دعمًا عندما تستخدم برنامجًا معينًا. تحقق من أمرين اثنين عندما يتعلق الأمر بمحرر النصوص: المحتوى الموجه للمستخدم (الأسئلة الأكثر شيوعًا ودليل المستخدم والمساعدة المباشرة عبر الإنترنت). النقاشات مع المطورين ومستخدمين آخرين (المنتديات والبريد الإلكتروني ومحادثات عبر الإنترنت IRC). استخدم التوثيق المكتوب عندما ترغب في تعلم استخدام محرر النصوص، وتواصل مع الآخرين إن واجهت مشاكل في تثبيت البرنامج أو أثناء استخدامه. أهمية مظهر المحرر وتجربة استخدامه بالرغم من أن الأمر مجرد تفضيلات شخصية إلّا أنه يمكن أن يرغب البعض في تخصيص كل تفصيل في واجهة المستخدم ابتداءً بالألوان وانتهاءً بمواقع الأزرار. تتنوع المحررات النصية تبعًا لهذا المنظور، لذا تحقق من ذلك أولًا. لن تجد صعوبة في إيجاد محرر نصوص يغير سماته اللونية، لكن إن أردت تفاصيلًا أكثر خصوصية لن تجد مفرًا من استخدام IDE. تثبيت المحرر وإعداده للعمل لن تجد أي تعقيدات في تثبيت محرر النصوص، لكن طريقة التثبيت ستختلف من منصة لأخرى، ولا ينبغي أن تكون صعبة إطلاقًا: ويندوز: ستجد ملف التثبيت بإحدى اللاحقتين exe. أو msi. ويأتي البرنامج مضغوط ضمن أرشيف مثل zip. أو 7z أو rar.، وعليك في هذه الحالة تثبيت برنامج إضافي لاستخراج البرنامج من الأرشيف المضغوط. يدعم ويندوز zip. افتراضيًا، فلا حاجة لتثبيت أية برامج إضافية. ماك: يمكنك تنزيل ملف التثبيت ذو اللاحقة dmg. من موقع الويب الخاص بالمحرر، كما ستجد الكثير من المحررات النصية ضمن متجر آبل مما يسهِّل عملية التثبيت. لينوكس: بإمكانك الانطلاق من الواجهة الرسومية لبرنامج مدير الحزم Packet Manager في التوزيعات الأكثر شعبية من لينوكس مثل Ubuntu Software Center أو Mintinstall أو Gnome Software وغيرها من البرامج. ستجد أيضًا ملفًا لاحقته deb. أو rpm. للبرنامج في مرحلة ما قبل التجميع أو الحزم Prepackaging، لكنك ستستخدم في غالب الأحيان خادم المستودعات Repository Server الخاص بالتوزيعة التي تعمل عليها، أما الحالة الأسوء فهي ترجمة الملفات المصدرية للمحرر ليعمل على توزيعتك. خذ وقتك في قراءة تعليمات التثبيت التي يوفرها موقع ويب الخاص بالمحرر. يستمر نظام التشغيل في فتح الملفات النصية باستخدام محرر النصوص الافتراضي حتى تغير ارتباط الملف File Association. ويعني ذلك تحديد المحرر المفضل الذي يستخدمه نظام التشغيل في فتح الملف النصوص عند النقر المضاعف عليه. بعد أن تُثبت المحرر النصوص الذي يلبي احتياجاتك، لا بدّ من وضع اللمسات الأخير على بيئتك الأساسية لتطوير مواقع ويب، أو يمكنك أن تكتب بنفسك شيفرة أول صفحة ويب إن أردت استخدام بيئة عملك مباشرة. ترجمة -وبتصرف- للمقال What text editors are available. اقرأ أيضًا ما هو عنوان URL في الويب؟ ما التكلفة المادية الكاملة لبناء موقع ويب؟ مفهوم الروابط التشعبية في مواقع الويب1 نقطة
-
حاول إضافة plugins تحوي على اسم الحزمة الخاصة بتطبيقك مع إصداره ثم جرب أضفت مثال لشيفرة ملفك // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:4.2.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } plugins { id "com.comp.appName" version "8.4.1" } allprojects { repositories { google() mavenCentral() jcenter() // Warning: this repository is going to shut down soon } } task clean(type: Delete) { delete rootProject.buildDir }1 نقطة
-
احذف عبارة إنشاء قاعدة البيانات من الاستعلام CREATE DATABASE Organization_Manager; فهي غير ضرورية هنا، نحن نقوم بإنشاء القاعدة لمرة واحدة فقط، أي هنا فقط عليك وضع تعليمة Use لتحديد أي قاعدة تحتاج الاتصال بها.1 نقطة
-
هل حاولت وضع اسم آخر؟ مثلاً Organization_Manager123 جرب إن لم تحذف القاعدة من SQL SERER (أي حذفت الملفات الخاصة بها) فهذا خطأ لأن معلومات القاعدة ستبقى موجودة في بيانات SQL SERVER يمكن أنه من برنامج آخر تم إنشاء نقس اسم القاعدة و تم عملها ك VDB مثل اكليبس أو غيره تأكد مما قمت به1 نقطة