আমরা সবাই কেন এখনও মডেল চালিত উন্নয়ন করছি না? [বন্ধ]


19

আমি মডেল চালিত বিকাশের একজন সত্য বিশ্বাসী, আমি মনে করি এটির উত্পাদনশীলতা, গুণমান এবং ভবিষ্যদ্বাণী বাড়ানোর সম্ভাবনা রয়েছে has যখন এ খুঁজছেন MetaEdit ফলাফল আশ্চর্যজনক। নেদারল্যান্ডসে মেন্ডিক্স খুব দ্রুত বাড়ছে এবং এর দুর্দান্ত ফলাফল রয়েছে।

আমি আরও জানি অনেক সমস্যা আছে

  • জেনারেটর, টেমপ্লেট এবং কাঠামোর সংস্করণ
  • মডেল চালিত বিকাশের জন্য যে প্রকল্পগুলি ঠিক সঠিক নয় (পর্যাপ্ত পুনরাবৃত্তি নয়)
  • উচ্চতর ঝুঁকিগুলি (যখন প্রথম প্রকল্পটি ব্যর্থ হয়, আপনার আরও বেশি traditionalতিহ্যগত বিকাশের সাথে কম ফলাফল থাকে)
  • ইত্যাদি

তবে তবুও এই সমস্যাগুলি সমাধানযোগ্য বলে মনে হচ্ছে এবং বেনিফিটগুলির প্রয়োজনীয় প্রচেষ্টাটি ছাড়িয়ে যাওয়া উচিত।

প্রশ্ন : আপনি সবচেয়ে বড় সমস্যা হিসাবে কী দেখছেন যা আপনাকে এমনকি মডেল চালিত বিকাশ বিবেচনা করে না?

আমি এই উত্তরগুলি কেবল নিজের বোধগম্যতার জন্যই ব্যবহার করতে চাই না, এমন একটি অভ্যন্তরীণ নিবন্ধগুলিও লিখতে চাইছি বলে একটি সম্ভাব্য উত্স হিসাবে।


21
আমি কোন প্রোগ্রামিং বা বিকাশ পদ্ধতিতে সত্য বিশ্বাসী। এগুলির প্রায় সব কিছু কোনও কিছুর জন্য দরকারী; কিছুই সব কিছুর জন্য সেরা। আমি বিশ্বাস করি না যে "সত্যিকারের বিশ্বাসী" প্রশ্ন পিএসইর মানদণ্ড দ্বারা গঠনমূলক।
ডেভিড থর্নলি

4
@ ডেভিড থর্নলি: মন্তব্যের জন্য ধন্যবাদ তবে আমি জানি না "সত্যিকারের বিশ্বাসী" এর গঠনমূলক হওয়ার সাথে কিছু ছিল কিনা। আমি উত্তরগুলি নিয়ে খুব খুশি এবং এটি অনেক সাহায্য করেছিল। আমার দৃষ্টিকোণ থেকে এটি খুব গঠনমূলক ছিল। এছাড়াও আমি বিশ্বাস করি যে এমডিডিতে আগ্রহী প্রচুর লোকের উত্তরগুলির মধ্যে প্রচুর মান রয়েছে।
কেজডিজ্ক

1
@ ডেভিড থর্নলি ভোট দেওয়ার সময় মন্তব্যের জন্য ধন্যবাদ! লোকেরা কখন ডাউনটি দেয় সে বিষয়ে মন্তব্য করার সময় আমি সত্যিই এটির প্রশংসা করি।
কিজডিজ্ক

মার্টিন ফোলার যেমন এটি রেখেছেন ( martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html ): পর্যাপ্ত সরঞ্জাম সরঞ্জাম নেই ( মার্টিনফাউলর / ব্লিকি / প্রজেকশনাল এডিটিং . html )।
মিঙ্গুয়া

উত্তর:


54

কোনও সোনার হাতুড়ি নেই। এক ডোমেনে যা ভাল কাজ করে তা অন্যটিতে বেশ অকেজো। সফ্টওয়্যার বিকাশে কিছু অন্তর্নিহিত জটিলতা রয়েছে এবং কোনও যাদু সরঞ্জাম এটিকে সরাবে না।

যে কেউ তর্ক করতে পারে যে কোডের প্রজন্ম কেবল তখনই কার্যকর হয় যদি ভাষা নিজেই (বা কাঠামো) উচ্চ-স্তরের এমন শক্তিশালী বিমূর্ততাগুলির পক্ষে অনুমতি দেয় না যা MDD কে তুলনামূলকভাবে অর্থহীন করে তোলে।


14
ফ্রেড ব্রুকস এটিকে "সিলভার বুলেট নয়" বলে অভিহিত করেছেন, তবে আপনার বক্তব্য এবং তার যুক্তির সারমর্ম একরকম: cs.nott.ac.uk/~cah/G51ISS/ ডকুমেন্টস
অ্যাডাম ক্রসল্যান্ড

5
কেসডিজ্ক: আইএমও, পুনরাবৃত্তি পরিচালনা করা প্রোগ্রামিংয়ের নিজেই মূল বিষয়। প্রোগ্রামিং ল্যাংগুলিতে বেশিরভাগ কাঠামোর উপাদানগুলি, লুপস, রিকার্সন, ওও ধারণাগুলি থেকে ফাংশন ইত্যাদিতে এক ধরণের পুনরাবৃত্তি বা অন্য কোনও ক্ষেত্রে পরিচালনা করার জন্য তৈরি করা হয়।
ব্যবহারকারী 281377

