سؤال

أخطط للبدء في العمل في أول مشروع شخصي لي في يونيو: مجتمع عن الطلاب. ما أريد أن أحصل عليه هو wiki ، ممتلئة بمعلومات حول الجامعات ، ومنتدى يمكن للأشخاص مناقشتهم والمدونة مع الأخبار والمقالات ، وما إلى ذلك ، جميعها الثلاثة متكاملة مع بعضها البعض.

الآن ، يبدو أن الطريق للذهاب مثل WordPress+MediaWiki+بعض برامج المنتدى ، لكنني كنت أواجه هذه الأفكار حول تجربتها وكتابة CMS الخاصة بي. لديّ بعض المعرفة ROR و PHP ولكن بالتأكيد ليس إلى النقطة التي يمكنني فيها كتابة CMS الخاصة بي ، خاصة تمامًا من الصفر.

كم من الوقت تعتقد أن الأمر سيستغرقني لتحقيق ذلك؟ أعتقد/أقدر أنه يمكنني قضاء 3 إلى 5 ساعات يوميًا في العمل عليها وأريد أن يصل الموقع بأكمله إلى تشغيله بحلول نهاية أغسطس (وهو ما يعطيني حوالي 300 ساعة من العمل ، حيث أخطط أيضًا لقضاء بعض الوقت فقط. .. لا شيء!: P).

السؤال هو ، هل يستحق ذلك؟ هل سيساعدني على تحسين مهارات البرمجة الخاصة بي؟

هل كانت مفيدة؟

المحلول

ما يجب عليك فعله هو أمر التقدير الخاص بك ، ولكن ما أنت ينبغي تفعل هو تنفيذ شيء مثل دروبال.

Drupal هو CMS الذي يهدف إلى استخدامه لمواقع المجتمع. ليس أسهل نظام لفهم واستخدامه ، لكنه قابل للتخصيص للغاية.

إليك بعض المراجع التي يمكنك استخدامها للبدء في التعرف على دروبال: http://www.packtpub.com/drupal/book http://drupal.org/node/367131

كلما كان عليك الاختيار بين كتابة شيء لنفسك واستخدام البرامج الحالية ، هناك أربعة أجزاء رئيسية تحتاج إلى حسابها.

  1. ما مدى تعقيدها؟
  2. إلى أي مدى يتوافق النظام الحالي لتطابق احتياجاتي؟
  3. ما الذي يكلفه تنفيذ نظام موجود مقابل كتابة خاص بك
  4. متى أحتاجه؟

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

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

نصائح أخرى

انطلاقًا من أهدافك ، يبدو أنه من السهل إنجازه في دروبال بأقل قدر من العمل.

www.drupal.org

المنتديات ومدونات المستخدم مدمجة وأنا متأكد من أنني رأيت وحدة ويكي في مكان ما.

ومع ذلك ، إذا كنت ستذهب لتجربة تعليمية - فسيكون القيام بذلك بنفسك تجربة التعلم. سواء أكنت قد أنجزته فعليًا أم لا ستفهم ROR و/أو PHP بشكل أفضل بحلول الوقت الذي تنتهي فيه.

طرح خاصتك :)

سوف تكتسب خبرة (وهو أمر لا يقدر بثمن) ، علاوة على ذلك سوف ينتهي بك الأمر بشيء لا ينفخ ...

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

  1. لا تحاول إجراء 1: 1 نسخ من شيء ما. يمنحك Rolling الخاصة بك الفرصة لتنفيذ ما تحتاجه فقط وتجاهل كل شيء آخر.
  2. تبدأ صغيرة. لدى WordPress و MediaWiki سنوات من الترميز وراءهما. محاولة تكرار ذلك بنفسك لن تعمل.
  3. المدونات والمنتديات بسيطة بشكل لا يصدق في البداية ، ولكن تصبح معقدة بشكل لا يصدق بمجرد التعامل مع أشياء مثل محرري WysiWyg وتقنيات مكافحة البريد العشوائي وقضايا توافق المتصفح وما شابه.
  4. هذه طريقة رائعة للحصول على خبرة جادة في لغتك وتقنيات "Enterprise" ، ولكن إذا كنت عديمي الخبرة وفي الموعد النهائي ، فيجب أن تنظر حقًا إلى تمديد شيء ما في السوق أولاً.

إذا كنت على استعداد لقطع بعض الزوايا في البداية ، أعتقد أن بناء CMS في 300 ساعة أمر ممكن بالتأكيد. ولكن بعد ذلك ، لا تبدأ في التفكير في أشياء مثل بنية البرنامج المساعد ، وتجربة مستخدم رائعة للمسؤول والوثائق - هذه النقاط مهمة حقًا إذا كنت ترغب في إصدار CMS لأشخاص آخرين ، ولكن ليس كثيرًا للاستخدام الداخلي.

