দ্রুত প্রতিক্রিয়া: ডেটাবেস ডিবাগিং এবং উদ্ধারে প্রোফাইলিং

লেখক: Roger Morrison
সৃষ্টির তারিখ: 22 সেপ্টেম্বর 2021
আপডেটের তারিখ: 10 মে 2024
Anonim
দ্রুত প্রতিক্রিয়া: ডেটাবেস ডিবাগিং এবং উদ্ধারে প্রোফাইলিং - প্রযুক্তি
দ্রুত প্রতিক্রিয়া: ডেটাবেস ডিবাগিং এবং উদ্ধারে প্রোফাইলিং - প্রযুক্তি

ছাড়াইয়া লত্তয়া: হোস্ট এরিক কাভানাঘ ডাঃ রবিন ব্লার, ডেজ ব্লাঞ্চফিল্ড এবং আইডিইআরএস বার্ট স্কালজোর সাথে ডাটাবেস ডিবাগিং এবং প্রোফাইলিং নিয়ে আলোচনা করেছেন।



আপনি বর্তমানে লগ ইন নেই Please ভিডিওটি দেখতে লগ ইন বা সাইন আপ করুন।

এরিক কাভানাঘ: ঠিক আছে, মহিলারা এবং ভদ্রলোক, এটি বুধবার পূর্ব সময় 4:00, এবং অবশ্যই এর অর্থ।

রবিন ব্লোর: শুনছি না, এরিক।

এরিক কাভানাঘ: আমি সেখানে বেশ কয়েকদিন আগে ছিলাম, সুতরাং তুমি একা নও। তবে তাই আজকের বিষয়টি সত্যই আকর্ষণীয় জিনিস। আপনি যে ব্যক্তির কাজটি করছেন না যদি না আপনি আপনার কোম্পানির পটভূমিতে যে বিষয়টি নিশ্চিত করতে চান তা হ'ল এটিই ঠিক তেমনটি ঘটছে যা আপনি এটি সঠিকভাবে করছেন কিনা তা নিশ্চিত করতে চান। কারণ ডিবাগিংয়ের কথা বলছিলেন। কেউ বাগ পছন্দ করে না, সফ্টওয়্যারটি কাজ করা বন্ধ করে দিলে কেউ পছন্দ করে না - লোকেরা বিরক্ত হয়, ব্যবহারকারীরা বন্ধুত্বপূর্ণ হয়। এটা ভালো না. সুতরাং, "র‌্যাপিড রেসপন্স: ডেটাবেস ডিবাগিং এবং রেসকিউতে প্রোফাইলিং" সম্পর্কে কথা বলতে যাচ্ছিলাম।

আপনার সম্পর্কে সত্যই একটি স্পেস রয়েছে, আমাকে অবশ্যই আঘাত করুন, অবশ্যই জেরিক_কভানাঘ।


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

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

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


এখানে বিখ্যাত বাগগুলির একটি তালিকা রয়েছে এবং এগুলির বেশিরভাগই মূলত শেষ দু'টি ব্যতীত কমপক্ষে ১০০ মিলিয়ন ডলার ব্যতীত যে কোনও বিডিস শীর্ষস্থানীয় তালিকায় চলে আসে। প্রথমটি ছিল মঙ্গল গ্রহের জলবায়ু অরবিটার, মহাকাশে হারিয়েছে এবং এটি একটি কোডিং সমস্যার কারণে হয়েছিল, যেখানে লোকেরা (হাসি) ফুট এবং ইঞ্চি দিয়ে মেট্রিক ইউনিটগুলিকে বিভ্রান্ত করেছিল। আরিয়েন ফাইভ ফ্লাইট 501 এ একটি ইঞ্জিন লাগানো হয়েছিল এবং যে কম্পিউটারগুলি যখন রকেটটি চালাচ্ছিল তখন এটি চালু হয়েছিল এবং এটি যখন চালু করা হয়েছিল between একাধিক কম্পিউটার ব্যর্থতা, বিস্ফোরিত রকেট, শিরোনামের খবর। 1982 সালে সোভিয়েত গ্যাস পাইপলাইনটিকে গ্রহের ইতিহাসের বৃহত্তম বিস্ফোরণ বলে উল্লেখ করা হয়েছিল; আমি নিশ্চিত না এটি কিনা। রাশিয়ানরা কিছু স্বয়ংক্রিয় নিয়ন্ত্রণ সফ্টওয়্যার চুরি করেছিল, এবং সিআইএ বুঝতে পেরেছিল যে তারা এটি করতে চলেছে এবং এতে বাগগুলি রেখেছিল, এবং সোভিয়েতরা এটি পরীক্ষা না করেই বাস্তবায়ন করেছিল। সুতরাং, একটি পাইপলাইন উড়িয়ে দিলেন, ভেবেছিলেন যে মজাদার।

মরিস কৃমিটি একটি কোডিং পরীক্ষা ছিল, যা হঠাৎ করেই এক ধর্ষণকারী কীট হয়ে উঠল যা প্রতিবিম্বকে ঘিরে ধরেছিল - এটি সম্ভবত ১০০ মিলিয়ন ডলারের ক্ষতি করেছে; অবশ্যই একটি অনুমান। ইন্টেল গণিত চিপ দিয়ে একটি বিখ্যাত ত্রুটি করেছিল - ১৯৯৩ সালে পেন্টিয়াম চিপে একটি গণিতের নির্দেশ - যার ব্যয় $ ১০০ মিলিয়ন ডলারের বেশি ছিল। অ্যাপল ম্যাপস প্রোগ্রামটি সম্ভবত অ্যাপল যা কিছু করেছে তার সবচেয়ে খারাপ এবং সবচেয়ে বিপর্যয়কর লঞ্চ। যে লোকেরা এটি ব্যবহার করার চেষ্টা করেছিল, আমি বলতে চাইছি কেউ 101 এর সাথে গাড়ি চালাচ্ছিল এবং আবিষ্কার করেছে যে অ্যাপল মানচিত্রটি জানিয়েছে যে তারা সান ফ্রান্সিসকো উপসাগরের মাঝখানে ছিল। সুতরাং, লোকেরা অ্যাপল মানচিত্র অ্যাপটিকে আইলস্ট হিসাবে উল্লেখ করতে শুরু করেছে। 1990 সালের এটি আমাদের দীর্ঘতম আউটেজ - এটির মতো কোনও ব্যয়ের দৃষ্টিকোণ থেকে এটি আকর্ষণীয় - এটিএন্ডটি প্রায় নয় ঘন্টা বাইরে ছিল এবং এটিতে দূরত্বের কলগুলির জন্য প্রায় 60 মিলিয়ন ডলার ব্যয় হয়েছিল।

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

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

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

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

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

