2009-02-21 12 views
6

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

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

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

उत्पादन सर्वर सोलारिस है। MySQL में हमारे अधिकांश डेटा हैं लेकिन ओरेकल का उपयोग करके नई परियोजनाओं ने अधिक से अधिक (जीआईएस डेटा के लिए) शुरू कर दिया है। वेब सर्वर सार्वभौमिक अपाचे हैं। हम नियमित इंटरनेट से डिस्कनेक्ट इंट्रानेट में रहते हैं। हमारा विकास एक Agile, पुनरावृत्ति तरीके से आयोजित किया जाता है।

जो भी भाषा में आगे पुश करने के लिए चुना जाता है, वहाँ संसाधनों मौजूदा विकास कर्मचारियों को फिर से प्रशिक्षित करने के लिए कर रहे हैं। कोई फर्क नहीं पड़ता कि, हमारे पर्यावरण में जो डेटा आता है उसे मृत्यु के लिए फिर से जोड़ना होगा ताकि पर्ल जल्द ही दूर नहीं जा रहा है। समुदाय के लिए मेरा सवाल यह है कि उपर्युक्त परिभाषित वेब देव पर्यावरण के लिए निम्नलिखित भाषाओं के पेशेवरों और विपक्ष क्या हैं: पर्ल, पीएचपी, जावा, पायथन, और - यहां अपनी पसंदीदा भाषा डालें। यदि आप इसे फिर से करना चाहते थे, तो आपने कौन सी भाषा सेट-अप चुना होगा?

संपादन और स्पष्टीकरण: मुझे अपनी मूल पोस्ट पर थोड़ा सा स्पष्टीकरण दें। मैं सबकुछ दूर नहीं फेंक रहा हूँ। मुझे जहाज के पाठ्यक्रम को समायोजित करने का मौका दिया गया है जो मुझे विश्वास है कि एक बेहतर शीर्षक है। यहां तक ​​कि अगर मैंने एक नई भाषा चुनी है, तो कुछ समय आने के लिए पर्ल कोड चारों ओर होगा।

hypothetically बोल रहा है, अगर मैं विधानसभा मेरी नई भाषा (haha) मैं शायद उन्हें कुछ बुनियादी विधानसभा वर्गों के लिए भेज कर लाने के लिए वर्ष डेवलपर्स प्राप्त करना होगा, के रूप में चुना है। नए पेज/परियोजनाएं नई भाषा में होंगी और पुराने पृष्ठों/परियोजनाओं को नए पृष्ठों/परियोजनाओं के साथ अच्छा खेलना होगा। कुछ लोगों को एक दिन नई भाषा में फिर से लिखा जा सकता है, कुछ कभी नहीं बदला जा सकता है।

क्या होने की संभावना हमेशा पर्ल में हो जाएगा पार्स स्क्रिप्ट हम लिखा साल पहले में छान-बीन करने के लिए और फ्लैट फ़ाइलों से डेटाबेस जानकारी होगी। लेकिन यह ठीक है क्योंकि वे वेबपृष्ठों के साथ इंटरफ़ेस नहीं करते हैं, वे डेटाबेस के साथ इंटरफ़ेस करते हैं।

आपके इनपुट के लिए सभी को धन्यवाद, यह अब तक बहुत उपयोगी रहा है।

उत्तर

13

ऐसा लगता है कि आपकी समस्या भाषा की तुलना में अधिक विरासत कोड और अनौपचारिक विकास पद्धति है। तो यदि आपके पास पहले से ही कर्मचारियों पर पर्ल डेवलपर्स हैं, तो क्यों न एक नई भाषा में स्विच करने और एक विषम कोड बेस बनाने के बजाय, अपनी विधियों और कोड कोड को आधुनिक बनाना शुरू करें। Test::* मॉड्यूल और WWW::Mechanize, डेटा बेस बातचीत सादा DBI के माध्यम से किया जा सकता है, लेकिन यह भी साथ उत्कृष्ट DBIx::Class तरह ORM मॉड्यूल का उपयोग कर, OO साथ, परीक्षण बल दिया जाता है:

Modern Perl अच्छी प्रथाओं और शक्तिशाली उपकरण के मामले में एक बहुत प्रदान करता है Moose अब अधिक आधुनिक भाषाओं के बराबर है, mod_perl आपको अपाचे के भीतर बहुत सारी शक्ति तक पहुंच प्रदान करता है। पर्ल के लिए कुछ MVC frameworks भी हैं। जो बहुत ध्यान दे रहा है वह Catalyst है।

Perl Best Practices के कुछ प्रतियों में निवेश, आधुनिक विकास के तरीकों पर कुछ वर्गों के लिए एक उचित ट्रेनर में लाने के लिए, और अपने समूह की संस्कृति बदल रहा शुरू करते हैं।

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

यह हमेशा आपके कोड की स्थिति को उस भाषा पर दोष देने के लिए मोहक है, लेकिन आपके मामले में मुझे यकीन नहीं है कि यह मामला है। Lots of big companies में पर्ल में विशाल कोड बेस प्रबंधित करने में कोई समस्या नहीं है, सूची लंबी है लेकिन मुख्य वित्तीय कंपनियां कई वित्तीय संस्थानों के साथ-साथ वहां हैं।

+1

उत्प्रेरक वेब काम के लिए भी बहुत अच्छा है जिसे एक साथ विरासत बिट्स को चिपकाने की आवश्यकता होती है। उत्प्रेरक की तरह चीजें :: नियंत्रक :: WrapCGI और उत्प्रेरक :: देखें :: PHP विशेष रूप से इस तरह के गोंद प्रदान करने के लिए डिज़ाइन किए गए हैं। – singingfish

0