رقم.

"لا تعيد اختراع العجلة ، إلا إذا كنت تخطط لمعرفة المزيد عن العجلات".

كنت أركز على التعرف على كل من الأدوات وكيف يمكنك دمجها معًا ، بدلاً من كتابة CMS.

كمطور حقيقي ، سيكون لديك رغبات لكميات كبيرة من التخصيصات. تحتوي الكثير من CMS/Blogs المعبأة مسبقًا على أنظمة إضافية ، لكنهم يشعرون جميعًا بالغريب بعض الشيء عندما يتعين علي تسجيل الكود الخاص بي في النظام عبر إدخال قاعدة البيانات.

لكي أكون صادقًا ، كان لدي مدونتي في WordPress ، وأعد كتابتي في PHP ، ومنذ ذلك الحين أعد كتابتها مرتين في Django.

في كل مرة تصبح أسرع ، في كل مرة تريد أن تفعل فيها شيئًا أكثر ، وفي كل مرة تتعلم فيها نفسك عن كل مشكلات قابلية الاستخدام والأمان التي يتعين على الأشخاص الذين أنشأوا المشاريع الكبيرة أن يمروا بها.

كانت إعادة الكتابة تجربة قيمة ، ولن آخذ حجة "لا تعيد اختراع العجلة". أشعر وكأنني أستطيع أن أنظر إلى عجلة وأخبرك بما هو الخطأ في ذلك ، بالنظر إلى أنني اخترعت شخصيًا = P

من الممكن في هذا الإطار الزمني اعتمادًا على مدى جودتك مع Ruby on Rails و PHP.

ومع ذلك ، أود فقط استخدام ما هو موجود. هل يستحق كل هذا الوقت حقًا لصنعك؟

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

أما بالنسبة للإطار الزمني؟ أنا حماقة في تقدير مهاراتي الخاصة ، لذلك ليس لدي فرصة لتقدير لك :)

إذا كنت ترغب في الذهاب إليها لتجربة التعلم ، فأعتقد أنه يجب عليك ذلك. كتب فيل هاك منشور مدونة جيد يسمى تداول محرك المدونة الخاص بك مع قائمة جيدة من المشكلات التي ستديرها.

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

فقط تأكد من ترك نفسك وقتًا كافيًا للإنقاذ والذهاب مع الخطة B (WordPress+MediaWiki+بعض برامج المنتدى) إذا كنت بحاجة إلى ذلك.

أعتقد أنك ستجد إجابات مماثلة على موارد جيدة لتطوير أداة تتبع الأخطاء؟

كما قلت هناك ، يعتمد الأمر حقًا على هدفك النهائي.

بينما أتفق مع ما قاله الكثيرون بالفعل - لماذا إعادة اختراع العجلة؟ - ستكون الإجابة التي ستكون مفيدة بالنسبة لك تعتمد على ما تحاول القيام به.

النقطة 1:
إذا كنت [أنت | شركتك] تحتاج فقط إلى CMS ، فهناك العديد من الأدوات الموجودة ، مجانًا وغير ذلك ، جودة عالية وغير ذلك ، لماذا برمجة خاصة بك؟

النقطة رقم 2:
إذا كنت تبحث عن تجربة تعليمية ، فبحث عن شيء ما لتتعلمه [choiceLanguage] و/أو فقط أتطلع لمعرفة المزيد عن العجلات, ، هناك عدد من المقالات وهناك عدد من المشاريع المفتوحة المصدر التي يمكنك إلقاء نظرة خاطفة على الكود لمعرفة كيفية عملها (أو لا تكون كذلك).

لقد وجدت أن البدء في بعض الأحيان بمشروع مفتوح المصدر يساعدني على الأقل في الحصول على جزء كبير من التعليمات البرمجية. لقد أخذت حزمة منتدى ASP الكلاسيكية وحولتها إلى CMS - لكن الأمر استغرق عامًا أو نحو ذلك ، وكنت أتقاضى أموالًا للقيام بذلك. ymmv

فى النهاية:
إذا كان هذا الأخير هو هدفك النهائي ، فعندئذ بكل الوسائل ، اقرأ المقالات ، وقم بالبحث ، والرمز بعيدا.

إذا كان الأول ، فقد ترغب في النظر إلى شيء تم القيام به بالفعل - ما لم تكن كفاءة أعمالك الأساسية.

في النهاية ، ستعتمد الإجابة التي تحصل عليها على السؤال الذي تطرحه. أن تكون واضحا من البداية سوف يقطع شوطا طويلا. ؛)

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

