সঞ্চিত পদ্ধতির পরিবর্তে কোনও ওআরএম ব্যবহারের পরামর্শ কীভাবে দেওয়া যায়?


31

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

class Foo { 
    public bool LoadFoo() { 
        bool blnResult = false;
        if (this.FooID == 0) { 
            throw new Exception("FooID must be set before calling this method.");
        }

        DataSet ds = // ... call to Sproc
        if (ds.Tables[0].Rows.Count > 0) { 
            foo.FooName = ds.Tables[0].Rows[0]["FooName"].ToString();
            // other properties set
            blnResult = true;
        }
        return blnResult;
    }
}

// Consumer
Foo foo = new Foo();
foo.FooID = 1234;
foo.LoadFoo();
// do stuff with foo...

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

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


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

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

3
@ ওয়েইন এম: আমি দেখতে পেয়েছি যে কিছুটা ঝামেলা পোহাতে হয়েছে, তবে আমি এতে অবাকও হই না।
বার্নার্ড

2
আমি এটি খুব ... হতাশাজনক খুঁজে পেয়েছি। আপনি যখন কোনও পরামর্শ দেন এবং "হেডলাইটে হরিণ" চেহারা পান তবে এটি আশ্চর্যের বিষয় নয় যেটি আপনি কী কী বলছেন বা কেন কেউ কখনও এটি করার বিষয়ে বিবেচনা করবে তা অস্পষ্ট ধারণাটি অন্য ব্যক্তির কাছে বোঝায় না। আমি অতীতে বেশ কয়েকবার ঘটেছে।
ওয়েইন মোলিনা

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

উত্তর:


47

সঞ্চিত পদ্ধতিগুলি খারাপ, এগুলি প্রায়শই ধীর এবং প্রায় সাধারণ ক্লায়েন্টের সাইড কোডের মতো দক্ষ।

[স্পিডআপটি সাধারণত ক্লায়েন্ট এবং সঞ্চিত পদ্ধতি ইন্টারফেসটির নকশা করা হয়েছে এবং এসকিউএল-এর সংক্ষিপ্ত, ফোকাসযুক্ত বার্ট হিসাবে যেভাবে লেনদেনকে রচনা করা হয় তার কারণে এটি ঘটে]]

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

[এই প্রশ্নটি প্রায় -30 স্কোর পাওয়ার জন্য নিম্নমানের হবে কারণ অনেক, অনেক লোক মনে করেন যে সঞ্চিত পদ্ধতিগুলির যাদুকরী ক্ষমতা রয়েছে এবং তাদের সৃষ্ট সমস্যা সত্ত্বেও অবশ্যই এটি ব্যবহার করা উচিত।]

সমস্ত সঞ্চিত পদ্ধতি কোডটি ক্লায়েন্টে স্থানান্তরিত করা প্রত্যেকের জন্য বিষয়গুলি আরও সহজ করে তুলবে।

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

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

ওআরএম এর যাদু নয়, এবং এটি কার্যকর করার জন্য ভাল ডাটাবেস ডিজাইনের দক্ষতা একেবারে প্রয়োজনীয়।

এছাড়াও, প্রচুর ক্লায়েন্ট এসকিউএল সহ প্রোগ্রামগুলি লেনদেনের সীমানা সম্পর্কে দুর্বল চিন্তাভাবনার কারণে ধীর হয়ে যেতে পারে। সঞ্চিত পদ্ধতিগুলি দ্রুত প্রদর্শিত হওয়ার অন্যতম কারণ হ'ল সঞ্চিত পদ্ধতিগুলি লেনদেনের খুব, খুব যত্নবান নকশাকে বাধ্য করে।

ORM এর যাদুতে সাবধানতার সাথে লেনদেন ডিজাইন জোর করবেন না। লেনদেনের নকশা এখনও ঠিক তেমন যত্ন সহকারে করতে হবে যেমন সঞ্চিত প্রক্রিয়াগুলি লেখার সময় ছিল।


19
+1 কারণ সঞ্চিত প্রক্রিয়াগুলি কাজ করার জন্য মোট ব্যথা
গ্যারি রোয়ে

