আপনার প্রথম প্রশ্নটির জন্য, "আপনি এটি কীভাবে করবেন" - সংক্ষিপ্ত উত্তর, আমি করব না। এটিকে টানতে আমার কাছে পর্যাপ্ত পার্সার / সংকলক তত্ত্ব নেই। তবে আমি 25 বছর ধরে প্রোগ্রামিং করছি, তাই আমার কিছু ভাগ করার মতামত এবং মতামত রয়েছে।
প্রথমে, আমি একটি ওওপি পদ্ধতির সাথে আসার চেষ্টা করব যা আপনাকে সত্যিকারের সাথে সংযুক্ত মডেলগুলি তৈরি করতে দেয়। আমি এর অর্থ কী, মডেলগুলি প্রায় কোনও প্রকার প্রোগ্রামিং প্রকল্পের মধ্যে অন্যতম একটি গুরুত্বপূর্ণ বিষয় - এটি সঠিকভাবে পাওয়ার জন্য এটি সর্বদা প্রচুর পরিমাণে কাজ এবং একটানা রিফ্যাক্টরিং এবং আমি সত্যিকারের সংযোগের অভাবের জন্য দোষ দিই that ওও ভাষা।
আমাকে প্রদর্শন করার অনুমতি দিন। ধরা যাক একটি ক্লাস হাউসের একটি ডোর সম্পত্তি রয়েছে।
var door = house.Door;
আপনার এখন ডোর উদাহরণের সাথে একটি রেফারেন্স সহ একটি স্থানীয় ভেরিয়েবল রয়েছে।
তবে যা ঘটেছিল তা বিবেচনা করুন: আপনি সবেমাত্র দরজাটি ছিটকে ঘর থেকে ছিটিয়ে দিয়েছেন, এবং এখন আপনি দরজার চারপাশে পেরিয়ে যাওয়ার জন্য বেশ খুশি এবং আপনার বাকী কোডটি এই দরজাটি আসলে একটি বাড়ির সাথে সংযুক্ত রয়েছে এই বিষয়টি সম্পর্কে অজ্ঞ।
আমার কাছে এটি মূলত ভুল।
এবং হ্যাঁ, আমি জানি, কেস-কেস-কেস ভিত্তিতে এটি "সহজেই" ঠিক করা হয়েছে - এক্ষেত্রে বর্তমানে প্রতিটি দরজা থেকে বাড়ির প্রতি বিপরীত রেফারেন্স বজায় রেখে এটি সংযুক্ত রয়েছে। এটি অবশ্যই আপনার মডেলটিকে ত্রুটিগুলির জন্য উন্মুক্ত করে, যেহেতু এখন সঠিকভাবে দুটি বিপরীত রেফারেন্স বজায় রাখা আপনার দায়িত্ব, সুতরাং আপনি হাউস.ডোরস এবং ডোর.হাউস বৈশিষ্ট্যগুলিকে ব্যক্তিগত করে তোলেন এবং আপনি হাউস.এডডোর (), হাউস.মোভডুর (যেমন হাউস.ডমোভডুর) এর মতো পদ্ধতি যুক্ত করেন ( ), ডোর.সেটহাউস () ইত্যাদি এবং এটি সমস্ত তারের করে দেয় এবং এটিটি কার্যকরভাবে কাজ করে তা নিশ্চিত করার জন্য এটির ইউনিট-পরীক্ষা করুন।
এই যেমন একটি সরাসরি-এগিয়ে সম্পর্কের মডেল করতে অনেক কাজ মত শব্দ শুরু হয় না? অনেক কোড বজায় রাখতে হবে? মডেলটি বিকশিত হওয়ার সাথে সাথে রিফ্যাক্টরের অনেক কোড?
সমস্যা পয়েন্টার। প্রতিটি ওও ভাষা আমি দেখেছি, অন্তর্নিহিতভাবে এই বিষয়টি ভোগ করে যে কোনও বস্তু-রেফারেন্সটি সত্যই একটি পয়েন্টার, কারণ কম্পিউটারগুলি এটি ব্যবহার করে।
পয়েন্টারগুলি আসল বিশ্বের মডেল করার কোনও ভাল উপায় নয়। আপনি যে বিশ্বকে মডেল করার চেষ্টা করছেন তা নির্বিশেষে, এটি প্রায় গ্যারান্টিযুক্ত যে এই পৃথিবীর যে কোনও সম্পর্ক দ্বি-মুখী সম্পর্ক হতে চলেছে। পয়েন্টারগুলি কেবল এক দিকে নির্দেশ করে।
আমি এমন একটি ভাষা দেখতে চাই যেখানে মৌলিক ডেটা-মডেল একটি গ্রাফ - যেখানে সমস্ত সম্পর্কের, ডিফল্টরূপে, দুটি প্রান্ত থাকে। এটি প্রায় অবশ্যই বাস্তব বিশ্বের মডেলিংয়ের জন্য আরও অনেক প্রাকৃতিক ফিট সরবরাহ করবে, যা আমাদের প্রথম স্থানে কম্পিউটারের প্রয়োজন কেবল এটিই। (যে এবং ভিডিও গেমস।)
এ জাতীয় ভাষার কি সিনট্যাক্সটি দেখতে হবে বা পাঠ্য ব্যবহার করে তা অনুমেয়ভাবে প্রকাশ করা যেতে পারে সে সম্পর্কে আমার কোনও ধারণা নেই। (আমি ভেবে দেখেছি যে এই জাতীয় কোনও ভাষা গ্রাফিকাল হতে হবে, কোনওভাবে ...)
আমি দুর্ঘটনাজনিত রাষ্ট্রের সমস্ত প্রকারগুলিও দেখতে দেখতে চাই।
উদাহরণস্বরূপ, ওয়েব-বিকাশে, আমরা উপাত্তগুলি থেকে ব্যবসায়িক মডেলগুলিতে, উপস্থাপনার জন্য ভিউ-মডেলগুলিতে ডেটা গঠনে প্রচুর সময় ব্যয় করি ... তারপরে সেই তথ্যগুলির কিছু ফর্মগুলিতে উপস্থাপিত হয়, যা সত্যই অন্য একটি রূপান্তর is .. এবং ফর্ম-পোস্টগুলি থেকে রাষ্ট্র ফিরে আসে, এবং তারপরে আমরা সেই তথ্যটি পুনরায় আকার দিয়ে তা আবার ভিউ-মডেলের উপর প্রজেক্ট করি, উদাহরণস্বরূপ ভিউ-মডেল বাইন্ডার এবং এই জাতীয় ... আমরা তারপরে ভিউ-মডেল থেকে ব্যবসায়-এর দিকে ফিরে প্রজেক্ট করব- মডেল ... এরপরে আমরা ভিউ-মডেল থেকে ডেটাটি রূপান্তর করতে এবং এটিকে একটি সম্পর্কিত ডেটাবেসে প্রজেক্ট করার জন্য অবজেক্ট-রিলেশনাল ম্যাপার্স (বা গ্রান্ট ওয়ার্ক) ব্যবহার করি ...
এটি কি অপ্রয়োজনীয় শোনানো শুরু হচ্ছে? এই সমস্ত উন্মাদনার সময়ে আমরা কোন মুহুর্তে সত্যিই দরকারী কিছু অর্জন করেছি? এবং দরকারী দ্বারা আমি বোঝাতে চাইছি, কিছু বাস্তব - এমন কিছু যা শেষ-ব্যবহারকারী বুঝতে পারে এবং তার যত্ন নিতে পারে। দিনের শেষে, আপনি ব্যবহারকারীরা বুঝতে পারে এমন কিছু তৈরিতে আপনি যে ঘন্টা কাটিয়েছিলেন তা হ'ল সত্যই কেবল ব্যয় করা ঘন্টা। অন্য সব কিছুই পার্শ্ব প্রতিক্রিয়া।
আমি একটি উচ্চ গতিশীল ভাষা চাই। লেখার / সংকলন / রান-চক্র সময়ের এক ক্লান্তিকর অপচয়। আদর্শভাবে, ভাষার প্রয়োজন অনুসারে ব্যাকগ্রাউন্ডে কী পরিবর্তিত হয়েছে এবং স্বচ্ছভাবে সংকলন / লোড করা উচিত।
আদর্শভাবে, আপনার এমনকি "রান" চাপতে হবে না - জিনিসগুলি অন স্ক্রিনে হওয়া উচিত, আপনি পরিবর্তনগুলি করার সাথে সাথেই আপনার করা পরিবর্তনগুলি প্রতিফলিত করে। লেখার / সংকলন / রান-চক্রের সমস্যা, বা এমনকি এই বিষয়টির জন্য আরও সরাসরি লেখার / রান-চক্রের সমস্যাটি হ'ল আপনি যা করছেন তার থেকে আপনি খুব বেশি সংযোগ বিচ্ছিন্ন হয়ে পড়েছেন - আমাদের কাজের সাথে যুক্ত থাকার জন্য, আমরা তাত্ক্ষণিক প্রতিক্রিয়া, তাত্ক্ষণিক ফলাফল প্রয়োজন। কোন অপেক্ষা খুব দীর্ঘ!
আবার, আমি এমনকি জানি না এটি একটি traditionalতিহ্যবাহী আইডিই দ্বারা সম্পন্ন হতে পারে কিনা, বা এটির জন্য যদি পুরোপুরি নতুন ধরণের ইন্টারফেসের প্রয়োজন হয়।
আপনি যে সমস্যাটি নিয়ে কাজ করছেন তার পক্ষে সবচেয়ে উপযুক্ত উপযুক্ত, দুর্বল এবং শক্ত টাইপিংয়ের মিশ্রণটি ব্যবহার করতে সক্ষম হওয়া উচিত।
রাষ্ট্র সাধারণভাবে এমন কিছু হওয়া উচিত যা ভাষা আপনার জন্য পুরোপুরি পরিচালনা করে। অধ্যবসায়ের জন্য আপনার কেন একটি ডাটাবেসের উপর নির্ভর করা দরকার? আদর্শভাবে, আমি মডেলটির যে কোনও চলকের জীবনকালটি কেবলমাত্র: একটি ওয়েব-অনুরোধ, একটি সেশন, 24 ঘন্টা স্থায়ীভাবে নির্দিষ্ট করতে সক্ষম হতে চাই।
কেন আমাদের বিভিন্ন মিডিয়া এবং জীবন-শর্তাদির জন্য স্টোরেজ সলিউশনগুলির একটি সম্পূর্ণ অ্যারের মধ্যে নির্বাচন করতে হবে? - প্রতিটি মিডিয়া ফিট করার জন্য ডেটা ট্রান্সফর্মিং এবং শেপিংয়ের কথা উল্লেখ না করা; ব্রাউজার ক্যাশে, ডাটাবেস, মেমরি, ডিস্ক, কে যত্ন! ডেটা হ'ল ডেটা। আপনি যেখানে আপনার ডেটা সঞ্চয় করেন (এবং কতক্ষণের জন্য) সরল পছন্দ হওয়া উচিত, Godশ্বরের বিরুদ্ধে যুদ্ধ নয়!
ভাল, যে শুভকামনা।