لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/25/21 في كل الموقع
-
ليس هناك وقت محدد لإنهاء لغة أو تقنية ما، فالأمر يعتمد عليك وعلى مقدار المجهود المبذول، لكن إن أخذنا المتوسط في الحسبان فأعتقد أن ستحتاج إلى ما بين شهر إلى 3 أشهر (الوقت هنا نسبي للغاية ويختلف من شخص لآخر بفارق كبير). لكن برأي هناك أشياء أهم للتركيز عليها أكثر: لا تهم أبدًا المدة التي تقضيها في تعلم لغة أو تقنية معينة. لا تقارن نفسك بغيرك، كل منا له ظروفه الخاصة والتي تختلف من شخص لآخر. هنا أنت أشرت إلى عدد من النقاط مهمة للغاية، وهم: عدم الإستعجال والتسرع، والتمهل في فهم الأساسيات جيدًا قبل التقدم في الدورة. التطبيق العملي على ما تتعلمه من الدورة، وهذا شيء أساسي لا مفر منه، فمجرد مشاهدة الفيديوهات وفهمها لن يجعل منك محترفًا وفي الغالب ستنسى ما تعلمته في بداية الدورة عند الوصول إلى نهايتها، لذلك يجب عليك التطبيق العملي وراء المدرب وتجربة كل الإحتمالات التي تخطر على بالك أثناء التطبيق العملي. هذا سيساعدك على أتقان ما تتعلمه بشكل صحيح. التدريب بشكل يومي أمر مهم أيضًا، حيث أن عدد الفيديوهات في الدورة كبير وعليك أن تبذل كل ما بوسعك لفهم كل ما تحتويه الدورة، فمجرد مشاهدة فيديو واحد أو اثنان كل عدة أيام لن يساعدك على إنجاز مهمتك أو فهم محتوى الدورة بشكل جيد. لاحظ أن كل النقاط والنصائح السابقة عبارة عن نصائح عامة يمكن تطبيقها على كل دورة أو تقنية تحاول تعلمها، لذلك حاول أن تطبقها أثناء مرحلة التعلم الخاصة بك. بالتوفيق، تحياتي.3 نقاط
-
أولاً لا أحد يستطيع الإجابة على هذا السؤال بشكل دقيق حيث يعتمد هذا السؤال على العديد من المتغيرات مثل الوقت المخصص كل يوم للتعلم الخبرة البرمجية لديك فهل لديك خبرة في البرمجة وهل لديك خبرة عن ال backend عموماً مدى إستيعابك للشرح فتختلف لعدة عوامل أيضاً ولكن سأعطيك فترة تقريبية ربما تزيد أو تنقص وسأفترض أن ليس لديك أي خبرة برمجية بإستثناء المتطلبات لهذه الدورة وأيضاً التعلم يومياً ل 3 ساعات تقريباً يمكنك إنهاء هذه الدورة فيما لا يقل عن الشهر (وربما تزيد أو تنقص) وذلك للخروج بأكثر إستفادة من الدورة لذلك الخلاصة هي أنك لا تشغل بالك بهذا السؤال أبداً واعمل على الخروج بأكثر قدر من الإستفادة2 نقاط
-
سيكون عليك إنشاء مفتاح للتوقيع على apk. استخدمي الأمر أدناه لإنشاء مفتاحك: keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000 بمجرد إنشاء المفتاح ، استخدميه لإنشاء البنية القابلة للتثبيت: react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ إنشاء البناء باستخدام Gradle cd android && ./gradlew assembleRelease بعد ذلك قومي بتحميل APK على هاتفك. ستحل العلامة -r محل التطبيق الحالي (إن وجد) adb install -r ./app/build/outputs/apk/app-release-unsigned.apk وستجدين أيضا ملف APK الخاص بالتطبيق في مجلد /android/app/build/outputs/apk/release يمكنك بعد ذلك إرساله إلى إلى شخصٍ ما ليتمكن من اختباره،2 نقاط
-
لدي ال Flatlist التالية، و أريد أن أقوم بتحديثها "عمل re-render أو update" عندما يضغط المستخدم على الزر. الأكواد: renderEntries({ item, index }) { return( <TouchableHighlight onPress={()=> this.setState({value: this.state.data[index].value+1})> <Text>{this.state.data[index].value}</Text> </TouchableHighlight> ) } <FlatList ref={(ref) => { this.list = ref; }} keyExtractor={(item) => item.entry.entryId} data={this.state.data} renderItem={this.renderEntries.bind(this)} horizontal={false} />1 نقطة
-
1 نقطة
-
1 نقطة
-
1 نقطة
-
مساء الخير الوقت اللازم لاتقان دورة php بدون استعجال مع التطبيق على التدريب اللي فيها يومياً قد ايه1 نقطة
-
صناعة اللعبة شئ متقدم قليلا يبنى على معرفة مسبقة ب python ويجب عليك تعلم كل أساسيات اللغة أولا و فهمها بعدها سيسهل أمر انشاء اللعبة1 نقطة
-
حسنا يمكنك البدء في البحث والقراءة عن flutter react native بعدها ستختارين واحد منهما وتتعلمينه و ذلك سيمكنك من صناعة تطبيقات الهاتف. بالتوفيق1 نقطة
-
نصيحتي لك هي أن تتأنى قليلا عن صناعة اللعبة ليوم أو ليومين وتتعلم كيف تصنع بيئة عمل ل python في جهازك الخاص هناك لن تواجهك مشكلة استيراد os والعمل بها والخطوات جد سهلة لصناعة بيئة عمل ل python فقط قم : بتحميل python ثم قم بتحميل محرر نصوص وستكون جاهز لنقل شيفرتك البرمجية لجهازك بدلا من المتصفح1 نقطة
-
حسنا شكرا لك ولكن كيف يمكنني اكمل البرمجة بدون هذه الشيفره؟ انا اريد صنع لعبةFlappy Bird ولكن بلغة بايثون ومن دون استخدام اي مكتبات لانني لم اتعلم استخدام المكتبات.. او اذا كنت سأستخدم مكتبات اخرى هل يمكنك اخباري كيف ستكون البرمجة؟لطفا1 نقطة
-
يحدث هذا الخطأ عند محاولة استخدام وظيفة مدمجة من Python التي لم يتم تنفيذها في هذا الإصدار الموجود في المتصفح من Python. في الوقت الحالي الطريقة الوحيدة لإصلاح هذا هو عدم استخدام الوظيفة أو القيام بتطبيق شيفرتك البرمجية في بيئة تدعم وظيفة os . المكتبة os لا يدعمها اصدار python الذي يشتغل في المتصفح.1 نقطة
-
لا يوجد عدد محدد للآسف وذلك لأن القدرة الإستعابية تختلف من شخص لآخر، فيمكن لي أنا أن أشاهد 10 فيديوهات يوميًا، ويمكن لغيري أن يشاهد 20 فيديو دون أن يتعب. لكن على العموم، يفضل ألا تغلق الدورة قبل أن تنهي مجموعة من الفيديوهات المترابطة معًا، مثلًا حاول أن تنهي كل الفيديوهات التي تتمحور حول الجمل الشرطية Conditional Statements، وذلك لكي لا تقطع حبل أفكارك وأنت تتعلم، وذلك سيفيدك أيضًا حتى تمنع التشتيت عنك، مما يؤدي إلى تحصيل أكبر للمعلومات وإنجاز الدورة بشكل أسرع. لا أنصحك بفعل هذا أبدًا، لأن حجم الفيديوهات قصير للغاية وقد يستغرق الأمر منك أكثر من سنة لفعل ذلك، حيث أن كل فيديو يكون ما بين 3:5 دقائق فقط ويكون مختص بشرح جزئية معينة. والأفضل هو أن تركز على مجموعة مترابطة من الفيديوهات كما ذكرت سابقًا، وستجد أن الأمر سهل لأن الدورة مقسمة ومنظمة بالفعل. بالتوفيق.1 نقطة
-
البرمجة عالم كبير أولا يجب أن تختاري مجال تخصص وعلى أساسه سوف تنحصر اللغات التي يجب عليك تعلمها لتبرعي في المجال وهذه بعض المجالات تطوير الويب تطوير التطبيقات تطوير تطبيقات الحاسوب معالجة البيانات الذكاء الاصطناعي تعليم الألة أما اذا كنتي تريدين البرمجة عموما فلغة python من أفضل اللغات التي يمكنك تعلمها عموما ﻷنها تتميز بسهولتها وأيضا قوتها في تقريبا جميع المجالات1 نقطة
-
بشكل عام يوجد عدة طرق لإنشاء زر، و تختلف حسب الغاية و المكتبة المستخدمة، فمثلا، باستخدام مكتبة Tkinter: import Tkinter # نستدعي المكتبة import tkMessageBox # من اجل انشاء راسالة بقصد التجريب top = Tkinter.Tk() # نقوم بتهئية البيئة def helloCallBack(): tkMessageBox.showinfo( "Hello Python", "Hello World") B = Tkinter.Button(top, text ="Hello", command = helloCallBack) B.pack() top.mainloop() و في حالتك تقوم بوضع الجزء المتعلق باستدعاء اللعبة داخل التابع helloCallBack.1 نقطة
-
مرحبا أنا اواجه مشكلة في استخدام switch statement في ال reducer داخل redux والمشكلة أنني احتاج تعيين متغير جديد داخل كل case لكن أريده بنفس الاسم لأنه لنفس الغرض لكن يجب ان يكون خاص لكل case على حدى const cartReducer = (state = initialState, action) => { switch (action.type) { case QNT_UP: let index; //..... break; case QNT_DOWN: let index; //..... break; default: return state; } }; الحل الذي توصلت له هو تعيين المتغيير خارج ال cartReducer وهكذا سيصبح عام ولكنني أريده كما في الكود في الاعلى لأغراض خاصة بتتمة الشيفرة. شيفرة الswitch في الاعلى كبيرة جدا لذا لم أرفق باقي الشيفرة ليسهل عليكم مساعدتي في معالجة المشكل1 نقطة
-
السبب في عدم مقدرتك على استخدام نفس المتحول هو أن case بشكل افتراضي لا تعرف scope جديد لذلك كل متحول يعرف داخلها هو فعلياً يعرف داخل scope الخاص بالـswitch كونك تستخدم let وليس var. لكن حل مشكلتك أسهل بكثير مما تظن وهو كالتالي: const cartReducer = (state = initialState, action) => { switch (action.type) { case QNT_UP:{ let index; //..... break; } case QNT_DOWN:{ let index; //..... break; } default: return state; } }; بتعريف block جديد أمام case صار لدينا scope جديد مختلف عن scope الخاص بالـswitch وكل case لها scope جديد مختلف اﻵن لذلك ستعمل تعليمة let ولن يحدث خطأ. بالطبع الطريقة السابقة ستعمل فقط باستخدام let أو const وليس var ﻷن المتحولات المعرفة بـvar تنتمي للـscope الخاصة بالتابع الذي يعرف فيه المتحول.1 نقطة
-
شكراً جداً اخي أولا هل يوجد عدد معين للفديوهات التي يجب دراستها يوميا للاستفادة والاستيعاب الجيد من الدورة وعدم الإكثار للتشويه ثانياً إذا تابعت فديو واحد يومياً مع التطبيق للاستفادة القصوى من الدوزة كم من الوقت استغرق لإنهاء الدورة وشكراً كثيراً لك اخي1 نقطة
-
المشكلة رائعة هنا لأنها تفرض علينا مراجعة أساس من أساسيات javascript وهو ال scops ولنسياننا أحيانا لهذا الأساس نفكر داءما في جعل متغيراتنا عامة وهذا هو أيضا اول حل أفكر فيه داءما ايضا لكن يعتبر حل ليس بجيد لذا فلنراجع أساس ال scops ونجد حل . أول مثال يعرض علينا داءما عندما نتطرق الى موضوع ال scops هو المتغير داخل دالة و متغير خارجها هكذا let num = 5 console.log(num)//5 function number(){ let num = 8 return num } console.log(number())//8 ولكن ال scops لا تقتصر فقط على داخل دالة أو خارجها فيمكنك حرفيا انشاء scop فقط ب {} let num = 5 console.log(num)//5 { let num = 8 console.log(num)//8 } في حالتك يمكنك انشاء scope داخل ال case ب {} const cartReducer = (state = initialState, action) => { switch (action.type) { case QNT_UP: { let index; //..... break; } case QNT_DOWN: { let index; //..... break; } default: return state; } };1 نقطة
-
استعمال dangerouslySetInnerHTML خطير جدا وأصلا الكلمة مصممة لافزاع المبرمج عند استخدامها والسؤال هنا لماذا والجواب ببساطة هو ليس في ان تنسيقات الصفحة قد تكون مخربة بل لأن ذلك ال html قد يكون يحمل معه أيضا javascript ويمكنني بسهولة أن ارسل لك كود html يحتوي على عنصر script فيه شيفرة تقرأ كل المداخل في موقعك وعند كل submition ل form سأقوب بطلب post على خادم تابع لي وليس لك وهكذا كل بيانات مستخدمي موقعك ستكون تحت يدي لذا اياك واستخدامها من مصدر خارجي.1 نقطة
-
لقد واجهت مشكلة مماثلة لمشكلتك سابقا لكن بتعقيد أكثر قليلا حيث واجهت تعديل state مماثل لهيكلة هذا { user: { firsname: '', lastname: '' }, cerdentials: { password: '', confirmPassword: '' }, } الحل الأول الذي خطر على بالي هو أن أغير باستعمال دالتين export default function App() { const [info, setInfo] = React.useState({ user: { firsname: '', lastname: '' }, cerdentials: { password: '', confirmPassword: '' }, }); const handleUserChange = (e) => { e.persist(); setInfo((prevState) => ({ ...prevState, user: { ...prevState.user, [e.target.name]: e.target.value, }, })); }; const handleCerdentailsChange = (e) => { e.persist(); setInfo((prevState) => ({ ...prevState, cerdentials: { ...prevState.cerdentials, [e.target.name]: e.target.value, }, })); }; console.log(info); return ( <div> <input onChange={handleUserChange} type="text" name="firstname" /> <input onChange={handleUserChange} type="text" name="lastname" /> <input onChange={handleCerdentailsChange} type="password" name="password" /> <input onChange={handleCerdentailsChange} type="password" name="confirmPassword" /> </div> ); } الحل يعمل لا مشكلة لكنه يفرض عليك أساليب في كتابة الشيفرة منافية لمبادئ البرمجة النظيفة فقررت أن أجد حل أخر وتوصلت الى هذا الحل بدالة واحدة export default function App() { const [info, setInfo] = React.useState({ user: { firsname: '', lastname: '' }, cerdentials: { password: '', confirmPassword: '' }, }); const handleChange = (e, key) => { e.persist(); setInfo((prevState) => ({ ...prevState, [key]: { ...prevState[key], [e.target.name]: e.target.value, }, })); }; console.log(info); return ( <div> <input onChange={(e) => handleChange(e, 'user')} type="text" name="firstname" /> <input onChange={(e) => handleChange(e, 'user')} type="text" name="lastname" /> <input onChange={(e) => handleChange(e, 'cerdentials')} type="password" name="password" /> <input onChange={(e) => handleChange(e, 'cerdentials')} type="password" name="confirmPassword" /> </div> ); }1 نقطة
-
كل الطرق التي ذكرتها سابقا تؤدي نفس الغرض لكن الاختلاف يكمن في كيفية العمل ففي الطريقة الاولي export default class App extends Component { handleClick() {} render() { return ( <div> <h1>title</h1> <Button onClick={this.handleClick.bind(this)}></Button> </div> ); } } نستدعي ال bind داخل ال render وهذا يؤدي الغرض لكن هذا في كل مرة يشتغل فيها المكون سينشأ handler جديد مما سيؤدي الى عمل rerender لل button في الحالة السابقة وهذه نقطة عليك لا لك فيما يتعلق بكفاءة وسرعة عمل التطبيق الخاص بك. الطريقة الثانية وهي الحل للمشكل المذكور سابقا هي القيام بالbinding في ال constructor export default class App extends Component { constructor() { super(); this.handleClick = this.handleClick.bind(this); } handleClick() {} render() { return ( <div> <h1>title</h1> <button onClick={this.handleClick}>button</button> </div> ); } } أما الطريقة الأنظف في رأيي هي استخدام ال arrow function في ال binding export default class App extends Component { constructor() { super(); this.state = { name: 'salah', }; } handleClick = () => { console.log(this.state.name); }; render() { return ( <div> <h1>title</h1> <button onClick={this.handleClick}>button</button> </div> ); } }1 نقطة
-
يمكنك عمل فلترة على النص المطلوب عرضه باستخدام دوال مساعدة مثل: function encodeID(s) { if (s==='') return '_'; return s.replace(/[^a-zA-Z0-9.-]/g, function(match) { return '_'+match[0].charCodeAt(0).toString(16)+'_'; }); } أو: function encodeHTML(s) { return s.replace(/&/g, '&').replace(/</g, '<').replace(/"/g, '"'); } حيث ستعمل على فلترة النص و استبدال أي محارف خاصة قد تسبب مشكلة. حلول إضافية: var ESC_MAP = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; function escapeHTML(s, forAttribute) { return s.replace(forAttribute ? /[&<>'"]/g : /[&<>]/g, function(c) { return ESC_MAP[c]; }); } أو function sanitize(string) { const map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', "/": '/', }; const reg = /[&<>"'/]/ig; return string.replace(reg, (match)=>(map[match])); }1 نقطة
-
يفضل بدلاً من string أن تستعمل الطريقة التالية مباشرةً: const myElement = <div>simple text and <strong>strong text</strong></div>; ما هذا ؟ منذ متى كنا نستطيع إسناد كود JSX إلى متحول؟ تذكر أن كود JSX ما هو في الحقيقة إلا استدعاء تابع من ReactJS والكود أعلاه يترجم إلى التالي: const myElement = React.createElement("div", null, "simple text and ", React.createElement("strong", null, "strong text")); إذاً فكود JSX ما هو إلا expression ويمكن إسناده لمتحول. هكذا نتجنب dangerouslySetInnerHTML والتي سميت بذلك ﻷنها تعرضك لخطر XSS الذي من خلاله قد يهكر شخص ما موقعك ليسرق بيانات مستخدم أو يظهر محتوى يشوه سمعة موقعك وغير ذلك. أما إن كان كود HTML يأتي من دخل المستخدم كما هو الحال في HTML Editors فلا يوجد لديك خيار سوى استعمال dangerouslySetInnerHTML واتخاذ إجرائيات مختلفة للحماية ضد XSS مثل عمليات تحويل على كود HTML قبل عرضه أو غير ذلك من اﻷمور. ملحوظة: بالنسبة للـReact.createElement فهو ينطبق على نسخة ReactJS 16 وما دون، مع ReactJS 17 أصبح اسم التابع مختلفاً ولكن هذا لا يهم لأن الفكرة هي نفسها.1 نقطة
-
يمكنك استخدام dangerouslySetInnerHTML هكذا function createMarkup() { return {__html: '<div>simple text and <strong>strong text</strong></div>'}; } function MyComponent() { return <div dangerouslySetInnerHTML={createMarkup()} />; } ولكن يجب أن تكون متأكد من المصدر الذي تحصل منه على ال html حتى لا تتعرض لاختراق ويمكنك القراءة بالتفصيل من التوثيق الرسمي1 نقطة
-
هل يمكنك أن ترينا كود Component ﻷن الطريقة اﻷخيرة يفترض أن تكون صحيحة؟ بالنسبة للإسناد إلى this.state فلا يجوز ذلك إلا في الباني وأي تعديل على this.state خارج الباني سيتجاهله الـReactJS ولن تعدل الواجهات وفقاً للتغيير. ذلك بأن this.state ليس متحولاً سحرياً بل هو مجرد object فكيف للـReactJS أن يعلم أنك عدلت عليه؟ بالنسبة لسؤال عن تغيير بنية الكائن فلا لا داعي لتغيير بنية الكائن وكما قلت لك الطريقة اﻷخيرة وهي التالية: this.setState({person: {name: 'Ahmed'}}) صحيحة والمشكلة في الغالب في بقية كود Component الذي أرجو منك نشره لنحل المشكلة.1 نقطة
-
الطريقة اﻷصح هي التالية: class ClassComponent extends React.Component{ constructor(){ this.clickHandler = this.clickHandler.bind(this); } // دالة عادية يتم تنفيذها عند الضغط على العنصر p clickHandler(e){ alert('Hello, World!'); } render(){ return <p onClick={this.clickHandler}>Content</p> } } لاحظ أننا نقوم بعمل binding في الباني وليس داخل render، بالنسبة للطرق الثلاثة فاﻷولى ستعمل بشكل صحيح ﻷنها تجنبك خطأ setState on undefined ولكن عمل binding عند كل render سيؤذي اﻷداء لذلك نقوم بها في الباني وليس في render. بالنسبة للطريقتين اﻷخريتين فهما صحيحتان شرط أن تقوم بعمل bind داخل الباني ، من دون bind سيظهر لك خطأ setState on undefined. مع وجود bind في الباني الطريقتان الثانية والثالثة كلاهما صحيحتان وشخصياً أفضل الطريقة الثالثة ﻷنها أقصر وﻷن الطريقة الثانية تنشئ تابع جديد عند كل render أيضاً مما قد يؤذي اﻷداء في بعض الحالات.1 نقطة
-
يمكننا أن نقوم بهذا الأمر باستخدام حلقة while بسيطة #include <bits/stdc++.h> using namespace std; int main () { int N; cin >> N; // ادخل N int newN = 0; while (newN+N <= 500) { newN+=N; } cout << newN << endl; }1 نقطة