যাইহোক, আমি দেজের কাছে যাব, যারা সম্ভবত আমার চেয়ে বেশি জ্ঞানের কথা বলতে চলেছে। আমি আপনাকে বল পাস করার উপায় জানি না, ডেজ।

এরিক কাভানাঘ: আমি এটি পাস, পাশে দাঁড়ানো, ধরে রাখা।

অটোমেটেড ভয়েস: অংশগ্রহণকারী লাইনগুলি নিঃশব্দ করা হয়েছে।

এরিক কাভানাঘ: ঠিক আছে, এক সেকেন্ড ঝুলুন, আমাকে দেজ বল দিন।

ডেজ ব্লাঞ্চফিল্ড: আপনাকে ধন্যবাদ, এরিক। হ্যাঁ, ড। রবিন ব্লুর, আপনি প্রকৃতপক্ষে সবচেয়ে সঠিক: এটি একটি বিষয়, আজীবন বাগব্বার যদি আপনি পাং ক্ষমা করেন, দুঃখিত, আমি সেটির জন্য নিজেকে সাহায্য করতে পারি না। আশা করি আপনি সেখানে আমার প্রথম স্ক্রিনটি দেখতে পাবেন, শীর্ষে ফন্ট আকারের সমস্যার জন্য আমার ক্ষমা চাই। বাগের বিষয়টি আমার অভিজ্ঞতা অনেক ক্ষেত্রেই একটি দীর্ঘকালীন বক্তৃতা। এটি এরকম একটি বিস্তৃত এবং বিস্তৃত বিষয়, তাই আমি দুটি মূল ক্ষেত্রের দিকে মনোনিবেশ করতে যাচ্ছি, বিশেষত আমরা কীটিকে একটি বাগ হিসাবে বিবেচনা করি তা ধারণা, তবে একটি প্রোগ্রামিং ইস্যু। আমি মনে করি আজকাল প্রতি বগের প্রবর্তন সাধারণত সংহত বিকাশ পরিবেশ দ্বারা গৃহীত হয়, যদিও এগুলি দীর্ঘমেয়াদী বাগ থাকতে পারে। তবে প্রায়শই এটি প্রোফাইলিং কোডের একটি কোড এবং কোড লেখার পক্ষে এটি সম্ভব হয় যা কাজ করে, এটি একটি ত্রুটি হওয়া উচিত। সুতরাং, এখানে আমার শিরোনাম স্লাইড, আমি আসলে খুব উচ্চ রেজোলিউশন এ 3 এ এর ​​একটি অনুলিপি পেয়েছিলাম, তবে দুর্ভাগ্যক্রমে এটি ঘরের এক চলাচলে ধ্বংস হয়ে গেছে। তবে এটি ১৯৪৫ সালের সার্কায় একটি প্রোগ্রামিং শীটে একটি হস্তাক্ষরযুক্ত নোট, যেখানে মার্কিন যুক্তরাষ্ট্রের হার্ভার্ড বিশ্ববিদ্যালয়ের কিছু লোক বলে চিহ্নিত করা হয়েছে, মার্ক দ্বিতীয় নামে তাদের একটি মেশিনের দ্বিতীয় বিল্ড। তারা সাধারণ ভাষায় কিছু সমস্যা ডিবাগ করছিল, তবে তারা একটি ত্রুটি সন্ধান করার চেষ্টা করছে এবং এটি প্রমাণিত হয়েছে যে একটি হার্ডওয়্যার এবং সম্ভবত একটি সফ্টওয়্যার ইস্যু থেকে কিছুটা আলাদা এসেছে।

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

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

তবে আমাদের একটি দৃশ্যও আছে এবং আমি ভেবেছিলাম আইডি কিছুটা মজার স্লাইডগুলি রেখেছিল আমি আরও কিছুটা বিশদে যাওয়ার আগে। হেরস ক্লাসিক কার্টুন, যা ওয়েবে এক্সকেসিডি নামে পরিচিত, এবং কার্টুনিস্টের বিশ্বে কিছু চমত্কার মজার মতামত রয়েছে। এবং এইগুলি "লিটল ববি টেবিল" নামে পরিচিত একটি শিশু এবং সম্ভবত তাঁর বাবা-মা এই ছোট ছেলের নাম রেখেছিলেন রবার্ট); টেবিল ছাত্রদের ফেলে দাও; - এবং এটি বলা হয় এবং এই ধরণের "হাই, এটি আপনার ছেলেদের স্কুলটিতে কম্পিউটারের কোনও সমস্যা আছে," এবং পিতামাতা উত্তর দেন, "ওহে প্রিয়, সে কিছু ভেঙেছে?" এবং শিক্ষক বলেছেন, "ভাল, "একভাবে," এবং শিক্ষক জিজ্ঞাসা করলেন, "আপনি কি সত্যিই আপনার ছেলের নাম রেখেছিলেন রবার্ট); টেবিলে শিক্ষার্থীদের ফেলে দাও; -? "এবং পিতামাতারা বলেছেন," ওঁ হ্যাঁ, ছোট ববি টেবিলগুলি আমরা তাকে ডাকি। "যাইহোক, তারা আরও বলে যে তারা এখন বছরের কয়েক বছরের রেকর্ড হারিয়েছে, আমি আশা করি আপনি খুশি হবেন। এবং প্রতিক্রিয়াটি হ'ল, "ভাল, আপনার আপনার ডাটাবেস ইনপুটগুলি পরিষ্কার এবং স্যানিটাইজ করা উচিত” "এবং আমি কোডটিতে জিনিসগুলি সন্ধান করার ক্ষেত্রে আমাদের যে সমস্যাগুলি রয়েছে সেগুলি নিয়ে কথা বলার জন্য বহুবার ব্যবহার করি, কোডটি প্রায়শই ডেটাও দেখায় না that ।