3
ফ্রেড ব্রুকসের কাছে 50 এবং 60 এর দশকের কিছু কাগজপত্র রয়েছে যেগুলি এখনও অবমুক্ত করা যায় না। "পৌরাণিক ম্যান মাস" বইটি দেখুন (যাতে "নো সিলভার বুলেট"
রচনাও

4
1987? হেক, ফ্রেড ব্রুকস ১৯ 197৫ সালে একটি বই প্রকাশ করেছিলেন যা এর কোনও গুরুত্ব বা নির্ভুলতা হারাতে পারেনি ( en.wikedia.org/wiki/The_Mythical_Man-Month )। না, আমি মনে করি না যে সিলভার বুলেটের নীতিগুলি সে সময়ের চেয়ে এখনকার চেয়ে কম সত্য। @ এম্মিউকিউ হিসাবে খুব সংক্ষিপ্তভাবে এটিকে বলা: সফ্টওয়্যার বিকাশে কিছু অন্তর্নিহিত জটিলতা রয়েছে ... "এখন, আপনি বিভিন্ন পদ্ধতি এবং কৌশল, ফ্রেমওয়ার্ক, পদ্ধতিগুলি চেষ্টা করতে পারেন তবে বেশিরভাগ ক্ষেত্রে তারা জটিলতার সমস্ত কিছুকেই সরিয়ে দেওয়ার চেষ্টা করছেন একটি নির্দিষ্ট বালতি It এটি চলে যায় না
অ্যাডাম ক্রসল্যান্ড '

4
@ কিজডিজ্ক: "ন রূপা বুলেট" এর পিছনে ধারণাটি খুব শীঘ্রই কোনও সময় অচল হয়ে উঠবে না। ব্রুকস দর্শনের শর্তাদি ব্যবহার করে প্রোগ্রামিংয়ের অসুবিধাগুলিকে প্রয়োজনীয় এবং দুর্ঘটনার মধ্যে ভাগ করে দেয়। তার ভিত্তিটি হ'ল প্রোগ্রামিংয়ে প্রচুর প্রয়োজনীয় অসুবিধা রয়েছে এবং সমস্ত নতুন পদ্ধতি সত্যিই করতে পারে দুর্ঘটনাজনিত অসুবিধা দূর করতে eliminate এই প্রবন্ধে, তিনি বলেছেন যে সর্বাধিক নাটকীয় বিকাশ ছিল সঙ্কুচিত-মোড়ানো সফ্টওয়্যার, যা কাস্টম বা কাস্টমাইজড সফ্টওয়্যারটির তুলনায় সম্পূর্ণ প্রোগ্রামিং যা কেবল করা হয় না।
ডেভিড থর্নলি

16

মজার প্রশ্ন! আমি স্বীকার করি, আমি কোনও অনুরাগী নই, তবে তারপরে আমি এমন প্রকল্পগুলিতে বেশ কয়েকবার মডেল চালিত বিকাশ ব্যবহার করার চেষ্টা করেছি যা আপনার উত্থাপিত কিছু সমস্যার সাথে খাপ খায়।

এখানে আমার কারণ তালিকা:

  • শেখার বক্ররেখা - মডেলিংয়ের সরঞ্জামগুলি এত দ্রুত বিকশিত হচ্ছে, যে সরঞ্জামটি গভীরভাবে বুঝতে পারে এমন প্রকৌশলীগুলি খুঁজে পেতে আমাকে শক্ত চাপ দেওয়া হয়েছিল। আমি এখনও দেখতে পেলাম যে আপনি কেবল আপনার মডেলিংয়ের সরঞ্জামের মতোই ভাল। স্বীকারোক্তিজনকভাবে, নীচের অনেকগুলি সমস্যা এই সমস্যার পিছনে ফিরে যেতে পারে - যখনই আপনি মনে করেন যে কোনও সরঞ্জাম খুব বেশি সীমাবদ্ধ, আপনি এটি যথেষ্ট পরিমাণে জানেন না।
  • খুব কাঠামোগত - ব্যক্তিগতভাবে, আমি এমন পরিস্থিতিতে এসেছি যেখানে আমি দেখতে পেলাম যে মডেলিংয়ের সরঞ্জামটি কেবল বিবরণ দেওয়ার জন্য আমার প্রয়োজনীয় সমস্ত কিছু বর্ণনা করতে আমাকে খুব কাঠামোগত ছিল। এবং একবার আমি সরঞ্জামটির বাইরের মডেলের কিছু পিসগুলি আঁকার দিকে স্যুইচ করি, লোকেরা তথ্য সন্ধানের জন্য সরঞ্জামের বাইরে প্রবাহিত হতে শুরু করার সাথে সাথে জিনিসগুলি দ্রুত ক্ষয় হয়।
  • সরঞ্জামটির টিউনিংয়ের ব্যয় - প্রতিবার আমি কোডটি স্বয়ংক্রিয়ভাবে তৈরি করার চেষ্টা করেছি, একবার এই সরঞ্জামটি কী সঠিক বলেছিল তা দেখে আমি নিজেই কোডটি পুনরায় কাজ শুরু করেছি। আমি জানি কয়েক দফায় দফায় যাওয়ার পরে, এই সমস্যাটি হ্রাস পেয়েছে, তবে এর অর্থ আপনাকে প্রথম কয়েক দফায় বেঁচে থাকতে হবে। আমি সাধারণত অনুভব করেছি যে আমরা একটি তিল বাজানো খেলছিলাম - মডেল তৈরি করুন -> কোড উত্পন্ন -> ফিক্স কোড -> আপডেট মডেল -> ফিক্স মডেল, ধুয়ে ফেলুন এবং পুনরাবৃত্তি করুন।
  • মডেল কনফিগারেশন ম্যানেজমেন্ট - যেহেতু মডেলটি প্রকল্পের বৃহত অংশগুলি বর্ণনা করে, তাই কোনও স্তরে মডেল সিএম বিল্টড কোডের চেয়ে বেশি ক্রস কাটিং হবে। মডেলিং ফাইলগুলিকে বিভাগীয় করা নিজের মধ্যে একটি শিল্প - এটি ভুল করুন এবং আপনি প্রায়শই বিকাশকারী অচলাবস্থার সাথে শেষ হয়ে যান, বা লোকেরা হাল ছেড়ে দেওয়ার সাথে সাথে কোডে নেমে যায়।
  • মার্কেটে যাওয়ার সময় - আমি যখন সেক্ষেত্রে ওয়ার্কিং সফটওয়্যারের প্রয়োজনীয়তা জরুরি তখনই আমি সুনির্দিষ্ট সমস্যার মুখোমুখি হয়েছি। যদি প্রকল্প এবং দলটি যথেষ্ট ছোট হয় তবে আমি কোডিং এবং পরীক্ষায় সময় ব্যয় করতে পারলে কোনও মডেলিং সরঞ্জামে সময় নষ্ট করার কোনও কারণ দেখি না। প্রতিটি প্রকল্পের জন্য এ জাতীয় বিনিয়োগের প্রয়োজন হয় না।
  • ব্যর্থতার ব্যয় - যখন আমি দেখেছি যে প্রকল্পগুলি মডেলিং সরঞ্জামগুলি থেকে দূরে চলেছে তখন এটি ব্যর্থতার উচ্চ ব্যয়ের কারণে - সরঞ্জামগুলি ব্যবহার করতে আপনার প্রতিটি বিকাশকারীকে জড়িত থাকতে হবে। এটি প্রশিক্ষণের ক্ষেত্রে একটি বড় বিনিয়োগ এবং শেখার হাত রয়েছে এবং যদি কেউ মডেলটি খারাপভাবে সেট আপ করে থাকে তবে খুব ব্যয়বহুল ভুল। আমার অভিজ্ঞতা হ'ল মডেলটি সঠিকভাবে পেতে দুটি বা তিনটি রিলিজ নিতে পারে - এতগুলি প্রকল্পগুলি সুবিধাগুলি উপলব্ধি করতে মডেলিংয়ের ভুলগুলি দীর্ঘায়িত করতে পারে না।

ধন্যবাদ! দুর্দান্ত তালিকা! আমার একমত হতে হবে যে এগুলি বিবেচনায় নিতে হবে এবং যদি আপনি এটি ভুল করেন তবে ব্যর্থতার ব্যয় খুব বেশি হয়। একটি প্রশ্ন: মেটাএডিটের মতো আরও ডিএসএল সরঞ্জামের ইউএমএল কেস সরঞ্জামগুলির সাথে আপনার অভিজ্ঞতা কি আরও বেশি?
কিসডিজ্ক

@ কিসডিজক - ইউএমএল, নিশ্চিত! বিশেষত যুক্তিযুক্ত রোজ, তবে কিছুটা যুক্তিযুক্ত এসডাব্লু আর্কিটেক্টও।
বেথলক্ষ্মী

12

এটি ইতিমধ্যে উদ্ধৃত করা হয়েছে, তবে কোনও সিলভার বুলেট বিন্দুটিকে খুব ভালভাবে সম্বোধন করে না:

সফ্টওয়্যার সত্তার সারমর্মটি আন্তঃলোক ধারণার গঠন: ডেটা সেট, ডেটা আইটেমগুলির মধ্যে সম্পর্ক, অ্যালগরিদম এবং ফাংশনগুলির অনুরোধ। এই সারমর্মটি বিমূর্ত যে অনেকগুলি বিভিন্ন উপস্থাপনার অধীনে যেমন একটি ধারণাগত নির্মাণ একই রকম ruct এটি তবুও অত্যন্ত সুনির্দিষ্ট এবং সমৃদ্ধভাবে বিশদ।

আমি বিশ্বাস করি যে সফ্টওয়্যার তৈরির শক্ত অংশটি এই ধারণাগত নির্মাণের বিশদকরণ, নকশা এবং পরীক্ষামূলক হতে হবে, এটি উপস্থাপনের শ্রম নয় এবং প্রতিনিধিত্বের বিশ্বস্ততা পরীক্ষা করে। আমরা এখনও বাক্যবিন্যাস ত্রুটি করি, নিশ্চিত হওয়ার জন্য; তবে বেশিরভাগ সিস্টেমে ধারণাগত ত্রুটির সাথে তুলনা করে এগুলি অস্পষ্ট।

যদি এটি সত্য হয় তবে বিল্ডিং সফটওয়্যারটি সর্বদা শক্ত। সহজাত কোনও রূপোর বুলেট নেই।

পরে, ব্রুকস "স্বয়ংক্রিয় প্রোগ্রামিং" ধারণা সম্পর্কে নিম্নলিখিতটি নির্দেশ করে:

প্রায় 40 বছর ধরে, লোকেরা "স্বয়ংক্রিয় প্রোগ্রামিং", বা সমস্যা সম্পর্কিত স্পেসিফিকেশনগুলির বিবৃতি থেকে সমস্যা সমাধানের জন্য একটি প্রোগ্রাম তৈরির বিষয়ে প্রত্যাশা করছেন এবং লিখছেন। কেউ কেউ আজ লিখেছেন যেন তারা এই প্রযুক্তিটি পরবর্তী যুগান্তকারী সরবরাহের প্রত্যাশা করে।

পার্নাস বোঝায় যে শব্দটি গ্ল্যামারের জন্য ব্যবহৃত হয়েছে, অর্থাতীত বিষয়বস্তুর জন্য নয়, জোর দিয়ে বলেছিলেন, "সংক্ষেপে বলা যায়," প্রোগ্রামারটির কাছে বর্তমানে যে পরিমাণ উচ্চতর স্তরের ভাষার সাথে প্রোগ্রামিং ছিল তার চেয়ে স্বয়ংক্রিয় প্রোগ্রামিং সর্বদা একটি উচ্চারণমূলক শব্দ ছিল। "

তিনি মূলত যুক্তি দেখান যে বেশিরভাগ ক্ষেত্রেই এটি সমাধানের পদ্ধতি, সমস্যা নয়, যার স্পেসিফিকেশন দিতে হবে।

মূলত, আমি যুক্তি দিয়েছি যে এমডিডি হ'ল আগে উপলব্ধ ভাষা তুলনায় উচ্চ-স্তরের ভাষা নিয়ে প্রোগ্রামিংয়ের জন্য অন্য একটি শ্রুতিমধুরতা।

এটি উচ্চারণ স্তরের ভাষায় প্রোগ্রামিং সহায়তা করতে পারে না তা বলার অপেক্ষা রাখে না - বাস্তবে এটি প্রায়শই পারে। কিন্তু সারাংশ সমস্যা একই রয়ে গিয়েছে: কোন ব্যাপার কিভাবে মহান একটি হাতিয়ার বা কিভাবে মহান একটি ভাষা আপনি দিনের শেষে ব্যবহার করছেন, আপনি সব সমস্যার মাধ্যমে মনে করেন এবং সমস্যার সমাধান করতে হবে। সর্বোত্তম যে কোনও সরঞ্জাম বা যে কোনও প্রক্রিয়া করতে পারে তা হ'ল "ফাজ" মুছে ফেলা যাতে আপনি গুরুত্বপূর্ণ ইস্যুতে ফোকাস করতে পারেন, যেমনটি ব্রুকস বলেছিলেন, " এই ধারণামূলক গঠনের বিশদ , নকশা এবং পরীক্ষা "।


3
ব্রুকস তর্ক করছেন যে 30 বছর আগে কি?
পল নাথান

এই ভাল উত্তর দেওয়া জন্য ধন্যবাদ। আপনার শেষ অনুচ্ছেদে আমার অনুভূতিগুলিও বেশ ভালভাবে জুড়েছে। এবং যখন আপনি সনাক্ত করেছেন যে "উচ্চ স্তরের প্রোগ্রামিং" আপনাকে এই প্রশ্নের অন্যান্য দুর্দান্ত উত্তরগুলি বিবেচনায় নিতে সহায়তা করতে পারে।
কেজডিজ্ক

10

কারণ সমস্ত প্রোগ্রামিং অবজেক্ট অরিয়েন্টেড নয়, যা সমস্ত এমডিডি সরঞ্জামগুলি প্রত্যাশিত বলে মনে হয়। ইউএমএল নিজেই বস্তুর অনুমানের উপর ভিত্তি করে। নিশ্চিত হয়ে নিন যে আপনি মডেল ফাংশনগুলিতে সিকোয়েন্স ডায়াগ্রামগুলি ব্যবহার করতে পারেন, তবে এটি অনেক সময় আনাড়ি।

কারণ আমার মতো প্রোগ্রামাররা রয়েছেন যারা এমডিডির চেয়ে টিডিডি থেকে বেশি অগ্রগতি এবং ফলাফল পান।

কারণ মডেলিং! = প্রোগ্রামিং।

কারণ ব্যয় / সুবিধাগুলি ব্যয় পক্ষে খুব বেশি ছিল এবং উপকারের পক্ষে যথেষ্ট ছিল না। এটি সম্ভবত পরিবর্তিত হয়েছে যেহেতু আমি সর্বশেষে MDD- এর দিকে চেয়েছিলাম, এরপরে আপনাকে এমডিডি করতে মাঝারিভাবে সক্ষম এমন কোনও সরঞ্জামের জন্য> $ 6000 / আসন (মার্কিন ডলার) প্রদান করতে হবে।

কারণ এমন একটি মডেল যা কোড উত্পন্ন করার জন্য একটি ফাংশন পর্যাপ্তরূপে বর্ণনা করে তা কোনও মডেল হিসাবে আর কার্যকর হয় না।

কারণ আমার মতো প্রোগ্রামাররা রয়েছেন যারা কেবলমাত্র উচ্চ স্তরে মডেল ব্যবহার করেন এবং তারপরে কোড সহ বিশদটি নিয়ে কাজ করেন। মডেলিং সফটওয়্যারগুলির চেয়ে আপনি কোডগুলিতে আলাদাভাবে দেখতে পান।

আমি ব্যক্তিগতভাবে এমডিডি না করানোর কয়েকটি কারণ সেগুলি। আমি এটির সংস্পর্শে এসেছি, কিন্তু কিছুই আমাকে রূপান্তর করতে সক্ষম হয়নি। সম্ভবত আমি খুব পুরানো স্কুল। সম্ভবত আমি খুব নতুন স্কুল (যাই হোক না কেন)। এটি কেবলমাত্র একটি সরঞ্জাম নয় যা আমি নিজের জন্য অর্থ প্রদান করতে সক্ষম হয়েছি।


ধন্যবাদ! মডেলিং! = প্রোগ্রামিং এর নিজস্ব একটি প্রশ্ন প্রাপ্য। আমি একমত নন এমন অনেক লোককে জানি। আমার কাছে একটি ফাংশন বর্ণনা করে টিডিডি এবং মডেলের সাথে আরও ভাল ফলাফলের অর্থ এই যে ব্যবহৃত মডেলটি বিমূর্তির সঠিক স্তরে নয়। আপনি কোড স্তরে মডেলটি লিখলে সমস্ত সুবিধা হারাবে। ব্যয়গুলি আর ইস্যু হয় না, আপনি নিখরচায় গ্রহনে মডেল করতে পারেন, এমএস ডিএসএল সরঞ্জামগুলি বিনামূল্যে, বিনামূল্যে ইউএমএল সরঞ্জাম রয়েছে এবং ইএ এত ব্যয়বহুল নয়। বিশদটি এখনও কোডে চলে যায়, আপনি এগুলিকে এমন একটি ফ্রেমওয়ার্কে রেখেছিলেন যা কোনও মডেল ব্যবহার করতে পারে, দ্বিতীয়বার আপনি উত্পন্ন করার পরে আপনার সুবিধা হবে।
কিসডিজ্ক

আমি মনে করি আপনি যে সকলের সাথে একমত তা আপনি খুঁজে পেতে পারেন, আমি কমপক্ষে প্রোগ্রামিং সম্পর্কে আমার সাথে সম্মত একটি মিল খুঁজে পাই! = মডেলিং। প্রোগ্রামিং বিমূর্ততা সম্পর্কে, এবং মডেলিং বিমূর্ততা সাহায্য করতে পারে, কিন্তু এটি হাতের কাজের জন্য সর্বদা সঠিক সরঞ্জাম নয়।
বেরিন লরিটস

রাজি!
কেজডিজ্ক

7

মাইক্রোসফ্ট / অ্যাপল / গুগল এটি চাপ দিচ্ছে না :)

