2010-01-22 11 views
18

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

स्कैला की अपील का हिस्सा यह है कि यह व्यावहारिक है - आप इसे ड्रॉप-इन "पावर जावा" (जावा के साथ कम वाक्य रचनात्मक अव्यवस्था, बंद, अपरिवर्तनीयता, एफपी, लक्षण, सिंगलटन ऑब्जेक्ट्स, निफ्टी एक्सएमएल हैंडलिंग, प्रकार अनुमान आदि) जो अभी भी JVM (और .NET CLR पर माना जाता है) पर चलता है और आपको बिल्ड टूल्स, सर्वर इंफ्रास्ट्रक्चर, लाइब्रेरीज़, आईडीई आदि को बदलने की आवश्यकता नहीं होती है। मैंने देखा है कि अधिकांश कट्स मजेदार रहे हैं लेकिन 'वास्तविक दुनिया' नहीं - परियोजना यूलर जैसी गणितीय चुनौतियों और इसी तरह। ये उचित नहीं लगते हैं क्योंकि हम इसे व्यावहारिक, असली दुनिया की भाषा के रूप में उपयोग करने का प्रयास कर रहे हैं, जो लोग हैकिंग और काम दोनों के लिए उपयोग करने पर विचार कर सकते हैं, और क्योंकि लोग जरूरी नहीं हैं कि वे या तो परिचित हों स्कैला वाक्यविन्यास के गहरे हिस्सों या कार्यात्मक प्रोग्रामिंग के पीछे अवधारणाओं के जरूरी है।

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

यदि मुझे अच्छे उदाहरण नहीं मिल रहे हैं, तो मैं सोच रहा हूं कि यह हो सकता है लाइब्रेरी कैटलॉग की तरह कुछ बनाने और बनाने के लिए उपयोगी - यह कार्यक्रम प्रोग्रामर के लिए है जो मुख्य रूप से विश्वविद्यालयों (और शिक्षा और संस्कृति में - संग्रहालयों, दीर्घाओं, स्कूलों, पुस्तकालयों आदि) के लिए बुनियादी ढांचे के निर्माण पर काम करते हैं। हालांकि यह थोड़ा उबाऊ है, लेकिन यह ऐसी चीज है जो उपस्थिति अपने दैनिक अस्तित्व में काम करते हैं। कोई सुझाव?

http://github.com/javaBin/scala-training-slides

http://github.com/javaBin/scala-training-code

स्लाइड ओपन कार्यालय प्रारूप में हैं:

+1

शायद समुदाय विकी होना चाहिए - वहाँ एक "सही" जवाब होने की संभावना नहीं है। यह चर्चा के लिए एक बीज की तरह लगता है। –

+0

ठीक है, मैंने इसे समुदाय विकी पर सेट कर दिया है –

उत्तर

10

एक क्रिएटिव कॉमन्स के साथ हाथ अभ्यास यहाँ परिचयात्मक प्रशिक्षण पाठ्यक्रम लाइसेंस प्राप्त नहीं है। यदि आपके पास यह इंस्टॉल नहीं है, तो आप उन्हें स्लाइडशेयर पर अपलोड कर सकते हैं, जो उन्हें ऑनलाइन देखने के लिए रूपांतरित कर देगा।

1

शायद आप प्रेरणा के लिए Ruby Quiz सामग्री पर एक नज़र डाल सकते हैं।

3

मेरे blog में अधिकांश प्रोग्रामिंग उदाहरण प्रभावी रूप से डोजो अभ्यास कोडिंग कर रहे हैं। विशेष रूप से matrices series, लेकिन puzzles और 99 beers भी। अब, मैट्रिस श्रृंखला को "गणितीय" के रूप में न मानें, क्योंकि जिन समस्याओं को मैं स्वयं में चिंतित करता हूं वे स्कैला में कक्षाओं के निर्माण से संबंधित हैं, फैंसी एल्गोरिदम नहीं कर रहे हैं। असल में, मैं गणितीय एल्गोरिदम पर खुद को बहुत ज्यादा छोड़ देता हूं।

