আমি বিদ্যুৎ কেন্দ্রগুলির একটি পোর্টফোলিওর জন্য একটি বিদ্যুৎ সংস্থার ট্রেডিং পজিশনে জাতীয় বিদ্যুৎ উৎপাদনের শিডিয়ুলের ভারসাম্য বজায় রাখতে একটি আবেদন লিখেছি। ক্লায়েন্ট এবং সার্ভারের উপাদানগুলি সি # তে ছিল তবে গণনা ইঞ্জিনটি F # তে লেখা হয়েছিল।
এই অ্যাপ্লিকেশনটির কেন্দ্রস্থলে জটিলতার সমাধানের জন্য এফ # এর ব্যবহার স্পষ্টভাবে এন্টারপ্রাইজ সফ্টওয়্যারটির মধ্যে ভাষার জন্য একটি মিষ্টি স্পট প্রদর্শন করে, যথা বড় ডেটা সেটগুলির অ্যালগোরিদমিক জটিল জটিল বিশ্লেষণ। আমার অভিজ্ঞতা খুব ইতিবাচক একটি হয়েছে। নির্দিষ্টভাবে:
পরিমাপের ইউনিটসমূহ আমি যে শিল্পে কাজ করি সেগুলি ইউনিটগুলির সাথে আবদ্ধ। আমি যে সমীকরণগুলি প্রয়োগ করেছি (প্রায়শই জ্যামিতিক প্রকৃতির) সেগুলি সময়, শক্তি এবং শক্তির ইউনিটগুলির সাথে মোকাবিলা করে। টাইপ সিস্টেমটি ইনপুট এবং ফাংশনের আউটপুটগুলির ইউনিটগুলির যথার্থতা যাচাই করে নেওয়া কোডের পরীক্ষা এবং পড়া / বোঝার ক্ষেত্রে উভয় ক্ষেত্রেই একটি বিশাল সময় সাশ্রয়কারী। এটি পূর্ববর্তী সিস্টেমগুলির প্রবণতাযুক্ত পুরো ক্লাসের ত্রুটিগুলি নির্মূল করে।
এক্সপ্লোরেটরি প্রোগ্রামিং স্ক্রিপ্ট ফাইল এবং আরএপিএল (এফ # ইন্টারেক্টিভ) এর সাথে কাজ করা আমাকে আরও বেশি traditionalতিহ্যবাহী সম্পাদনা / সংকলন / রান / পরীক্ষার লুপের চেয়ে বাস্তবায়নের প্রতিশ্রুতি দেওয়ার আগে সমাধানের স্থানটি আরও কার্যকরভাবে অন্বেষণ করার অনুমতি দেয়। কোনও প্রোগ্রামার এর সমস্যা এবং খেলার নকশার উত্তেজনা সম্পর্কে তাদের বোঝাপড়া তৈরি করার পক্ষে এটি একটি খুব স্বাভাবিক উপায়।
অ-পার্শ্ব প্রতিক্রিয়াশীল ফাংশন এবং অপরিবর্তনীয় ডেটা স্ট্রাকচার ব্যবহার করে লিখিত ইউনিট টেস্টিং কোডটি পরীক্ষার জন্য আনন্দ। জিনিসগুলি স্ক্রু করার জন্য কোনও জটিল সময়-নির্ভর ইন্টারঅ্যাকশন বা উপহাসের জন্য নির্ভরশীলতার বৃহত সেটগুলি নেই।
আন্তঃকরণ আমি সি # তে গণনা ইঞ্জিনের সাথে ইন্টারফেসটি সংজ্ঞায়িত করেছি এবং F # তে গণনা প্রয়োগ করেছি। গণনা ইঞ্জিনটি তখন কোনও সি # মডিউলে ইনজেকশন করা যেতে পারে যা আন্তঃব্যবহারযোগ্যতা সম্পর্কে কোনও উদ্বেগ ছাড়াই এটি ব্যবহার করা দরকার। বিজোড়। সি # প্রোগ্রামারটি কখনই জানতে পারে না।
কোড হ্রাস গণনা ইঞ্জিনে খাওয়ানো বেশিরভাগ ডেটা ভেক্টর এবং ম্যাট্রিক্সের আকারে ছিল। উচ্চতর আদেশ ক্রিয়াকলাপগুলি নুন্যতম ঝলক, ন্যূনতম কোড সহ প্রাতঃরাশের জন্য এটি খায়। সুন্দর।
বাগের অভাব ফাংশনাল প্রোগ্রামিংটি অদ্ভুত বোধ করতে পারে। আমি একটি অ্যালগরিদমের উপর কাজ করতে পারি, টাইপ চেকারটি পাস করার জন্য কোড পাওয়ার জন্য কঠোর চেষ্টা করছি তবে একবার যদি টাইপ চেকার সন্তুষ্ট হয় তবে এটি কাজ করে। এটি প্রায় বাইনারি, হয় তা সংকলন করবে না এটির সঠিক হবে। অদ্ভুত প্রান্তের কেস ত্রুটিগুলি হ্রাস করা হয়, পুনরাবৃত্তি এবং উচ্চতর অর্ডার ফাংশনগুলি প্রচুর বই-রাখার কোড সরিয়ে দেয় যা প্রান্তের ক্ষেত্রে ত্রুটিগুলি প্রবর্তন করে।
সমান্তরালত ফলস্বরূপ বাস্তবায়নের কার্যকরী বিশুদ্ধতা ডেটা প্রক্রিয়াকরণ ভেক্টরগুলিতে প্রসেসিংয়ের অন্তর্নিহিত সমান্তরালতাকে কাজে লাগানোর জন্য এটি পাকা করে তোলে। সম্ভবত এটিই এখন যেখানে আমি এখনই যাব। নেট 4 আউট।