ওআরএম কি একটি অ্যান্টি-প্যাটার্ন? [বন্ধ]


58

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

তবে আমি এই মুহুর্তে আমার নিজের যুক্তি তালিকাভুক্ত করতে চাই না। সুতরাং আমি আপনাকে জিজ্ঞাসা করছি, আপনি ওআরএম সম্পর্কে কী ভাবেন? উপকারিতা এবং কনস কী?


3
আপনি কি এটি পড়েছেন: seldo.com/weblog/2011/08/11/orm_is_an_antipattern ?
হতাশ

2
হ্যাঁ. আপনার যদি জেনেরিক সিআরইউডি অ্যাপ্লিকেশন না থাকে যা ডাটাবেসটির সাথে মূল্যমানের কিছু না করে যার ক্ষেত্রে আপনার কোনও সম্পর্কযুক্ত ডাটাবেস ব্যবহার করা উচিত নয়।
রায়নস

1
@ মডেলফিল: আপনি এটি কম প্রশস্ত করতে চাইতে পারেন, অন্যথায় এটি বন্ধ হয়ে যাবে। যদি আপনি বিশ্বাস করেন এটি একটি বিরোধী-নিদর্শন, তবে কেন এবং তারপরে কোন পরিস্থিতিতে এই বিরোধী-প্যাটার্ন উপযুক্ত কিনা তা জিজ্ঞাসা করুন (তবে এটি এখনও খুব বিস্তৃত হতে পারে)।
হতাশ

2
@ এডিফিল, সেই ব্লগ পোস্টে দেওয়া মন্তব্যে প্রচুর পাল্টা পরামর্শ রয়েছে, আপনি কি সেগুলি পড়েছেন?
প্যাটার টারিক

2
এবং শুধু কেন আপনি একটি ORM প্রয়োজন হবে না অন্য প্রমাণ মন্তব্য: medium.com/@wrong.about/you-dont-need-an-orm-7ef83bd1b37d
Zapadlo

উত্তর:


83

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

  • অমিল
    • অবজেক্ট-ভিত্তিক ধারণা
    • ডেটা ধরণের পার্থক্য
    • কাঠামোগত এবং অখণ্ডতার পার্থক্য
    • ম্যানিপুলেটিভ পার্থক্য
    • লেনদেনের পার্থক্য
  • প্রতিবন্ধকতা মেলানো সমাধান
    • কম
    • বিকল্প স্থাপত্য
    • ক্ষতিপূরণ
  • তর্ক
  • দার্শনিক পার্থক্য

আমি মনে করি আপনি যদি নিবন্ধটি পড়ার জন্য সময় নেন তবে আপনি বুঝতে পারবেন যে ওআরএমকে কখনও কখনও অ্যান্টি-প্যাটার্ন হিসাবে বর্ণনা করা আসলে বাস্তবে অনিবার্য। দুটি ডোমেন এতই পৃথক যে কোনওটিকে অন্য হিসাবে বিবেচনা করার কোনও পদ্ধতিকে ডিফল্টরূপে একটি অ্যান্টি-প্যাটার্ন বলে মনে হয় যে অ্যান্টি-প্যাটার্নটি এমন একটি প্যাটার্ন যা কোনও ডোমেনের দর্শনের বিপরীতে যায়।

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

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

অবশ্যই, দরকারী সমস্ত হিসাবে, ORM অপব্যবহারের জন্য অত্যন্ত ঝুঁকির মধ্যে রয়েছে। আপনি যদি ভাবেন যে এটিতে আপনার কাজ করা ডেটাবেস সম্পর্কে সমস্ত কিছু জানা প্রয়োজনের পরিবর্তে, তবে এটি ফিরে আসবে এবং আপনাকে কামড় দেবে। হার্ড।

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


5
"প্রতিবন্ধী মিল নেই" এই বাক্যাংশে কাজ করার জন্য +1। গিক্সের জন্য বাজওয়ার্ডস, তবে আমি সেগুলিও পছন্দ করি!
হার্ডম্যাথ

