এত প্রোগ্রামাররা কেন অবজেক্ট বিস্তৃত স্তরকে ঘৃণা করে?


9

বাইনারি সিরিয়ালাইজেশন এবং রাইট-ফরোয়ার্ড লগিংয়ের উপর ভিত্তি করে ইন-মেমোরি অবজেক্ট মডেলটিতে এসিডি বৈশিষ্ট্য সরবরাহ করার জন্য প্রভ্যালেন্স একটি সহজ কৌশল। এটি এর মতো কাজ করে:

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

এই কাজটি করার জন্য প্রয়োজনীয় সতর্কতাগুলি হ'ল:

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

এটা কি কারণ ...

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

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


আহা। আমি ভাবলাম এর নাম আছে কিনা? এটি আমার কাছে সর্বদা বোধগম্য হয়েছিল, এর জন্য আমার কোনও নাম ছিল না।
গ্রেফ্যাড

9
আপনি কি বিষয়ে কথা হয়?
TheLQ

আমি এই প্রথম শুনেছি। এটা কি?
জন

ব্যাখ্যা যুক্ত হয়েছে।
জেফ্রি হ্যান্টিন

1
ওহহ .. ধারণাটি আমি জানি তবে আমি এর আগে কখনও করিনি। আমার কাছে বেশ নিফটি লাগছে। আমি নিশ্চিত যে এটি অনেকগুলি ডেভস "একেবারে ঘৃণা" নয়।
জন

উত্তর:


6

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

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

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


11

আমি মনে করি আপনাকে প্রথমে প্রদর্শিত হতে হবে যে এতগুলি বিকাশকারী তাদের একেবারে ঘৃণা করে। আমি মনে করি না যে ব্যাপারটি। কিছুক্ষণ আগে, সেই ফাউলারের কথা বিবেচনা করুন, এটির জন্য এখানে এক ধরণের বিন্যাসকে আনুষ্ঠানিকভাবে رسمي করলেন ।


হ্যাঁ, আমি কিছুটা বিভ্রান্ত আপনি যদি সঠিক কারণে তাদের ব্যবহার করেন তবে এগুলি দুর্দান্ত সরঞ্জামের মতো দেখায়।
ম্যাট ওলেনিক

আমি কেবল এটি বলছি কারণ সহকর্মীদের কাছ থেকে আমি এতে এক বিস্ময়কর পরিমাণে শোক পেয়েছি।
জেফ্রি হ্যান্টিন

1
@ জেফ্রে হ্যান্টিন: এগুলি অলস এবং বদ্ধ মনের মত।
স্টিভেন এভার্স

1
ওহ, এবং প্যাটার্ন প্রকৃত ভিত্তি c2.com/cgi/wiki?TransactionTape
জেফ্রি Hantin

4

প্রশ্নের উত্তর হ'ল তত্ত্বটি সহজ হলেও অনুশীলন হয় না।

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

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

এটি বেশিরভাগ ক্ষেত্রে সেই চাকাটির একটি কেস উদ্ভাবিত হয়েছিল এবং দীর্ঘ সময় আগে এটি পারফেক্ট হয়েছিল।


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

@ জওয়ান্টিং তাই কি 'তীব্র উকিল' পয়েন্টের আওতায় পড়ে?
জেফরি হ্যান্টিন

2

পূর্বের প্রয়োজনীয় কোডগুলি চারপাশে কোডের জন্য কিছুটা শক্তিশালী মনে হয়, বিশেষত বেশিরভাগ সিস্টেমে মেমরিতে চলার সময় ACID সম্মতি প্রয়োজন হয় না। ওভারহেড কিছুটা খারাপ লাগছে - সেখানে প্রচুর পরিমাণে রাষ্ট্রীয় ট্র্যাকিং জড়িত রয়েছে।

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