আর একটি মজার, আমি জানি না এটি আসল কিনা না - আমি এটির একটি বোকামি সন্দেহ করি - তবে আবার এটি আমার মজার হাড়কেও ছোঁয়া। কেউ তাদের গাড়ির সামনের লাইসেন্স প্লেট পরিবর্তন করছেন, অনুরূপ বিবৃতিতে ডাটাবেসগুলি গতি ক্যামেরায় ফেলে দেয় এবং এর ফলে গাড়ির 'লাইসেন্স প্লেট' ক্যাপচার করে। এবং আমি সর্বদা এটি উল্লেখ করি যেহেতু আমি সন্দেহ করি যে কোনও প্রোগ্রামারই তাদের কোডটির আসল মোটর গাড়ি দ্বারা চালিত এবং চালিত হওয়ার প্রত্যাশা করেছিল, তবে কখনই সেটিকে হ্রাস করবেন না - রাগান্বিত গীকের শক্তি।

(হাসি)

তবে এটি আমার মূল পয়েন্টে নিয়ে যায়, আমি অনুমান করি এবং এটি হ'ল একসময় আমরা কেবলমাত্র প্রাণঘাতী হিসাবে ডিবাগ এবং প্রোফাইল কোড করতে পারি। তবে আমি সেই সময়টি খুব বেশিই দেখতে পেয়েছি, এবং আমার অভিজ্ঞতায় উপস্থাপিতভাবে, আমার প্রথম - এবং আমার এই বয়সটি আমাকে ভয়ানকভাবে, আমি নিশ্চিত; রবিন আপনাকে এর জন্য মজা করার জন্য আপনাকে স্বাগত জানায় - তবে icallyতিহাসিকভাবে আমি 14 বছর বয়েসের একটি পটভূমি থেকে এসেছি শহরের শেষ প্রান্তে ঘুরে বেড়ানো, এবং নিউজিল্যান্ডের "ডেটা কম" নামক একটি ডেটা সেন্টারের দরজায় কড়া নাড়ছে এবং জিজ্ঞাসা করছি কিনা আমি দেরীতে বাসের বাসটি পেয়ে প্রতিদিন স্ক্রিনে পকেট উপার্জন করতে পারতাম, প্রতিদিন প্রায় 25 কিলোমিটার যাত্রীবাহী ভ্রমণে, কাগজে কাগজপত্র রেখে, এবং টেপ ড্রাইভে টেপ রেখে, এবং কেবল একজন সাধারণ প্রশাসক হয়ে। এবং কৌতূহলবশত তারা আমাকে একটি কাজ দিয়েছে। তবে সময়ের সাথে সাথে, আমি নিজেকে স্টাফিংয়ে theুকতে এবং প্রোগ্রামারদের সন্ধান করতে সক্ষম হয়েছি এবং বুঝতে পেরেছি যে আমি কোডিং পছন্দ করি এবং স্ক্রিপ্ট এবং ব্যাচের কাজ চালানোর প্রক্রিয়াটি দিয়ে চলেছি, যা দিনের শেষে এখনও কোড রয়েছে। আপনাকে স্ক্রিপ্টগুলি এবং ব্যাচের কাজগুলি লিখতে হবে যা মিনি প্রোগ্রামগুলির মতো দেখায় এবং তারপরে 3270 টার্মিনাল রাইটিং কোডটি হাতে হাতে বসে পুরো প্রক্রিয়াটি অতিক্রম করে।

আসলে, আমার প্রথম অভিজ্ঞতাটি একটি টেলি টাইপ টার্মিনালে ছিল যা আসলে ১৩২-কলামের দৈহিক ত্রুটি ছিল। মূলত, একটি খুব পুরানো টাইপরাইটারের মতো ভেবে দেখুন যেমন কাগজটি এতে স্ক্রোল করে, কারণ তাদের কাছে সিআরটি টিউব নেই। এবং এটিতে ডিবাগিং কোডটি খুব অ-তুচ্ছ সমস্যা ছিল, সুতরাং আপনি নিজের কোডটি নিজের হাতে লিখে লিখে রাখতেন এবং তারপরে টাইপস্টের মতো কাজ করতেন, ছিঁচকে ত্রুটি না পেতে আপনার যথাসাধ্য চেষ্টা করেছিলেন, কারণ এটি জানাতে অত্যন্ত হতাশার কারণ একটি লাইন সম্পাদক একটি নির্দিষ্ট লাইনে যেতে হবে এবং তারপরে লাইনটি এবং তারপরে এটি আবার টাইপ করুন But তবে একসময় এটি ছিল আমরা কোডটি লিখেছিলাম এবং কীভাবে আমরা ডিবাগ করেছি, এবং আমরা এটি পেয়েছিলাম খুব ভাল। এবং প্রকৃতপক্ষে, এটি আমাদের খুব ভাল প্রোগ্রামিং কৌশলগুলি করতে বাধ্য করেছিল, কারণ এটি ঠিক করার পক্ষে এটি ছিল সত্যিকারের ঝামেলা। তবে যাত্রাটি তখন পেরিয়ে গেল - এবং এটির সাথে সমস্তই পরিচিত ছিল - এটি আমার বিশ্বের 3270 টার্মিনাল অভিজ্ঞতা থেকে ডিজিটাল সরঞ্জাম ভিটি 220 এ গিয়েছিল যেখানে আপনি পর্দায় জিনিস দেখতে পেলেন, তবে আবার আপনি ঠিক একই জিনিসটি করছিলেন যা আপনি করেছিলেন কেবল একটি সিআরটি-তে কাগজের টেপ ধরণের এড ফর্ম্যাটটিতে, তবে আপনি আরও সহজে মুছতে সক্ষম হয়েছিলেন এবং আপনার কাছে সেই "ডিআইডি ডিট ডিট ডিট ডিট" শব্দ ছিল না।

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