فيما إذا كان يجب عليك تطوير بنفسك؟ حسنًا ، هذا يعتمد حقًا على ما تريد إنجازه. تريد أن تكون فعالا في استخدامك للوقت؟ بكل الوسائل ، لا! استخدم حلًا موجودًا مسبقًا. هل تريد دراسة حالة لتعلم برمجة أفضل؟ هذا سيناريو مختلف تماما.

لإنشاء شيء من نفس الجودة مثل WordPress+MediaWiki+ستستغرق بعض برامج المنتدى عدة آلاف من الساعات.

ولكن إذا كنت فقط تقوم ببناءها لنفسك لاستخدامها ، فهناك الكثير من "الكافيين" ، فسوف تصادف ذلك سيوفر لك الوقت. لذلك أود أن أقول ... أقل من 1000 ساعة. هذا يبدو نوعا من الغموض أليس كذلك؟ لقد قمت برمجة 14 عامًا وما زلت مروعًا في تقدير الوقت للمشاريع ، لول. بالطبع تعريف المشروع غامض جدا.

للإجابة على السؤال إذا كان الأمر يستحق الأمر هو حقًا سؤال لنفسك. إذا كان هذا شيءًا متحمسًا للقيام به ، فقد يكون ذلك بمثابة فرصة تعليمية رائعة. منذ حوالي 7 سنوات (قبل أيام Google Analytics) كتبت محركًا قويًا للتتبع والإحصاء على مرور الويب. لقد كانت تجربة تعليمية رائعة بالنسبة لي ولم أندم على القيام بذلك. بالطبع من ناحية أخرى ، مثلي تمامًا ، سوف تتدفق على مجموعة كبيرة من العمل في شيء لا ستحصل على فرصة ضئيلة لكسب أي أموال منه.

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

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

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

في نهاية اليوم ، إذا قمت بإنشائها بنفسك ، فسيكون لديك موقع ويب مرن للغاية ، ويبدو بالضبط كيف تريده. إذا كنت تستخدم رمز شخص آخر ، فسترفع موقع الويب بشكل أسرع ومع المزيد من الميزات ، ولكنه لن يكون مرنًا وربما يتعين عليك تقديم بعض التنازلات على المظهر والمظهر.

لا بد لي من التأكيد على تعليق بارفون بعدم إعادة اختراع العجلة. هناك الكثير من تجربة التعلم التي يجب أن تكون في أخذ CMS لشخص آخر وتعلم كيفية الاستخدام والتطوير ضدها.

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

  • أنت تعرف ما الذي تحصل عليه (يمكن أن يكون CMS مهمة كبيرة)
  • اعتمادًا على الشخص الذي تختاره ، هناك قدر كبير من الدعم المجتمعي لمنتجات CMS الحالية وهو قيمة
  • من المحتمل أن تكون قد تعلمت طريقة جيدة من خلال رؤية رمزها
  • يستغرق تعلم منتجهم/رمزهم وقتًا أقل من بناء خاص بك ، لذلك من غير المرجح أن تفقد الحافز مما لو كنت قد بدأت في بناء واحدة من الصفر

ومع ذلك ، أوصي شخصيًا بإلقاء نظرة على ماجنوليا. إنه يحظى بدعم المجتمع ، وهو مفتوح المصدر ، وهو نظام جودة.

g'luck

سأذهب مع WordPress بنفسي لنطاق المشروع الذي حددته. منتدى الصحافة البسيط هو مكون إضافي قوي للمنتدى من أجل WordPress ومن السهل إلى حد ما دمج MediaWiki. هناك أيضا مشروع البرنامج المساعد WordPress Wiki يمكن أن يستخدم الساعات يبدو أنك على استعداد للالتزام. يمكن لـ WordPress أن يفعل كل ما وصفته في عطلة نهاية الأسبوع.

لا تحتاج إلى إعادة اختراع Weel لاكتساب الخبرة.

سأذهب إلى WordPress. أنا أستخدمه لموقع الويب الخاص بي (www.norwegianfashion.no) ، وأعتقد أن لدي موقع ويب متقدم إلى حد ما. لقد زادت بالتأكيد مهارات البرمجة PHP الخاصة بي.

لقد حاولت الحصول على رأسي حول دروبال أيضًا. إنه CMS جيد جدًا ، ولكن الألم في الحمار للتعلم.

حتى مع 5 سنوات من التطوير على أنظمة CMS الأخرى (.NET) ، لم أتمكن من إتقان دروبال بعد شهر واحد من المحاولة.

أنا لست مبرمجًا متشددًا ، لكنني أعتقد أنه يجب أن يكون CMS سهل الاستخدام إلى حد ما.

لذلك اخترت WordPress. يحتوي على قيود ، ولكن يمكنك إنشاء المكونات الإضافية الخاصة بك للتعويض عن ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top