সম্পূর্ণরূপে সম্মত হন ... এই লিঙ্কটি এত ভাল ব্যাখ্যা করা হয়েছে তা পরীক্ষা করুন: seldo.com/weblog/2011/08/11/orm_is_an_antipattern
Sandino

42

এটি জিজ্ঞাসা করার অনুরূপ "একটি পাওয়ার ড্রিল একটি অ্যান্টি-প্যাটার্ন কি?" ওআরএমগুলি আমার বয়লারপ্লেট কোড হ্রাস করে আমার সরঞ্জাম বাক্সে ভাল জায়গা অর্জন করেছে এবং প্রয়োজনে আমি এখনও কাস্টম এসকিউএল ব্যবহার করতে সক্ষম to সুতরাং এটি যদি একটি অ্যান্টি-প্যাটার্ন হয় তবে এটি কোন প্যাটার্নের বিপরীতে যায়?

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


11
+1 আমিও মনে করি এটি খুব দরকারী, এখানে একটি বক্ররেখা শেখানো আছে। তবে নিজে নিজে পজো ইত্যাদি স্থাপন না করাই খুব ভাল
নিমচিম্পস্কি

18

আমি এমন কিছুকে "অ্যান্টি-প্যাটার্ন" বলব যা মার্টিন ফোলার প্রথমে একটি প্যাটার্ন বলেছিল এবং তখন থেকে প্রায় প্রতিটি আধুনিক প্রোগ্রামিং ভাষায় গ্রহণ করা হয়েছে। ( অ্যাক্টিভেকর্ডে উইকিপিডিয়া নিবন্ধটি দেখুন ))

একটি ভাল ওআরএম কোনও প্রকল্পে অনেক কম কোড (এবং অনেক কম পুনরাবৃত্তি) করতে পারে এবং মূল কোডের পরিমাণের সাথে কোনও কিছুই বাগের সাথে দৃ strongly়ভাবে সম্পর্কযুক্ত নয়।

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


12
"আমি কর্তৃপক্ষ দ্বারা যুক্তির বিরুদ্ধে যেতে দ্বিধা করব"
রায়নস

3
রেইনোস: আপনার মানে ... আপনি কি বলছেন ... ফাউলার হতে পারে .... ভুল ছিল?!?!?! শক এবং হাঁফ! ব্লাসফেমি !! : পি;)
হতাশ

9
@ রায়নোস - সম্ভবত কর্তৃত্বই সেরা যুক্তি নয়, তবে ওপি "আমার অভিজ্ঞতায়" বলেছেন। এটি মূলত ব্যক্তিগত কর্তৃত্বের কাছে একটি আবেদন, সুতরাং আমি কর্তৃত্ব এবং sensকমত্যের কাছে একটি আবেদনকে মোকাবেলা করা যুক্তিসঙ্গত বলে মনে করি। এছাড়াও, "অ্যান্টি-প্যাটার্ন" শব্দটি নিজের মতামত সম্পর্কে। অন্যান্য লোকেরা কী ভাবেন তার উদাহরণ দিয়েছি।
নাথান লং

3
@ নাথানলং আমি কেবল ইঙ্গিত করছিলাম যে জনপ্রিয়তা এবং সঠিক-নেসটি অরথোগোনাল।
রায়নস

1
এফডাব্লুআইডাব্লু ডেটা ম্যাপার সম্ভবত সেই প্যাটার্ন যা সবচেয়ে কাছাকাছি কোনও ওআরএম-এ ম্যাপ করে। অ্যাক্টিভেকর্ড একটি পৃথক প্যাটার্ন, অবশ্যই সম্পর্কিত।
জেসনট্রু

11

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


11

আমার অভিজ্ঞতা: আমি লিনক 2 এন হাইবারনেটের সাথে এনএইচবারনেট ব্যবহার করছি।