3
: '(সঞ্চিত পদ্ধতিতে আমার কোনও সমস্যা নেই It's এটি আমার কাছে আরও একটি বিমূর্ত স্তর
মাইক ওয়েলার

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

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

2
@ ডেভেলপারআরনাব: এটি 20 বছর আগে সত্য হতে পারে তবে আধুনিক ডিবি ইঞ্জিনগুলি বেশ পরিশীলিত এবং পূর্বে সম্পাদিত প্রশ্নগুলি সনাক্ত করতে পারে এবং এক্সিকিউশন পরিকল্পনা পুনরায় ব্যবহার করতে পারে, গতির পার্থক্যটি আজকাল এতটাই সামান্য যে এটি এসপিদের অতিরিক্ত ঝামেলার জন্য খুব কমই সতর্ক করে।
18-22 এ

20

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

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

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

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

সম্পাদনা: এবং এখন সঙ্গে ড্যাপার , একটি হেভিওয়েট ORM উপর এড়ানোর sprocs কোনো কারণ সর্বস্বান্ত হয়।


3
+1, সুস্পষ্ট প্রথম পদক্ষেপটি একটি ওআরএম এ স্থানান্তর করা এবং বিদ্যমান সঞ্চিত প্রক্রিয়াগুলির ফলাফলগুলিকে অবজেক্টগুলিতে ম্যাপ করার জন্য এটি ব্যবহার করা। ds.Tables[0].Rows[0]["FooName"].ToString()All সমস্ত ছদ্মবেশ থেকে মুক্তি পান । ম্যানেজার সঞ্চিত পদ্ধতি পছন্দ করেন? সে সেগুলি রাখে। তবে তর্ক করা শারীরিকভাবে অসম্ভব হবে যে এই সমস্ত পুনরাবৃত্ত বয়লারপ্লেট কোডটি দ্বারা উত্পাদিত কিছুতে বলা, বলুন, এসকিউএল-তে লিনকিউ একটি খারাপ জিনিস ছিল।
কারসন 63000

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

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

5
@ মাত্তেও মোসকা: নিশ্চিত, তবে মিডলওয়্যার কীভাবে ডিবি অ্যাক্সেস করতে পারে ... এটি ডিবির ক্লায়েন্ট। "ক্লায়েন্ট" এর অর্থ "জিইউআই" বা "ডেস্কটপ অ্যাপ" নয়। অ্যাপ্লিকেশন স্তরগুলিতে প্রচুর ধূসর অঞ্চল রয়েছে - আপনি জিইউআইতে বা সার্ভার / ব্যবসায় যুক্তিতে বৈধতা দিন? এটি একটি পরিষ্কার নকশা হিসাবে সার্ভারে থাকা উচিত তবে এটি কার্য সম্পাদন এবং ব্যবহারকারীর প্রতিক্রিয়াটির জন্য সত্যই দুর্বল। একইভাবে, আপনি প্রায়শই ডিবিতে কিছু যুক্তি রাখেন যখন এটি কার্য সম্পাদন করে এবং (এই ক্ষেত্রে) ডেটা নির্ভুলতা আরও ভাল হয়।
gbjbaanb

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

13

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

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

যেমন ডেটাসেট - ইয়াক! আপনি শ্রেণিবদ্ধ (বা এমনকি গতিশীল) টাইপ করা অবজেক্টগুলি ফিরিয়ে দিলে আপনার শ্রেণীর পাঠাগারগুলি কাজ করা আরও সহজ হবে। আমি বিশ্বাস করি যে এই চিত্রণটি আমার চেয়ে ডেটাসেটের সম্পর্কে আমার মতামত ব্যাখ্যা করে।

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