কী ধরণের বিকাশ জনপ্রিয় হয় তা সরঞ্জাম, পিছনে এবং সুসমাচার প্রচারের সাথে অনেক বেশি সম্পর্কযুক্ত। বড় ব্যাকার ছাড়াই কোনও কিছুর সাথে ভেঙে যাওয়া খুব কঠিন (রেলপথে রুবি সম্ভবত ব্যতিক্রম হওয়ায় এটি জাভা / সি # / পাইথনের তুলনায় এখনও ছোট)


ঠিক আছে, আমি একমত হতে হবে। যদিও মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ভিজ্যুয়ালাইজেশন এবং মডেলিং এসডিকে সংরক্ষণাগারটি নিয়ে কিছুটা চেষ্টা করছে কিন্তু এমএসএফএন.মাইক্রোসফ্ট।
কিসডিজ্ক

7

এই সমস্ত মডেলিং সরঞ্জামগুলিকে প্রভাবিত করে এমন একটি সাধারণ আইনের কারণে, আপনি জানেন, CASE, UML এবং এই জাতীয়:

একজন প্রোগ্রামার এবং তার কোডের মধ্যে পাওয়া খুব ব্যয়বহুল।

যদি আপনি এটি করেন তবে আপনাকে একটি সঠিক সংকলক / দোভাষী তৈরি করতে হবে, কোড জেনারেটরগুলির ফলস্বরূপ প্রোগ্রামারকে ভয়াবহ ওয়ার্কফ্লো এবং ভয়ানক প্রতিক্রিয়া দেখা দেয় (ত্রুটির বার্তা এবং এই জাতীয়)।

ডোমেন চালিত ডিজাইনের দুর্দান্ত অন্তর্দৃষ্টিগুলির মধ্যে একটি হ'ল মডেলগুলি কোডের বাইরে থাকা কিছুতে নয়, কোডের মধ্যে থাকা উচিত।

শেষ পর্যন্ত প্রশ্ন: আপনার মডেলগুলি কোডের সাথে কেন ফিট করে না? যদি আপনি এম্বেডড ডেভলপমেন্ট করে থাকেন এবং সি এর সাথে আটকে থাকেন বা বিভিন্ন প্ল্যাটফর্মের জন্য কোড উত্পন্ন করার প্রয়োজন হয় তবে কোড জেনারেশনটি ব্যয়যোগ্য হতে পারে। সবার জন্য, একটি আরও শক্তিশালী প্রোগ্রামিং ভাষা এবং আরও ভাল কোড ডিজাইন সাধারণত কোড ব্যতীত অন্য কোনও ক্ষেত্রে কোড ডিজাইনের চেয়ে ভাল।


ডিডিডি সম্পর্কিত: আমাকে অবশ্যই স্বীকার করতে হবে যে আমি সত্যই ডিএসইএল পছন্দ করি। আমি (দূর থেকে) ব্যারলফিশ ওএস বিকাশ ( ব্যারলফিশ.অর্গ ) অনুসরণ করছি এবং তারা ফাইলট -ও-ফিশ তৈরি করেছে, এটি ডিএসএল তৈরির একটি সরঞ্জাম এবং তারপরে কোডে সরাসরি বিমূর্তির উচ্চ স্তরে কাজ করে।
ম্যাথিউ এম।

6
  • খুব সামান্য উপকারের জন্য একটি বিশাল ঝামেলার মতো মনে হচ্ছে।
  • আমি সবসময় প্রান্তের কেস এবং অদ্ভুত জিনিসগুলির সাথে ডিংক করে চলেছি বলে মনে হয়, ম্যাজিক স্টাফগুলি কখনই সত্যই সঠিকভাবে কাজ করে না বলে মনে হয়।
  • ও রূপার বুলেট নয়; ওও-তে একটি সফ্টওয়্যার-উত্পাদক পদ্ধতিটি ব্লাব করে তা রূপালী করে না।

তবে আমি সাধারণভাবে এন্টারপ্রাইজির সমাধানগুলি পছন্দ করি না।


"1 খুব সামান্য উপকারের জন্য একটি বিশাল ঝামেলার মতো বলে মনে হচ্ছে।"
rreeverb

5

আমার আলোচনা ছিল, এবং এমডিএ করতে ভাল লাগবে তবে সবচেয়ে বড় অসুবিধা হ'ল আপাতত সরঞ্জাম সমর্থন। আমি এমডিএর একটি ডাইরিভিশন ব্যবহার করছি যা আমি "রানটাইম মডেল মূল্যায়ন" বলতে পছন্দ করি তবে এর পরে আরও।

এমডিএর ত্রুটিগুলি হ'ল, আমি জানি:

  • অনুপস্থিত রিফ্যাক্টরিং সমর্থন: অনুমান করতে দিন আসুন আমি এমডিএ (টিপিকাল ইউজকেস নং 1) এর সাথে আমার ডেটামোডেলের সত্তাগুলি মডেল করতে চাই। যদি আমি আমার মডেলটি রাখি, বলি, একটি ইউএমএল ডায়াগ্রাম, এবং আমি এটি পরিবর্তন করি, আমার কোডের কোনও কিছুই এটির সাথে পরিবর্তিত হয় না (কমপক্ষে উত্পন্ন উত্পন্ন শ্রেণিগুলি), এবং আরও ভাল নামযুক্ত বৈশিষ্ট্যযুক্ত একটি ওয়ার্কিং অ্যাপ থাকার পরিবর্তে আমি একটি পাই আমি নিজে থেকে অনেক ত্রুটি সংশোধন করতে হবে।
  • অনুপস্থিত ডিবাগিং সমর্থন: সাধারণত মডেল থেকে কোডে অনুবাদগুলি হাতে কিছু রূপান্তরের ভাষা নিয়ে করা হয়। এটি সাধারণত কোনও সমস্যা হবে না, তবে আমরা যখন ডিবাগ করি, তখন আমাদের উত্পন্ন কোডটি সর্বোত্তমভাবে চিন্তা করা উচিত নয় এবং একটি ডিবাগারের রূপান্তর মডেলটিতে পদক্ষেপ নেওয়া উচিত। পরিবর্তে এটি উত্পন্ন কোডে পদক্ষেপ নিয়ে যায় এবং যেমনটি আমরা সবাই জানি, রূপান্তরগুলি উত্সাহিত কোডের চেয়ে ভাল দেখতে হবে। ওকে, আমরা এটি প্রিন্ট করতে পারি, তবে একটি সর্বোত্তম বিশ্বে উত্পন্ন কোডটি একটি সংকলক নিদর্শন, এবং কোনও ডিবাগিং সেশনের জন্য কোনও সম্পাদককে কখনই খোলার দরকার নেই (আমি এটির সাথে থাকতে পারতাম, এবং এই যুক্তিটি কিছুটা তাত্ত্বিকভাবে, তবে এটি এমডিএর বিরুদ্ধে একটি কারণ)
  • কোডেড মডেলগুলি সহজ: অন্য উদাহরণগুলিতে, মডেলটি কিছু ডোমেন দিকের মডেল করতে পারে এবং এটি কোডে সংকলিত হয়। হ্যাঁ, এটি এমডিএ, তবে বেশিরভাগ এমডিএ মডেল কেবলমাত্র পরিশীলিত কনফিগারেশন ফাইল যা রানটাইম এ সহজেই পরিচালনা করা যায়।
  • রূপান্তরগুলি পরীক্ষা করা শক্ত: আপনি যদি বিশেষায়িত আইডিইতে রূপান্তর ব্যবহার করেন তবে সেগুলি আইডিইগুলি "সংকলক" দ্বারা সম্পন্ন হয়। তবে রূপান্তরগুলি অ্যাপ্লিকেশনটির কোডের অংশ হিসাবে দেখতে হবে এবং এগুলি অ্যাপ্লিকেশনটির পরীক্ষা এবং কোড কভারেজের প্রয়োজনীয়তাগুলিও সহ্য করতে হবে।

আমি বর্তমানে যা পছন্দ করি তা হ'ল "রানটাইম মডেল মূল্যায়ন" (যদি কেউ এর জন্য স্বীকৃত নাম জানেন তবে দয়া করে আমাকে আলোকিত করুন)। আমার সত্তা সাধারণ জাভা ক্লাসে সঞ্চয় করা আছে এবং আমার "মডেল" করার জন্য যা কিছু প্রয়োজন তা অ্যাপ্লিকেশনটির শুরুতে পড়ে থাকা টীকা দ্বারা তৈরি করা হয়। কোনও রূপান্তর দরকার নেই, আমার মেটা মডেলটি সঠিকভাবে পাওয়া খুব সামান্য ছিল।

অন্যান্য সমস্ত কিছুই হয় সম্পত্তি ফাইল বা শ্রেণিবদ্ধ ডেটার জন্য এক্সএমএল দিয়ে সম্পন্ন হয়। আপনার যদি একটি মডেল থাকে তবে এটি সর্বদা শ্রেণিবদ্ধ হয়, তাই আপনি মডেল করতে পারেন এমন কিছুই নেই যা আপনি এক্সএমএল দিয়ে প্রকাশও করতে পারবেন না। এবং যদি আপনার কোনও বিশেষ মডেল সম্পাদক দরকার হয় যা সম্ভবত আপনারও লিখতে হবে, আপনি পাশাপাশি একটি সম্পাদক তৈরি করতে পারেন যা এমনকি অ্যাপ্লিকেশন চলাকালীন সময়ে কাজ করে, এবং অ্যাপ্লিকেশনটিকে আপনার মডেল করতে পারে এমন সমস্ত কিছুর চেয়ে আরও কনফিগারযোগ্য করে তোলে।


ধন্যবাদ! আর একটি দুর্দান্ত তালিকা I আমি বিশ্বাস করি রিফ্যাক্টরিং বেশ কয়েকটি ক্ষেত্রে কাজ করা হচ্ছে এবং মেটাএডিট গ্রাফিকাল মডেলটি ডিবাগ করতে পারে তবে হ্যাঁ আমি এই অঞ্চলে অনেক বড় জিনিস দেখিনি।
কিজডিজ্ক

3

আমি মনে করি যে লোকেরা কেন এমডিডি করছে না তা বোঝাতে ফ্রেড ব্রুকসের নো সিলভার বুলেট ব্যবহার করছেন বেশিরভাগ লোক ব্রুকস যে পয়েন্টটি হারিয়েছে তা অনুপস্থিত। অবশ্যই, চূড়ান্ত উপসংহারটি হ'ল যে সফ্টওয়্যার বিকাশের ক্ষেত্রে আসল, অন্তর্নিহিত জটিলতা কখনই দূরে যাবে না এবং এমডিডি এটি সমাধান করবে না।

ব্রুকস এমনকি এই অন্তর্নিহিত জটিলতা নিয়েও আলোচনা করার একটি কারণ হ'ল এটি সাধারণত যে ভাষা, গ্রন্থাগার এবং সরঞ্জামগুলির সাথে আমরা সাধারণত লড়াই করতে ব্যয় করি তার সাথে তুলনা করা, অর্থাৎ আমরা যে সমস্যার সমাধান করার চেষ্টা করছি তার অভ্যন্তরীণ জটিলতাটি মোকাবেলা করা নয়। এমডিডি জ্বলজ্বলে ঠিক এই জায়গাটিই পেয়েছে: সমস্ত অস্পষ্টতা কেটে ফেলা এবং হাতের আসল জটিলতা মোকাবেলা করার জন্য একটি উপযুক্ত ভাষা, মডেল বা অন্যান্য আনুষ্ঠানিকতা তৈরি করা।

সুতরাং এই দৃষ্টিকোণ থেকে, কোনও সিলভার বুলেট এমডিডিতে বিনিয়োগের একটি দুর্দান্ত কারণ। এটি হ'ল যদি এটি বিশ্বাস না করা হয় যে আমি বিশ্বাস করি যে এমডিডি গ্রহণ বাধাগ্রস্ত করে: একটি মডেল-চালিত পরিবেশের প্রকৃত বিকাশ যা আপনি সমস্যার সমাধানের চেষ্টা করছেন তার অভ্যন্তরীণ জটিলতায় সম্পূর্ণ ফোকাস করার অনুমতি দেয় তার চেয়ে অনেক বেশি কঠিন কেবল সাধারণ উদ্দেশ্যে ভাষায় সমস্যাটি সরাসরি সমাধান করা। বেশিরভাগ কারণেই বিদ্যমান এমডিডি টুলিং অত্যন্ত জটিল।

এর সাথে এর তুলনা করুন: সি কম্পাইলার লেখার চেয়ে সি তে প্রোগ্রাম লেখা অনেক সহজ। একটি সাধারণ সমাধানের ভাষায় কেবল সমস্যার সমাধান এবং ক্রাফ্টের সাথে ডিল করার পরিবর্তে অন্যান্য বিকাশকারীদের জন্য এমডিডি পরিবেশ তৈরির জন্য আপনাকে মূলত এমন একটি প্রোগ্রাম লিখতে হবে যা সমস্যার সামনে স্পেসের সমস্ত সম্ভাব্য ক্রাফ্ট-সম্পর্কিত সমস্যা সমাধান করে। এটি বেশ চ্যালেঞ্জিং।


2

আমার জানা মতে, এমডিই এবং এমডিএ এম্বেডড নিয়ন্ত্রক বিকাশকারীদের প্রয়োজনীয়তার জন্য যথেষ্ট পরিমাণে পরিচয় দেয় না। মডেলগুলি অবশ্যই কোনও সিস্টেম বর্ণনা করার জন্য ব্যবহার করা যেতে পারে, তবে আমি মনে করি না এম্বেডড ডেভেলপার সবচেয়ে ভাল, এমনকি সঠিক উত্স কোড সরবরাহ করতে মডেলটিকে বিশ্বাস করতে প্রস্তুত।

Eclipse এর জন্য অনেকগুলি প্লাগইন রয়েছে যা কোনও বিকাশকারী জাভা কোড তৈরি / আপডেট করতে মডেল বা জাভা কোডটি তৈরি করতে / আপডেট করতে মডেলটি ব্যবহার করতে দেয়। এটি একটি সহজ সরঞ্জাম মত মনে হচ্ছে। দুর্ভাগ্যক্রমে, আমার সমস্ত বিকাশ এএনএসআই / আইএসও সি-তে করা হয়েছে, এবং এমন কোনও প্লাগ-ইন নেই, যা সম্পর্কে আমি অবগত রয়েছি, এটি আমাকে একই কাজ করতে দেয়।

তদ্ব্যতীত, কোনও বিকাশকারী কীভাবে কোনও ইভেন্ট-চালিত এইচএসএম, বা অন্য কোনও ডিজাইনের প্যাটার্ন (বা অ্যান্টি-প্যাটার্ন) এর উপরে কোডটি কার্যকর করতে মডেলকে নির্দেশ দিতে পারেন? যদি অজানা ডিজাইনের প্যাটার্নটি ব্যবহার করার জন্য কোডটি ম্যানুয়ালি আপডেট করা হয়, তবে মডেল কি সঠিকভাবে এটি চিত্রিত করতে পারেন?

মডেলগুলির সাথে খাপ খায় না এমন ফাংশনগুলি কীভাবে আপনি বাস্তবায়ন করবেন?


ধন্যবাদ! আমি কেমব্রিজের কোডজেনারেশন ( কোডজেনারেশন ডটকম / সিজি ২০০১০ ) এটেনড করেছিলাম এবং সাধারণ চুক্তিটি ছিল এম্বেডড ওয়ার্ল্ডটি বিশেষত এমডিডি-র জন্য উপযুক্ত suited এছাড়াও নেদারল্যান্ডস থ্যালসের একটি সংস্থা ( থ্যালসগ্রুপ ডটকম ) রাডার সিস্টেমে এমডিডি ব্যবহার করে দুর্দান্ত অগ্রগতি করছে। সিস্টেমগুলির সাধারণ কাজটি মডেল করা হয়, পৃথক বিল্ডিং ব্লকগুলি হার্ডওয়ারের প্রতিটি নতুন অংশের জন্য হাতে কোড করা হয়। এটি হার্ডওয়্যার প্রতিস্থাপনকে অনেক দ্রুত করে তোলে।
কিসডিজ্ক

মডেলটির ডিজাইনের ধরণ সম্পর্কে কিছু জানা উচিত নয়। আপনার কাছে একটি সফ্টওয়্যার রেফারেন্স রয়েছে সফ্টওয়্যার আর্কিটেকচার ডাইনের প্যাটার্ন রয়েছে। জেনারেটর মডেলটি ব্যাখ্যা করে এবং রেফারেন্স সফটওয়্যার আর্কিটেকচারে উত্পন্ন করে। যখন একটি নতুন প্যাটার্ন ব্যবহার করা দরকার তখন আর্কিটেকচার এবং জেনারেটর পরিবর্তন করা হয়।
কিসডিজ্ক

@ কিসডিজক: আপনি যখন দেখেন যে এম্বেড করা বিশ্বটি এমডিডি-র জন্য বিশেষভাবে উপযুক্ত, আপনি কি সেল ফোন অ্যাপস বা গাড়ি এবং বাড়ির সরঞ্জামগুলিতে পাওয়া µ কনট্রোলার এসডব্লিউয়ের কথা উল্লেখ করছেন?
ওস্টারওয়াল

হার্ট রেট মনিটর, রাডার সিস্টেম, প্রিন্টার হার্ডওয়্যার। তবে মেটায়েড লিঙ্কটি দেখুন এবং দেখুন তারা কী করেছে। আমি কেবল গাড়িতে পাওয়া µ নিয়ন্ত্রক এসডাব্লু এর কথা শুনেছি এবং এটি সত্যিই জটিল, আমি সেখানে কোনও এমডিডি সম্পর্কে কখনও শুনিনি, তবে এটি সম্পর্কে আমি খুব ভাল ব্যবস্থা গ্রহণ করি নি :)
কেসডিজক