প্রোগ্রামিং পদ্ধতিগুলি আজকাল, উদাহরণস্বরূপ, স্ট্রাকচার্ড ক্যোয়ারী ল্যাঙ্গুয়েজ, এসকিউএল, এটি একটি খুব শক্তিশালী, সহজ ক্যোয়ারী ভাষা things তবে আমরা এটিকে একটি প্রোগ্রামিং ভাষায় রূপান্তরিত করেছি এবং আমি সত্যিই বিশ্বাস করি না যে এসকিউএল একটি আধুনিক প্রোগ্রামিং ভাষা হিসাবে তৈরি হয়েছিল তবে এটি হয়ে ওঠার জন্য আমরা এটি আঁকিয়েছি। এবং এটি সম্পূর্ণ গোছা ইস্যুগুলির পরিচয় দেয়, কারণ যখন আমরা দুটি দৃষ্টিকোণ থেকে চিন্তা করি: কোডিং দৃষ্টিকোণ থেকে এবং ডিবিএ দৃষ্টিকোণ থেকে cause কেবলমাত্র দুর্বল প্রোগ্রামিং কৌশল, লেখার কোডে অলস প্রচেষ্টা, অভিজ্ঞতার অভাব, উদাহরণস্বরূপ এসকিউএল লোকেরা গুগলে ঝাঁপিয়ে পড়ে এবং কিছু সন্ধান করে এবং একটি ওয়েবসাইট খুঁজে বের করে আমি যেমন ক্লাসিক পোষা প্রাণীর মতো জিনিসগুলির জন্য আসা এবং এটির জন্য খুব সহজেই পরিচয় করানো সহজ easy একটি উদাহরণ পেয়েছে এবং বিদ্যমান কোডটির একটি অনুলিপি এবং পেস্ট করছে। এবং তারপরে একটি খারাপ কোডিং, অপব্যবহারের প্রতিরূপ তৈরি এবং এটি উত্পাদন করে দেওয়া, কারণ এটি কেবল তাদের পছন্দসই ফলাফল দেওয়ার জন্য ঘটে। আপনি অন্যান্য প্রতিদ্বন্দ্বিতা পেয়েছেন, উদাহরণস্বরূপ, এই দিনগুলি সকলেই এই দিকে ছুটে যাচ্ছিল, যা আমরা জাতিটিকে শূন্য বলে অভিহিত করি: এত সস্তা এবং এত তাড়াতাড়ি করার চেষ্টা করছিলাম, যেখানে আমাদের এমন দৃশ্য আছে যেখানে স্বল্প বেতনের কর্মীরা নিয়োজিত ছিল না। এবং আমি এটিকে বোঝাতে চাই না যে একটি বিভ্রান্তিকর উপায়ে, তবে প্রতিটি সম্ভাব্য কাজের জন্য বিশেষজ্ঞ নিয়োগ দিচ্ছিল না। একসময় কম্পিউটারগুলির সাথে রোকস বিজ্ঞানের যা কিছু করার ছিল তা ছিল; এটি এমন বিষয়গুলির সাথে জড়িত ছিল যা দৌড়ঝাঁপ করেছিল এবং খুব জোরে ছিল, বা মহাশূন্যে গিয়েছিল বা ইঞ্জিনিয়াররা ছিল অত্যন্ত দক্ষ পুরুষ এবং মহিলা যারা ডিগ্রি নিয়েছিলেন এবং কঠোর শিক্ষাগুলি ছিল যা তাদের পাগল কাজ থেকে বিরত রাখে।

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

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

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

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

আবার, এর পুরো বিষয়টিটি হ'ল যদি আপনার কাছে সঠিক সরঞ্জাম না থাকে তবে যদি আপনার কাছে এই জিনিসগুলি ধরতে সক্ষম হওয়ার মতো সঠিক প্ল্যাটফর্ম এবং পরিবেশ না থাকে এবং তারা উত্পাদনে যায় এবং তারপরে আপনার প্রতিটিতে 10,000,000 লোক একটি সিস্টেমে আঘাত করে থাকে দিন, বা ঘন্টা, বা মিনিট খুব শীঘ্রই আপনি একটি চেরনোবিলের অভিজ্ঞতার সাথে শেষ করবেন যেখানে বড় লোহাটি গলে গলে শুরু করে গ্রহটির মূল অংশে নিজেকে কবর দেওয়া শুরু করে, কারণ সেই কোডের টুকরোটি কখনই উত্পাদনে না আসে। আপনার সিস্টেম এবং আপনার সরঞ্জামগুলি, আমাকে ক্ষমা করে দিন, এটি পরীক্ষা প্রক্রিয়া এমনকি ইউএটি এবং সিস্টেমের সংহতকরণের মাধ্যমেও এটির কাছাকাছি কোথাও যাওয়ার আগে এটি বেছে নেওয়া উচিত, কোডের এই অংশটি তুলে নেওয়া উচিত এবং হাইলাইট করা উচিত এবং কাউকে আলাদা করে আনা উচিত এবং বলছেন, "দেখুন, সত্যিই বেশ সুন্দর কোড রয়েছে, তবে সেই কাঠামোগত ক্যোয়ারীটি সঠিকভাবে তৈরি করতে আপনাকে একটি ডিবিএ পেতে দেয় কারণ খোলামেলাভাবে, কেবল খারাপ লাগবে না” "এবং সেখানে ইউআরএলগুলি দেখতে যেতে পারেন - এটি হিসাবে উল্লেখ করা হয়েছে আপনি লিখেছেন সবচেয়ে জটিল এসকিউএল কোয়েরি। আমাকে বিশ্বাস করুন কারণ এটি আসলে সংকলন করে, এটি চলমান। এবং যদি আপনি এটি কেটে পেস্ট করেন এবং কেবল ডাটাবেসটিকে উপহাস করেন তবে এটি দেখার মতো কিছু; আপনি যদি ডাটাবেস দেখার জন্য সরঞ্জামগুলি পেয়ে থাকেন তবে কেবল তিনটি থেকে পাঁচ মিনিটের সময়কালে একবার চেষ্টা করে দেখুন এবং এক লাইন কী তা আবার কল করতে পারেন।

