سؤال

سأضطر قريبًا إلى بدء مشروع ويب لشركة ما، وأحتاج الآن إلى اختيار تقنية لإنشاء التطبيق.أفكر في استخدام Java، ومن ثم أرغب في العثور على إطار عمل يساعدني في إنشاء التطبيق (أنا معتاد على إطار عمل PHP مثل CakePHP وCodeIgniter).

ما لا أفهمه هو أنه يبدو أن هناك الكثير من الأطر والتقنيات التي ليس لها نفس الهدف.إطار العمل، إطار المكونات ...ماذا يمكنني أن أفعل مع واحد لا أستطيع أن أفعل مع آخر؟يبدو أنه يجب تطوير تطبيق ويب جافا من خلال مزج الكثير من التقنيات المختلفة، وبالتالي فأنا ضائع قليلاً ...لقد ألقيت نظرة على أطر عمل جافا المختلفة، مثل JSF، وStripes، وStruts2، وTapestry، وWicket، وSpring.فيما يتعلق بالموضوع الأخير، لا أعرف ما هي الأجزاء المختلفة لهذا الإطار، وما الذي يمكن أن يفعله لي وما لا يمكنه فعله.ماذا يمكنني أن آخذ من الربيع وما لا أحتاجه ...

لذلك :ما الذي أحتاجه لإنشاء تطبيق ويب جافا؟

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

فيما يتعلق بـ ORM، أعتقد أنني سأختار Hibernate ...لقد سمعت أيضًا عن Maven أو Ant، ​​كيف يمكنهم مساعدتي؟

أي نصيحة/إرشادات سيكون موضع تقدير كبير :-) شكرا مقدما.

يحرر :ما هي احتياجاتي :إطار جافا الذي هو:

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

التطبيق الذي سيتم إنشاؤه هو كل من أ

  • موقع المجتمع :الويب 2.0، الخام
  • موقع التجارة الإلكترونية

المواصفات الكاملة لم تنته بعد.

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

المحلول

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

فيما يلي ما صادفته أثناء البحث عن نفس الإجابات التي تريدها.

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

في الأساس، هناك 3 مستويات لتطبيقات الويب، وهي طبقة العرض التقديمي وطبقة الأعمال وطبقة البيانات.طبقة العرض التقديمي هي الواجهة الأمامية، التي يراها المستخدم.يمكنك عمومًا مزج التقنيات ومطابقتها لهذه الطبقات الثلاث.يمكنك على سبيل المثال استخدام واجهة أمامية مخططة مع إطار عمل Spring لـ IOC وHbernate باعتباره ORM الخاص بك.

هناك العديد من التقنيات الرائعة التي يمكنك استخدامها لطبقة العرض التقديمي، بما في ذلك Spring-MVC وSTRUTS وStripes وWicket وJSF/SEAM وTapestry من بين تقنيات قليلة.يستخدم معظمها JSP للعرض باستخدام JSTL، باستثناء الويكيت الذي يفصل فعليًا html عن المنطق باستخدام "مكونات" Java (POJOS).هناك فوائد وعيوب لكلا النهجين.تتمثل فائدة أسلوب الويكيت في أن لديك فحصًا ثابتًا للكتابة وفصلًا كاملاً لـ html حتى تتمكن من تسليمه إلى المصمم الخاص بك.

بالنسبة لطبقة الأعمال عمومًا، يستخدم الأشخاص نوعًا من إطار عمل عكس التحكم (IOC) لحقن التبعية (DI).الأطر الشائعة لـ IOC هي Spring وSeam، وهي مرتبطة بتقنيات مثل Spring-security وهي مدعومة عمومًا بالتقنيات الأخرى.يبدو أن Google Guice يحظى بشعبية كبيرة في إطار عمل DI المباشر.

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

Tapestry هو إطار عمل آخر يحاول أن يكون مكدسًا كاملاً مما أفهمه ويأخذ منهجًا صغيرًا مثل (أو أعتقد أن Wicket يأخذ منهجًا يشبه النسيج).Grails هو إطار عمل آخر متكامل يستخدم Groovy ومبني على Spring وHbernate.إذا كنت تحب Rails، فإن Grails جيد جدًا.

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

إذا كنت تريد توصية، أود أن أستخدم مكدس Wicket/Guice/Hibernate يومًا ما.

نصائح أخرى

المفضل لدي هو بالتأكيد الربيع.يتميز Spring MVC 2.5 الجديد بأنه سهل وسريع الإعداد، ويحتوي على الكثير من التعليقات التوضيحية لمساعدتك على توصيل وحدات التحكم الخاصة بك بشكل تصريحي مما يوفر عليك الكثير من الكتابة.كما أنه يتكامل مع حاوية الزنبرك التي تعد بالتأكيد حاوية استبدال J2EE المفضلة خفيفة الوزن.عادةً ما أقوم بدمج SpringMVC مع JSP البسيط، ولكن هناك الكثير من تقنيات العرض الأخرى للاختيار من بينها.من أجل المثابرة عادة ما أستخدم السبات.قد يكون من المفيد إلقاء نظرة عليها ربيع رو وهو نوع من مثل Grails بدون Groovy.يوفر Spring Security طريقة تعريفية لطيفة وسهلة للقيام بالأمان ويتكامل مع مجموعة كاملة من تقنيات المصادقة.

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

أقترح عليك إلقاء نظرة على الكؤوس.Grails عبارة عن إطار عمل لتطبيقات الويب "الترميز حسب الاتفاقية" يعتمد على مجموعة من أطر عمل Java التي أثبتت جدواها (Spring، Hibernate، ...) ويستخدم رائع لغة..

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

بالتأكيد استخدم Spring للنهاية الخلفية.يوجد مجتمع ممتاز في منتدى الدعم المجاني الخاص بهم (يمكنك أيضًا الدفع مقابل المزيد من الدعم الرسمي).

فيما يتعلق بقرارك باستخدام Hibernate، قد ترغب في الترميز مقابل JPA لفصل تطبيقك عن Hibernate (وهو أحد تطبيقات JPA العديدة).

إذا كنت تريد واجهة Ajax الأمامية، فمن المفيد إلقاء نظرة على زك نطاق؛إنه سهل الاستخدام للغاية دون الحاجة إلى تعلم JavaScript، ويتجنب الاضطرار إلى استخدام مكتبات السباكة مثل DWR.

تعتبر نصيحة الآخرين باستخدام Spring فكرة ممتازة.ستجد أنك ستستخدم بالفعل عددًا من أطر العمل المختلفة معًا لأن كل إطار يحل مشكلة مختلفة قليلًا.

أود أن أقترح عليك استثمار بعض الوقت مع كل إطار عمل أو تقنية قبل البدء في العمل ولكنك سترغب في النهاية في جعلهم يعملون معًا.قد ترغب في إعداد Struts + Spring + Hibernate على سبيل المثال.يمكن أن يكون تكوينها بمثابة صداع.

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

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