2009-07-21 10 views
6

ठीक है, इसलिए मैं एक कॉम्सी कॉलेज छात्र हूं, जो कॉलेज में है, अभी तक एक निश्चित विशेषज्ञता की ओर अग्रसर नहीं है। मैं प्रोग्रामिंग कर रहा हूं क्योंकि मैं एक युवा किशोरी था, निश्चित रूप से मेरी सामग्री को जानता हूं - लगभग आठ अलग-अलग भाषाओं के साथ-साथ कंपसी सिद्धांत, आदि में भी अच्छी तरह से पता है। इसके अतिरिक्त, मेरे पास चार साल के वेब प्रोग्रामिंग (PHP मुख्य रूप से) मेरे पीछे है वेब 2.0 गर्म होने के बाद से उस क्षेत्र में फ्रीलांस काम शुरू किया।एप्लिकेशनलैंड में एक वेब प्रोग्रामर के एडवेंचर्स (या, प्रैक्टिकल जावा सहायता की आवश्यकता है)

मेरी ग्रीष्मकालीन नौकरी अब एक इंटर्न के रूप में है, एक औद्योगिक, सॉफ़्टवेयर से संबंधित स्टार्टअप के लिए एप्लिकेशन लिखना है। इस एप्लिकेशन का उपयोग उत्पादन लाइनों और रसद प्रवाह को प्रबंधित करने के लिए किया जाएगा। मैंने अपनी भाषा के लिए जावा चुना है क्योंकि मैं खुद को पैर में शूट नहीं करना चाहता हूं।

मैं जावा के सिंटैक्स में अपने डेटा संरचनाओं, भाषा सिद्धांत, और ऐसे में अच्छी तरह से परिचित हूं, लेकिन मुझे बिल्कुल पता नहीं है कि कहां से शुरू करना है। मैं प्रोग्राम को पूरी तरह से अपने दिमाग में चित्रित कर सकता हूं, मैं समस्या को स्पष्ट रूप से समझता हूं और समाधान के सिद्धांत को नंगा मिला। अर्थात्, मुझे नहीं पता कि पुस्तकालयों का क्या उपयोग करना है, और मुझे डर है कि वे अच्छी तरह से प्रलेखित नहीं होंगे।

  • दो आवेदन, एक सर्वर और एक ग्राहक (जिनमें से कई प्रतियां हो जाएगा):

    यहाँ है कि मैं क्या कर रहा हूँ के कुछ सामान्य रूपरेखा है।

  • सर्वर और क्लाइंट स्पष्ट रूप से के माध्यम से संवाद करेंगे (मुझे नहीं पता)।
  • सर्वर और क्लाइंट दोनों सॉफ़्टवेयर में GUI होंगे।
  • सर्वर सॉफ़्टवेयर को एक MySQL डेटाबेस से पूछताछ होगी।
  • क्लाइंट सॉफ़्टवेयर में 'लाइव' होना चाहिए, यह समझने के लिए कि परिवर्तन डेटाबेस में किया गया है जब GUI अद्यतन। यह एक कारण है कि यह एक वेब एप्लिकेशन क्यों नहीं हो सकता है।

मुझे यह भी सुनिश्चित नहीं है कि कोई फ्रेमवर्क मेरे लिए सही है या नहीं। मैंने अपने वेब फ्रीलांस काम में कई बार एमवीसी का उपयोग किया है, लेकिन मुझे नहीं पता कि यह डेस्कटॉप अनुप्रयोगों के लिए अनुवाद कैसे करेगा।

संक्षेप में, मैं नौकरी के लिए सही पुस्तकालयों की तलाश कर रहा हूं, साथ ही सलाह देता हूं कि मुझे ढांचे का उपयोग करना चाहिए या नहीं (और यदि ऐसा है, तो)। धन्यवाद।

उत्तर

2
  • जावा डेस्कटॉप 6 (JRE)
  • JDBC (निर्मित किसी भी JRE में)
  • MySQL JDBC ड्राइवर (स्वतंत्र रूप से डाउनलोड करने योग्य) संचार के लिए
  • आप कई विकल्प हैं: RMI (बिल्ट-इन) लेकिन इस दिन मैं
    जावा वेब सेवा की तरह कुछ सीखने (JAX-आरएस)
3

मेरा सुझाव है कि आप केवल एक वेब अनुप्रयोग का निर्माण सलाह देते हैं। एजेक्स का उपयोग करके आप इसका वर्णन कर रहे हैं कि एक वेब अनुप्रयोग 'लाइव' हो सकता है। सिर्फ एक चीज बनाना बहुत आसान होगा। यदि आप एक समृद्ध ग्राहक भी चाहते हैं, तो आपको उस तकनीक में यूआई बनाने की जरूरत है जिसे आप परिचित नहीं हैं (जैसे स्विंग या एसडब्ल्यूटी) और संचार तंत्र को डिजाइन/कार्यान्वित करें।