সুতরাং, সংক্ষেপে এই কথাটি মনে রেখে, কোডিংয়ে আমার পুরো পটভূমি আমাকে শিখিয়েছে যে আপনি লোকদের একটি বন্দুক দিতে পারেন এবং যদি তারা সাবধান না হন তবে তারা পায়ে গুলি করবে shoot কৌশলটি হ'ল সুরক্ষার ব্যবস্থাটি কোথায় তা তাদের দেখানো to আপনার নখদর্পণে সঠিক সরঞ্জাম এবং সঠিক সফ্টওয়্যার দ্বারা, আপনি কোডিংটি সম্পন্ন করার পরে, আপনি আপনার কোডটি পর্যালোচনা করতে পারেন, কোড প্রফাইং করে আপনি সমস্যাগুলি খুঁজে পেতে পারেন, কার্যকরভাবে অনিচ্ছাকৃত বাগগুলি খুঁজে পেতে পারেন যা পারফরম্যান্সের সমস্যাগুলি এবং আমি আগে বলেছি একবারে, আপনি সবুজ পর্দার দিকে তাকিয়ে এটি করতে পারেন। তুমি আর ছিলে না; কয়েক হাজার লাইনের কোড রয়েছে, কয়েক হাজার অ্যাপ্লিকেশন মোতায়েন রয়েছে, কয়েকটি উদাহরণে কয়েক মিলিয়ন ডেটাবেস রয়েছে এবং এমনকি সুপার ম্যানরা আসলে হাতে হাতে এগুলি করতে পারে না। আপনার আঙুলের উপরে সঠিকভাবে আপনার সঠিক সফ্টওয়্যার এবং সঠিক সরঞ্জামগুলির প্রয়োজন এবং আপনার সেই দলগুলি ব্যবহার করার জন্য একটি দল প্রয়োজন, যাতে আপনি এই বিষয়গুলি সন্ধান করতে পারেন এবং খুব সহজেই এগুলি সমাধান করতে পারেন, যেখানে আপনি বক্তব্যটি পৌঁছানোর আগে, যেখানে ড। রবিন ব্লুর হাইলাইট করেছেন, জিনিসগুলি বিপর্যয়কর হয়ে ওঠে এবং জিনিসগুলি উড়ে যায়, বা আরও সাধারণভাবে, তারা আপনাকে আপনার ডলার এবং অনেক সময় এবং প্রচেষ্টা ব্যয় করতে শুরু করে এবং মনোবল এবং জিনিসগুলি ধ্বংস করতে শুরু করে, যখন জিনিসগুলি কেন নেয় তা কার্যকর করতে পারে না when চালানোর জন্য একটি দীর্ঘ সময়।

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

এরিক কাভানাঘ: ঠিক আছে, বার্ট, এটি নিয়ে যাও।

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

ঠিক আছে. আমি প্রোগ্রামিংয়ের ইতিহাস দিয়ে শুরু করতে চেয়েছিলাম, কারণ অনেক সময় আমি দেখি যে লোকেরা ডিবাগ করছে না, তারা কোনও ডিবাগার ব্যবহার করে না, তারা কেবল যে ভাষা ব্যবহার করে তা প্রোগ্রাম করে, এবং অনেক বার আমাকে বলে, "ভাল, এই ডিবাগার জিনিসগুলি নতুন, এবং আমরা এখনও সেগুলি ব্যবহার শুরু করি নি ”" এবং তাই আমি যা করি তা আমি তাদের এই টাইমলাইন চার্ট, পূর্ব-ইতিহাসের সাজান, বৃদ্ধ বয়স, মধ্যযুগ, তার ধরণের বলি যেখানে আমরা ছিলাম প্রোগ্রামিং ভাষার শর্তাবলী। এবং আমাদের খুব পুরানো ভাষা ছিল ১৯৫১ সালে এসেম্বলি কোড এবং লিসপ এবং সত্য এবং কোবোল দিয়ে শুরু। তারপরে আমরা পরের গ্রুপ, পাস্কালস এবং সিএস এবং তারপরে পরবর্তী গ্রুপ, সি ++ এস, এবং সেই প্রশ্ন চিহ্নটি কোথায় তা দেখুন - সেই প্রশ্ন চিহ্নটি ১৯ 197৮ থেকে সম্ভবত ১৯৮০ সালের প্রায় সঠিক right আমাদের কাছে ডিবাগারগুলি উপলভ্য, এবং তাই বলার জন্য, "আরে, আমি কোনও ডিবাগার ব্যবহার করছি না, সেই নতুন জিনিসের মধ্যে একটির কারণ ঘটায়," তবে আপনি অবশ্যই প্রোগ্রামিং শুরু করেছিলেন, আপনি জানেন ১৯ 19০ এর দশকে, আপনি কেবলমাত্র একমাত্র উপায় পেতে পারবেন? যে দাবী সঙ্গে দূরে।

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

ডেজ ব্লাঞ্চফিল্ড: আমি বলতে যাচ্ছিলাম, আপনি আমাদের এখানে বেশ ভয়ঙ্করভাবে বয়ে গেছেন।

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

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

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

