আমার উত্তরটি আসল বিশ্ব ব্যবসায়ের দৃষ্টিকোণ এবং প্রতিটি উন্নয়ন দলকে যে চ্যালেঞ্জগুলির মুখোমুখি হতে হবে তা থেকে হবে। আমি এই প্রশ্নে যা দেখছি এবং প্রচুর উত্তর আসলে ত্রুটিগুলি নিয়ন্ত্রণ করা।
কোড বাগ-মুক্ত হতে পারে। যে কোনও প্রোগ্রামিং ভাষার জন্য "হ্যালো ওয়ার্ল্ড" কোডের যে কোনও নমুনা নিন এবং এটি প্ল্যাটফর্মের উপর চালিত করুন এবং এটি নিয়মিতভাবে কাজ করবে এবং পছন্দসই ফলাফল আনবে। কোডটি বাগ-মুক্ত থাকার অসম্ভবতার উপর কোনও তত্ত্বের সমাপ্তি রয়েছে।
যুক্তি আরও জটিল হওয়ার সাথে সাথে সম্ভাব্য বাগগুলি আসবে। সরল হ্যালো ওয়ার্ল্ড উদাহরণটির কোনও যুক্তি নেই এবং প্রতিবার একই স্থিতিশীল কাজ করে। যুক্তি-চালিত গতিশীল আচরণ যুক্ত করার সাথে সাথেই জটিলতার পরিচয় দেয় যা বাগগুলি বাড়ে। যুক্তিটি নিজেই ত্রুটিযুক্ত হতে পারে, বা যুক্তিটির ইনপুটযুক্ত ডেটা এমনভাবে পরিবর্তিত হতে পারে যে যুক্তিটি পরিচালনা করে না।
একটি আধুনিক অ্যাপ্লিকেশন রান-টাইম লাইব্রেরি, সিএলআর, মিডলওয়্যার, ডাটাবেস ইত্যাদির উপরও নির্ভর করে যেগুলি সামগ্রিকভাবে বিকাশের সময় সাশ্রয় করার সাথে সাথে এমন স্তরগুলিও থাকে যেখানে এই স্তরগুলির মধ্যে বাগগুলি উপস্থিত থাকতে পারে এবং বিকাশ ও ইউএটি পরীক্ষার মাধ্যমে এবং উত্পাদনে সনাক্ত করা যায়।
সবশেষে, অ্যাপ্লিকেশনগুলি / সিস্টেমগুলির চেইনগুলি যে অ্যাপ্লিকেশনগুলি তার লজিককে খাওয়াচ্ছে এমন ডেটা গ্রাহ্য করে তাদের সম্ভাব্য বাগগুলির সমস্ত উত্স হ'ল তাদের যুক্তির মধ্যে, বা সফ্টওয়্যারটির মধ্যে লজিক রাইডের শীর্ষে থাকে বা উপরিভাগের সিস্টেমগুলি যা ডেটা গ্রাহ্য করে।
বিকাশকারীরা তাদের প্রয়োগের যুক্তিকে সমর্থন করে এমন প্রতিটি চলমান টুকরোটির 100% নিয়ন্ত্রণে নেই। আসলে, আমরা অনেক কিছু নিয়ন্ত্রণে নেই। এজন্য ইউনিট টেস্টিং গুরুত্বপূর্ণ, এবং কনফিগারেশন এবং পরিবর্তন পরিচালনা গুরুত্বপূর্ণ প্রক্রিয়া যা আমাদের অবশ্যই উপেক্ষা করা উচিত নয় বা অলস / slড়ু হতে হবে না।
এছাড়াও, আপনার প্রয়োগের মধ্যে নথিভুক্ত চুক্তিগুলি যা আপনার নিয়ন্ত্রণের বাইরে কোনও উত্স থেকে ডেটা গ্রাহ্য করে, যা স্থানান্তরিত ডেটার নির্দিষ্ট সুনির্দিষ্ট বিন্যাস এবং স্পেসিফিকেশনগুলি নির্ধারণ করে পাশাপাশি আউটপুট সুনিশ্চিত করার জন্য আপনার সিস্টেমটি উত্স সিস্টেমকে দায়ী বলে মনে করে এমন কোনও সীমা বা সীমাবদ্ধতা এই সীমা।
সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের আসল ওয়ার্ল্ড অ্যাপ্লিকেশনটিতে আপনি কেন তাত্ত্বিকভাবে অ্যাপ্লিকেশনগুলি বাগ-মুক্ত করতে পারবেন না তা ব্যবসায়ের সাথে ব্যাখ্যা করে এটিকে উড়তে সক্ষম হবেন না। প্রযুক্তি এবং ব্যবসায়ের মধ্যে এই প্রকৃতির আলোচনা কখনই ঘটবে না কেবলমাত্র এমন প্রযুক্তিগত ত্রুটির কারণে যা ব্যবসায়ের অর্থোপার্জন, অর্থ হ্রাস রোধ এবং / বা মানুষকে বাঁচিয়ে রাখার ক্ষমতাকে প্রভাবিত করে। "এটি কীভাবে ঘটতে পারে" এর উত্তর হতে পারে না "আমাকে এই তত্ত্বটি ব্যাখ্যা করতে দাও যাতে আপনি বুঝতে পারেন।"
তাত্ত্বিকভাবে গণনা সম্পাদন করতে এবং ফলাফল পেতে তাত্ত্বিকভাবে চিরকালের জন্য গ্রহণ করতে পারে এমন বৃহত গণনার ক্ষেত্রে, এমন একটি অ্যাপ্লিকেশন যা শেষ না করে ফলাফলের সাথে ফিরে আসতে পারে - এটি একটি বাগ a যদি গণনার প্রকৃতি এমন হয় যে এটি খুব সময় সাশ্রয়ী এবং গণনীয় নিবিড়, আপনি এই অনুরোধটি গ্রহণ করেন এবং ব্যবহারকারীকে কীভাবে / কখন ফলাফলটি পুনরুদ্ধার করতে পারে তার প্রতিক্রিয়া জানান এবং তাতে সমান্তরাল থ্রেডগুলি কটান করে নিন। এটি যদি একটি সার্ভারে সম্পন্ন করার চেয়ে দ্রুত হওয়ার প্রয়োজন হয় এবং এটি ব্যবসায়ের পক্ষে যথেষ্ট গুরুত্বপূর্ণ, তবে আপনি এটি প্রয়োজনীয় যতগুলি সিস্টেম জুড়ে স্কেল করে। এ কারণেই ক্লাউডটি খুব আকর্ষণীয় এবং কাজটি করার জন্য নোডগুলি স্পিন করার ক্ষমতা এবং কাজটি শেষ করার পরে সেগুলি স্পিন করে।
যদি কোনও পরিমাণ গণনা শক্তি সম্পূর্ণ করতে না পারে এমন কোনও অনুরোধ পাওয়ার সম্ভাবনাটি বিদ্যমান থাকে, তবে ব্যবসাটি একটি চূড়ান্ত সমস্যা বলে মনে করে তার উত্তরের জন্য অপেক্ষা করে এমন একটি ব্যবসায়িক প্রক্রিয়া চালিয়ে অনন্তের দিকে ছুটে যাওয়া উচিত নয়।
print "Hello, World!"
... আপনি কি আরও কিছুটা পরিষ্কার হতে পারেন?