পেশাদাররা:

  • এটি "ম্যাজিক স্ট্রিংস" থেকে মুক্তি পেয়েছে বা কমপক্ষে একবারে স্থাপন করার জন্য একবার এবং কেবলমাত্র একবারের জন্য প্রস্তাব দেয়
  • এটি আমাকে পুরো সময়ের জন্য ওও দৃষ্টান্তে কাজ করতে দেয়
  • কোডটি পড়া সহজ
  • উপরে নির্মিত কোডটি পরিবর্তন করা সহজ
  • এটি আপনাকে 2 টি পৃথক ভাণ্ডার রক্ষণাবেক্ষণ না করে আপনার প্রকৃত সম্পর্কিত সম্পর্কিত ডেটাবেস বদল করতে দেয় (খুব কমই সম্পন্ন হয়, তবে এটির প্রয়োজন হলে এটিই একটি বড় সুবিধা)।

কনস:

  • কোড লেখা শক্ত , কারণ
  • এটি পর্যাপ্ত বিমূর্ততা নয় - এটি এখনও পটভূমিতে এটি কী করছে তার সাথে আপনাকে ঘনিষ্ঠভাবে পরিচিত হতে হবে

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

আমি যদি একটি নতুন প্রকল্প শুরু করতে চাই, আমি নিশ্চিত না যে আমি কোনও ওআরএম ব্যবহার করব কিনা। আমি সম্ভবত করব, তবে আপনার অবশ্যই হওয়া উচিত তা আমি বলতে পারছি না । আমি বলব এটি আপনার প্রকল্পের জন্য সি ++ বা জাভা /। নেট নির্বাচন করার মধ্যে পার্থক্যের মতো: আপনি কি নিম্ন স্তরে কাজ করার সাথে সাথে নমনীয়তার প্রয়োজন যাচ্ছেন বা আপনি বরং উচ্চতর স্তরে কাজ করবেন এবং (সম্ভবত) আরও বেশি উৎপাদনশীল? সাধারণ উত্তরটি হ'ল আপনি যতটা দূরে সরে যেতে পারেন তত স্তরে কাজ করা । এর অর্থ সাধারণত একটি ওআরএম ব্যবহার করা।


6

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

দুর্বলতা হ'ল সত্যিকার অর্থে, বস্তু-ভিত্তিক প্রোগ্রামিং পাওয়া লোকের সংখ্যাটি খুব কম small প্রচুর লোকেরা স্প্যাগেটি এবং মিটবলগুলি লিখেন, অত্যন্ত সংযুক্ত বস্তুগুলির সাথে যাদের নিজস্ব আচরণ খুব কম হয় এবং প্রকৃত আচরণটি ঘৃণ্য 8000-লাইন "পরিষেবা" এবং "পরিচালক" শ্রেণিতে শেষ হয় এবং এই কোডটি প্রায়শই এতটাই সংশ্লেষিত হয় যে প্রত্যেকেই ভয় পান এটিকে পরিবর্তন করার কারণ পার্শ্ব প্রতিক্রিয়াগুলি কী হবে তা তারা বুঝতে পারে না।

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

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

ORM গুলি আপনাকে আরও চৌকস করে না, তবে সঠিক বিকাশকারীদের হাতে আরও রক্ষণাবেক্ষণযোগ্য এবং উচ্চ-মানের কোডের দিকে নিয়ে যেতে পারে।


আমি মনে করি এটি ডিবি অ্যাক্সেসের নিদর্শন হিসাবে একটি ওআরএম এবং ডিবি অ্যাক্সেসটিকে আরও সহজ এবং আরও ভাল করার জন্য একটি ওআরএমকে অভিনব কোড-জেনারেটর হিসাবে বিভ্রান্ত করে।
gbjbaanb

