[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: أخطاء هل منكم من بلغ عنها؟؟



أن لا تزال تفكر بطريقة مرئية

عندما تفكر يجب أن تفكر بطريقة منطقية لا مرئية

أي لا تنظر إلى الأقواس على أنها قوس أيمن وأيسر

إنها بداية ونهاية

أما ميّزة mirror
فهي لعملية rendering

مشكلتنا أننا لا ندرك النص هو string
سلسلة نصية
أي حبل متسلسل
من رموز يونيكود

عندما تكتب قوس أيمن في ويندوز ثم كلمة ثم قوس أيسر
فإن ما يتم حفظه هو
بداية قوس
ثم الكلمة
ثم نهاية القوس

إذا وضعت كلمة إنجليزية مكان العربية فإنها لن تصبح هكذا
)word(
بل ستظل
(word)

لأنها هكذا محفوظة بداية ونهاية
وليس أيمن وأيسر

يجب أن تتوقف عن التفكير بالطريقة المرئية

إن أكثر ما أكرهه في بعض البرامج هو الحركة المرئية للأسهم

إن الحركة المرئية للأسهم تعني أن السهم الأيمن يجب أن يتحرك لليمين
والسهم الأيسر يجب أتن يتحرك لليسار

قد يبدو هذا مناسباً
سطحياً لكن عند العمل الجاد في البرمجة
حيث يكون هناك نص معقد هكذا
w.set("title","العنوان".strip().replace("ان","د"))

ضع المؤشر على أول السطر
ثم جرب أن تتحرك فيه من بالأسهم إلى آخر النص

إذا كنت تعمل بطريقة مرئية يجب أن تنظر بعد كل زر إلى المؤشر
cursor
وترى هل ذيله لليمين أم لليسار
فإذا كان لليسار ضغط الأيسر
وإن كان لليمين ضغط الأيمن

أما إن كان مرئي فأنت
تضغط السهم الأيمن بغض النظر عن كل شيء
لأنه ليس أيمن بل تالي
السهم التالي منطيقياً
والسهم السابق منطقياً

إن القيام بالتعامل مع نصوص معقدة
إنجليزية مثل code
مرصعة بكلمات عربية
يصبح كابوساً
إذا كان العمل على الأسلوب المرئي

مثلاً إذا كنت سأكتب
foo("كلام").replace(" ","\t")
فبعد أن تكتب
كلام
يجب أن تنظر هل تريد طباعة أغلاق الوقس قبل أم بعد الضغط
على ALT+SHIFT
لأنك تطبع أيمن وأيسر بالطريقة المرئية

في حين لوكان بالطريقة المنطقية فإنك تطبع إغلاق وبغض النظر إن كانت لوحة
المفاتيح عربية أم لا

فإن إغلاق القوس هو فوق 0
بكل بساطة
دون أن أفكر هل أغلق القوس بعد أم قبل تبدليل اللغة