সংকলক সতর্কতা


15

অনেক সংকলক এর সম্ভাব্য রানটাইম, যুক্তি এবং পারফরম্যান্স ত্রুটি সম্পর্কে প্রোগ্রামারদের সতর্ক করার জন্য সতর্কতা বার্তা রয়েছে, বেশিরভাগ সময় আপনি তাড়াতাড়ি তা ঠিক করে ফেলেন, তবে অনুপযুক্ত সতর্কতাগুলির কী?

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

আপনি যদি অন্য কারও কোড সম্পাদনা করছেন এবং তার কোডটিতে সতর্কতা রয়েছে তবে কী হবে?

এখানে একটি ভাল উদাহরণ রয়েছে: মোজিলা-শ্রেণীর ব্রাউজার সনাক্তকরণ হিসাবে jQuery এর প্রচুর জাভাস্ক্রিপ্ট সতর্কতা রয়েছে, কেন জিকিউ বিকাশকারীরা সেগুলি ঠিক করেন না? আপনি যদি jQuery তে অবদান রাখেন, আপনি কি সেগুলি ঠিক করতে চলেছেন?


7
আপনি কি অপ্রয়োজনীয় সতর্কতার উদাহরণ দিতে পারেন?
স্বরে নোট করুন - একটি নাম

1
সংজ্ঞা অনুসারে একটি সতর্কতা হ'ল সতর্কতা। সুতরাং এটি "স্থির" হতে হবে না। সুতরাং একটি অনুপযুক্ত সতর্কতা কি?
রক

জাভাতে জেনেরিক ধরণের ব্যবহার প্রায়শই একটি সতর্কতা তৈরি করে। এটি "সমাধান" করার একমাত্র উপায় হ'ল @ সাপ্রেস যুক্ত করা, যা খুব পরিষ্কার নয়, আইএমও।
মাইকেল কে

উত্তর:


25

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

সতর্কতাগুলি অবিলম্বে ঠিক করুন (যার মধ্যে স্বতন্ত্র নিয়মগুলি অক্ষম করা অন্তর্ভুক্ত থাকতে পারে যদি আপনি মনে করেন যে এটি কখনও আপনার প্রসঙ্গে প্রাসঙ্গিক নয়)।


8
এই. আমি সতর্কতাগুলির শালীন আকারের সংগ্রহ সহ কোড বেস উত্তরাধিকারসূত্রে পেয়েছি; আমি তাদের বিশেষভাবে যত্ন নেওয়ার জন্য তাদের মধ্যে কোনওটিই সতর্কতা নয়, তবে আমি যে বিষয়টি যত্ন করি তা যখন আমি কিছু ভুল করি তখন ব্র্যান্ডের নতুন "0 টি ত্রুটি, 1 সতর্কতা (গুলি)" দেখতে সক্ষম হয় ।
কারসন 63000

33

আমার মতামতটি আপনার নিজের সাথে কঠোর হওয়া উচিত। সংকলকটি ভাষাটির মোট বিশেষজ্ঞরা লিখেছেন। যদি তারা প্রতিবেদন করছেন যে কিছুটা কিছুটা wiffy (মনে হয় কোড গন্ধ) তবে কোডটি পর্যালোচনা করা উচিত।

ত্রুটি ছাড়াই এবং সতর্কতা ছাড়াই সংকলিত কোড রচনা করা সম্পূর্ণভাবে সম্ভব।


1
আমি অবশ্যই সম্মত!
টিন ম্যান

5
আমি রাজী. ওপি: প্রাগমেটিক প্রোগ্রামার হিসাবে আপনার 'ভাঙা উইন্ডো' পড়তে হবে।
কেউ


9

আমি যখন সি এবং সি ++ তে লিখছিলাম তখন আমি কঠোরতম সেটিংস সক্ষম করতে পারতাম কারণ আমি যখন জানতে চেয়েছিলাম কখন সংকলকটি কিছু বোঝায় না। যখন আমি কাস্টিং এবং রিটার্ন মানগুলি পরীক্ষা করেছিলাম তখন আমি খুশি হব কারণ কোডটি যতটা সঠিকভাবে তৈরি করা যায় ঠিক ততই সঠিক।

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

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


6

আমি কোনও সতর্কতা ঠিক করব। আপনি যদি এগুলি উপেক্ষা করেন এবং সেগুলি জমা হতে দেন তবে আপনি সম্ভবত গুরুত্বপূর্ণ কিছুটি মিস করেছেন।


4

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

অন্যান্য লোকের কোড ঠিক করার বিষয়ে, এটি আপনার কর্মক্ষেত্রের সংস্কৃতি এবং কোডের বর্তমান অবস্থার উভয়ের উপর জোরালোভাবে নির্ভর করে। আপনি কেবল কোড পরিবর্তন করতে পারবেন না যদি এটি একটি সম্পূর্ণ পুনরায় টেস্টিং চক্রকে ট্রিগার করে, যেমন এটি পরীক্ষার পর্যায়ে বা উত্পাদনে দেরী কোডের মতো।

আপনার বসকে জিজ্ঞাসা করুন, এবং সেই অনুসারে কাজ করুন।


2

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