কিছুক্ষণ আগে মতলব / সিমুলিংকের একজন লোক আমাদের কোড জেনারেটর বিক্রির চেষ্টা করেছিল। এম্বেড করা নিয়ন্ত্রকগুলিতে স্কয়ারলি লক্ষ্য। মিজ্রা-সি করেন নি এবং শংসাপত্রিত হয়নি, তাই কিছুটা দুঃখের বিষয়, এটি বদলে যেতে পারে। একবার দেখুন, এটি সি তৈরি করছিল
টিম উইলিসক্রফ্ট

2

সংক্ষিপ্ত উত্তর ... কারণ চালিত মডেল প্রায়শই কোড উত্পন্ন এবং কোড ভঙ্গুর সাথে সম্পর্কিত; আমাদের যা প্রয়োজন কোড বর্জন এবং মডেল চালিত তা অবশ্যই যাওয়ার উপায়।

কেউ সোনার হাতুড়ি নেই এবং এই সফ্টওয়্যার বিকাশ সহজাত জটিল যে যুক্তিযুক্ত এই প্রশ্নটি বাতিল করেছেন।

আমি তাদের সাথে পুরোপুরি একমত যে কোনও সোনার হাতুড়ি নেই তবে আমি মনে করি না যে চালিত মডেলটি সোনার হাতুড়ি বা সিলভার বুলেটগুলির সন্ধান!