প্রোফাইলাররা প্রথম 1979 সালে উপস্থিত হয়েছিল So সুতরাং, এগুলিও দীর্ঘকাল ধরে রয়েছে। সম্পদ খরচ, বা কর্মক্ষমতা সম্পর্কিত সমস্যাগুলি সন্ধানের জন্য দুর্দান্ত, অন্য কথায় efficiency দক্ষতার জিনিস। সাধারণভাবে বলতে গেলে, এটি ডিবাগার থেকে পৃথক এবং পৃথক, যদিও আমি একই সাথে উভয় কাজ করে এমন ডিবাগারগুলির সাথে কাজ করেছি। এবং প্রোফাইলারদের আমি মনে করি যে দুটি সরঞ্জামের মধ্যে আমি আরও আকর্ষণীয়, যদি আমি মনে করি যে যথেষ্ট লোক ডিবাগ করেন না, তবে অবশ্যই যথেষ্ট লোকের প্রোফাইল না, কারণ দশটি ডিবাগারের মধ্যে একটি প্রোফাইল দেবে, মনে হয়। এবং লজ্জাজনক কারণ, প্রোফাইলিং সত্যিই একটি বিশাল পার্থক্য করতে পারে। এখন, ডাটাবেস ভাষা, যেমন আমরা আগের কথা বলেছিলাম, আপনি এসকিউএল পেয়েছেন - এবং ওয়েভ ধরণের বৃত্তাকার ছিদ্রটিতে বৃত্তাকার খোঁচাটি জোর করে এনে প্রোগ্রামিং ভাষা - ও ওরাকল হয়ে উঠতে বাধ্য করে।এটি পিএল / এসকিউএল - প্রক্রিয়াকরণী ভাষা এসকিউএল - এবং এসকিউএল সার্ভার, তার লেনদেন-এসকিউএল, এর এসকিউএল -৯৯, এর এসকিউএল / পিএসএম - এর জন্য আমি মনে করি, এটির কার্যবিধাযুক্ত মডিউল। পোস্টগ্র্রেস এটির আরেকটি নাম দেয়, ডিবি 2 নামে আরও একটি নাম, ইনফর্মিক্স, তবে মূল বিষয় হ'ল প্রত্যেকেই 3 জিএল-ধরণের নির্মাণকে বাধ্য করেছে; অন্য কথায়, ভেরিয়েবলের ঘোষণাপত্রের জন্য, লুপগুলির জন্য এবং এসকিউএলে বিদেশী যে সমস্ত অন্যান্য স্টাফ সেসব ভাষাগুলিতে এখন এসকিউএল এর অংশ। এবং সুতরাং, আপনার যেমন একটি ভিজুয়াল বেসিক প্রোগ্রাম হবে ঠিক তেমনই আপনাকে একটি PL / SQL বা একটি লেনদেন-এসকিউএল ডিবাগ করতে সক্ষম হতে হবে।

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

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

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

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

ঠিক আছে, এখন আমি একজন প্রোফাইলার সম্পর্কে কথা বলতে যাচ্ছি, এবং এই ক্ষেত্রে, এটি এমন একটি প্রোফাইলার যা আমি কোনও ডিবাগারের মাধ্যমে দেখতে পারি। মনে আছে আমি বলেছি মাঝে মাঝে তারা আলাদা হয় এবং কখনও কখনও তারা একসাথে থাকতে পারে? এই ক্ষেত্রে এবং আবারও, ইম ইন র‌্যাপিড এসকিউএল, এবং আমি লাইন সংখ্যাগুলির পাশের বাম দিকে, একটি মার্জিন দেখতে পাচ্ছি। এবং এটি হ'ল, কোডের প্রতিটি লাইন কার্যকর করতে যে সেকেন্ড বা মাইক্রোসেকেন্ডগুলি লেগেছে তা হ'ল, এবং আমি দেখতে পাচ্ছি যে আমার সমস্ত সময় লুপের জন্য এই একটায় ব্যয় হয় যেখানে আমি একটি টেবিল থেকে সমস্ত কিছু নির্বাচন করি। এবং তাই, ফোর লুপের অভ্যন্তরে তীব্রতরূপে ঘটে যাওয়া তত্পরতা সম্ভবত আমার দেখার দরকার এবং আমি যদি এটি আরও ভাল করতে পারি তবে এটি লভ্যাংশ প্রদান করবে। আমি 0.90 বা 0.86 এর মতো লাইনে কাজ করে কোনও উন্নতি করতে যাচ্ছি না; সেখানে খুব বেশি সময় ব্যয় হয় নি। এখন, এই ক্ষেত্রে এবং আবার, ইন ইন র‌্যাপিড এসকিউএল, আপনি দেখছেন যে আমি কীভাবে আমার ডিবাগিংয়ের সাথে অন্তর্নির্মিত প্রোফাইলিং করতে পারি। এখন, র‌্যাপিড এসকিউএল যা দুর্দান্ত তা আপনাকে অন্যভাবে এটি করার অনুমতি দেয়। র‌্যাপিড এসকিউএল আপনাকে বলতে দেয়, "আপনি কি জানেন? আমি ডিবাগারে থাকতে চাই না, আমি কেবল এটি চালাতে চাই এবং তারপরে আমি গ্রাফিক বা দর্শনীয়ভাবে একই ধরণের তথ্যটি দেখতে চাই। "

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

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

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

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

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

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

এরিক কাভানাঘ: ঠিক আছে, রবিন, সম্ভবত আপনার কাছ থেকে একটি প্রশ্ন এবং তারপরে ডেজ থেকে কোনও দম্পতি?

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

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

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

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

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

রবিন ব্লোর: কি দারুন.

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

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

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

