اذهب إلى المحتوى

لوحة المتصدرين

  1. Ahmed Sadek Elamine Touahria

    • نقاط

      3

    • المساهمات

      510


  2. Flutter Dev

    Flutter Dev

    الأعضاء


    • نقاط

      3

    • المساهمات

      787


  3. علي عبد محسن

    علي عبد محسن

    الأعضاء


    • نقاط

      2

    • المساهمات

      651


  4. Adnane Kadri

    Adnane Kadri

    الأعضاء


    • نقاط

      2

    • المساهمات

      5196


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 09/26/22 في كل الموقع

  1. مرحبا، هل يوجد طريقة لحظر زوار دولة ما من تصفح موقعك،أعلم أنه يمكن فعل ذلك من خلال ip, لكن ماذا إن كان يستخدم vpn هل يوجد أي طريقة لمعرفة ip الحقيقي؟ استخدم إطار العمل Laravel.
    1 نقطة
  2. السلام عليكم, اولا رفعت الموقع على جيتهب وربطته بheroku بعدها كل شيء يعمل إلا التنسيقات والجافاسكريبت
    1 نقطة
  3. تحيه طيبه للجميع استخدم ListView.builder لعرض مجموعة من القوائم التي احصل عليها من قاعدة البيانات لدي سؤال حول ListView.builder / لو صار عدد المنتجات في قاعدة بياناتي يتجاوز 1000 منتج او 10000 منتج هل ListView.builder قادرة على تحميل هذا البيانات بكل كفاه بشكل الطبيعي ؟ ام انا محتاج الى فعل امر ما؟ هل سيتوقف التطبيق او يعمل كراش لو قمت بفتح صفحة يتم عرض ListView.builder فيها مع عدد منتجات كبير يتجاوز ال 1000 منتج ؟ شكرا للجميع
    1 نقطة
  4. كل الشكر لك اخي الكريم اذن لا توجد مشكلة لو لم استعمل نظام lazy loading ؟
    1 نقطة
  5. نعم أنت بحاجة إلى مصدر بيانات لا يهم هل api او sqlite ..... على سبيل المثال ، قد يكون مصدر البيانات الخاص بك عبارة عن قائمة من الرسائل أو نتائج البحث أو المنتجات في متجر. في معظم الأحيان ، تأتي هذه البيانات من الإنترنت أو من قاعدة بيانات.
    1 نقطة
  6. نعم ، Listview.builder في الفلاتر معمولة من أجل البيانات الكبيرة فهي تعمل على مبدأ العرض المناسب في كل مرة ، معناه أنو مثلا عملت إستعلام للبيانات حجمها 10000 أو أكثر فهنا Listview.builder تقوم ببناء عرض البيانات 50 الأولى لما المستخدم يعمل scroll مثلا أو اي event تختفي 50 البيانات الأولى ويتم بناء 50 البيانات الثانية وهكذا .. الفرق الرئيسي بين ListView و ListView.builder يتطلب مُنشئ ListView منا إنشاء جميع العناصر مرة واحدة. يعد هذا أمرًا جيدًا عندما تكون عناصر القائمة أقل وستظهر جميعها على الشاشة ، ولكن إذا لم يكن الأمر كذلك بالنسبة لعناصر القائمة الطويلة ، فهذا ليس ممارسة جيدة. بينما سيقوم مُنشئ ListView.Builder بإنشاء عناصر أثناء تمريرها على الشاشة مثل عند الطلب. هذه هي أفضل ممارسة لتطوير عنصر واجهة مستخدم القائمة حيث لن يتم عرض العناصر إلا عند ظهور العناصر على الشاشة.
    1 نقطة
  7. اهلا اخي الكريم اشكرك على افادتك اول شيء حقيقه انا كنت ارغب باستعمال التحميل المتقطع ولكن مريت على هذا الصفحة ثم قريت ان listview.builder لا تقوم بتحميل البيانات دفعة واحدة حتى لو كانت القائمة تحتوي على 10 الألاف منتج ياليت لو لديك وقت تمر على هذا الرابط قد أكون انا فهمت الامر بشكل خاطئ https://docs.flutter.dev/cookbook/lists/long-lists
    1 نقطة
  8. للتعامل مع كمية كبيرة من البيانات لا يمكن تحميلها دفعة واحدة من قاعدة البيانات لأن ذلك يتسبب بمشكلة في الأداء على طرف الواجهة الخلفية backend وكذلك أستهلاك الواجهة الأمامية frontend للذاكرة وربما حصول crash. لحل هذه المشكلة تستطيع إستعمال مفهوم pagination أي تقسيم البيانات الى أجزاء محسوبة في الbackend يمكن إسقاطها الى صفحات في frontend تعرض جزء معين في كل مرة يغير فيها المستخدم رقم الصفحة وتتم البرمجة لهذه الخاصية في كلا الواجهتين لتعمل بتناغم. يمكنك أيضاً إستعمال شيء مشابه يدعى lazy loading وهي خاصية من النوع asynchronous أي لا تزامنية تتم عن طريق ajax وهي شائعة الإستخدام في تطبيقات الموبايل يتم فيها التحميل المزيد من البيانات في كل مرة يضغط في المستخدم مثلاً على جملة تحميل المزيد أو ماشابه. هذا الكلام ينطبق على تطبيقات flutter مثل غيره ويمكنك البحث على google عن كيفية تنفيذ أي من الطريقتين أعلاه.
    1 نقطة
  9. السلام عليكم أريد رفع موقع علي netlify الموقع أنشا باستخدام npm , webpack5 عند رفع الملف كاملا الموقع لايعمل وعند رفع ملف dist فقط أيضا لايعمل ما الحل؟ شكرا
    1 نقطة
  10. أريد الحصول على ip من المستخدم عند دخوله إلى الموقع
    1 نقطة
  11. أولا ip هو معرّف فريد يُستخدم لإرسال واستقبال البيانات من الإنترنت على أجهزتنا. سنقوم بعمل وظيفتين من شأنها مساعدتنا في الحصول على عنوان IP الخاص بالمستخدم. حدد دالتين في views.py والتي ستخزن عنوان IP وإظهاره كمخرج. from django.shortcuts import render def get_ip_address(request): user_ip_address = request.META.get('HTTP_X_FORWARDED_FOR')#نستخدم الإستعلام ميتا للحصول على تصريح if user_ip_address: ip = user_ip_address.split(',')[0] # ثم نفصل الأيبي عن باقي البيانات else: ip = request.META.get('REMOTE_ADDR') return ip # ثم نظهرها في الواجهة def show_ip_address(request): user_ip = get_ip_address(request) return render(request, "output.html", {"user_ip":user_ip}) تأكد من تكوين الخادم reverse proxy (إن وجد) بشكل صحيح (على سبيل المثال ، تم تثبيت mod_rpaf على Apache سيرفر). أو يمكنك تثبيت حزمة جاهزة للقيام بهذا الشيء مثل django-ipware عبر الأمر التالي pip install django-ipware ثم في ملف views.py from ipware import get_client_ip ip, is_routable = get_client_ip(request)#جلب الأيبي بسطر واحد
    1 نقطة
  12. سلام عليكم let dateToday= $("#dateToday").val() ; الكود ده بجيب بيه لي التاريخ الموجود في input text يسمى dateToday بتتطبع كده 2022-09-26 عاوز بقا ازود مثلا يوم على اليوم ده بكتب الكود كده let dateToday= $("#dateToday").val() + 1 ; الناتج بيطلع لي كده 2022-09-261 انا عاوزه يطبعلي 2022-09-27 ازاي اعملها؟
    1 نقطة
  13. جرب الكود التالي : let dateToday= $("#dateToday").val() // date نحوله للنوع const date = new Date(dateToday); // نقوم باستخراج الايام const days = date.getUTCDate() + 1; // setDate نقوم بإضافة الايام التي نريدها باستخدام الوظيفة date.setDate(days + 6); // نحول التاريخ لنص مرة ثانية const newDate = date.toISOString(); // ****-***-**T****:**.***Z // نقص الجزء الاول من التاريخ حتى يصبح بالشكل الذي تريده console.log(newDate.slice(0, 10)); // ****-***-**
    1 نقطة
  14. السلام عليكم عامل حسابين علي github لرفع أكثر من موقع وانا بعمل ال repository بيظهرلي ال error ده remote: Permission to ArabiEcommerce/AE-commerce.git denied to 86AhmedSoliman. fatal: unable to access 'https://github.com/ArabiEcommerce/AE-commerce.git/': The requested URL returned error: 403
    1 نقطة
  15. من غير المنطقي ان لا تكون هنالك مشكلة ما، هلا أعدت مراجعة طريقة رفعك للمشروع على الاستضافة: سنستعين بـ github في هذا. أضف موقعا جديدا عبر الدخول الى لوحة التحكم الخاصة بك على netlify والضغط على new site from git من قسم continuions deployment اضغط على Github قم بإعطاء الاذن لـ netlify بالوصول الى github قم بتحديد المستودع الخاص بك بما في ذلك الأمر الذي تقوم به بتشغيل خادم webpack ومجلد dist في قسم public directory أكد الرفع deploy site ان كنت قد واجهة مشكلة باحدى هاته الخطوات يرجى الاشارة.
    1 نقطة
  16. لا أظن ان المشكلة في vite فهو لا يهتم الا بتحزيم ملفات الأصول واخراجها. المشكلة في الغالب بسبب استعمال بروتوكول Https لطلب هاته الملفات. يفترض ان لا تجد اي مشكلة بخصوص طلب هاته الملفات او الصفحة ككل باستخدام http. فبدل التصفح الى: https://website.com/ قم بالتصفح الى: http://website.com/ او قم بجبر الطلب باستخدام https، بملف AppServiceProvider.php قم باضافة السطر: if ($this->app->environment('production')) { URL::forceScheme('https'); } الى التابع boot من هذا الملف. طبعا لا تنسى تضمين الواجهة URL: use \Illuminate\Support\Facades\URL;
    1 نقطة
  17. حاول عمل بناء لملفات الأصول من خلال تنفيذ الأمر: npm run build سيتم بناء الملفات بداخل public/build. تأكد من رفع تلك الملفات إلى مستودع github أعتقد أنك ستجد ذلك المجلد مستثنى من التتبع من خلال ملف gitignore. ثم قم بعملية deploy مجددا من حسابك Heroku
    1 نقطة
  18. الإصدار 1.0.0

    4344 تنزيل

    تُعَد وظائف تحسين المواقع لمحركات البحث أو متخصص سيو SEO واحدةً من أكثر المهن المطلوبة من قبل أصحاب المواقع والمتاجر الإلكترونية في وقتنا الحالي إذ لا نفع من أي موقع أو محتوى منشور على الإنترنت ما لم يصل إلى الجمهور المخصص له وهو مثل أداة أو مكتبة منشأة في مكان ما لا يعرف أحد كيفية الوصول إليها على عظم النفع فيها، ولمَّا كان الاعتماد على محركات البحث اعتمادًا رئيسيًا بل أحيانًا كليًا للبحث عن محتوى والوصول إليه، فكان لزامًا على كل صاحب محتوى أو موقع أو تطبيق ويب موجود على الإنترنت أن يهتم بهذه النقطة اهتمامًا كبيرًا ليتأكد من ظهور محتواه في نتائج البحث بل وحتى المنافسة على أعلى مرتبة عندما يبحث أحد عن المحتوى ذاك أو ما يتعلق به. تحسين محركات البحث Search Engine Optimization ويختصر إلى سيو SEO هو تعبير مجازي شائع إذ في الحقيقة لا يمكن تحسين محركات البحث أو التعديل عليها، بل يُقصد من ذاك التعبير ممارسات وعمليات تجرى بهدف تحسين ظهور موقعك ضمن نتائج محركات البحث في أعلى النتائج، فهل ترى كم الجملة طويل لذا جاء ذلك الاختصار! ودرج حتى استعمال كلمة سيو -تعريب الاختصار الأجنبي SEO- للإشارة إلى ذلك التعبير المختصر أصلًا وهو ما سنستعمله ضمن الكتاب. يُعد هذا الكتاب مدخلًا شاملًا إلى مجال تحسين محركات البحث أو السيو SEO وممارساتها وأدواتها، بهدف تعلم كيف تُحسِّن من ظهور موقعك عبر محركات البحث، إلى جانب زيادة معدل زياراته الشهرية بنسب جيدة، وسيركز الكتاب بالإضافة إلى ذلك على سرد أفضل الممارسات الشائعة طيلة رحلتك في إضافة المحتوى لموقعك وبناءه حتى يواصل تصدره في نتائج البحث فقد لا يكون هنالك ممارسات ثابتة على فترة طويلة من الزمن نتيجة تغير خوارزميات محركات البحث في عرض النتائج التي تحارب باستمرار الخداع والغش لتجنب تصدر نتائج لا تستحق أن تصل إلى صدارة نتائج البحث. عَمِل على الكتاب متخصص سيو -المؤلف علي القاسم- وقد أفاد وأجاد من خبرته الطويلة في هذا المجال كما اعتمدنا على سلسلة The Beginner's Guide to SEO الشهيرة من موقع MOZ والذي يقدم أشهر الأدوات المستعملة في تخصص السيو، فتلك السلسلة معتمدة أيضًا على خبرة عميقة في المجال، ولم نقتصر على ذلك، بل استشرنا في السلسلة فريق التسويق التابع لشركة حسوب وأخذنا منهم نصائح وملاحظات قيمة وأضفناها في الكتاب، وكل ذلك يضفي قيمةً كبيرةً على الكتاب. أخيرًا وليس آخرًا، حاولنا جعل الكتاب دليلًا شاملًا وفي الوقت نفسه مختصرًا فخير الكلام ما قل ودل ليأخذ بيدك إلى تعلم تخصص السيو وتحسين محركات البحث ويضعك على بداية الطريق لتدخل هذا المجال وتحصل على فرصة عمل أو تُحسن من مهاراتك وترتقي بنفسك إن كنت متخصصًا في السيو. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات مجموعة ضمن وسم «تحسين محركات البحث 101» وتجد روابطها تاليًا: تحسين محركات البحث SEO وأهميتها لموقعك الإلكتروني كيفية عمل محركات البحث وترتيب جوجل لصفحات الموقع الإلكتروني اختيار الكلمات المفتاحية المناسبة لموقعك الإلكتروني تهيئة الموقع داخليا لمحركات البحث On Page SEO ما هو السيو التقني Technical Seo وأهميته للموقع الإلكتروني بناء الروابط الخلفية للموقع وتحسين موثوقيته من ناحية السيو مؤشرات أداء السيو: بارامترات قياس تحسين محركات البحث لموقعك وتتبع أدائه أداة مشرفي المواقع من جوجل Google Search Console
    1 نقطة
  19. السلام عليكم، هناك نوعين من المواقع الإلكترونية: موقع ثابت أو static website: و هو أي موقع يتميز بواجهته الثابتة التي لا تتغير مهما دخلت إليه من حواسيب مختلفة، مثال: أي صفحات ويب عادية تحتوي فقط على Front-End. موقع ديناميكي أو dynamic website: و هو أي موقع تتغير واجهته على حسب الحاسوب أو الجهاز أو الحساب الذي دخلت به، مثال: كل مواقع التواصل الاجتماعي (لاحتواءها على قسم الback-end في موقعها)... و من هنا نستنتج أنه لكي تنشأ موقعا ديناميكيا فعليك تعلم قسمين أساسين و اللذان هما: Front-End: وهي واجهة المستخدم أي كل ما يتعلق بالألوان و الأشكال و الكتابة التي يراها المستخدم عند زيارة أي موقع، و هذا القسم ينشأ باستخدام ثلاث لغات أساسية: Html, CSS, Javascript مع بعض التقنيات و المكتبات التي تسهله. Back-End: و هو القسم المسؤول عن توليد أكواد Front-End بطريقة دينامكية و متغيرة على حسب المستخدم أي مثلا عندما يدخل X موقع instagram.com فلن يرى نفس المحتوى الذي سيراه Y إذا دخل نفس الموقع، هذه هي وظيفة الباك إند و التي تطبق باستعمال لغات كثيرة منها php أو مكتبة nodejs الخاصة بلغة Javascript. ملحوظة: لا يمكن لأي أحد تعلم الbackend مباشرة دون تعلم أساسيات القسم الأول. و هناك قسم آخر بعد الباك إند و هو databases أي قواعد البيانات.
    1 نقطة
  20. يُعرَف نمط التصميم Design Pattern في هندسة البرمجيات بأنه حل عام قابل للتكرار لمشكلة متكررة الحدوث في تصميم البرمجيات. نمط التصميم ليس نموذجا نهائيا يمكن تحويله إلى تعليمات برمجية مباشرة؛ بل هو توصيف أو قالب لكيفية حل المشكلة، يمكن استخدامه في العديد من الحالات المختلفة. استخدام أنماط التصميم يمكن لأنماط التصميم أن تسرّع عملية التطوير عن طريق توفير تصوّرات Paradigms أثبتت جدواها بعد اختبارها مرات كثيرة. يتطلب التصميم البرمجي الفعال أن نأخذ بعين الاعتبار المشاكل التي قد لا تظهر إلا لاحقا عند التنفيذ. تساعد إعادة استخدام أنماط التصميم في منع الأمور الدقيقة من التسبب بمشاكل كبيرة، كما تحسّن من القدرة على قراءة التعليمات البرمجية للمبرمجين والمعماريين Architects الذين هم على دراية بهذه الأنماط. يدرك الناس، في كثير من الأحيان، كيفية تطبيق تقنيات تصميم معينة لحل مشاكل بعينها فقط. لكن هذه التقنيات تكون صعبة التطبيق على نطاق أوسع من المشاكل. توفر أنماط التصميم حلولا عامة موثقة في تنسيق، لا يتطلب تفاصيل مرتبطة بمشكلة معينة. بالإضافة لذلك، تسمح هذه الأنماط للمطورين بالتواصل باستخدام أسماء معروفة ومفهومة جيدا للتفاعلات البرمجيّة software interactions. يمكن تحسين أنماط التصميم الشائعة مع مرور الوقت، الأمر الذي يجعلها أكثر قوة من التصاميم المخصصة. أنماط التصميم الإنشائية Creational design patterns تعنى نماذج التصميم هذه باستهلال الأصناف Class instantiation. يمكن تقسيم هذه النوعيّة من النماذج إلى فئتيْن: نماذج لإنشاء الأصناف ونماذج لإنشاء الكائنات. في حين تستخدم نماذج إنشاء الفئات التوريث Inheritance بفعالية في عملية التكوين، فإن نماذج إنشاء الكائنات تستخدم التفويض Delegation بفعالية لإنجاز العمل. من أمثلة أنماط التصميم الإنشائية: نمط معمل التجريد Abstract Factory: يخلق عينة Instance لعدة عائلات من الأصناف. نمط الباني Builder: يقوم بفصل عملية بناء الكائن Object Construction عن عملية تمثيله Representation. نمط طريقة المعمل Factory Method: يخلق عينة لعدة أصناف مشتقة Derived classes. أنماط التصميم الهيكلية Structural design patterns تعنى أنماط التصميم هذه بتركيب Composition الكائنات والأصناف. تستخدم الأنماطُ الهيكليّة لإنشاء الأصناف التوريثَ Inheritance لتركيب واجهات Interfaces، أما الأنماطُ الهيكليّة لإنشاء الكائنات فتعرّف طرقا لتكوين الكائنات بهدف الحصول على وظائف جديدة. من أمثلة هذه الأنماط: نمط المحول Adapter: يربط الواجهات Interfaces بأصناف مختلفة. نمط الجسر Bridge: يفصل واجهة الكائن عن تطبيقه Implementation. نمط المظهر Facade: صنف مفرد يمثل نظاما فرعيا Subsystem كاملا. نمط بيانات الصنف الخاصة Private Class Data: يقيد وصول المسترجعات Accessors والمعدّلات Mutators إلى خاصيّات الصنف. أنماط التصميم السلوكية Behavioral design patterns تعنى أنماط التصميم هذه بالتواصل Communication بين كائنات الأصناف. النماذج السلوكية هي تلك النماذج التي تهتم على وجه الخصوص بالتواصل بين الكائنات، ومن بينها: نمط سلسلة المسؤوليات Chain of Responsibility: طريقة لتمرير الطلب Request بين سلسلة من الكائنات. نمط السيطرة Command: يقوم بتغليف Encapsulate الطلب على هيئة كائن. نمط المفسّر Interpreter: طريقة لتضمين عناصر اللغة في البرنامج. نمط المكرّر Iterator: يؤمن وصولا تسلسليا للعناصر في مجموعة ما. نموذج الوسيط Mediator النقد انتقد بعض العاملين في مجال علوم الحاسب مفهوم أنماط التصميم وأبدوا اعتراضاتٍ عليه نجملها في ما يلي. يستهدف المشكلة الخاطئة تظهر الحاجة إلى الأنماط عند استخدام لغات البرمجة أو التقنيات التي لا تملك قدرة تجريد Abstraction كافية. في الحالة المثالية، لا ينبغي نسخ مفهوم ما بل تجدر الإشارة إليه. ولكن عند الإشارة إلى شيء ما بدل نسخه فلن يكون هناك نمط لتسميته أو الدلالة عليه، وهذا ما كتبه بول غراهام Paul Graham في مقال بعنوان “انتقام المهووسين Revenge of the Nerds “. يقدم بيتر نورفيغ Peter Norvig نقاشا مشابها، حيث يوضح أن 16 نمطا من أصل 23 في كتاب أنماط التصميم (الذي يركز بشكل أساسي على ++C ) بُسِّطت أو ألغيت (عن طريق دعم اللغة المباشر لها) في كل من لغتي Lisp و Dylan. يفتقر إلى الأسس الرسمية لقد كانت دراسة أنماط التصميم متخصّصة جدا، وقد جادل البعض في الحاجة الملحة لوضع هذا المفهوم في إطار أكثر رسمية. في مؤتمر OOPSLA (البرمجة كائنيّة التوجّه: الأنظمة، اللغات والتطبيقات) عام 1999، خضعت عصابة الأربعة Gang of Four (بتعاونهم الكامل) إلى محاكمة علنية، اتهموا فيها بعدة جرائم تمس علوم الحاسب. وقد تمت إدانتهم من قبل ثلثي المحلفين الذين حضروا المحاكمة. ملحوظة: غالبا ما يُشار إلى مؤلّفي كتاب Design Patterns: Elements of Reusable Object-Oriented Software (أنماط التصميم: مكوّنات من البرامج كائنيّة التوجّه القابلة لإعادة الاستخدام) الذي روّج لأنماط التصميم، غالبا ما يُشار إليهم باسم “عصابة الأربعة”. يقود إلى حلول غير فعالة إن فكرة نمط التصميم ما هي إلا محاولة لتقييس Standardize ما يعتبر سلفا مقبولا كأفضل ممارسة. قد يبدو هذا الأمر مفيدا من الجانب النظري، لكنه في الجانب العملي غالبا ما يؤدي إلى تكرار غير ضروري للتعليمات البرمجية. وبالتالي يكون الحل الأكثر فعالية هو استخدام تطبيق مصمم جيدا عوضا عن نمط تصميم بالكاد يعتبر جيدا. لا يختلف كثيرا عن التجريدات الأخرى يزعم بعض المؤلفين أن أنماط التصميم لا تختلف كثيرا عن أشكال التجريد الأخرى، وبأن استخدام مصطلح جديد (استعير من مجتمع العمارة) لوصف ظاهرة موجودة سابقا في مجال البرمجة يعتبر أمرا غير ضروري. تعدّ بنية بنية MVC ( “نموذج – عرض – متحكم”، “Model – View – Controller”) مثالا عن “نمط” يسبق مفهوم أنماط التصميم بعدة سنوات. ويجادل البعض بأن أول مساهمة في مجتمع أنماط التصميم (وكتاب عصابة الأربعة) هو استخدام كتاب A pattern language (لغة نمط) طريقةً للتوثيق Documentation؛ وهي ممارسة غالبا ما يتجاهلها المختصّون عند عرضهم لأصول مفهوم أنماط التصميم. ترجمة - بتصرّف - لمقال Design Patterns لأصحابه Alexander Shvets, Gerhard Frey, Marina Pavlova. حقوق الصورة البارزة محفوظة لـ Freepik
    1 نقطة
×
×
  • أضف...