পৃথক তৈরি এবং সম্পাদনা ক্রিয়া করা বা একের মধ্যে তৈরি এবং সম্পাদনা একত্রিত করা ভাল কি?


15

আমরা একটি বিজনেস লজিক লেয়ার, ডেটা অ্যাক্সেস লেয়ার [সঞ্চিত পদ্ধতি এবং ক্লাস / সঞ্চিত পদ্ধতিগুলির সাথে কথা বলার জন্য পদ্ধতিগুলি] সমন্বিত একটি নিয়ামক / ভিউ উপস্থাপনা স্তর এবং মডেল সহ এএসপি.নেট এমভিসি 2 ব্যবহার করছি।

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

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

একটি সুস্পষ্ট উদাহরণ রুট হিসাবে দেখানো যেতে পারে:

তৈরি করুন - http: // someurl / somearea / edit / 0

সম্পাদনা করুন - http: // someurl / somearea / edit / 254

বনাম

তৈরি করুন - http: // someurl / somearea / create

সম্পাদনা করুন - http: // someurl / somearea / edit / 254

এই বিষয়ে কোন প্রতিষ্ঠিত মান বা সর্বোত্তম অনুশীলন আছে?

আমি জানি এটি একটি ছোট বিশদ, তবে আমি মনে করি এটি যৌক্তিকভাবে একটি গুরুত্বপূর্ণ।


4
আমি ব্যক্তিগতভাবে পৃথক তৈরি এবং সম্পাদনা ক্রিয়াকলাপ অনেক কার্যকর (এবং সম্ভবত বজায় রাখা সহজ) বাস্তবায়ন think
অ্যাডাম লিয়ার

1
ডালটিতে একটি পদ্ধতি, এপিআই-এর জন্য যদি তা বোঝা যায় তবে দুটি জন্য।
ক্যাফগেক

ভাল আমার দৃষ্টিকোণ থেকে পৃথকভাবে তৈরি এবং সম্পাদনা এমভিসিতে প্রাকৃতিকভাবে আসে এবং সেই পদ্ধতির সাথে যেতে এমভিসিটিকে তার সম্পূর্ণরূপে ব্যবহার করার প্রচুর সুবিধা দেয় এবং এটি সবার লক্ষ্য হওয়া উচিত।
maz3tt

উত্তর:


5

আমি অবশ্যই বলব যে একক দায়িত্বের নীতিটি মানার জন্য না হলে, তৈরি / সম্পাদনা পৃথক করার পক্ষে মূল্য রয়েছে ।

কেউ দাবি করতে পারে যে ইউআরএলটিতে সঠিক পদক্ষেপ নেওয়ার চেয়ে আরও ভাল এসইও রয়েছে।

দুটি পৃথক না করাও কোডটিকে ইউনিট পরীক্ষার চেয়েও শক্ত করে তুলবে।

কোডটি পড়া একটি নতুন প্রোগ্রামার সম্ভবত কোডটিকে "সম্পাদনা" পদ্ধতিতে অবজেক্ট তৈরি করার জন্য খুব স্বজ্ঞাত হিসাবে খুঁজে পাবে না, এটি শব্দার্থগতভাবে বোঝায় না। আমি ডএল-এ সেভ () পদ্ধতির সাথে সহানুভূতি জানাতে পারি।

এ সম্পর্কে চিন্তাভাবনা করে, আমি এডিট পদ্ধতিতে এগুলি রাখার সুবিধাগুলি সত্যিই দেখতে পাচ্ছি না।


4

আমি সাধারণত Saveডালে একটি পদ্ধতি তৈরি করতে পছন্দ করি তবে বাস্তবে Create/ Edit/ Deleteআলাদাভাবে বাস্তবায়ন করি ।

উদাহরণস্বরূপ, আমার Saveপদ্ধতিটি অবজেক্টের স্থিতি পরীক্ষা করবে এবং প্রয়োজনীয়গুলির উপর নির্ভর করে তৈরি / সম্পাদনা / মোছার পদ্ধতিটি কল করবে

switch(obj.State)
{
    case ObjectState.New:
        CreateObject(obj);
        break;
    case ObjectState.Modified:
        UpdateObject(obj);
        break;
    case ObjectState.Deleted:
        DeleteObject(obj);
        break;
}

এটি আমাকে যে কোনও অবজেক্ট সংরক্ষণের জন্য কেবল একটি জেনেরিক পদ্ধতিতে কল করার অনুমতি দেয়, তবে এখনও প্রতিটিটির তৈরি (সম্পাদনা, সম্পাদনা, মোছা) আলাদা করে রাখে।


আপনি কিভাবে এটি একটি মুছে ফেলতে বলতে পারেন?
NoChance

সাধারণত আমার জিনিসগুলির একটি Stateসম্পত্তি আছে। উদাহরণস্বরূপ, Deleteবোতামটি ক্লিক করা অবজেক্টটিকে মুছে ফেলা হিসাবে চিহ্নিত করবে, তারপরে কল করুনSaveChanges()
রাচেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.