একটি উত্সাহব্যঞ্জক কেস স্টাডি প্রকল্পের গতিশীল এবং ব্যাখ্যা ভাষা ব্যবহার স্কেলিং সম্পর্কে এক খুঁজে পাওয়া যেতে পারে Scala শুরুতে ডেভিড Pollak দ্বারা।
আমি আমার মস্তিস্কে কোডটি একটি সহজ, আরও প্রত্যক্ষ উপায়ে প্রকাশ করার উপায় অনুসন্ধান করতে শুরু করেছি। আমি রুবি এবং রেলগুলি পেয়েছি। আমি নিজেকে মুক্ত মনে করেছি। রুবি আমাকে কোডের খুব কম লাইনে ধারণাগুলি প্রকাশ করার অনুমতি দিয়েছে। স্প্রিং এমভিসি, হাইবারনেট এবং অন্যান্য "প্রবাহিত" জাভা ওয়েব ফ্রেমওয়ার্কগুলির চেয়ে তুলনামূলকভাবে ব্যবহার করা এত সহজ ছিল। রুবি এবং রেলগুলির সাথে, আমি স্বল্প সময়ের মধ্যে আমার মাথায় যা ছিল তার অনেক বেশি প্রকাশ করতে পেরেছি। এটি মুক্তির সাথে মিল ছিল যখন আমি সি ++ থেকে জাভাতে চলে গিয়েছিলাম ...
আমার রুবি এবং রেল প্রকল্পগুলি কোডের কয়েক হাজার লাইন ছাড়িয়ে এবং আমি আমার প্রকল্পগুলিতে দলের সদস্যদের যুক্ত করার সাথে সাথে গতিশীল ভাষার চ্যালেঞ্জগুলি স্পষ্ট হয়ে উঠল।
আমরা আমাদের কোডিং সময়গুলির অর্ধেকেরও বেশি সময় পরীক্ষার জন্য ব্যয় করছিলাম এবং আমরা যে উত্পাদনশীলতা লাভ দেখেছি সেগুলি পরীক্ষার লেখায় হারিয়ে গেছে । জাভাতে বেশিরভাগ পরীক্ষাগুলি অপ্রয়োজনীয় হত কারণ বেশিরভাগ পরীক্ষাগুলি পদ্ধতিটির নাম বা প্যারামিটারের মান পরিবর্তন করে কোডটি রিফ্যাক্ট করার সময় আমরা নিশ্চিত হয়েছি যে আমরা কলকারীদের আপডেট করব কিনা তা নিশ্চিত করার দিকে। এছাড়াও, আমি দেখতে পেলাম যে দুটি দলের সদস্যদের মধ্যে দু'জনের মধ্যে মাইন্ড মেল্ড ছিল, সেখানে রুবিতে কাজ ভাল হয়েছিল, তবে আমরা নতুন সদস্যদের দলে আনার চেষ্টা করায় নতুন দলের সদস্যদের কাছে মানসিক সংযোগ সংবহন করা শক্ত ছিল ।
আমি একটি নতুন ভাষা এবং বিকাশের পরিবেশ খুঁজছিলাম। আমি এমন একটি ভাষার সন্ধান করছিলাম যা রুবির মতোই অভিব্যক্তিপূর্ণ তবে জাভার মতো নিরাপদ এবং উচ্চ-সম্পাদনা ...
যেমন আপনি দেখতে পাচ্ছেন, লেখকের জন্য প্রকল্প স্কেলিংয়ের বড় চ্যালেঞ্জগুলি পরীক্ষা বিকাশ এবং জ্ঞান স্থানান্তর হিসাবে দেখা দিয়েছে।
বিশেষত, অধ্যায় in-তে লেখক গতিময় এবং স্থিতিশীলভাবে টাইপ করা ভাষার মধ্যে পরীক্ষা লেখার পার্থক্যের ব্যাখ্যা দেওয়ার জন্য আরও বিশদে চলেছেন "বিভাগে" মর্মস্পর্শীভাবে কিলিং বনি: ডেমথির সিঁড়ি "লেখক একটি নির্দিষ্ট রুবির উদাহরণের স্কালা বন্দর নিয়ে আলোচনা করেছেন:
কেন লাকি স্টিফ ... ডুবথির অ্যারেতে রুবির কয়েকটি রূপক ধারণাটি প্রবর্তন করে যার মধ্যে একটি খরগোশ প্রাণীর একটি অ্যারের সাথে লড়াই করে। N8han14 স্কালায় কাজ করার উদাহরণটি আপডেট করেছে ...
রুবি কোডের তুলনায় স্কাল কোডের লাইব্রেরি অংশগুলি আরও জটিল ছিল। আমাদের প্রকারগুলি সঠিক ছিল তা নিশ্চিত করতে আমাদের অনেক কাজ করতে হয়েছিল। আমাদের ডুপমোনস্টার এবং ক্রিশনকনস ক্লাসে ক্রিস্টারের সম্পত্তি ম্যানুয়ালি লিখতে হয়েছিল। এটি এর চেয়ে বেশি কাজ method_missing
। আমাদের ক্রিয়েচারস এবং অস্ত্রগুলিতে অপরিবর্তনীয়তা সমর্থন করার জন্য আমাদের যথেষ্ট পরিমাণে কাজ করতে হয়েছিল।
অন্যদিকে, ফলাফলটি রুবি সংস্করণের চেয়ে অনেক বেশি শক্তিশালী ছিল। স্কালা সংকলক আমাদের কী আশ্বাস দেয় তা পরীক্ষা করার জন্য যদি আমাদের রুবি কোডের জন্য পরীক্ষা লিখতে হয় তবে আমাদের অনেক বেশি কোডের লাইন দরকার। উদাহরণস্বরূপ, আমরা নিশ্চিত হতে পারি যে আমাদের খরগোশ একটি অক্ষ চালাতে পারে না। রুবিতে এই আশ্বাস পাওয়ার জন্য, আমাদের একটি পরীক্ষা লিখতে হবে যা নিশ্চিত করে যে |^
খরগোশের দিকে চলা ব্যর্থ হয়। আমাদের স্কালা সংস্করণটি নিশ্চিত করে যে প্রদত্ত প্রকৃতির জন্য কেবলমাত্র সংজ্ঞায়িত অস্ত্রগুলি সেই ক্রিচার দ্বারা ব্যবহার করা যেতে পারে, যা রুবিতে প্রচুর রানটাইম প্রতিবিম্বের প্রয়োজন হবে ...
উপরের পড়ার ফলে কেউ ভাবতে পারে যে প্রকল্পগুলি আরও বড় হওয়ার সাথে সাথে পরীক্ষা লেখার বিষয়টি জটিল হয়ে উঠতে পারে। এই যুক্তিটি ভুল হবে, যেমন এই খুব প্রশ্নের মধ্যে উল্লেখযোগ্য সফল খুব বড় প্রকল্পের উদাহরণ দ্বারা প্রমাণিত হয়েছে ("পাইথন সফলভাবে ... ইউটিউব" এর জন্য ব্যবহৃত হয়)।
কথাটি হচ্ছে, প্রকল্পগুলির স্কেলিং সত্যিই সোজা নয়। খুব বড়, দীর্ঘকালীন প্রকল্পগুলি উত্পাদন মানের টেস্ট স্যুট, পেশাদার পরীক্ষার ডেভ দল এবং অন্যান্য হেভিওয়েট স্টাফ সহ বিভিন্ন পরীক্ষা বিকাশের প্রক্রিয়াটিকে "সামর্থ" করতে পারে।
ইউটিউব টেস্ট স্যুট বা জাভা সামঞ্জস্যতা কিট নিশ্চিত যে দ্বেমেথির অ্যারের মতো একটি ছোট টিউটোরিয়াল প্রকল্পের পরীক্ষাগুলির চেয়ে আলাদা জীবন বাঁচবে ।