আমি ওআরএম এর ব্যবহারকে নিরুৎসাহিত করছি না - আমি সাধারণত আমার কাজ করা বেশিরভাগ প্রকল্পে এগুলি ব্যবহার করি। তবে আমি দেখতে পাচ্ছি যে কেন এই প্রকল্পে এবং আপনার দলটির মধ্যে এটির একটি পরিচয় করিয়ে দেওয়ার চেষ্টা করার ক্ষেত্রে প্রচুর দ্বিধা হতে পারে, কারণ তারা প্রায় 8 বছর আগে নতুন জিনিস শেখা বন্ধ করেছিল। যে বলেন না আমি definately নতুন শাবক কটাক্ষপাত করা হবে "মাইক্রো ORM এর" যেমন ড্যাপার (এই সাইট কম শক্তি ব্যবহার করা) এবং বৃহদায়তন , এই দুই ধরনের ব্যবহার অবিশ্বাস্যভাবে সহজ হয় এবং আপনি একটি চেয়ে এসকিউএল কাছাকাছি রাখা টিপিক্যাল ওআরএম করে এবং যা আপনার দল মেনে নিতে আরও প্রস্তুত হতে পারে।


2
আমি মনে করি সমস্যাটি ঠিক তখনই লেখা হয়েছিল যখন .NET- র জন্য কোনও নোটের আসল ORM ছিল না তাই এটি অন্য উপায়ে করা হয়েছিল (এএসপি.নেট 1.1 উপায়), এবং কেউ কখনও এটি (বা অন্য কিছু) আলাদাভাবে করার কথা ভাবেনি ever আমি কয়েক মাস আগে যোগদান পর্যন্ত।
ওয়েইন মোলিনা

1
ড্যাপারের জন্য +1। আমি একটি প্রকল্পে এটি ব্যবহার শুরু করেছি এবং এটি প্রয়োগ এবং ব্যবহার করা অত্যন্ত সহজ। আমি ইতিমধ্যে একটি বড় ভক্ত।
স্লোরেট

4

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

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


3

জেএফটিআর - আমি নিম্ন পিএইচপি বিকাশকারী, তবে এটি মূলত রাজনৈতিক সমস্যা বলে মনে হচ্ছে।

"পচা" অ্যাপ্লিকেশনটির প্রস্তাব দেওয়ার স্কেল দেওয়া, তারপরে - সর্বোত্তম অনুশীলনগুলি একপাশে - এটির মূলোৎপাটন করার জন্য একটি উল্লেখযোগ্য ওভারহেড থাকবে। এটি পুনরায় লেখার অঞ্চলে সীমান্তের মতো মনে হচ্ছে।

আপনি কি গ্যারান্টি দিতে পারবেন যে আপনার পরামর্শের বিকল্পটি ব্যবসায়ের ব্যয়কে ন্যায্য করার জন্য উপকার পাবেন? আমি সন্দেহ করি যে এই উদ্যোগের আরওআই ব্যবসায়ের কাছে বিক্রি করা শক্ত হতে পারে। অ্যাপটি অস্থির না হলে বা আর্থিক দিক দিয়ে আপনি ওভারহোলের যোগ্যতা প্রমাণ করতে পারবেন না - এটি সম্ভবত কঠিন প্রমাণিত হতে পারে।

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


2

আমরা কয়েক বছর আগে এসপি থেকে ওআরএম পরিবর্তন করেছি।

একটি ক্ষেত্রে আমাদের 80 টি টেবিল আপডেট করতে হয়েছিল। পুরানো অনুমানের মডেলটি এন্টলিব এবং এসপি দিয়ে এর জন্য 80 ঘন্টা অনুমান করতে পারে। আমরা 10 এ এটি করেছি :)

এটি আমাদের ডেটা অ্যাক্সেস লেয়ারটি বিকাশ করার সময় ব্যবহারের পরিমাণকে একটি 80% হ্রাস দিয়েছে।


1
এবং আপনি টেবিল আপডেট স্ক্রিপ্ট করতে পারেন না কেন?
অন্ধকার রাত

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

-1

আমার কাছে আরও মনে হয় যে অন্তর্নিহিত সমস্যাটি হ'ল আপনার মোতায়েনগুলি সঠিকভাবে এবং স্বয়ংক্রিয়ভাবে কাজ করছে না।

অবিচ্ছিন্ন বিল্ড ইঞ্জিন স্থাপন করা আরও সহজ হতে পারে যা প্রতিটি কমিটের পরে প্রয়োজনীয় ডাটাবেসগুলি কীভাবে পরিচালনা করতে পারে তা জানে।

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