রবিন ব্লোর: হ্যাঁ, আমি আপনার সাথে এই। আমি বলতে চাইছি, আমি এখনই পেয়েছি, এটি একটি শিক্ষার সমস্যা; আমি মনে করি এটি সম্পূর্ণরূপে একটি শিক্ষার সমস্যা, আমি মনে করি যে প্রোগ্রামাররা প্রক্রিয়াগতভাবে চিন্তা করা স্বাভাবিক। এবং এসকিউএল প্রক্রিয়াগত নয়, এর ঘোষণামূলক। আপনি প্রকৃতপক্ষে কেবল বলছেন, "এটি আমি চাই এবং আপনি কীভাবে এটি করেন তা যত্নশীল না" আপনি জানেন? প্রোগ্রামিং ল্যাঙ্গুয়েজ সহ আপনি প্রায়শই আপনার হাতাটি রোলড করে পেয়েছেন এবং আপনি লুপগুলি পরিচালনা করার সময় এমনকি গণনাগুলি পরিচালনা করার ক্ষুদ্র মিনিটের মধ্যে চলে যান। আমি হাতের মুঠোয়

বার্ট স্কালজো: না, ঠিক আছে, চালিয়ে যান

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

রবিন ব্লোর: হ্যাঁ, এটি একটি বিপর্যয় হবে। মানে, আপনি কেবল চারপাশে ছিটকে যাবেন। থ্রেশিং সবসময় খারাপ।

যাইহোক, আমি দেজে যেতে পারি; আমি নিশ্চিত হিছ কিছু আকর্ষণীয় প্রশ্ন পেয়েছি।

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

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

আপনি কোথাও একটি $ 6 শার্ট কেনার কারণ হ'ল কারও কারও পক্ষে সস্তাভাবে একটি সিস্টেম তৈরি করা হয়েছিল যা আসলে উত্পাদন এবং জাহাজ সরবরাহ করার জন্য এবং যৌক্তিকভাবে সরবরাহ ও বিক্রয় এবং খুচরা সরবরাহ করতে এবং সেই $ 6 শার্টটি পেতে অনলাইনে পেমেন্ট নিতে পারে। আপনি যদি নিখুঁতভাবে কোড লেখার জন্য লোককে বছরে ৪০০,০০০ ডলার প্রদান করে থাকেন তবে তা ঘটবে না; এটির পুরো উন্নয়ন সুতরাং, এই বিন্দুটি সম্পর্কে, আমি অনুমান করি যে প্রশ্নগুলির মধ্যে একটি সত্যই আপনাকে আমাদের আরও কিছু অন্তর্দৃষ্টি দিতে ভালোবাসে, আপনি বর্তমানে যে ধরণের লোক দেখছেন তার প্রস্থ এবং পৌঁছনাই কোনও কোডের প্রোফাইল এবং চেহারা হিসাবে এই ধরণের সরঞ্জাম মোতায়েন করছে পারফরম্যান্স সমস্যার জন্য? প্রাথমিকভাবে, icallyতিহাসিকভাবে, তারা কোথা থেকে এসেছে? তারা বড় ইঞ্জিনিয়ারিং হাউস হয়েছে? এবং তারপরে, কি এগিয়ে যাওয়ার বিষয়টি কী, আমি কি এই ভেবে সঠিক হয়েছি যে আরও বেশি সংখ্যক সংস্থাগুলি এই সরঞ্জামটি বা এই সরঞ্জামগুলি বাস্তবায়িত করছে কোডারদের চেষ্টা এবং সহায়তা করার জন্য, যারা জানেন যে কাজ শেষ করার জন্য কে কেবল জিনিসগুলি সম্পন্ন করছে? এবং দরজা থেকে এটি পেতে? এবং কখনও কখনও আমাদের জেল-অফ-জেল কার্ডের দরকার হয়? আমি কি এই ভেবে সঠিকভাবে বলতে পারি যে historতিহাসিকভাবে আমাদের আরও প্রকৌশল ফোকাস এবং বিকাশ ছিল? রবিন যেমন বলেছিলেন, এখন সেগুলিও কম হচ্ছিল, এখন একাডেমিক পদ্ধতি এবং এখন এটির স্ব-শিক্ষিত, বা কাট-পেস্ট কোড, বা কেবল জিনিসগুলি তৈরি করা? এবং সেই পণ্যটি এখন কীভাবে পণ্যটি গ্রহণ করছে তার সাথে মেলে?

বার্ট স্কালজো: একদম সঠিক. এবং আমি আপনাকে একটি সুনির্দিষ্ট উদাহরণ দিচ্ছি, আমরা কেবলমাত্র কাজটি করতে চাই, ব্যবসায়ীরা যাতে পূর্ণতা অর্জন করতে চান না cause কম্পিউটারাইজড দাবা গেমের মতো এর ধরণ: দাবা খেলাটি সঠিক উত্তরটির সন্ধান করে না; এটি একটি যুক্তিসঙ্গত পরিমাণের চেয়ে যথেষ্ট পরিমাণে উত্তরের সন্ধান করে, সুতরাং আমরা কীভাবে প্রোগ্রাম করব তা। তবে আমি এখন যা সন্ধান করছি তা হল, বেশিরভাগ লোকেরা তাদের ইউনিট পরীক্ষার অংশ হিসাবে একটি প্রোফাইলার চান তা বলার পরিবর্তে - আমি এটি কীভাবে করব, কারণ আমি এটিকে সময় নষ্ট হিসাবে দেখছি না - যা ঘটছে তা এখন যা ঘটছে তা হ'ল পরে, কখনও কখনও, সংহতকরণ পরীক্ষা বা স্ট্রেস টেস্টিংয়ের সময়, ভাগ্যবান যদি হয়। তবে বেশিরভাগ সময় এটির উত্থানের অংশ, যেখানে কিছুটা উত্পাদনে গিয়েছিল, এটি কিছু সময়ের জন্য ছড়িয়ে পড়েছিল, সম্ভবত কয়েক বছর ধরেও দৌড়েছিল, এবং এখন এটি ভালভাবে চালাচ্ছে না, এবং এখন এটির ভাল প্রোফাইল রয়েছে। এবং এটি এখন আরও সাধারণ পরিস্থিতি বলে মনে হচ্ছে।

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

