عبد الهادي الديوري @عبد الهادي

كاتب ومترجم مُستقل، شاب ذو اهتمامات كثيرة، تلميذ يتعلّم البرمجة وتطوير الويب.

نقاط السمعة 606
تاريخ التسجيل 01/01/2014

وعليكم السلام ورحمة الله وبركاته.

أفهم تمامًا ما تمر به، ولا زلت أمر به إلى الآن، ولا أظن أن أحدًا من المطورين سيقول بأنه لا يحتاج إلى النظر والبحث في التوثيقات، أو أنها سهلة القراءة، إذ يجب أن تُحدّثُ باستمرار، والمطورون كسالى لا يحبون كتابة التوثيقات، لذا ما تمر به أمر طبيعي، فلا تقلق.

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

التوثيقات الجيدة تنقسم عادة إلى أربعة أقسام:

  • جزء تعريفي (Getting Started/Tutorial/Quick Start ...)، اقرأ هذا الجزء أولًا وافهمه جيدا، إن لم تفهمه، فابحث عن درس يشرح بطريقة أخرى.

  • جزء يقدم معلومات أكثر تفصيلا عما سبق، لكنه يبقى مفهوما وغنيا بالأمثلة، اقرأ هذا بعد ما سبق، وضع النصيحة أعلاه في الحسبان.

  • جزء الواجهة البرمجية API، أو المرجع (Reference) الذي يقدم وصفا بسيطا لكل جزء صغير من المشروع (شرح بسيط لما تقوم به كل دالة وما تستقبله من معاملات، وما تعيده من قيم)، هذا الجزء أصعب الأجزاء فهمًا، ولا تحاول قراءته كما تقرأ الجزأين السابقين، إذ هو مرجع فقط، ترجع إليه كلما أردت معلومة سريعة عن معاملات الدالة الفلانية وما الذي تعيده على سبيل المثال، لكنك إن لم تبدأ بالجزأين السابقين، فلا تتوقع أن تفهم أي شيء هنا.

  • سجل التغييرات (changelog)، الذي يصف ما تغير في المشروع من نسخة إلى أخرى، ولن تحتاج عادة إلى قراءته إلا إن قرأت درسًا قديمًا على الويب لا يوافق محتويات التوثيق.

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

وأخيرًا، استعن بالحكيمين Stack Overflow و Google، أو جرب DuckDuckGo الذي يعرض الإجابة من Stack Overflow مباشرة (وهي ميزة تعجبني صراحة).

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

سمعت أشياء جيّدة عنه، وأخطّط لقراءته، هو جيّد جدّا لمن يُريد التّعمق في بايثون ويتعلّم الأمور المتقدّمة في اللغة (التي تنقصني صراحةً).

هذا فيديو شاهدته منذ مُدّة يشرح فيه الكاتب كيفيّة استعمال الـData Model الخاصّة بلغة بايثون، سيُعطيك فكرة عن الأمور التي سيشرحها الكتاب، الفيديو يستحقّ المشاهدة:

ستتعامل معه كانه اول مرة يطلع على الكود

غفلت عن هذه النّقطة، شكرًا لك.

في معظم الأحيان، ما أفعله هو التّحقق من قيم المتغيّرات في كلّ مرحلة من مراحل الدّالة، وعادة ما أجد أنّ المتغيّر الذي أتعامل معه لا يحمل في الحقيقة القيمة التي أتوقّعها. فهل من نصائح أخرى لتنقيح الأخطاء البرمجيّة؟

وعليكم السّلام،

جميل، استمرّ في تطويره.

هناك مُحرّر آخر يدعى رمز:

جرّبه من هنا:

المحرّر من تطوير @mohamed youssouf‍. ما رأيكما أن تتعاونَا على بناء مُحرّر يدعم التّدقيق اللغوي وتصحيح الأخطاء الشّائعة وبقيّة المزايا المذكورة في التّعليقات هنا:

