সবচেয়ে বড় "ট্রান্সলেশনাল ইস্যু" সম্ভবত জাভা / ওওপি পদ্ধতি থেকে ক্লোজার / ফাংশনাল প্রোগ্রামিং দৃষ্টান্তের দিকে চলে যাবে।
বিশেষত, অবজেক্টের মধ্যে পরিবর্তনীয় অবস্থা হওয়ার পরিবর্তে, "ক্লোজার উপায়" হ'ল পরিষ্কারভাবে পারস্পরিক পরিবর্তনকে পৃথক করা এবং বিশুদ্ধ (পার্শ্ব-প্রতিক্রিয়া মুক্ত) ফাংশন বিকাশ করা। আপনি সম্ভবত এটি ইতিমধ্যে জানেন :-)
যাইহোক, এই দর্শন একটি "ডাউন আপ" বিকাশের স্টাইলের দিকে নিয়ে যায় যেখানে আপনি আপনার সমস্যার সমাধানের জন্য সরঞ্জামগুলির সঠিক সেট তৈরির প্রাথমিক প্রচেষ্টাগুলিকে ফোকাস করেন, তারপরে শেষ পর্যন্ত এগুলি একসাথে প্লাগ করুন। এটি দেখতে এরকম কিছু দেখাচ্ছে
মূল ডেটা স্ট্রাকচার শনাক্ত করুন এবং এগুলি পরিবর্তনযোগ্য ক্লোজার ম্যাপ বা রেকর্ড সংজ্ঞাতে রূপান্তর করুন। প্রচুর অপরিবর্তনীয় মানচিত্রগুলি বাসাতে ভয় পাবেন না - ক্লোজারের অবিরাম ডেটা স্ট্রাকচারের জন্য এগুলি অত্যন্ত দক্ষ ধন্যবাদ। আরও জানতে এই ভিডিওটি দেখার পক্ষে মূল্যবান।
খাঁটি, ব্যবসায়িক যুক্তি ভিত্তিক ফাংশনগুলির ছোট লাইব্রেরিগুলি বিকাশ করুন যা এই স্থাবর কাঠামোগুলিতে পরিচালনা করে (যেমন "শপিং কার্টে একটি আইটেম যুক্ত করুন")। আপনার আরও একবারে এগুলি করার দরকার নেই যেহেতু পরে আরও যুক্ত করা সহজ, তবে এটি পরীক্ষার সুবিধার্থে এবং আপনার ডেটা স্ট্রাকচারগুলি কাজ করছে তা প্রমাণ করার জন্য কিছু তাড়াতাড়ি কিছু করতে সহায়তা করে ..... যেভাবেই এই পথে পয়েন্ট আপনি আসলে REPL এ ইন্টারেক্টিভভাবে দরকারী দরকারী জিনিস লেখা শুরু করতে পারেন
পৃথকভাবে ডেটা অ্যাক্সেসের রুটিনগুলি বিকাশ করুন যা প্রয়োজন অনুসারে ডাটাবেস বা নেটওয়ার্ক বা উত্তরাধিকারী জাভা কোডে / এই কাঠামোগুলিকে স্থির রাখতে পারে। এটিকে খুব আলাদা রাখার কারণ হ'ল আপনি আপনার "ব্যবসায়িক যুক্তি" ফাংশনের সাথে জড়িত থাকার দৃistence়তা যুক্তিটি চান না। আপনি এটির জন্য ক্লোজিউকিউআরএল দেখতে চাইতে পারেন , যদিও আপনার পছন্দমতো জাভা জেদী কোডটি মোড়ানো খুব সহজ।
ইউনিট পরীক্ষা লিখুন (উদাহরণস্বরূপ Clojure.test সহ ) যা উপরের সমস্তটি কভার করে। এটি ক্লোজারের মতো গতিশীল ভাষায় বিশেষত গুরুত্বপূর্ণ) ক) আপনার স্ট্যাটিক টাইপ চেকিং এবং সুরক্ষা জাল থেকে সুরক্ষা জাল যতটা নেই, খ) এটি নিশ্চিত হতে সাহায্য করে যে আপনি খুব বেশি গড়ার আগে আপনার নিম্ন স্তরের কনস্ট্রাক্টগুলি ভালভাবে কাজ করছে helps তাদের শীর্ষে
প্রতিটি অংশে পারস্পরিক পরিবর্তনযোগ্য অ্যাপ্লিকেশন-স্তরের অবস্থা পরিচালনা করতে আপনি কীভাবে ক্লোজারের রেফারেন্স প্রকারগুলি (বার, রেফ, এজেন্ট এবং পরমাণু) ব্যবহার করতে চান তা সিদ্ধান্ত নিন। এগুলি সকলেই একইভাবে কাজ করে তবে আপনি যা করার চেষ্টা করছেন তার উপর নির্ভর করে বিভিন্ন লেনদেন / সম্মিলিত শব্দার্থবিজ্ঞান রয়েছে। রেফগুলি সম্ভবত আপনার ডিফল্ট পছন্দ হতে চলেছে - তারা আপনাকে কোনও (ডোসেনসি ...) ব্লকে কোনও কোড মোড়ানো দ্বারা "স্বাভাবিক" এসটিএম ট্রানজেকশনাল আচরণ বাস্তবায়নের অনুমতি দেয়।
অধিকার সামগ্রিক ওয়েব ফ্রেমওয়ার্ক নির্বাচন করুন - Clojure ইতিমধ্যে বেশ কিছু রয়েছে কিন্তু আমি দৃঢ়ভাবে রিং বলতে চাই - এই চমৎকার ভিডিও "দেখুন ওয়ান রিং বাঁধে ও তা প্লাস হয়" ফ্লিট বা Enlive বা হিক্কা আপনার টেমপ্লেট দর্শন উপর নির্ভর করে। তারপরে আপনার উপস্থাপনা স্তরটি লিখতে এটি ব্যবহার করুন ("এই শপিং কার্টটিকে একটি উপযুক্ত এইচটিএমএল খণ্ডে অনুবাদ করুন" এর মতো ফাংশন সহ)
শেষ পর্যন্ত উপরের সরঞ্জামগুলি ব্যবহার করে আপনার অ্যাপ্লিকেশনটি লিখুন। যদি আপনি উপরের পদক্ষেপগুলি সঠিকভাবে সম্পন্ন করেছেন, তবে এটি আসলে সহজ বিট হবে কারণ আপনি খুব অল্প বয়লারপ্লেট সহ বিভিন্ন উপাদানগুলির উপযুক্ত রচনা দ্বারা পুরো অ্যাপ্লিকেশনটি তৈরি করতে সক্ষম হবেন।
এটি মোটামুটি ক্রম যা আমি সমস্যাটিকে আক্রমণ করব যেহেতু এটি আপনার কোডের উপর নির্ভরশীলতার ক্রমকে বিস্তৃতভাবে উপস্থাপন করে এবং তাই এটি "ডাউন আপ" বিকাশের প্রচেষ্টার জন্য উপযুক্ত। যদিও অবশ্যই ভাল চটপটে / পুনরাবৃত্ত শৈলীতে আপনি সম্ভবত নিজেকে একটি প্রদর্শনযোগ্য শেষ পণ্যটির দিকে এগিয়ে এগিয়ে যেতে এবং তারপরে প্রয়োজনীয়তা কার্যকারিতা বা রিফ্যাক্টর বাড়ানোর জন্য প্রায়শই প্রায় আগের পদক্ষেপগুলিতে ফিরে ঝাঁপিয়ে পড়তে দেখবেন।
পিএস যদি আপনি উপরের পদ্ধতিটি অনুসরণ করেন তবে জাভাতে 50,000 লাইনের কার্যকারিতা মেলে কতটা লাইন ক্লোজারের লাগে তা শুনে আমি মুগ্ধ হব
আপডেট : যেহেতু এই পোস্টটি মূলত বেশ কয়েকটি অতিরিক্ত সরঞ্জাম / পাঠাগার রচনা করা হয়েছিল যেগুলি "অবশ্যই চেক আউট" বিভাগে রয়েছে:
- নোয়ার - রিংয়ের উপরে নির্মিত ওয়েব ফ্রেমওয়ার্ক build
- Korma - এসকিউএল ডাটাবেস অ্যাক্সেসের জন্য খুব সুন্দর ডিএসএল।