এবং আমি বলতে চাই, আমি গত সাত দিনে এটি করেছি: Ive বেশ কয়েকটি সরঞ্জাম এবং স্ক্রিপ্ট লিখেছিল, Ive পাইথন ভাষার কয়েকটি টুকরো লিখেছিল এবং Ive এটিকে মঙ্গোর পিছনে প্রান্তে স্থাপন করেছে, এটি সুন্দর এবং পরিষ্কার এবং সুরক্ষিত করে তা নিশ্চিত করে, তবে এটি কেবল আমার করা ক্যোয়ারীটি পেয়েছে, এটা জেনেও যে আমার কাজ করতে হবে, বড় ধাঁধাটি পেতে আমার সেই ফাংশনটি দরকার; আমার আসল ব্যথা যেখানে আছে। এবং তাই আপনি এই প্রযুক্তিগত debtণ বহন করেন, এবং আমি মনে করি এটি এখন কেবল একটি অন্তর্ভুক্ত বিষয় নয়, আমি মনে করি এটি এখন বিকাশের ডিএনএর একটি অংশ। লোকেরা কেবল - বিচ্ছিন্নভাবে নয় - তারা কেবল প্রযুক্তিগত debtণ গ্রহণ করে একটি সাধারণ মডেল অপারেন্ডি প্রকারের সমস্যা, এবং তাদের কেবল এটি ব্যয় করতে হয়। এটি যেখানে আপনি প্রযুক্তিগত urণ বহন করেন। এবং আমি মনে করি আপনি ডেমোতে আমাদের যা দেখিয়েছেন তার দুর্দান্ত জিনিসটি আপনি আক্ষরিক অর্থে প্রোফাইল করতে পারেন এবং কোনও কিছু চালাতে কতক্ষণ সময় নেয় তা দেখতে পারেন। এবং সম্ভবত আমার প্রিয় জিনিসগুলির একটি ts আমার অর্থ, আমি আসলে প্রোফাইলিং সরঞ্জামগুলি তৈরি করেছিলাম - আমরা শেড এবং লেক্স এবং অর্কগুলিতে আমাদের কোড চালানোর জন্য সরঞ্জামগুলি তৈরি করতাম এবং লুপগুলি কোথায় ছিল তা দেখার জন্য, এই জাতীয় সরঞ্জামগুলি উপলভ্য হওয়ার আগে - এবং যখন আপনি নিজের কোডটি গিয়ে নিজের কোডটি পর্যালোচনা করার জন্য তৈরি করেছিলেন , আপনার নিজের কোডটি পর্যালোচনা না করে আপনি খুব ভাল হন। কিন্তু এখন মামলা হয় না। এই বিষয়টি মাথায় রেখে, এমন কোনও বাজার বিভাগ আছে যা এটি অন্য যে কোনও তুলনায় বেশি গ্রহণ করে? একটি ভর হিসাবে দেখতে

বার্ট স্কালজো: ওহ হ্যাঁ, Ive পেয়ে গেছে - আমি আপনার জন্য একটি উপমা আঁকতে যাচ্ছি, এবং আপনাকে দেখায় যে নন-প্রোগ্রামাররা এটি সর্বদা করে। কারণ যদি আমি কখনও কোনও ডিবাগার এবং প্রোফাইলিং ক্লাস বা সেশনের পাঠদান করি, আমি লোকদের জিজ্ঞাসা করব, "ঠিক আছে, এখানে কত লোক মাইক্রোসফ্ট ওয়ার্ডে প্রবেশ করে এবং উদ্দেশ্যমূলকভাবে কখনও বানান পরীক্ষক ব্যবহার করে না?" এবং কেউ তাদের হাত দেয় না, কারণ নথি লেখার জন্য, আমরা সবাই জানি আমরা ইংরেজী ভুল করতে পারি, এবং তাই সবাই বানান পরীক্ষক ব্যবহার করে। এবং আমি বলেছিলাম, "আচ্ছা, আপনি যখন ভিজুয়াল বেসিকের মতো আপনার আইডিইতে লিখছেন, আপনি ডিবাগারটি ব্যবহার করছেন না তখন কীভাবে আসবে? এটি একই জিনিস, এটি একটি বানান পরীক্ষকের মতো ”"

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

বার্ট স্কালজো: যথাযথভাবে।

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

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

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

বার্ট স্কালজো: হুবহু, হ্যাঁ, আপনি এটি মেঘের মধ্যে চালাতে পারেন।

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

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

বার্ট স্কালজো: অবশ্যই, আমি তাদের যা বলছি তা ঘটানোর কারণ হ'ল, "আমি কেন আমার দস্তাবেজগুলিতে একটি বানান চেক চালাচ্ছি? আমি বোকা বানান ভুল দ্বারা বিব্রত হতে চাই না। "ভাল, তারা বোকা কোডিং ভুল দ্বারা বিব্রত হতে চান না!

এরিক কাভানাঘ: ঠিক। হ্যাঁ, সত্যিই। ভাল, ভাবী, এখানে এক ঘন্টা এবং পাঁচ মিনিটের মধ্যে আগুনে পোড়া হয়েছে, তাই আপনার সময় এবং মনোযোগের জন্য আপনাকে সবাইকে ধন্যবাদ জানাই। আমরা এই সমস্ত ওয়েব চ্যাট সংরক্ষণাগারটি করি, যেকোন সময় ফিরে আসতে এবং এগুলি পরীক্ষা করে দেখতে নির্দ্বিধায়। এই লিঙ্কগুলি সন্ধানের জন্য সর্বোত্তম জায়গাটি সম্ভবত টেকোপিডিয়া ডট কম, তাই ঠিক এখানে এই তালিকায় এটি যুক্ত করুন।

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