আমি জটিলতার সাথে আরও এগিয়ে যেতে চাই; এখানে দুটি ধরণের জটিলতা রয়েছে যার নাম আমি জৈব বা প্রাকৃতিক জটিলতা, জটিলতা যা ব্যবসায় এবং এর প্রক্রিয়াগুলির অন্তর্নিহিত তবে আমাদের মধ্যে আনুষ্ঠানিক জটিলতাও রয়েছে।

জটিলতা যা দিনের পর দিন নির্দেশের মাধ্যমে সিস্টেমের নির্দেশে ক্রাইপ হয়। আনুষ্ঠানিক জটিলতা - অপ্রয়োজনীয় জটিলতা - মূলত ব্যবসায়িক ওরিয়েন্টেড কোড সহ প্রযুক্তিগত কোডের অনিয়ন্ত্রিত ম্যাংলিং থেকে উদ্ভূত হয় তবে সিস্টেমটিতে কাঠামো এবং অভিন্নতার অভাব থেকেও উদ্ভূত হয়।

বর্তমানে সম্পূর্ণ জটিলতা যা তথ্য ব্যবস্থার বিকাশকে ব্যাহত করে এবং ব্যর্থতা এবং কোমর সৃষ্টি করে তা আনুষ্ঠানিক জটিলতা; জটিলতা যা দূর করা যায়।

