আমার কাছে বর্তমানে গৃহীত এন্টারপ্রাইজ অ্যাপ্লিকেশন ডিজাইনের দৃষ্টান্তের গুণাবলী সম্পর্কে সত্যই কিছু চিন্তাভাবনাপূর্ণ বিতর্ক দেখতে হবে ।
আমি বিশ্বাস করি না যে সত্তা অবজেক্টের উপস্থিতি হওয়া উচিত।
সত্তা অবজেক্টের দ্বারা আমি আমাদের অ্যাপ্লিকেশনগুলির জন্য যেমন সাধারণ জিনিসগুলি তৈরি করতে চাই তা বোঝায়, যেমন "ব্যক্তি", "অ্যাকাউন্ট", "আদেশ", ইত্যাদি for
আমার বর্তমান নকশা দর্শন এটি:
- সমস্ত ডাটাবেস অ্যাক্সেস অবশ্যই সঞ্চিত প্রক্রিয়াগুলির মাধ্যমে সম্পন্ন করতে হবে।
- যখনই আপনার ডেটার প্রয়োজন হবে, একটি সঞ্চিত পদ্ধতিতে কল করুন এবং একটি স্ক্যেলডেটাআরেডার বা একটি ডেটা টেবিলের সারিগুলিতে পুনরাবৃত্তি করুন
(দ্রষ্টব্য: আমি জাভা ইই সহ এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিও তৈরি করেছি, জাভা লোকেরা দয়া করে আমার। নেট উদাহরণগুলির সমতুল্য প্রতিস্থাপন করুন)
আমি অ্যান্টি-ওও নই। আমি বিভিন্ন সত্তা নয়, বিভিন্ন উদ্দেশ্যে বিভিন্ন ক্লাস লিখি। আমি স্বীকার করব যে আমি যে ক্লাসগুলি লিখি সেগুলির একটি বড় অংশ হ'ল স্থির সহায়ক ক্লাস।
আমি খেলনা তৈরি করছি না। আমি একাধিক মেশিন জুড়ে মোতায়েন করা বৃহত, উচ্চমাত্রার লেনদেনমূলক অ্যাপ্লিকেশনগুলির বিষয়ে কথা বলছি। ওয়েব অ্যাপ্লিকেশন, উইন্ডোজ পরিষেবা, ওয়েব পরিষেবাদি, বি 2 বি ইন্টারঅ্যাকশন, আপনি এটির নাম দিন।
আমি ওআর ম্যাপার ব্যবহার করেছি। আমি কয়েকটা লিখেছি। আমি জাভা ইই স্ট্যাক, সিএসএলএ এবং আরও কয়েকটি সমতুল্য ব্যবহার করেছি। আমি কেবল সেগুলি ব্যবহার করি নি তবে উত্পাদন পরিবেশে এই অ্যাপ্লিকেশনগুলিকে সক্রিয়ভাবে বিকাশ ও পরিচালনা করেছি।
আমি যুদ্ধের পরীক্ষিত উপসংহার এসেছেন যে সত্তা বস্তু আমাদের পথ পেয়ে হয়, এবং আমাদের জীবনে হবে তাই অনেক তাদের ছাড়া সহজ।
এই সাধারণ উদাহরণটি বিবেচনা করুন: আপনি আপনার অ্যাপ্লিকেশনটিতে একটি নির্দিষ্ট পৃষ্ঠা সম্পর্কে সমর্থন কল পান যা সঠিকভাবে কাজ করছে না, সম্ভবত ক্ষেত্রগুলির মধ্যে একটির যেমনটি হওয়া উচিত তেমন স্থির করা হচ্ছে না। আমার মডেল সহ, সমস্যাটি নির্ধারিত বিকাশকারী ঠিক 3 টি ফাইল খুলবে । একটি এএসপিএক্স, একটি এএসপিএক্স.সিএস এবং সঞ্চিত পদ্ধতি সহ একটি এসকিউএল ফাইল। সমস্যাটি, যা সঞ্চিত প্রক্রিয়া কলটিতে অনুপস্থিত প্যারামিটার হতে পারে, সমাধান হতে কয়েক মিনিট সময় নেয়। তবে কোনও সত্তা মডেলের সাথে আপনি অবিচ্ছিন্নভাবে ডিবাগারটি জ্বালিয়ে ফেলবেন, কোডের মাধ্যমে পদক্ষেপ শুরু করবেন এবং ভিজ্যুয়াল স্টুডিওতে 15-20 ফাইল খোলা থাকতে পারে। আপনি যখন স্ট্যাকের নীচে নেমেছেন, আপনি ভুলে গিয়েছিলেন কোথায় আপনি শুরু করেছিলেন। আমরা কেবল একবারে অনেক কিছু আমাদের মাথায় রাখতে পারি। কোনও অপ্রয়োজনীয় স্তর যুক্ত না করে সফ্টওয়্যার অবিশ্বাস্যভাবে জটিল।
বিকাশ জটিলতা এবং সমস্যা সমাধান আমার গ্রিপের একমাত্র দিক।
এখন আসুন স্কেলেবিলিটি নিয়ে কথা বলি।
বিকাশকারীরা কি বুঝতে পেরেছেন যে প্রতিবার তারা ডাটাবেসের সাথে ইন্টারেক্ট করে এমন কোনও কোড লেখেন বা সংশোধন করেন, তাদের ডাটাবেসের সঠিক প্রভাবের একটি গভীর বিশ্লেষণ করা উচিত? এবং কেবলমাত্র বিকাশের অনুলিপিই নয়, আমি অর্থ উত্পাদনের নকল করছি, তাই আপনি দেখতে পাচ্ছেন যে আপনার এখন অতিরিক্ত কলামটি আপনার অবজেক্টের জন্য প্রয়োজন বর্তমান ক্যোয়ারী পরিকল্পনাটি বাতিল করে দিয়েছে এবং 1 সেকেন্ডে চলমান একটি প্রতিবেদন এখন 2 মিনিট সময় নেবে কারণ আপনি নির্বাচিত তালিকায় একটি কলাম যুক্ত করেছেন? এবং দেখা যাচ্ছে যে সূচকগুলি আপনি এখন প্রয়োজন এটি এত বড় যে ডিবিএ আপনার ফাইলগুলির দৈহিক বিন্যাসটি সংশোধন করতে চলেছে?
যদি আপনি কোনও বিমূর্ততা দিয়ে মানুষকে শারীরিক ডেটা স্টোর থেকে খুব দূরে যেতে দেন তবে তারা এমন একটি অ্যাপ্লিকেশন সহ ধ্বংস করতে পারে যা স্কেল করা দরকার।
আমি একজন উদ্যোগী নই। আমি ভুল হতে পারলে নিশ্চিত হতে পারি, এবং আমিও হতে পারি, যেহেতু লিনক থেকে এসকিএল, এডো.নেট ইএফ, হাইবারনেট, জাভা ইই ইত্যাদি ইত্যাদির দিকে এইরকম প্রবল ধাক্কা রয়েছে দয়া করে আপনার প্রতিক্রিয়াগুলির মাধ্যমে ভাবুন, আমি যদি কিছু মিস করছি তবে সত্যিই এটি কী এবং আমার চিন্তাভাবনা কেন পরিবর্তন করা উচিত তা জানতে চাই।
[সম্পাদনা]
দেখে মনে হচ্ছে এই প্রশ্নটি হঠাৎ আবার সক্রিয়, তাই এখন আমাদের কাছে নতুন মন্তব্য বৈশিষ্ট্য রয়েছে যা আমি বেশ কয়েকটি উত্তরে সরাসরি মন্তব্য করেছি। উত্তরের জন্য ধন্যবাদ, আমি মনে করি এটি একটি স্বাস্থ্যকর আলোচনা।
আমার সম্ভবত আরও পরিষ্কার হওয়া উচিত ছিল যে আমি এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলির বিষয়ে কথা বলছি। কারও ডেস্কটপ বা একটি মোবাইল অ্যাপ্লিকেশনে চলছে এমন একটি গেমটি আমি আসলে মন্তব্য করতে পারি না say
বেশ কয়েকটি অনুরূপ উত্তরের জবাবে আমাকে প্রথমে এখানে শীর্ষে রাখতে হবে: অস্থিরতা এবং উদ্বেগের বিচ্ছেদ প্রায়শই সত্তা / ওআরএম যাওয়ার কারণ হিসাবে উদ্ধৃত হয়। আমার কাছে সঞ্চিত পদ্ধতিগুলি আমি যে উদ্বেগগুলি ভাবতে পারি তার বিচ্ছিন্নতার সর্বোত্তম উদাহরণ। আপনি যদি সঞ্চিত প্রক্রিয়া বাদে ডাটাবেসটিতে অন্য সমস্ত অ্যাক্সেসকে অস্বীকার করেন তবে আপনি তাত্ত্বিকভাবে আপনার সম্পূর্ণ ডেটা মডেলটিকে নতুন করে ডিজাইন করতে পারবেন এবং কোনও কোড ভাঙবেন না, যতক্ষণ আপনি সঞ্চিত পদ্ধতিগুলির ইনপুট এবং আউটপুট বজায় রেখেছেন। এগুলি চুক্তি অনুসারে প্রোগ্রামিংয়ের একটি নিখুঁত উদাহরণ (যতক্ষণ আপনি "নির্বাচন করুন *" এড়ানো এবং ফলাফল সেটগুলি নথিভুক্ত করেন)।
এমন কাউকে জিজ্ঞাসা করুন যিনি দীর্ঘদিন ধরে শিল্পে রয়েছেন এবং দীর্ঘকালীন অ্যাপ্লিকেশনগুলির সাথে কাজ করেছেন: একটি ডাটাবেস চলাকালীন কতগুলি অ্যাপ্লিকেশন এবং ইউআই স্তর এসেছে এবং চলে গেছে? যখন ডেটাবেসে 4 বা 5 টি ভিন্ন ভিন্ন অধ্যবসায় স্তরগুলি এসকিউএল উত্পন্ন করে থাকে তখন কোনও ডাটাবেস টিউন ও রিফ্যাক্টর করা কতটা কঠিন? আপনি কিছু পরিবর্তন করতে পারবেন না! ওআরএম বা যে কোনও কোড যা এসকিউএল উত্পন্ন করে আপনার ডেটাবেসকে পাথরে লক করে ।