Hibernate (ORM टूल) और Spring (आईओसी फ्रेमवर्क) पर एक नज़र डालें। उनके पास किसी भी तरह से सीखने की वक्र है, लेकिन वे लंबे समय तक आपके जीवन को आसान बना देंगे। यूआई भाग के लिए शायद शुरुआत के लिए जेएसएफ आसान है।

अंतिम नोट के रूप में, मुझे लगता है कि आपके पास एक अति महत्वाकांक्षी योजना है। आप जो वर्णन कर रहे हैं वह एक आसान परियोजना नहीं है और कई तकनीकों के साथ विशेषज्ञता की आवश्यकता है। एक शॉट में सब कुछ करने की कोशिश मत करो।

0

वैसे यह जंगली हो सकता है जैसा आप सोच सकते हैं या आप जा सकते हैं और KISS कर सकते हैं।

यदि आप कुछ ऐसा करना चाहते हैं जो वास्तव में सरल है (जैसा कि किसी भी ढांचे का उपयोग नहीं कर रहा है): * सर्वर पक्ष में आप आरएमआई का उपयोग कर सकते हैं। यह सर्वर पक्ष आपके MySQL डेटाबेस से कनेक्ट करने के लिए सादा जेडीबीसी का उपयोग करेगा। लेकिन कुछ ने कहा कि यह बहुत पुराना है, इसलिए यदि आप फंकी हो जाना चाहते हैं तो आप जेएक्स-आरएस को आजमा सकते हैं जो आपके क्लाइंट को JSON ऑब्जेक्ट/एक्सएमएल वापस कर सकता है। * आपका क्लाइंट स्विंग का उपयोग करके किया जा सकता है (मान लें कि आप डेस्कटॉप विकसित कर रहे हैं) या सर्वलेट + जेएसपी (मान लें कि आप वेबएप विकसित कर रहे हैं) और सर्वर द्वारा उजागर आरएमआई ऑब्जेक्ट्स/जेएसओएन ऑब्जेक्ट्स/एक्सएमएल को कॉल करके अपने सर्वर से कनेक्ट करें।

यदि आप गंदा होना चाहते हैं जो कोड रखरखाव के मामले में आपकी मदद करेगा तो आप इस एप्लिकेशन में स्प्रिंग + हाइबरनेट को प्लग-इन करना चाहते हैं।

शुभकामनाएं!

0

पुस्तकालय?

JDBC डेटाबेस के लिए। आप Hibernate

पर ORM तंत्र देखना चाहते हैं, मैं आपके सभी उपयोगिता कार्य (फ़ाइलों को संभालने, आईओ इत्यादि) के लिए Apache Commons लाइब्रेरीज़ की अनुशंसा करता हूं। पहिया को पुनर्निर्मित करने के लिए वहां बहुत सी चीजें हैं।

जैसे मानक लॉगिंग फ्रेमवर्क आपको विभिन्न तरीकों से लॉग इन करने, अपने लॉग फ़िल्टर करने और आसानी से निगरानी समाधान में प्लग करने की अनुमति देगा।

आप यह नहीं कहते कि क्लाइंट/सर्वर जीयूआई के लिए ब्राउज़र-आधारित समाधान स्वीकार्य हैं या नहीं, और यह निर्णय आगे की वास्तुकला को चलाएगा।

यदि आप ब्राउज़र-आधारित समाधान देख रहे हैं, तो मैं अंततः किसी भी ढांचे के चयन के बावजूद servlets में ग्राउंडिंग की सलाह दूंगा (इसमें कोई संदेह नहीं है कि यहां बहुत अनुशंसा की जाएगी)।

इस चरण तक यह एक प्रमुख परियोजना बन रहा है। शायद आपको बुनियादी बातों (क्लाइंट/सर्वर कार्यक्षमता) को काम करने पर ध्यान केंद्रित करने की आवश्यकता है, और बाद में जीयूआई के बारे में चिंता करें। अन्यथा यह एक बड़ी मात्रा में काम है (और जीयूआई काम एक बड़ी मात्रा में आकर्षित कर सकते हैं)।

7

यह ग्रीष्मकालीन इंटर्न नौकरी है? ईमानदार होने के लिए, यदि आप मुझसे पूछें तो यह एक प्रमुख परियोजना की तरह लगता है। आप कहते हैं कि स्टार्ट-अप सॉफ्टवेयर से संबंधित नहीं है? इस विचार के साथ कौन आया? क्या उनके पास (विशाल) गुंजाइश का कोई विचार है कि ऐसा कुछ वास्तव में लागू हो सकता है?