আনুষ্ঠানিক জটিলতা হ'ল বর্জ্য, কোড দ্বারা বর্জ্য, কম মান, প্রতিকূল পরিবর্তন, আক্রমণকারী কোড; কোড যা এর কঠোরতম সর্বনিম্নে হ্রাস করতে হবে।

কিভাবে যে কি? সহজ! প্রথম লিখুন, এটি লিখবেন না এবং এটি উত্পন্ন করবেন না!

প্রয়োজনীয়, আক্রমণকারী প্রযুক্তিগত কোড; কোড যা পড়া / লেখার জন্য, প্রদর্শনের জন্য, যোগাযোগের জন্য ব্যবহৃত হয়… তথ্যের লজিকাল কাঠামো বর্ণনা করে মডেলরা সেখানে প্রবেশ করেন - আমি একটি আপেক্ষিক উপায়ে যুক্ত করব - মডেলগুলি স্ট্যান্ডার্ড পঠন / লেখার জেনেরিক হ্যান্ডলিং, প্রদর্শন এবং যোগাযোগের জন্য সক্ষম করতে পারে ডেটা।

এটি ঠিক একটি অপারেটিং সিস্টেমের মতো, আপনি যে কোনও প্রকল্প ব্যবহার করেন তার জন্য আপনি এটি পুনরায় লিখবেন না। সুতরাং যা প্রয়োজন তা হ'ল একটি প্রযুক্তিগত ইঞ্জিন যা কোনও মডেল প্রদত্ত সফ্টওয়্যারটির অবিস্মরণীয় দিকগুলি পরিচালনা করে। আমি এটিকে একটি এএএএস (আর্কিটেকচার সার্ভিস হিসাবে) ইঞ্জিন বলি।

