আপনি তাদের জানেন, যে ত্রুটিগুলি কোনও অর্থবোধ করে না। যেখানে মনে হয় কোনও গ্রিমলিন স্রেফ আপনার চিপের ভিতরে গভীর লাফিয়ে কিছু গণ্ডগোল করেছে। আপনি কি হাঁটাচলা করেন, স্টাফ লেখেন, চাচাকে ফোন করেন?
আপনি তাদের জানেন, যে ত্রুটিগুলি কোনও অর্থবোধ করে না। যেখানে মনে হয় কোনও গ্রিমলিন স্রেফ আপনার চিপের ভিতরে গভীর লাফিয়ে কিছু গণ্ডগোল করেছে। আপনি কি হাঁটাচলা করেন, স্টাফ লেখেন, চাচাকে ফোন করেন?
উত্তর:
সত্যই ভয়ঙ্কর সমস্যাগুলির জন্য আমার কৌশলটি সাধারণত নিম্নলিখিত হিসাবে চলে।
পরীক্ষা এবং গুগল। সমস্যাটি সমাধান করার চেষ্টা চালিয়ে যান। বেশিরভাগ সময় এটি এক ঘন্টা বা তারও কম সময়ে সমস্যার সমাধান করে।
সুতরাং যে কাজ করে না। বিরতি নাও. একটি কফি পান, সহকর্মীর সাথে সম্পর্কযুক্ত কিছু সম্পর্কে কথা বলুন। সমস্যাটিকে আপনার মন থেকে সরিয়ে দিন। আপনি যখন 5 বা 10 মিনিট পরে সমস্যার দিকে তাকান আপনি কিছুটা ভিন্ন দৃষ্টিকোণ থেকে এটি তাকান। বেশিরভাগ সময় এটি কাজ করে।
এই ক্ষেত্রে এটি না। তাই এটি দেখার জন্য আরও 10 - 30 মিনিট ব্যয় করুন। তারপরে সহকর্মীকে ফোন করুন। তবে আপনি করার আগে কিছু নোট করুন; আপনি সমস্যাটি প্রদর্শন করতে চান, এটি পুনরুত্পাদন করতে চান, তারপরে আপনি যে জিনিস চেষ্টা করেছেন তার তালিকা তৈরি করুন এবং সবচেয়ে গুরুত্বপূর্ণভাবে প্রমাণ করুন যে আপনি তাদের চেষ্টা করেছেন tried তাই প্রথমে শুকনো রান করুন। কোডে কিছু বইয়ের চিহ্ন সেট করুন, অতিরিক্ত অতিরিক্ত ডকুমেন্টগুলি বন্ধ করুন ইত্যাদি আপনি নিজেই সমস্যাটি সমাধান করতে পারেন, বা আপনি যখন সমস্যাটি প্রদর্শন করেন তখন আপনি তাদের সময় নষ্ট করবেন না।
আপনার সমস্ত অনুমানকে প্রমাণ করতে আপনার সহকর্মীকে জিজ্ঞাসা করুন। সেটার কি আসলেই ডাকছে? আপনি কি দাবি করেছেন যে পদ্ধতিটি কি সত্যিই ফিরে আসছে? আপনি মনে করেন যে বস্তুটি নাল নয় - তাদের দেখান যে এটি নাল নয়।
বেশিরভাগ সময়, হয় সমস্যাটি প্রদর্শন করা আপনাকে উপলব্ধি করতে সক্ষম করবে যে আপনি সমস্ত সম্ভাবনার চেষ্টা করেননি বা আপনার সহকর্মী আপনার ভুল দেখতে পাবে।
যদি এটি গুরুতর হয়ে ওঠার সময় কাজ করে না। আপনি যা করতে চেষ্টা করছেন ঠিক কী করেছেন, আপনি কী চেষ্টা করেছেন এবং কেন এটি কার্যকর হয়নি তা নথি করুন। আপনার সমস্ত সহকর্মীকে এটি ইমেল করুন। এটি পোস্ট করুন। এই সময়ে নথিতে একটি নিখুঁত এসও প্রশ্ন হওয়া উচিত।
আপনি প্রতিক্রিয়াগুলির জন্য অপেক্ষা করার সময়, গুগল গুগল গুগল। আপনার কাছে থাকা প্রশ্নের প্রতিটি ক্রম চেষ্টা করুন। একগুচ্ছ ট্যাব খুলুন। আপনি সম্ভবত এই পয়েন্টটি দিয়ে একটি উত্তর পেতে যাচ্ছেন না, তবে আপনি সমস্যা, যোগাযোগের বিভিন্ন উপায়, ধারণা, সম্ভাবনা, অনুসন্ধান করছেন।
অন্য কিছু করুন, যদি আপনি কোনও সমস্যার জন্য 5 ঘন্টা সময় ব্যয় করেন তবে এটি অন্য দিনের জন্য ছেড়ে যাওয়ার সময় leave সম্ভবত আপনি একটি দরকারী প্রতিক্রিয়া পাবেন। পরের দিন আপনি যখন সমস্যাটি আক্রমণ করবেন তখন তা স্পষ্ট হবে।
যদি এটির কোনওটিই কাজ না করে তবে সময় আলাদা সমাধানের সন্ধান করার জন্য। হতে পারে আপনি একটি ভিন্ন পদ্ধতি, একটি ভিন্ন প্রযুক্তি ব্যবহার করতে পারেন। আপাতত আপনার এই বৈশিষ্ট্যটি পরিত্যাগ করার কথা বিবেচনা করা উচিত। আপনি কি ক্লায়েন্টকে ঘন্টা দিয়ে বিল দিচ্ছেন? আপনি কি কোনও অভ্যন্তরীণ অ্যাপে কোনও সংস্থার হয়ে কাজ করছেন? আপনার এটি মালিকের কাছে বাড়িয়ে নেওয়া এবং তাদের বলার দরকার "দেখুন, আমি এটিতে x ঘন্টা সময় ব্যয় করেছি এবং কোনও অগ্রগতি করি নি, ব্যয়টির কি লাভ হবে?"। আপনি আপনার বসের কাছে যেতে চান না এবং তাদের বলতে চান যে আপনি কোনও সমস্যার জন্য 16 ঘন্টার জন্য ব্যয় করেছেন কেবল তাদের পক্ষে ঘুরতে এবং বলতে, এটি গুরুত্বপূর্ণ যে এটি গুরুত্বপূর্ণ, এই প্রকাশের জন্য এড়িয়ে যান। আপনার এটি আগে খুঁজে বের করা উচিত।
এবং যদি এটি কাজ করে না? ওয়েল আপনার একমাত্র বিকল্প হ'ল সমস্যা থেকে হাতুড়ি দূরে রাখা বা শিল্প দক্ষতার সন্ধান করা। টুইটারে প্রযুক্তি বিশেষজ্ঞদের জিজ্ঞাসা করুন। আপনার প্রযুক্তি সরবরাহকারীকে ইমেল করুন।
ছাড়ো। না, আপনার কাজ নয়! খালি উঠে বাড়িতে চলে যাও। আপনি দিন বা সপ্তাহান্তে শেষ করেছেন done আপনি যখন আবার সমস্যার দিকে ফিরে আসেন 20 এর মধ্যে 19 বার, সমাধানটি এক ঘন্টার মধ্যে উপস্থিত হবে।
দশ ঘন্টা যাওয়ার আগে আমি কিছুটা সাহায্য পেয়ে যাব।
একটি শব্দ, timebox
কোনও কিছুর উপরে কাজ করার জন্য সীমিত সময় নির্ধারণ করুন এবং যদি এটি সমাধান না হয় তবে অন্য কোনওটিতে যান এবং পরের দিন একটি নতুন দৃষ্টিভঙ্গি নিয়ে ফিরে আসুন।
এটি এবং চোখের আরও একটি সেট, যে কোনও সময় দেখার চেয়ে আপনি যে সময় নষ্ট করতে পারেন তার চেয়ে সর্বদা মূল্যবান।
আমি একবারে কোনও সভায় কিছু সমাধান করার চেষ্টা করতে এক ঘন্টা 45 মিনিট থেকে বেশি সময় কাটাতে পারি না, এটি হ্রাসকারী রিটার্নের আইন লঙ্ঘন করে।
অন্য কারও কাছে সমস্যাটি ব্যাখ্যা করুন।
অন্য কারও কাছে সমস্যাটি ব্যাখ্যা করার মাধ্যমে আপনাকে এটি পরিষ্কার করতে হবে: এটি প্রায়শই আপনাকে সমাধান দেখতে দেয়।
(যুক্তরাজ্যের এক পেশাদার কম্পিউটার ম্যাগাজিনে একবার এই উদ্দেশ্যে বিশেষত একজন সিনিয়র প্রোগ্রামারের লাইফ সাইজের কার্ডবোর্ড কাট-আউট বিক্রি করার প্রস্তাব দেওয়া হয়েছিল।)
আমি কোনও সমস্যায় ঘুমাচ্ছি (মাঝে মাঝে দু'দিনের জন্যও) সহায়তা করতে পারে।
আমার তিন ধাপের পরিকল্পনা রয়েছে:
পূর্ববর্তী পদক্ষেপ ব্যর্থ হলে প্রতিটি পর্যায়টি একটি বৃদ্ধি। আমি প্রায় দ্বিতীয় পর্যায়ে উত্পাদনশীল কিছু হতে পারে।
আমি সাধারণত তিনটির মধ্যে একটি করি:
তিনজনের মধ্যে কেউ নিজের হাত থেকে পরিস্থিতি থেকে দূরে সরে যাওয়ার জন্য ভাল কাজ করে। আমি বিঘ্নগুলি আমার অবচেতন মস্তিষ্ককে কিছু সময়ের জন্য চিবিয়ে ফেলতে দেখি। এর এক ঘন্টা বা তার বেশি পরে, বাম, এর সমাধান রয়েছে :-)।
সেই সঠিক ত্রুটিটি লক্ষ্য করে এটি আলাদা করতে একটি পরীক্ষার জোতা তৈরি করুন
ত্রুটিটি প্রতিলিপি করার সময় কেবল ভাল কোডটি মুছে ফেলা চালিয়ে যান। যতক্ষণ না আপনি ত্রুটি কেসিংয়ের কোডটির সঠিক অংশটি লক্ষ্য করেন target তারপরে কোডটি ট্রেস করুন।
প্রস্তাবিত পাঠ: প্র্যাকম্যাটিক প্রোগ্রামার বিশেষত অধ্যায় 10: ট্রেসার বুলেট
এই সমস্ত পরামর্শ দুর্দান্ত। তবে, আমি প্রায়শই একটি কৌশল ব্যবহার করি যা আমি উল্লেখ করে দেখিনি। সমস্যা সম্পর্কে আপনার চিন্তা সংগঠিত করতে তালিকা তৈরি করুন lists আমার যদি বিশেষত একটি চটচটে সমস্যা থাকে তবে আমি সাধারণত একাধিক তালিকাগুলি যেমন: তথ্য, অনুমান, প্রশ্ন, লক্ষণ ইত্যাদির বাইরে লিখি I যেগুলি প্রায়শই ভুল হতে পারে), যে প্রশ্নগুলি আমি বুঝতে পারি নি সেগুলি জিজ্ঞাসা করা দরকার, অন্যান্য অনুমতি যা আমি পরীক্ষা করতে পারি ইত্যাদি ইত্যাদি asked
সম্পাদনা:
সংক্ষিপ্ত উত্তর:
প্রশ্ন: আপনি কীভাবে সত্যিই উদ্ভট ত্রুটিগুলি মোকাবেলা করেন যা আপনাকে 10 ঘন্টােরও বেশি সময় ধরে বিস্মিত করে তোলে?
উত্তর: এগুলি কখনই না ঘটে তা নিশ্চিত করুন: আপনার ডিজাইনটি বুঝতে, আপনার কোডটি জানুন, কীভাবে আপনার ডিবাগারটি ব্যবহার করবেন তা শিখুন।
ব্যাখ্যা:
"যেখানে মনে হচ্ছে কোনও গ্রিমলিন কেবল আপনার চিপের ভিতরে গভীর লাফিয়ে কিছু গণ্ডগোল করেছে"
এটি কখনও ঘটবে না। এটি যদি আপনার কোড হয় তবে এটির সমাধানের চেষ্টা করার আগে আপনার কী ত্রুটি ঘটছে তা সম্পর্কে খুব ভাল ধারণা থাকা উচিত।
ফিউটারমোর, আপনি যখন নিজের কোডটি লেখেন তখন আপনাকে কোথায় এবং কেন এটি ব্যর্থ হওয়ার সম্ভাবনা রয়েছে তা ইতিমধ্যে জেনে রাখা উচিত।
যা বলেছিলেন - একজন সমবয়সীকে জিজ্ঞাসা করা, এসও তে পোস্ট করা, আপনার পদক্ষেপগুলি প্রত্যাহার করে নিয়ে ফিরে যাওয়া এবং বিরতি নেওয়া - উপরে উল্লিখিত সমস্ত পরামর্শ সহায়তা করবে।
অন্যটি জিনিস, আপনার ডিবাগিং টুলকিট - আপনার সরঞ্জামগুলি অবশ্যই জেনে রাখা উচিত। আপনার কোডের সন্দেহজনক পয়েন্টগুলিতে বার্তা লগ করা, আপনার কল স্ট্যাকটি সাবধানে পরীক্ষা করা, শর্তযুক্ত ব্রেকপয়েন্ট এবং ঘড়ি ইত্যাদি ব্যবহার করা ইত্যাদি ডিবাগিং দক্ষতা অতিরিক্ত নয় - এগুলি প্রোগ্রামিংয়ের অংশ।
আমার একই ধরণের সমস্যা ছিল, অবজেক্টিভ-সি-তে একটি আপাত স্মৃতি দুর্নীতি, যার সাথে আমি বহু ঘন্টা লড়াই করেছি। তবে আমি এবং আমার সহকর্মীরা কেবল মধ্যাহ্নভোজনে হাঁটলাম, এবং আমি সমস্যাটি ব্যাখ্যা করলাম (এবং একটি বিশেষ কিছু যা তার আইডি পদ্ধতিতে কোনও বস্তুর ডিজিটাইজেশন করার জন্য ছিল), এবং মূলত আমার কাছে পুরো সমস্যাটি ব্যাখ্যা করেছিলাম।
(প্রযুক্তির বিশদ বিবরণ: মূলতঃ আমি নিজে থেকে অন্য কিছুতে একটি জিনিস শুরু করে দিয়েছি, সুতরাং দুটি বরাদ্দ ছিল, তবে কেবল একটি বস্তু ফিরে এসেছে ory স্মৃতি স্থানান্তরিত হয়ে পাগল হয়ে গেছে, ক্র্যাশ হয়েছিল, এবং ডিবাগারটি আসলে কী করতে হবে তা জানে না didn't এটি হয়)।
গোসল কর.
কোনও রডনি ম্যাককে ভক্ত?
গুরুতরভাবে, যদিও, এই সমস্ত উত্তরগুলির মধ্যে যদি একটি সাধারণতা থাকে তবে এটি বিরতি নেওয়া এবং অন্য কিছু করা ।
আমি এটিকে আপনার অবচেতন হয়ে সমস্যাটি চাপিয়ে দেওয়া হিসাবে ভাবতে চাই। এমনকি যদি আমরা অন্যথায় অজানা, আমাদের মন (মনে হয়) স্নান করা যেমন অন্য কিছু করার পরেও সমস্যাটি নিয়ে কাজ করা চালিয়ে যায় ।
এটিকে ধাপে ধাপে ধাপে সমাবেশে নামুন। কাকে বলে, মেমরি অ্যাক্সেসের ব্রেক-পয়েন্ট। এটি সাধারণত বাগটি বাস্তবের দ্রুত ধরা হয়।
যদি না হয় তবে একটু হাঁটুন।
এই সমস্তগুলির সংমিশ্রণ:
কিছুক্ষণের জন্য এটি থেকে দূরে সরে যান যাতে এটি আপনার পিছনের বার্নারে বসতে পারে। ঘুম, বিশ্রাম, খাওয়া দাওয়া, যাই হোক না কেন।
সমস্যাটি আরও পরীক্ষা করুন, এটি অন্যটি কী করে, অন্য কোন লক্ষণগুলি আপনি খুঁজে পেতে পারেন?
রিসার্চ সমস্যা, আপনি কি জানতে পারেন দেখুন। বিভিন্ন কীওয়ার্ড চেষ্টা করে দেখুন
অন্যরকম কিছু চেষ্টা করুন । চারপাশে একটি কাজ। একটি পৃথক ডিবাগিং কৌশল। একটি বৈধতা প্রদানকারী। একটি আলাদা কম্পিউটার।
কারও সাথে কথা বলুন । এমনকি তারা সহায়তা করতে না পারলেও, এমনকি কোনও প্রোগ্রামারও না, এমনকি কখনও কখনও কথা বললে ধারণাটি হালকা হয়ে যায়
আবার শুরু! যদি উপযুক্ত হয় তবে আপনার কম্পিউটার, সার্ভার ইত্যাদি পুনরায় চালু করার চেষ্টা করুন অন্য কিছু না হলে আপনি সময়টি ভাবার জন্য পারেন।
স্ট্যাক ওভারফ্লো জিজ্ঞাসা করুন! আমরা এখানে সাহায্য করতে এসেছি
আমি সর্বাধিক আপ-ভোট দেওয়া উত্তর পছন্দ করিনি, কারণ যদিও এটি কিছু সময় কাজ করে, কিছু সময় আপনাকে ঠিক সেদিনই তা বের করা দরকার, সুতরাং আমি এই আদেশে যা প্রস্তাব করব তা হ'ল:
নিশ্চিত করুন যে এটি কেবল আপনার সাথেই ঘটছে না। এটি আপনাকে অনেক সময় বাঁচাতে পারে। হতে পারে আপনি একটি প্রয়োজনীয় উপাদান আনইনস্টল করেছেন, বা আপনার পরিবেশে কোনও পরিবর্তন করেছেন এবং একটি ব্যতিক্রম আপনার কোডের কোথাও গ্রাস করা হচ্ছে। যদি এটি কেবল আপনার সাথে ঘটে থাকে তবে আমি পরিবেশের তুলনা সরঞ্জামটি ব্যবহার করব। আমি সম্প্রতি হিংসা নামক একটি সফ্টওয়্যার সম্পর্কে পড়েছি, যা আপনাকে কেবল এটি করতে দেয়, যদিও এটি ফ্রিওয়্যার নয়, এটির দাম 10 মার্কিন ডলার।
সবার সাথে কি হচ্ছে? ভাল, এখন কোডে একটি ইতিহাস দেখুন এবং সাম্প্রতিক পরিবর্তনগুলির জন্য যাচাই করুন যা প্রত্যক্ষ বা অপ্রত্যক্ষভাবে ত্রুটির কারণ হতে পারে।
কোন সাম্প্রতিক পরিবর্তন নেই? যদি এটি খুব নির্দিষ্ট ত্রুটি (একটি ব্যতিক্রম) হয় তবে 'স্ট্যাকওভারফ্লো এটি'। এখন এটি 'গুগল ইট' এর চেয়ে ভাল শোনায় না তবে আমি গুগলের চেয়ে প্রোগ্রামিং গবেষণার জন্য প্রথম স্ট্যাকওভারফ্লো অনুসন্ধান করে বললাম ভাল লাগছে। যদি এটি সত্যিই পরিচিত সমস্যা হয় তবে খুব সম্ভবত আপনি এখানে একটি সমাধান খুঁজে পাবেন। যদি তা না হয় তবে সংশ্লিষ্ট স্ট্যাকেক্সচেঞ্জ সাইটে একটি প্রশ্ন পোস্ট করুন। আপনি খুব দ্রুত উত্তর পেতে পারেন, বা আপনি তা না করলেও, আপনি আরও গবেষণা করার সময় আপনার প্রশ্নটি উপস্থিত থাকবে। এটি একটি সুবিধা।
যদি আপনি অনলাইনে কোনও উত্তর খুঁজে না পেয়ে থাকেন বা এটি কোনও সাধারণ ত্রুটি নয় তবে কোড ধাপে ধাপে ধাপে প্রতিটি পদক্ষেপের প্রাপ্ত ফলাফলগুলি আপনার প্রত্যাশার ফলাফলটির জন্য অর্থবোধ করে কিনা তা পরীক্ষা করে। প্রতিটি পদ্ধতিতে শেষ করতে শুরু করুন, এবং নীচে থেকে শীর্ষে সমাধানের শীর্ষে যান। (অর্থাত্ যদি আপনি সমস্যা সমাধানের পারফরম্যান্স করেন তবে কোডটি শুরু করুন যা রেকর্ডগুলি পুনরুদ্ধার করে the প্রথম পদক্ষেপের সমস্যাটি যদি আপনি দ্রুত নির্ধারণ করতে পারেন তবে ইউআইতে শুরু করার কোনও অর্থ নেই)।
কোডটি কয়েকবার যাওয়ার পরেও যদি আপনি এখনও ভুল না পেয়ে থাকেন তবে কাউকে কল-ইন করতে এটি সম্পর্কে কথা বলতে। যেমন ইতিমধ্যে কেউ উল্লেখ করেছেন, এটির সাথে উচ্চস্বরে কথা বলা বাল্বটি আলোকিত করতে পারে। প্লাস জুড়ি প্রোগ্রামিং সত্যিই দরকারী।
এই মুহুর্তে, যদি এটি সম্ভব হয় তবে কিছু সময়ের জন্য বা দিনের জন্য চলে যান। গতকাল আমি একটি সত্যিকারের টুইটটি পড়েছি যা বলেছিল যে "আমি কীভাবে fck 'ভাবছিলাম এবং' তবে অবশ্যই 'ভেবে ঘুম থেকে উঠলাম।" আসলেই সত্য.
আপনার যদি এখনও উত্তর না থাকে, আমি সাহস করে বলতে চাই যে আপনি ছোট কাজগুলি / পদ্ধতি / ক্রিয়াকলাপগুলিতে রিফ্যাক্টরিং চেষ্টা করতে পারেন। হেনরি ফোর্ড এমন কিছু বলেছিলেন যে, 'এত জটিল কোনও কাজ নেই যা এটিকে ছোট কাজগুলিতে ভেঙে সম্পাদন করা যায় না'। এই মুহুর্তে, যদি সমাধানটি খুব জটিল হয় এবং আপনি নিজের দ্বারা বা অন্য কারও সহায়তায় সন্ধান করেন না, কোডটিকে ছোট কাজগুলিতে রিফ্যাক্টর করুন। এমনকি যদি আপনি এটির কমিটিকে শেষ না করেন তবে এটি আপনাকে কারণটি খুঁজে পেতে সহায়তা করতে পারে।
আপনার কোডে উপকরণ যুক্ত করুন।
এটি সম্পর্কে টুইট ??
আপনার পিছনে যেতে হবে। আমার উদ্দেশ্যটি হ'ল 'যদি সমস্যাটি খুব শক্ত হয় তবে আপনি ভুল সমস্যার সমাধান করছেন'। আপনার অনুমান কি? কিছু বিশ্বাস করবেন না।
এর বাস্তবতা হ'ল সমস্যাটির সমাধান, সমাধান সমাধান '। কম্পিউটারের শক্তি হ'ল লজিক তাই আপনি যুক্তিতে জিততে পারবেন না। আপনার একটি মস্তিষ্ক আছে এবং এটি ভাবতে হবে।
আধুনিক সময়ে সিস্টেমে ইন্টারঅ্যাক্ট করার মতো আরও অনেকগুলি বিষয় রয়েছে - ফায়ারওয়ালস, এভি, অ্যান্টিস্পাইওয়্যার, প্রতি রাতে ঘটে যাওয়া স্বয়ংক্রিয় আপডেটগুলি - আপনাকে চলন্ত লক্ষ্যগুলি মোকাবেলা করতে হবে।