أنا أشرحُه لنفسي :)

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

ليس من الضروري أن تكون بطّة، المهمّ أن تشرح الشّيفرة لأيّ جمادٍ أو حيّ كما كان لتفهمها أكثر :)

مرحبًا عبد المهيمن، خارجٌ عن الموضوع نوعًا ما، لكنّ صفحة الموقع hsoub.com تحتاج إلى تحديث، نسيتم إضافة موسوعة حسوب إلى قائمة المنتجات، وهنا كذلك:

--

بالمناسبة، ما البرمجيّة المُستخدمة في دليل الموظّفين؟ تبدو لي مُشابهة لـgitbook، إن كان كذلك، هلّا طرحتم تعديلاتكم (خصوصًا خاصيّة RTL) بشكلٍ مفتوح المصدر؟

شكرًا لك.

مرحبا،

لا يوجد جدول زمني مُحدّد، حسب علمي ستُنشر الدّروس بين الحين والآخر على الأكاديميّة دون التّقيّد بوقت مُعيّن.

مرحبا صديقي :)

للأسف لا أمتلك إجابة على سؤالك، لكن يُمكنك طرحه في قسم الأسئلة والأجوبة على أكاديمية حسوب:

ربّما تجد من لديه الخبرة الكافية للإجابة :)

أما بالنسبة لــvim فأنا لا أعلم حتى كيف أخرج منه

كل من بدأ مع المُحرّر لم يعلم كيف يخرج منه في الأيام الأولى :)

اضغط Esc ثم : ثم w لحفظ الملف ثم q للإغلاق

جميل، الكسل والبحث عن طرق أسرع لإنجاز المهام المملّة من صفات المُبرمج الجيّد!

لدي بعض المُلاحظات:

  • أنصحك باتّباع إرشادات PEP 8 لتنسيق أفضل للشيفرة:

الأمر ليس مُهما في المشاريع الصّغيرة، لكن من الأفضل التّعود عليه من البداية :)

  • لاحظت بأنّ الأوامر مُجرّد اختصارات لأوامر طويلة، لم لا تستخدم خاصيّة الأسماء المُستعارة Alias لاختصار الأوامر (مُتواجدة بنظامي لينكس وماك) في وندوز يُمكنك استخدام أمر doskey؟

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

دروس vim مُتواجدة بأكاديميّة حسوب:

 

قسم DevOps مُفيد لتعلّم أساسيّات لينكس كذلك :)

وعليكم السّلام ورحمة الله وبركاته.

حاليّا لم أطلع سوى على إطار Kivy لتطوير تطبيقات تعمل على منصّات متعدّدة Cross platform باستخدام بايثون.

ويُمكنك الاعتماد عليه لتطوير تطبيقات الأندرويد. لم أجرّب الإطار بعد ولا أدري كيف يُمكن أن تقوم بتطوير التّطبيقات به لكن قد يُفيدك هذا الرّابط:

ما يعجبني في هذا الإطار هو أنّك تستطيع استعمال لغة kv لتنسيق التّطبيق بمعزل عن شيفرات بايثون والأمر أشبه باستخدام شيفرات CSS لتنسيق تطبيقات الويب.


[على الهامش]: يُمكنك طرح مثل هذه الأسئلة بقسم الأسئلة والأجوبة على موقع أكاديميّة حسوب:

جميل جدا، أبدعت في التّصميم :)

هل هذه أول سنة لك بالجامعة؟ وما اسمها وفي أي مدينة؟

أرى أنّ القالب جيّد وأنيق مبدئيّا :)