আপনি এর দ্বারা কী বোঝাতে চাইছেন তা আমি নিশ্চিত নই। আপনার মন্তব্যটি আমার কাছে খুব একটা বোঝায় না।
জেসনট্রু

এতে একটি ওআরএম আপনার জন্য এক টন কঠোর পরিশ্রম করে কোনও ডিবি অ্যাক্সেস করার দুর্দান্ত উপায় তৈরি করে, তবে আপনি যদি কোনও ডিজির ভান করার জন্য এটি ডিজাইনের ধরণ হিসাবে ব্যবহার করেন তবে এটি পড়ে যেতে শুরু করে। আপনি যা বলছিলেন তা আমি ভাবলাম।
gbjbaanb

আমি মনে করি না যে আমি কোনও ওআরএম ব্যবহার করার পক্ষে এমন ভান করেছিলাম যে আপনি একটি যাদুকরী বস্তুর দোকান পেয়েছেন যা আপনাকে কীভাবে ডাটাবেস কাজ করে তা বোঝার দরকার নেই। আমি ঠিক এর বিপরীতে বলেছিলাম: আপনি যদি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভালভাবে বুঝতে পারেন এবং কীভাবে ডাটাবেসগুলি কাজ করে তবে একটি ওআরএম আপনাকে আরও রক্ষণাবেক্ষণযোগ্য কোড তৈরি করতে সহায়তা করতে পারে।
জেসনট্রু

5

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

আমি মনে করি যে এখানে সত্যিকারের অ্যান্টি-প্যাটার্নটি আপনাকে একটি সম্পর্কিত ডিবি ব্যবহার করতে পারে যখন আপনার প্রয়োজন হবে না। আপনার যদি একটি দরকার হয় তবে আপনার ORM প্রয়োজন এবং এটি অবশ্যই কোনও বিরোধী-নিদর্শন নয়।


1
আমি যখন সম্মত হই যে আপনার যদি প্রয়োজন না হয় তবে একটি সম্পর্কিত ডেটাবেস ব্যবহার করা একটি খারাপ ধারণা, আজকের দিনে আপনার যদি একটি ওআরএম প্রয়োজন হয় তবে এটি হাস্যকর!
এইচএলজিইএম

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

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

6
@ এইচএলজিইএম: এবং ডাটাবেস থেকে বেরিয়ে আসা ডেটা সম্পর্কে কী বলা যায়? আপনি যখন সম্পর্কিত সম্পর্কিত ডাটাবেস জিজ্ঞাসা করেন, আপনি কি বস্তুগুলিতে ফলাফল ম্যাপ করবেন না? আমার অভিজ্ঞতায়, দুটি ধরণের প্রজেক্ট রয়েছে যা রিলেশনাল ডাটাবেস ব্যবহার করে: তৃতীয় পক্ষের ওআরএম ব্যবহার করে এবং তাদের নিজস্ব স্বল্প-নির্মিত ওআরএম অন্তর্ভুক্ত করে those
কারসন 63000

2
+1 কারসন। আপনি কোনও ধরণের ওআরএম ব্যবহার করেন না যদি না আপনি কেবল নিজের কোডের উপরে কাঁচা ডেটাসেটগুলি এবং প্লাস্টার না ফেরান (সমস্ত আইএমএইচওর সবচেয়ে গুরুতর অপরাধ) যেহেতু আপনাকে সর্বদা ক্লাসে এই সঞ্চিত পদ্ধতির ফলাফলগুলি ম্যাপ করতে হবে, যা ঠিক তাই ORMs আপনার জন্য করে do
ওয়েন মোলিনা

4

ওআরএম একটি সরঞ্জাম। সমস্ত সরঞ্জামের মতো, যখন যথাযথভাবে ব্যবহৃত হয়, তারা বেশ ভাল কাজ করে। যখন অনুপযুক্তভাবে ব্যবহার করা হয় তখন এর জন্য একটি বড় হাতুড়ি এবং কিছু নালী টেপ প্রয়োজন।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.