সতর্কতা এবং বিজ্ঞপ্তিগুলি এড়ানো ভাল অনুশীলন?


20

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

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

শেষ পর্যন্ত, আমি জানি না যে আমি সমস্ত সতর্কতা এবং বিজ্ঞপ্তিগুলি থেকে মুক্তি পাওয়ার চেষ্টা করে আমার সময় নষ্ট করছি বা আমি এটি আরও বেশি ভাল কাজের জন্য করছি।

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


6
"কখনও কখনও, নোটিশ না থাকার কোনও সমাধান নেই" আমি পিএইচপি ব্যবহার করার পরে অনেক সময় হয়ে গেছে, তবে আপনি এমন কোনও ঘটনার কথা মনে পড়ছেন না যেখানে আপনি নোটিশ / সতর্কতা এড়াতে বা কমপক্ষে এটি স্থানীয়ভাবে দমন করতে পারেন@
CodeInChaos

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

12
বিজ্ঞপ্তিগুলি দমন করতে @ ব্যবহার করা সাধারণত সাধারণ হলেও এটি একটি খারাপ জিনিস হিসাবে বিবেচিত হয়। এটি তখন সমস্ত নোটিশ বন্ধ করে দেওয়া আরও খারাপ কারণ আপনি এখন কোনও সম্ভাব্য সমস্যা লুকিয়ে রেখেছেন। পিএইচপি প্রোগ্রামিংয়ের 15 বছরের মধ্যে আমি এখনও এমন একটি মামলা দেখতে পেলাম যেখানে আমার নিয়ন্ত্রণ কোডটিতে আমাকে একটি নোটিশ দমন করতে হয়েছিল।
সেরাদ

2
আপনি কি কেবল এই নোটিশগুলির প্রদর্শন বন্ধ করে দিচ্ছেন বা করছেন error_reporting(0);? আমি সর্বদা ব্যবহার করি error_reporting(E_ALL);এবং উন্নয়ন এবং উত্পাদন মধ্যে একমাত্র পার্থক্য ini_set('display_errors', 'on');বনাম ini_set('display_errors', 'off');। কোডটি এখনও আমার মনে সতেজ থাকা অবস্থায় আমি সর্বদা বিজ্ঞপ্তি এবং সতর্কতাগুলি ঠিক করার লক্ষ্য রাখি। আমি অতিরিক্তভাবে সতর্কতা এবং বিজ্ঞপ্তিগুলি মিস করেছি তা দেখতে আমার প্রোডাকশন সিস্টেমে লগগুলি ঘন ঘন করছি।
MonkeyZeus

1
@ ক্রেড যা বলেছেন তার সাথে আমি অনেকটাই একমত @। পিএইচপি প্রোগ্রামিংয়ের বছর এবং বছর পরে, আমি সেই অপারেটরটি ব্যবহার করি নি। না একবার. কখনও। এটি কেবল সম্ভাব্য সমস্যাগুলি আড়াল করে না, এর কার্যকারিতাও প্রভাব ফেলে: পর্দার পিছনে, পিএইচপি কোড কল করার আগে ত্রুটি প্রতিবেদনটি স্যুইচ করে -> কোডটি কল করে -> এটিকে তার মূল মূল্যে ফিরিয়ে দেয়। আপনার কোডটিতে কয়েক ডজন বা শত শত থাকলে এই পদক্ষেপগুলি ব্যয়বহুল @
রাদু মুর্জিয়া

উত্তর:


26

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

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

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

আদর্শভাবে, আপনি সতর্কতাগুলি ত্রুটি হিসাবে বিবেচনা করতেও চালু করতে চান, তবে ;-) দিয়ে শুরু করার মতো কিছু না থাকলে কেবল এটি কাজ করে তবে লক্ষ্য হিসাবে এটি মনে রাখবেন! যদি প্রতি ফাইলের ভিত্তিতে এটি চালু / বন্ধ করা সম্ভব হয় তবে সমস্ত নতুন ফাইলের জন্য এটি চালু করুন, এবং সমস্ত সতর্কতা-মুক্ত ফাইলের জন্য এটি চালু করুন এবং একবার আবার চালু না করে এটিকে আবার চালু করবেন না

সুতরাং, ওভারলোড সম্পর্কে কী করবেন?

আপনি প্রতিটি সতর্কতা এবং বিজ্ঞপ্তির একটি তালিকা তৈরি করেন এবং তারপরে নিম্নলিখিত নিয়মগুলি মেনে চলেন:

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

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