व्यवसाय विकास के व्यवसाय वाक्यविन्यास और पुस्तकालयों के लिए कुछ अलग है। यह जरूरी आवश्यकताओं को इकट्ठा करने, एक विशिष्टता को परिभाषित करने, कोड लिखने, उस कोड की गुणवत्ता सुनिश्चित करने, परीक्षण करने और इसी तरह के बारे में है। ये ऐसी चीजें नहीं हैं जो इंटर्न को उचित रूप से लेने की उम्मीद करनी चाहिए।इस तरह के कुछ के लिए आपको अधिक अनुभवी पर्यवेक्षण के तहत होना चाहिए, जिसे आप सीख सकते हैं, जिसने पहले ऐसा किया है।

कहा जा रहा है कि, जब तक कि वास्तव में कोई अच्छा कारण नहीं है, तो शायद मैं डेस्कटॉप ऐप की बजाय वेबसाइट जैसी चीज करता हूं। डेस्कटॉप ऐप्स कई तरीकों से बहुत अधिक जटिल हैं। आपको क्लाइंट और सर्वर दोनों को कोड करने की आवश्यकता है। संचार थोड़ा सा ट्रिकियर है। आपको कई अनुप्रयोगों में राज्य को बनाए रखने के मुद्दे के बारे में चिंता करने की ज़रूरत है, अपडेट को कैसे नियंत्रित किया जा सकता है और इसी तरह से।

संक्षेप में, यह एक बड़ी नौकरी है। यहां तक ​​कि एक वेबसाइट भी एक बड़ी नौकरी है लेकिन इन मुद्दों में से कई दूर चले जाते हैं। आप जावा के साथ ऐसा कर सकते हैं। मैंने निश्चित रूप से जावा वेबसाइटों के अपने उचित हिस्से को कोड किया है लेकिन PHP एक बहुत ही सरल शर्त हो सकता है।

इसके अलावा, जावा पर डेस्कटॉप विकास अच्छी तरह से यातना है। स्विंग (imho) कोशिश की और सच है लेकिन इसमें विकसित करने के लिए अविश्वसनीय रूप से दर्दनाक भी है। अन्य डेस्कटॉप पुस्तकालय (जैसे नेटबीन्स आरसीपी, ग्रहण एसडब्ल्यूटी) अधिक आधुनिक हैं लेकिन अन्य idiosyncrasies हैं।

डेस्कटॉप रीमोटिंग पुस्तकालयों में स्प्रिंग रिमोटिंग, यहां तक ​​कि वेब सेवाएं और बर्लप जैसी अन्य चीजें शामिल हैं। सर्वर के पक्ष में, मैं या तो टॉमकैट या एक एप्लीकेशन सर्वर (ग्लासफ़िश मेरी पसंदीदा पसंद है), सर्वलेट्स और स्प्रिंग का उपयोग कर रहा हूं। दृढ़ता Hibernate या Ibatis (या कई अन्य विकल्पों) के माध्यम से किया जा सकता है।

लेकिन ईमानदारी से, डेस्कटॉप विकल्प वेब-आधारित एक से अधिक जटिल है। आप शायद PHP + jQuery + MySQL का उपयोग करके बहुत अधिक तेज़ी से कर पाएंगे।

यदि आप ऐसा कर रहे हैं तो इसे यथासंभव सरल रखें। प्रारंभिक रूप से वितरित करने और करने के लिए आवश्यक न्यूनतम न्यूनतम परिभाषित करने का प्रयास करें। एक बार जब किसी के पास यह पता चल जाएगा कि उनके लिए क्या काम करता है और क्या नहीं। असल में ऐसा कुछ परिशोधित करना आसान होता है जो पहले से मौजूद है, जो कुछ ऐसा नहीं करता है जो परिभाषित करता है।

+1

+1 PHP + jQuery + MySQL टिप्पणी के लिए +1। जावा का उपयोग करने से सफलता के मुकाबले आपके परिचित उपकरणों का उपयोग करना अधिक महत्वपूर्ण है! – extraneon

+0

मैं अपनी परियोजना आवश्यकताओं के आधार पर, इस पथ को लेने से पहले वेब ऐप्स को पूरी तरह से रद्द करने के लिए निश्चित था। आपके पुस्तकालय सुझावों के लिए धन्यवाद। आप सही हैं, यह कंपनी छोटे आकार का है, इसलिए शायद वे इस दायरे को नहीं जानते हैं। –

0

बस एक nitpicking:

दोनों सर्वर और ग्राहक सॉफ्टवेयर GUIs होगा।

मैं सलाह देता हूं कि आप एक प्रशासनिक जीयूआई के साथ एक जीयूआई-सर्वर नहीं, एक हेडलेस (अल्ट पैरालान्स) सर्वर में हों। उपयोग के लिए

संबंधित मुद्दे