لدي بعض المُلاحظات بسيطة:

  • لا تبدو لي الصورة بجانب قسم "نبذة عنّي" مُلائمة ولا أراها جميلة في الحقيقة، لا أعلم، لكن ألم يكن من الأفضل أن تكون تصميما شُعاعيّا (Vector)؟

  • ألا ترى أنّ ظلّ زر "تحميل السّيرة الذّاتية" مُبالغ فيه قليلا؟

  • نفس الشيء بالنّسبة لظلّ زر "ارسال الرّسالة" الموجود بأسفل الّصّفحة.

  • في قسم التّواصل: التّغيير المُفاجئ في الألوان مُزعج قليلا، أعتقد بأنّ لونا واحدا يكفي. كذلك عنوان الرّسالة يجب أن يكون فوق نصّ الرّسالة عوضا عن جانبه.

على العموم، يبدو لي بأنّك غيّرت من أسلوبك في التّصميم :) لاحظت بأنّ هذا العمل مُختلف عن أعمالك السّابقة وأعتقد بأنّ هذه الأخيرة أفضل بقليل من قالب إياد.


مُلاحظة: كل ما ذكرته أعلاه مُجرّد رأي شخصي، لك الحق في أخذه كما لك الحق في ردّه، كما أنّني لست مُتخصّصا بالتّصميم.

وفقك الله :)

يوجد موقع الكتب العربيّة الحرّة:

صحيح أنّ الكتب به قليلة لكنّها عاليّة الجودة، وتصميم الموقع جيّد كذلك.

التعاملات الماليّة تتم بالدّرهم المغربي، ومن الصّعب أن تشتري أي شيء من الأسواق الشّعبية بالدولار.

الدّخل الكافي حسب نوع الرّفاهيّة التي تريدها، 100 دولار في الشّهر الواحد كافيّة لشخص واحد في شقة صغيرة في مدينة صغيرة (مُدن يُمكن أن تدور فيها بأكملها في سويعات مشيا على الأقدام)، المتوسّط 300 دولار. أمّا إن كنت ترغب بالعيش في مدينة كبيرة ومنزل فخم فالأغلب أنّك ستحتاج إلى حوالي 800 إلى 1000 دولار شهريا.

تطبيق "قصّرتك"، تطبيق بسيط لاختصار الرّوابط.

http://qssrtk.herokuapp.com

السكربت مفتوح المصدر، ويُمكنك الاطّلاع على المزيد من المعلومات من هنا:

توقّفت عن تطويره في الوقت الحالي، لكنّني سأعود لتطويره قريبا بإذن الله :)

مرحبا أخي، أظنّ بأنّ سبب تقييمك سلبا هو مخالفتك لإرشادات استخدام الموقع:

لا تطلب من الآخرين رفع مساهماتك لأي سبب

بالتّوفيق :)

هل هذه هي الشيفرة بعد إصلاح الخطأ؟ إذا لم تكن كذلك هلّا طرحت الشيفرة الصحيحة؟

لا أعلم، أظنّ بأنّني أخطأت :)

بالمُناسبة عد إلى التّوثيق الرّسمي فهو خير صديق :)

أمر غريب، يبدو بأنّك لم تكتب الموجّه بشكل صحيح.

أعتقد بأنّه يجب أن يكون كالتّالي:

url(r'^/', include('views.home'))

لاحظ علامة / في الأخير.

هكذا إذن،

حسب التّوثيق الرّسمي[1] لا يجب عليك استخدام علامة الدولار إذا كنت تستعمل الدالة include.

هذا مُقتطف من التّوثيق:

Note that the regular expressions in this example don’t have a $ (end-of-string match character) but do include a trailing slash.
Whenever Django encounters include() (django.conf.urls.include()),
 it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.

[1]

حسب الشيفرة المصدرية لجانغو[1]، يبدو بأنّ رسالة الخطأ تحدث إذا ما استعملت الدّالة include عند إنشاء موجّه.

هل أنت متاكد من أنّك لم تستخدم الدّالة include؟

واعذرني إن أخطأت في فهم المُشكلة، إذ لا أعمل مع جانغو وخبرتي به شبه معدومة :)

[1]