অপ্রয়োজনীয় কোড হিসাবে, ভাল এটি অপ্রয়োজনীয় কোড তাই এটি এটিকে লিখিত নাও থাকতে পারে।

এটি আমাদের প্রয়োজনীয়, ব্যবসায়িক ওরিয়েন্টেড কোড দিয়েছিল যা লিখিত হওয়া উচিত, প্রয়োজনীয় ব্যবসায়িক ওরিয়েন্টেড ডেটা যা ডিজাইন করা উচিত এবং প্রয়োজনীয় ইউজার ইন্টারফেস এবং অভিজ্ঞতা যা ডিজাইন করা এবং কল্পনা করা উচিত।

ভঙ্গুর কোড মুছে ফেলার মাধ্যমে, আমরা কোডের চেয়ে মডেলিং এবং ডিজাইনের উপর ভিত্তি করে সফটওয়্যার বিকাশের একটি নতুন দৃষ্টান্ত একটি পরিষেবা হিসাবে আর্কিটেকচারকে আলিঙ্গন করতে পারি।


2

আমি বিশ্বাস করি যে এর বেশ কয়েকটি কারণ রয়েছে তবে একটি নিশ্চিত যে এমডিডি বিশ্ববিদ্যালয়গুলির পাঠ্যক্রমে নেই। সাধারণত নিকটতম একটি কোর্স যা মডেলিং শেখায় এবং সেখানে মডেলগুলি স্কেচ হিসাবে থাকে (কোনও পরীক্ষণ, কোড উত্পন্নকরণ, মডেল স্তরে ডিবাগিং) না। এই "মডেলিং" কোর্সটি প্রায়শই ইউএমএলকে পরিচয় করিয়ে দেয় এবং শিক্ষার্থীরা হতবাক হয় যে যখন তৈরি করা মডেলের মূল্য কম হয় তখন কেন এত বড় এবং জটিল স্বরলিপিটি শিখতে হয়।

এটিকে এম্বেডড-হার্ডওয়্যার বিকাশকারী বা নিয়ন্ত্রণ প্রকৌশলীদের যেমন ইঞ্জিনিয়ারিংয়ের অন্যান্য ক্ষেত্রে এর বিপরীতে করুন যেখানে শিক্ষার্থীরা বেশ আলাদা অভিজ্ঞতা অর্জন করে। সিমুলিংক বা ল্যাবভিউয়ের মতো সরঞ্জামগুলির সাথে শিক্ষার্থীরা একটি মডেল আঁকতে পারে এবং তারপরে এটি আপনাকে কোড উত্পন্ন করতে পারে বা কমপক্ষে আপনি সিমুলেশনটিতে চালাতে পারেন।

অতীতে বিশ্ববিদ্যালয়গুলিতে সংকলক এবং পার্সার শেখাত, তবে এখন তাদের জেনারেটর কীভাবে তৈরি করা যায়, ডিএসএল প্রয়োগ করতে হবে ইত্যাদি শেখানো উচিত they


আপনার ইনপুট জন্য ধন্যবাদ। আমার অবশ্যই একমত হতে হবে এবং অদূর ভবিষ্যতে কোনও সমাধান দেখতে পাচ্ছি না।
কিসডিজ্ক

2

মডেল ড্রাইভ ডেভলপমেন্ট একটি বুদ্ধিমানের কারণ এটি কোড পদ্ধতির টপ ডাউন মডেল। কেবলমাত্র একটি মডেল থেকে সম্পূর্ণ চলমান অ্যাপ্লিকেশন তৈরি করা অসম্ভব এবং তাই এমডিডি অকেজো!

আমি যা করি তা হ'ল আমার অ্যাপ্লিকেশনটির কঙ্কাল তৈরি করতে কেবল উচ্চতর স্তরের বিমূর্তির ইউএমএল ব্যবহার করা। মানে প্যাকেজগুলি, ক্লাস ইত্যাদি তৈরি করুন ... তারপরে জাভা ভাষার কোডের সাথে সাথেই শুরু করুন।

আমি দেখেছি যে ২০০৪ সালে আমি প্রথমবারের মতো মডেলিং শুরু করার সময় টোগেথারসফ্ট, ওমোন্ডো হিসাবে সরঞ্জামগুলির সাথে লাইভ সিঙ্ক্রোনাইজেশন সত্যই কার্যকর ছিল Om সম্প্রতি ওমন্ডো একটি নতুন স্টেজ চালু করেছে যা জাভা, মডেল এবং ডাটাবেস আইডির মধ্যে এক ধরণের ম্যাপিং। সত্যই শক্তিশালী এবং এটি আমার প্রকল্পগুলিতে ভাল কাজ করে।

আমার ইউএমএল চিত্রগুলি এখন আমার প্রকল্পের গতি বাড়িয়ে তুলতে সহায়তা করে এবং আর অকেজো হয় না :-)


1

এমডিডি উন্নয়ন প্রক্রিয়ায় আরেকটি পদক্ষেপ যুক্ত করে, এটি এমন পরিস্থিতিতে খারাপ দিক যেখানে কোনও ভাল মডেল নেই এবং বাজারের প্রথম অপ্রত্যাশিত বা প্রায় ভাঙা আংশিক সমাধান সম্ভবত সবচেয়ে মার্বেল জিততে পারে।