अब, 99 Scala Problems और Project Euler से काफी कुछ सब कुछ स्कैला के कार्यात्मक हिस्से के लिए अच्छा अभ्यास है, लेकिन मैं समझता हूं कि आपका जोर नहीं होना चाहिए। मैं retronym के answer की अनुशंसा करता हूं। Rosetta Code, कार्यात्मक रूप से उन्मुख नहीं होने पर, अधिक सामान्य उदाहरण हो सकते हैं। Scala examples के साथ कई लोग हैं, हालांकि, आप विचारों के लिए अन्य कार्यों पर भी विचार करना चाहेंगे।

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

Scala Lang साइट पर विशेष रूप से Scala by Example दस्तावेज़ पर सामग्री पर भी देखें।

संपादित

मैं अब कई स्काला डोजो देखरेख है, इसलिए यहाँ सामान का एक सा मैं तो से सीखा है है:

  • समस्याएं: वे मज़ा, नहीं-काफी होना जरूरी आसान, कठिन नहीं है, और यह होना चाहिए हर किसी की राय।

    हम Dojo Puzzles साइट का उपयोग पुर्तगाली में करते हैं, इसलिए यह अधिकांश लोगों के लिए उपयोग नहीं किया जाएगा। अगर अंग्रेजी में एक समान साइट है, तो मुझे इसके बारे में सुनना अच्छा लगेगा।

    जिस तरह से यह काम करता है, आप एक यादृच्छिक समस्या के लिए पूछते हैं, इसे देखते हैं और यह देखने के लिए चर्चा करते हैं कि आप इसे उठाएंगे या नहीं, और फिर यह कहकर इंगित करें कि आप इसका उपयोग करेंगे, आप इसका उपयोग नहीं करेंगे , या शायद आप इसका इस्तेमाल करेंगे लेकिन आप एक और देखना चाहते हैं। यह वोट पंजीकृत हो जाता है और आप देख सकते हैं कि कितने लोगों ने कोई समस्या उठाई है, जो यह तय करने में सहायता करता है कि इसे चुनना है या नहीं।

  • स्कैला ज्ञान: यह पता चला है कि स्कैला भाषा की मुख्य अवधारणाओं को पहले से शुरू करना महत्वपूर्ण नहीं है, खासकर यदि कुछ प्रतिभागियों के पास बुनियादी ज्ञान है।

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

  • शिक्षण स्कैला: यदि आप स्कैला को पढ़ाने के लिए तैयार हैं, तो सबक कम रखें और डोजो के साथ अनुवर्ती रहें। इस मामले में, डोजो समस्याओं का एक सेट रखें जो पाठ के लिए पर्याप्त हैं, और, एक दिन में आप कितने सबक चाहते हैं, इस पर निर्भर करते हैं।

    यह किसी समस्या को हल करने के तरीके पर कृत्रिम बाधाओं को लागू करने में मदद करता है। मैंने जो बाधाओं को अभ्यास में रखा है, उनमें से कुछ उदाहरण कक्षाएं और एकल-अभिव्यक्ति विधियां नहीं हैं (यानी, कोई एकाधिक कथन या val/var घोषणाएं नहीं हैं)। इन बाधाओं का मुद्दा लोगों के लिए जिस तरह से उपयोग किया जाता है, उस समस्या को हल करना असंभव बना रहा है, जिससे उन्हें विकल्पों की तलाश में भाषा का पता लगाना पड़ता है।

मेरे पास वर्तमान नौकरी in this repository पर किए गए तीन डोजोज के अंतिम परिणाम हैं।

समय हम डोजो के अंत में Randori Kata प्रारूप का उपयोग कर रहे हैं, लेकिन तय समय या तोड़ने के बिना, और पूर्वव्यापी साथ, अगले की शुरुआत में नहीं। हालांकि, यह अभी हम अभी मौजूद हैं - हमने कई भिन्नताओं का प्रयोग किया है, और हम अभी भी विकसित हो रहे हैं।

0

(स्केला के निर्माता) मार्टिन ओडर्स्की से Scala by exemple पर एक नजर डालें

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