সতর্কতা ঠিক করুন। সময়কাল। এটি বা সেইগুলির প্রত্যেকটিই নথীকরণ করুন, এটি প্রমাণ করার জন্য প্রয়োজনীয় যতগুলি পৃষ্ঠার ব্যাখ্যা এটি ঝুঁকি নয়, সাথে আপনার প্রিয় বান্ধবীর (বা পর্ন স্ট্যাশ) সাইন ইন বিক্রয় অর্ডারটি যদি প্রমাণিত হয় যে এটি যদি পরিণত হয় ঝুঁকি ছিল।


2

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

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


1

আমার ক্ষেত্রে সতর্কতা পাইলিন্ট সরঞ্জাম থেকে এসেছে এবং আমি মন্তব্যগুলিতে বিশেষ পাঠ্য যোগ করে একটি নির্দিষ্ট লাইনে একটি সতর্কতা অক্ষম করতে পারি।

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

সুতরাং: প্রায় সব ক্ষেত্রেই হ্যাকগুলি থেকে মুক্তি পান। যখন হ্যাকটি সত্যিই ন্যায়সঙ্গত হয়, তখন পাইলিন্টকে এটি ঠিক আছে বলে একটি মন্তব্য যুক্ত করুন।


1

কঠোরতার কিছু সুবিধা অন্যান্য জবাবগুলিতে স্পষ্টভাবে বলা হয়নি:

  1. সহজেই সমস্ত স্থিরযোগ্য সতর্কতাগুলি স্থির হয়ে গেলে, অবশিষ্ট উল্লেখযোগ্য / প্রাসঙ্গিক সতর্কতাগুলি প্রদর্শিত হওয়ার সম্ভাবনা বেশি থাকে।
  2. যদি সম্পর্কিত সতর্কতাগুলি খুঁজে পাওয়া যায় এবং সময়মতো প্রকাশিত হয় (মুক্তির আগে), বাগগুলি এড়ানো যায়, ফলে ব্যবহারকারীদের আরও ভাল সন্তুষ্টি হয়
  3. সতর্কবার্তাটি সমাধান করা সাধারণত আরও রক্ষণাবেক্ষণযোগ্য এবং সহজ কোডের দিকে পরিচালিত করে (যেমন সর্বদা সত্য হওয়া শর্তগুলি দূর করে)
  4. সতর্কতার পরিমাণ যখন 0 এর কাছাকাছি হয়, তখন দলে জিরো সতর্কতা নীতি নিয়ে একমত হওয়া সহজ, এটি সিআই সিস্টেমে স্বয়ংক্রিয়ভাবে চালানো খুব সহজ।
  5. সংকলক সতর্কবার্তাগুলি সমাধান করার সময়, প্রোগ্রামের কোডটি বোঝা গভীর হয়, যা বাস্তবায়ন সম্পর্কে দরকারী অন্তর্দৃষ্টি নিয়ে যেতে পারে (যেমন অন্যান্য বাগগুলি আবিষ্কার করুন বা কোডটি আরও কীভাবে বিকাশ করবেন সে সম্পর্কে ধারণা পাবেন)
  6. বিল্ড দ্রুততর হয়, প্রতিদিনের উত্পাদনশীলতা বৃদ্ধি পায়: আইডিই / সংকলকটির পরিচালনা এবং রিপোর্ট করার জন্য কম সমস্যা থাকে, সুতরাং সংকলনটি দ্রুততর হয় (এটি কেবলমাত্র হাজার হাজার সতর্কতার প্রসঙ্গে প্রাসঙ্গিক)।

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


-1

সতর্কতা এবং ত্রুটিগুলি এমন বার্তাগুলি যা সংকলক প্রোগ্রামারটিকে "আপনি যা লিখেছিলেন তার কোনও অর্থ বোধ করেনি" বলতে ব্যবহার করে - তাদের মধ্যে পার্থক্য হ'ল একটি সতর্কতার সাথে, সংকলক প্রোগ্রামারের উদ্দেশ্য সম্পর্কে অনুমান করতে প্রস্তুত হয়, তবে একটি ত্রুটি সহ, সংকলক এমনকি অনুমান করতে পারে না।

সংকলক ত্রুটিগুলি সমাধান করা হবে (আমি স্থির বলতে যাচ্ছি না ) তবে খুব ঘন ঘন প্রোগ্রামাররা (এমনকি অভিজ্ঞরাও) সতর্কতাগুলি উপেক্ষা করবে। সতর্কতাগুলি উপেক্ষা করার সমস্যাটি হ'ল কখনও কখনও সংকলকটি ভুল অনুমান করে এবং যদি আপনার কাছে 1000+ সতর্কতা বার্তা পাওয়া যায় তবে একটি সতর্কতা বার্তা মিস করা সহজ যে ইঙ্গিত দেয় যে সংকলকটি ভুল অনুমান করছে।

সমাজতাত্ত্বিক দৃষ্টিকোণ থেকে, অনেকগুলি সতর্কতা বার্তা রয়েছে এমন প্রোগ্রামগুলি হ'ল ব্রোকন উইন্ডোজ


1
সত্য নয়, প্রচুর সংকলক সতর্কতাগুলি সেই জিনিসগুলি সম্পর্কে যা সংকলক 100% বোঝে এবং প্রবাহের কোনও অবস্থাতেই নেই (এটি আগে বুঝেছিল, এখন এটি বুঝতে পারে, ভবিষ্যতে বুঝতে পারবে), তবে সংকলক লেখকদের অভিজ্ঞতায় রয়েছে, প্রায়শই ভুল লেখা। আপনি একটি 3+ বছরের পুরানো প্রশ্নের ভুল উত্তর দিচ্ছেন ...
jmoreno
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.