কোন ধরণের ওয়েব ডেভলপমেন্ট প্রকল্পগুলি ওআরএম ব্যবহার করে উপকৃত হয়?


10

আমি এসকিউএল ব্যবহার করে আমার 95% ডাটাবেস কাজ করেছিলাম তা বলে শুরু করব। সম্প্রতি, আমি NHibernate এবং মতবাদ মত বিভিন্ন ওআরএম এর কিছু তদন্ত করেছি।

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

যেহেতু আমি এসকিউএল লিখতে খুব স্বাচ্ছন্দ্য বোধ করি এবং স্পষ্টতই কোনও ওআরএম ব্যবহারের শেখানো সুবিধাগুলি উপলব্ধি করতে পারি না, ভারী ওআরএম ব্যবহারকারীদের কাছে আমার প্রশ্নটি হ'ল:

কোন ধরণের ওয়েব ডেভলপমেন্ট প্রকল্পগুলি ওআরএম ব্যবহার করে সবচেয়ে বেশি উপকৃত হয়?


3
উত্তর "সমস্ত তারা।" তবে এটি সম্ভবত আপনি জানতে চান না। আরও কিছু সুনির্দিষ্ট তথ্য জিজ্ঞাসা করার জন্য আপনি আপনার প্রশ্নটি পরিমার্জন করতে চাইতে পারেন।
এস .লট

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

আপনি যদি আরও বিশদ জানতে না চান তবে আপনি বেশি কিছু শিখছেন না।
এস .লট

উত্তর:


5

(প্রায়) সমস্ত অ্যাপ্লিকেশন ওআরএম থেকে উপকৃত হয়।

প্রথমত, আপনি ওআরএম-এর জন্য যে সুবিধাগুলি তালিকাবদ্ধ করেছেন সেগুলির সাথে আমি একমত নই

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

পরিবর্তে, ওআরএম এর আসল সুবিধা হ'ল:

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

আপনি মন্তব্য হিসাবে, ওআরএম এর এক নিচে দিক কর্মক্ষমতা হ্রাস। তবে এটি সাধারণত বেশি হার্ডওয়্যার ব্যয় করে অফসেট করা যেতে পারে।

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

ORM হ'ল প্রচুর সাধারণ CRUD ডাটাবেস যুক্তি সহ অ্যাপ্লিকেশনগুলির জন্য সেরা। ওআরএম এর জন্য কম কার্যকর :

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

আমার অভিজ্ঞতায় এই পরিস্থিতিগুলি বিরল। সুতরাং আমার উত্তর।


"ওআরএম ব্যবহার করার অর্থ এই নয় যে আপনার এসকিউএল জানা দরকার নেই।" - আসলেই সত্য. একটি টিম পরিবেশে আমি যে সুবিধাগুলি দেখি তার মধ্যে একটি হ'ল আমরা এসকিউএল স্কিলসেটকে ঘনীভূত করতে পারি যাতে ব্যবসায়ের স্তরে কাজ করা প্রতিটি বিকাশকারীকে বিশেষজ্ঞ হতে না হয়।
ফ্রেড উইলসন

1
জটিল প্রশ্নের জন্য, আপনি সর্বদা এসকিউএল ফিরে যেতে এবং একটি এসকিউএল কোয়েরি লিখতে পারেন।
হার্সিমরানব 6'15

4

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

সুতরাং .. আমি আপনার প্রশ্নের নেতিবাচক উত্তর দেব। একমাত্র ওয়েব ডেভলপমেন্ট প্রকল্পগুলি যা কোনও ওআরএম থেকে উপকৃত হয় না সেগুলি হ'ল এটি কোনও ডাটাবেসের সাথে মোটেই কথা বলছে না। যা আমি বিশ্বাস করি তারা সংখ্যালঘু (যদি থাকে)।


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

@ ব্রুক - আমি আন্তরিকভাবে একমত একটি ওআর / এম ব্যবহার করার অর্থ এই নয় যে এসকিউএল জ্ঞান alচ্ছিক।
ওটিভিও ডেসিও

2

এএসপি.নেট ওয়েব ফোরামের সাথে আমার অভিজ্ঞতার ভিত্তিতে আমি প্রস্তাব দেব যে স্টেটফুল ওয়েব ফ্রেমওয়ার্কগুলি ব্যবহার করে ওয়েব প্রকল্পগুলি একটি ওআরএম ব্যবহার করে সবচেয়ে বেশি উপকৃত হয়।

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

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

এমন নয় যে আমি বলছি না এটি কাজ করার ভাল উপায়। এটি ঠিক যেখানে ওআরএম প্রাকৃতিকভাবে ফিট করে।


2

অ্যাপ্লিকেশনগুলিতে যেখানে আপনার একটি বৃহত, খুব সংযুক্ত বস্তুর মডেল রয়েছে, একটি ORM আপনাকে বার বার একই লেখার হাত থেকে রক্ষা করে।

আর একটি সুবিধা হ'ল অলস লোডিং, যেখানে আপনি একটি এপিআই চান যেখানে কোনও অবজেক্ট গ্রাফ ফিরে আসে যেখানে এপিআইয়ের ক্লায়েন্ট কেবল সেই গ্রাফের একটি উপসেট ব্যবহার করবে।


1

আমি বিশ্বাস করি আপনি একটি ডিবিএল দিয়ে একটি ORM বিভ্রান্ত করছেন

আপনি যে ধারণাটি উল্লেখ করছেন সেটি হ'ল একটি ডেটাবেস অ্যাবস্ট্রাকশন স্তর (ডিবিএল) যা আপনাকে পোর্টেবল "এসকিউএল" লিখতে দেয় যা অন্তর্নিহিত ডাটাবেস সিস্টেমের উপর নির্ভর করে না।

অন্যটিতে একটি ORM (যা সর্বদা একটি ডিবিএল এর উপরে নির্মিত (প্রায়?):

Object-relational mapping (ORM, O/RM, and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. (উইকিপিডিয়া)

সহজ কথায় বলতে গেলে, একটি ওআরএম আপনাকে ফ্ল্যাট ডাটাবেস থেকে একটি স্ফীত বস্তুর উপস্থাপনায় ডেটা রূপান্তর করতে দেয়।


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

1

যে প্রকল্পগুলি ওআরএম থেকে উপকৃত হবে না সেগুলি হ'ল:

  • যেগুলি, বস্তু ভিত্তিক নয়;
  • বেশী, যে তথ্য অবিরত করার প্রয়োজন নেই;
  • যেগুলি, অবজেক্ট-ওরিয়েন্টেড ডিবি ব্যবহার করে, সুতরাং অতিরিক্ত ম্যাপিং স্তরটির প্রয়োজন হয় না;
  • যেগুলি, কোনও সম্পর্কযুক্ত NoSQL সমাধান ব্যবহার করে;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.