এটি গুরুত্বপূর্ণ বিট। ডাটাবেস ব্যতীত আপনি কখন নতুন সতর্কতা যুক্ত করবেন তা আপনি জানতে পারবেন না এবং ফিল্টারিং ছাড়া আপনার ওভারলোড সমস্যা রয়েছে।

দ্রষ্টব্য # 2: এটি কেবল সতর্কতার জন্য কাজ করে না, এটি স্টাইল চেকার, জটিলতা মেট্রিক্স, কোড কভারেজ, স্ট্যাটিক বিশ্লেষণ সরঞ্জাম ইত্যাদির জন্যও কাজ করে। মূলত:

  1. নতুন সমস্যা যুক্ত করবেন না।
  2. পুরানো সমস্যাগুলি সমাধান করার সাথে সাথে আপনি এগুলি আটকে যাচ্ছেন।

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

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


3
সতর্কবাণী এবং ত্রুটিগুলি বন্ধ করে দেওয়ার কেন অন্য একটি বিষয় যা ব্যবহারকারীদের না ছাপিয়ে গেছে: বিকাশের কাছে সতর্কবার্তা হিসাবে তথ্য হিসাবে এটি সংবেদনশীল তথ্য ফাঁস হতে পারে (ফাইলগুলির নাম, অন্যান্য জড়িত সার্ভারের নাম, ব্যবহৃত এসকিএল কোয়েরিগুলির কাঠামো, ... )
হ্যাগেন ভন ইটজেন

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

49

যদি আপনার কোড থেকে সতর্কতা এবং বিজ্ঞপ্তিগুলি আসছে, তবে অবশ্যই এটি ঠিক করুন। আমার অভিজ্ঞতা থেকে, 95% এ এটি সৌম্য হতে পারে, তবে 5% এমন একটি আসল সমস্যা তুলে ধরেছে যা অগণিত ঘন্টা তাড়া করতে পারে।

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

আপনার লিগ্যাসি কোডবেসটি যদি সত্যিই বড় হয় তবে এটি আলাদা প্রশ্ন, তবে আপনি উত্তরাধিকার কোডটিকে তৃতীয় পক্ষ হিসাবে বিবেচনা করতে পারেন, তবে নতুন কোডটি সতর্কতা-মুক্ত হওয়া দরকার।


8
আমি জাভা / গ্রহণে কাজ করি যা স্পষ্টতই পিএইচপি থেকে পৃথক, তবে আমি সাধারণত সতর্কতাটি ১ টির দ্বারা উত্থাপিত দেখতে পাই) যেটি কম্পাইল করে তবে আমি একটি সুস্পষ্ট ভুল করেছি বা ২) এমন কিছু যা এখন ভাল তবে রাস্তায় খারাপ হবে
কর্সিকা

1
@ করসিকা আমি আপনার মন্তব্যটি পিএইচপি- তে অনুবাদ করছিলাম তবে আমি বুঝতে পেরেছিলাম যে কেবল একটি শব্দ পরিবর্তন করা দরকার।
wizzwizz4

3
অবশ্যই, যদি না আপনার সতর্কবাণীগুলি আপনার usingবিবৃতিগুলির ক্রম সম্পর্কে স্টাইলকপ থেকে ...
ড্যান প্যান্ট্রি

12

এটা গুরুত্বপূর্ণ। একটি সতর্কতা আপনার পরীক্ষাগুলি ভাঙ্গতে না পারে এমনকি কিছুক্ষণের জন্য বুনোতেও দেখাতে পারে - তবে এটি কোনও তাঁত বাগের লক্ষণ হতে পারে। আমি বর্তমানে প্রাথমিকভাবে সি # / সি ++ তে বিকাশ করি এবং আমাদের কোড বেস থেকে সতর্কতা অব্যাহত রাখতে এবং সতর্কতা অব্যাহত রাখতে একটি সংজ্ঞায়িত কৌশল আছে have ভাগ্যক্রমে এটি রকেট বিজ্ঞান নয় =)।

আপনার যে ভাষায় কাজ হচ্ছে সেই ভাষা যদি সতর্কবার্তাটিকে ত্রুটি হিসাবে বিবেচনা করার ক্ষমতা রাখে এবং তার পরিবর্তনশীল সতর্কতা স্তর থাকে তবে আমি নিম্নলিখিতটি করবো:

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

আমি দেখতে পাচ্ছি যে এটি কেবল আমার কোডের বাইরে সতর্কবার্তা কার্যকর করে না - এটি এগুলি রাখে

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