1

এক্সিকিউটেবল ব্যবসায়িক প্রক্রিয়া মডেলগুলি হোলি গ্রেইল হয়েছে। তত্ত্বের জন্য আপনার মোটেই প্রোগ্রামার প্রয়োজন হবে না। অনুশীলন দেখায় যে এমডিই সহ, প্রকৃত মডেলকে কাজ করা এটি লেখার কোডের মতোই জটিল।

আমি অভিজ্ঞ বিকাশকারীদের জন্য বলতে চাই যে ইউএমএল থেকে উত্পন্ন ক্লাসগুলি পূরণ করা আরও সহজ হবে, উদাহরণস্বরূপ এক্সিকিউটেবল ইউএমএলকে বিরক্ত করার চেয়ে। অন্যদিকে, এক্সিকিউটেবল ইউএমএল-এর জন্য আপনাকে কম্পিউটার-বিজ্ঞানের উল্লেখযোগ্য পরিমাণ জ্ঞান প্রয়োজন, সুতরাং আপনি নিজেরাই এটি তৈরির ব্যবসায়ের ব্যবস্থাপকের উপর নির্ভর করতে পারবেন না। তত্ত্বের ভিত্তিতে তিনি কেবল প্রস্তুত ব্লক (ক্লাস) একত্রিত করতেন, তবে আসলে "আঠালো" সমস্যাগুলির কারণ হয়।

এছাড়াও, এমডিইর উপযোগিতা পুনরায় ব্যবহারের প্রচুর সিস্টেমগুলির মধ্যে সীমাবদ্ধ।


1

এমবিএসই - মডেল ভিত্তিক সফটওয়্যার ইঞ্জিনিয়ারিং আরও প্রাসঙ্গিক শব্দ।

কার্যকর পয়েন্ট সমাধানে থাকা বিভিন্ন সরঞ্জামগুলির ইস্যুটি রেখে এমবিএসইতে একটি পৃথক প্রকল্পের কার্যপ্রবাহ প্রয়োজন। ডিএসএমএল (ডোমেন নির্দিষ্ট মডেলিং ল্যাঙ্গুয়েজ) স্ট্যাকহোল্ডারদের সাথে পর্যালোচনার জন্য প্রয়োজনীয়তার সাথে কার্যকরভাবে যোগাযোগ করার জন্য বিমূর্ততার স্তরে থাকা দরকার। তারপরে আপনাকে শেষ পর্যন্ত কোড উত্পন্ন করতে পরিমার্জনের ক্রমবর্ধমান স্তরের মাধ্যমে মডেলটিকে রূপান্তর করতে হবে।

আপনার যখন ডিএসএমএল এবং রূপান্তর / জেনারেশন প্রক্রিয়াগুলি সম্পূর্ণ এবং সঠিকভাবে প্রয়োগ করা হয় তখন নিদর্শনগুলির প্রজন্ম খুব স্বল্প ব্যয়ে আসে। তবে আপনি ডিবাগড টুলিংয়ের সেই পর্যায়ে পৌঁছা পর্যন্ত এটি অত্যন্ত বেদনাদায়ক।

এমডিডি-র বেশিরভাগ সাফল্যের গল্পগুলি প্রোডাক্ট লাইন ইঞ্জিনিয়ারিং (পিএলই) এর ক্ষেত্রে যেখানে প্রতিষ্ঠিত টুলিং ব্যবহার করে অনুরূপ পণ্যগুলির উত্তরসূরি উত্পন্ন হয়। অবশ্যই, জাভা কোড জেনারেটরগুলির অনেকগুলিই এমডিডি-র সহজ সংস্করণ। কিছু এক্সএমএল ইন এবং জেনারেট কোড আউট।


0

তুমি লিখেছিলে:

আমি আরও জানি যে অনেকগুলি সমস্যা আছে ... এমন প্রকল্পগুলি যা মডেল চালিত বিকাশের জন্য ঠিক ঠিক নয় (পর্যাপ্ত পুনরাবৃত্তি নয়)

যদি আপনার কোডটি পুনরাবৃত্তি হয়, তবে হয় আপনি একটি দুর্বল প্রোগ্রামিং ভাষা বেছে নিয়েছেন, বা আপনি এটি খারাপ ব্যবহার করছেন। উন্নততর ভাষা সহ, পুনরাবৃত্তি করার প্রয়োজন নেই। রুবি অ্যাক্টিভ রেকর্ড লাইব্রেরি বিবেচনা করুন। ডেটাবেস টেবিলগুলি মাইগ্রেশন লিখে তৈরি করা হয়। অন্য কোনও জায়গায় স্কিমা সংজ্ঞা পুনরাবৃত্তি করার প্রয়োজন নেই। টেবিল কলামগুলির সাথে সম্পর্কিত ডেটা সদস্যদের সাথে আপনার কোনও শ্রেণিবদ্ধ করার দরকার নেই। কোডের একক লাইন একটি শ্রেণিকে একটি টেবিলের সাথে সংযুক্ত করে।

আমি মডেল চালিত বিকাশকে দুর্বল প্রোগ্রামিং ভাষার জন্য একটি জটিল এবং অকার্যকর কাজ হিসাবে দেখি।


1
আমি মনে করি আমরা বিভিন্ন ধরণের পুনরাবৃত্তি সম্পর্কে কথা বলছি। আপনি সফ্টওয়্যারটির এক অংশের মধ্যে পুনরাবৃত্তির বিষয়ে কথা বলছেন, আমি একাধিক অনুরূপ সফ্টওয়্যার তৈরির কথা বলছি যা উদাহরণস্বরূপ একই সফটওয়্যার আর্কিটেকচারটি ভাগ করে দেয় তবে একটি ভিন্ন কার্যকারিতা প্রকাশ করে। কার্যকারিতা মডেল করা হয় এবং আর্কিটেকচার উত্পন্ন হয়। উত্তরের জন্য ধন্যবাদ.
কেইজডিজ

@ কিস: 'আর্কিটেকচার' বলতে কী বোঝ? যদি এটির কোড থাকে তবে আমি পুনরাবৃত্তিটি তৈরি করতে এবং প্রতিটি ইনস্ট্যান্টেশনের জন্য অদ্ভুত জিনিসগুলি নির্দিষ্ট করে কেবল আর্কিটেকচারটি ইনস্ট্যান্ট করতে পারি। ভাল ভাষা দিয়ে, কোনও পুনরাবৃত্তি ফ্যাক্ট করা যেতে পারে।
কেভিন ক্লিন

ভাল বা খারাপ প্রোগ্রামিং ল্যাঙ্গুয়েজের মতো কোনও জিনিস নেই, কেবলমাত্র তাদের পক্ষে ভাল বা খারাপ বিকাশকারী, আপনি যে উদাহরণগুলি দেন তা কোনও ওয়েব ফ্রেমওয়ার্কের সাহায্যে করা যেতে পারে। এমডিএ / এমডিডি / ইত্যাদি কী। সমাধানের চেষ্টা করে একটি মডেল বজায় রাখে যাতে বিভিন্ন ডাটাবেস, নিয়ন্ত্রণকারী, দৃষ্টিভঙ্গি, পরিষেবাদি ইত্যাদির মতো স্বয়ংক্রিয়ভাবে সম্পন্ন হতে পারে the রেল, স্প্রিং, জেন্ড ইত্যাদিতে রফতানি হতে পারে
সেনোবাইট 321
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.