मुझे लगता है कि एक भी भाषा चुनना महत्वपूर्ण है और यदि आपका डेटाबेस मुख्य रूप से MySQL है, तो PHP स्पष्ट पसंद की तरह दिखता है। यह स्वाभाविक रूप से आपके डेटाबेस के साथ काम करता है, यह खुला स्रोत है और वहां बहुत सारे दस्तावेज हैं, स्रोत कोड, संकलन की आवश्यकता नहीं है, आदि

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

मैं इसे लिखने का सुझाव भी दूंगा ताकि भविष्य में लोग पहिया का पुन: आविष्कार न करें।

+1

कोई भी आधुनिक भाषा mysql के साथ काम करती है, इसलिए mysql समर्थन के लिए PHP चुनना एक मूर्ख कारण है। मैं यह नहीं कह रहा हूं कि आपको PHP नहीं चुना जाना चाहिए, बस ऐसा करने का यह एक अच्छा कारण नहीं है। – mpeters

+1

mpeters सही है, अकेले MySQL एक अच्छा कारण नहीं है। आप तर्क दे सकते हैं कि एक और मानक लैंप स्टैक पर जाने से डेवलपर्स को ढूंढना आसान हो जाएगा, लेकिन जावा प्रोग्रामर भी ढूंढना आसान है। किसी भी भाषा के लिए अच्छे डेवलपर्स ढूँढना अभी भी एक समस्या होगी। – acrosman

1

यदि रेगेक्स महत्वपूर्ण है तो मैं अच्छी सहायता के साथ एक भाषा का चयन करूंगा।

यदि आप जावा का उपयोग करेंगे, तो आप अपने रेगेक्स कोड को पेर्ल कोड से पेस्ट करने में सक्षम नहीं होंगे क्योंकि स्लेश से बच निकलना होगा। तो मैं जावा के खिलाफ वोट दूंगा।

मैं अपने रेगेक्स सुविधाओं को जानने के लिए पर्याप्त PHP से परिचित नहीं हूं, लेकिन आपके विकल्पों को दिया गया है, मैं पाइथन के लिए जाऊंगा। आप अजगर में क्लीनर कोड बना सकते हैं।

क्या रूबी भी एक विकल्प होगा? इसमें रेगेक्स समर्थन जैसे अच्छे पर्ल भी हैं और रेल बॉक्स के बाहर चुस्त वेब विकास का समर्थन करते हैं।

1

पहले मुझे बताएं कि MySQL's spatial extensions work with GIS बताएं।

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

जावा या नेट (या यहां तक ​​कि रूबी पर रूबी) जैसे किसी चीज़ पर स्विच करना डिजाइन में कहीं अधिक नाटकीय बदलाव होगा।

अपाचे सर्वर के साथ प्लस आपके पास पहले से ही आपका पर्यावरण स्थापित है और आप शायद किसी भी विकास को पर्ल और PHP के मिश्रण के रूप में आसानी से आसानी से ले सकते हैं।

आपके प्रश्न के अंतिम भाग के रूप में: यदि आप इसे फिर से कर सकते हैं तो आप इसे क्या करेंगे? मेरे लिए यह एक अलग और मूल रूप से अप्रासंगिक प्रश्न है। तथ्य यह है कि आप रिवाइंडिंग नहीं कर रहे हैं और शुरू कर रहे हैं, आप बस ... शुरू कर रहे हैं। इसलिए विरासत समर्थन, संक्रमण, कौशल विकास और उन सभी अन्य मुद्दों को किसी भी वास्तविक दुनिया में चुनने के किसी भी अनुमानित प्रश्न से कहीं अधिक महत्वपूर्ण है यदि अन्य सभी चीजें बराबर थीं।

इसे प्यार करें या नफरत है, PHP लोकप्रिय है और जल्द ही कहीं भी नहीं जा रहा है। स्किल्ड लोगों को ऐसा करने के लिए ढूंढना बहुत कठिन नहीं है (ठीक है, भिन्नता स्वयं को सिखाए गए काउबॉय स्क्रिप्ट जॉकी से फ़िल्टर कर रही है जो सोचते हैं कि वे कोड कर सकते हैं लेकिन नहीं कर सकते हैं) और यह वेब-आधारित पर्ल से बहुत दूर नहीं है।

5

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

उस समय मैं अपने विकल्पों पर विचार करना शुरू कर दूंगा। यदि Perl कोड बचाया जा सकता है, तो बढ़िया से अच्छा, किसी को Perl में कुशल बनाएं। मौजूदा कोड-बेस पर सहायता के लिए अपने कुछ मौजूदा कर्मचारियों को भी प्रशिक्षित करें। यदि आपके पास PerlPerl कोड के प्रभारी में कोई कुशल नहीं है, तो आपका कोड-बेस पहले से कहीं भी बदतर हो सकता है।

केवल अगर यह भयानक आकार में था, तो क्या मैं इसे किसी अन्य भाषा के लिए छोड़ने पर विचार करता हूं। वह भाषा क्या है, यह वह है जो आपको अपने बारे में सोचना होगा।

पेज। मैं थोड़ा पक्षपातपूर्ण हूं, मैं Perl

1

यदि आपके डेवलपर कोई भी अच्छे हैं, तो वे उन पर फेंकने वाले कुछ भी संभालने में सक्षम होंगे। यह तय करना कि कौन सी भाषा का उपयोग करना एक कठिन रणनीतिक स्थिति है, लेकिन मैं आपको किसी और को शुरू करने से पहले बहुत सावधानी से सोचने की सलाह देता हूं (यानी नहीं)।

बेशक, ऐसा कुछ भी है जो आप पूरी तरह से नहीं कर सकते (या सैनी से नहीं कर सकते) जो आपको मिला है।

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