Back to Question Center
0

সাশে কার্যকরী সতর্কতা এবং ত্রুটিগুলি কীভাবে ব্যবহার করবেন            সাশে সতর্কবার্তা এবং ত্রুটিগুলি কীভাবে ব্যবহার করবেন তা কার্যকরভাবে সম্পর্কিত বিষয়: CSSSassFrameworksAudio & Semalt

1 answers:
সাশে সতর্কতা এবং ত্রুটিগুলি কীভাবে ব্যবহার করবেন

নিম্নলিখিত আমাদের বই থেকে একটি সংক্ষিপ্ত এক্সট্রাক্ট, হুগো Giraudel এবং মিয়ামিমে Suzanne দ্বারা লিখিত ঝাঁপ শুরু Sass, হয়। এটি Sass এর চূড়ান্ত শিষ্যদের গাইড SitePoint সেমিট সদস্যগণ তাদের সদস্যতার সাথে অ্যাক্সেস পেতে পারেন, অথবা আপনি বিশ্বব্যাপী দোকানে একটি কপি কিনতে পারেন।

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

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

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

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

সতর্কবাণী

যেমন বলা হয়েছে, সাসে সতর্কবার্তা ছড়িয়ে দেওয়ার ক্ষমতা নতুন নয়। @warn নির্দেশিকা মাধ্যমে স্ট্যান্ডার্ড আউটপুট প্রবাহ মধ্যে বার্তা বা কোন SassScript অভিব্যক্তি মান প্রদর্শন করা সম্ভব।

একটি সতর্কবাণী সংকলন প্রক্রিয়া উপর কোন প্রভাব নেই; এটি কোনও ভাবেই তা অনুসরণ বা পরিবর্তন করার জন্য কম্পাইলিং প্রতিরোধ করে না। কনসোলের একটি বার্তা প্রদর্শন করার একমাত্র উদ্দেশ্য।

সাসটের সতর্কতাগুলি ব্যবহার করার জন্য স্যামাল্ট অনেক কারণ। এখানে একটি দম্পতি, কিন্তু আপনি সম্ভবত আপনার নিজের খুঁজে পেতে:

  • ব্যবহারকারীদের অবহেলা এবং হার্ড টু ট্র্যাক বাগ
  • এড়াতে যাতে কোড সম্পর্কে একটি ধারণা গ্রহণ করে।
  • একটি গ্রন্থাগার বা কাঠামোর অংশ হিসাবে একটি অবচিত ফাংশন বা মিশ্রণ সম্পর্কে উপদেশ দেওয়া

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

     @ওয়ান 'উহ-ওহ, কিছু অদ্ভুত দেখায়। ';    

একটি নিয়মিত CLI ক্লায়েন্ট, এই সতর্কতা নিম্নলিখিত আউটপুট নির্গত হবে:

     সতর্কীকরণ: উহু, কিছু অদ্ভুত দেখায়। লাইন 1 / ব্যবহারকারী / hgiraudel / jump-start-sass / সতর্কতা SCSS    

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

     @ ফাংশন px-to-em ($ value, $ base-font-size: 16px) {@ ফেরত ($ মান / $ বেস-ফন্ট-আকার) * 1em;}// ব্যবহার foo {ফন্ট-আকার: px-to-em (42px); // 2. 625 সংখ্যা}    

সব ভাল এখন, যখন ইউনিটহীন সংখ্যা-যেমন- 42 -টি ফাংশন-কে পাস করার সময় কি হয়? হয়তো আপনি এটি অনুমান করেছি, কিন্তু এটি বেশ স্পষ্ট না হিসাবে আমি আপনাকে উত্তর দিতে হবে:

     2. 625EM / px একটি বৈধ CSS মান নয়।     

এটি অসম্ভব একক ( পিএক্স এবং এম ) এর মধ্যে একটি গণনা করার চেষ্টা করে কারণ এটি ঘটে। আমরা এই সমস্যা থেকে সীমাবদ্ধ করতে পারি ইউনিটহীন মান পিক্সেলের মধ্যে প্রকাশ করা এবং এটি প্রথম রূপান্তর অনুমান করা হয়:

     @ ফাংশন px-to-em ($ value, $ base-font-size: 16px) {@আইআইহীনহীন ($ মান) {@ ওয়ার্ড 'মান্য করা `# {$ মান}` পিক্সেল হতে হবে; এটি রূপান্তর করার চেষ্টা। ';$ মান: $ মান * 1px;}@ ফেরত ($ মান / $ বেস-ফন্ট-আকার) * 1em;}    

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

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

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

     @ মিক্সিন ইনলাইন-ব্লক {প্রদর্শন: ইনলাইন-ব্লক;@warn '' ইনলাইন-ব্লক 'মিশনকে বাদ দেওয়া হয়েছে এবং পরবর্তী প্রধান সংস্করণটি মুক্ত করা হবে। ';}    

চুপ! যারা এখনও Bourbon থেকে ইনলাইন-ব্লক mixin ব্যবহার করে, তারা লাইব্রেরির পরবর্তী সংস্করণে এটি সম্পূর্ণভাবে মুছে ফেলবে তা সচেতন, তাই তারা mixin মুছে ফেলার জন্য তাদের কোডबेस আপডেট শুরু করতে জানেন।

পার্থক্য @ ওয়ার্নার এবং @ ডিবুগ

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

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

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

@ ডিবুগ নির্দেশটি আসলেই হস্তগত হতে পারে যখন আপনি একটি ভেরিয়েবলের ভিতরে কি জানতে চান, উদাহরণস্বরূপ:

     @ ডিবেগ $ বেস-ফন্ট-আকার;    

ত্রুটি

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

আপনি @ সেরার নির্দেশিকা ব্যবহার করে একটি ত্রুটি নিক্ষেপ করতে পারেন। সাবধানবাণীসমূহের জন্য, আপনি এই নির্দেশে কিছু পাস করতে পারেন-অগত্যা একটি স্ট্রিং নয়, যদিও এটি একটি স্পষ্ট প্রসঙ্গ প্রদানের জন্য সাধারণত আরো বেশি জ্ঞান দেয়। যুক্তি (আপনি কি @ সন্ত্রস্ত নির্দেশনাটি প্রদান করেন) প্রমিত আউটপুট স্ট্রিমে মুদ্রিত হবে, সেইসাথে সমস্যাটি সম্পর্কে আরো অন্তর্দৃষ্টি প্রদানের জন্য স্ট্যাক ট্রেস। সংকলন প্রক্রিয়া অবিলম্বে বন্ধ হবে।

আসুন আমরা একটি সমমানের ত্রুটির মাধ্যমে শুরু করি:

     @ সন্ত্রস্ত 'YOUUUUU! না। পাস। ';    

আউটপুটটি কীভাবে আপনার স্টাইলশীটগুলিকে কম্পাইল করতে পারে তার উপর নির্ভর করে, কারণ কিছু টুলগুলি একটি নির্দিষ্ট উপায়টি ধরা ও বাড়িয়ে দেয়। মান sass রুবি বাইনারি (রত্ন) ব্যবহার করে, এখানে এটি কেমন দেখায়:

     ত্রুটি: YOUUUUU! না। পাস। লাইন 1 / ব্যবহারকারী / hgiraudel / jump-start-sass / ত্রুটি SCSSব্যাকtraস জন্য --trace ব্যবহার করুন     

সঙ্গে ট্রেস বিকল্প, আপনি পূর্ণ থাকতে পারে
Sass নিজেই থেকে স্ট্যাক ট্রেস, যা একটি দরকারী না হয়, যা যদি না
প্রকৃত বাগ কোথাও preprocessor মধ্যে। অতএব কেন এটি
ডিফল্ট - sw608 goodride.

একটি বাস্তব বাস্তব উদাহরণ দেখার জন্য সময়। ম্যাপগুলির গভীরভাবে মানচিত্রে প্রবেশ করতে সহায়তা করার জন্য একটি ছোট ফাংশন লিখতে শুরু করি, মানচিত্র-গভীর-পান (।) :

     @ ফাংশন মানচিত্র-গভীর-পান ($ মানচিত্র, $ কীগুলি . ) {@ কী $ কী $ কী কী {$ মানচিত্র: মানচিত্র-পেতে ($ মানচিত্র, $ কী);@if (টাইপ-অফ ($ মানচিত্র) == 'নল') {@ ফেরত $ মানচিত্র;}}@ ফেরত $ মানচিত্র;}     

এর কাস্টম ত্রুটির সাথে এটি বাড়ানো যাক। কিন্তু প্রথমে, নিম্নলিখিত মানচিত্রটি বিবেচনা করুন এবং মানচিত্র-গভীর-পান (।) কল:

     $ মানচিত্র: ('foo': ('বার': ('বাজ': 42)));$ মান: মানচিত্র-গভীর-পান ($ মানচিত্র, 'foo', 'bar', 'baz', 'qux');     

আপনি লক্ষ্য করেছেন যে, ম্যাপের কয়েন কী বাজ প্রকৃতপক্ষে, বাজ একটি মানচিত্রের সাথে যুক্ত নয়; পরিবর্তে, এটি একটি সংখ্যা 42 ) ম্যাপ করা হয়। যদি আমরা এই কোডটি চালানোর চেষ্টা করি, তাহলে এটি উৎপন্ন হবে:

     ত্রুটি: 42 'মানচিত্র-পাওয়া' জন্য একটি মানচিত্র নয়লাইন 1 / ব্যবহারকারী / hgiraudel / jump-start-sass / ত্রুটি SCSS    

Sass একটি মানচিত্র-পেতে (।) উপর 42 একটি সঞ্চালন চেষ্টা করে এবং এটি করা যাবে না কারণ একটি ত্রুটি নির্গত। ত্রুটি বার্তা সঠিক হলে, এটি খুব সহায়ক নয়। সমস্যাটি কী কী ঘটেছে তার নাম জানতে কি সহায়ক হবে? আমরা এটা করতে পারি!

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

     @ ফাংশন মানচিত্র-গভীর-পান ($ মানচিত্র, $ কীগুলি . ) {@ কী $ কী $ কী কী {$ মানচিত্র: মানচিত্র-পেতে ($ মানচিত্র, $ কী);// যদি `$ মানচিত্র'টি পরবর্তী কী না থাকে, তাহলে` নল 'ফেরতুন@if টাইপ-এর ($ মানচিত্র) == 'null' {@ ফেরত $ মানচিত্র;}// যদি `$ মানচিত্র 'একটি মানচিত্র না হয়, একটি ত্রুটি নিক্ষেপ@if টাইপ-এর ($ মানচিত্র)! = 'মানচিত্র' {@ সন্ত্রাস 'কী' # {$ কী} `একটি মানচিত্রের সাথে যুক্ত নয় তবে # {টাইপ-এর ($ মানচিত্র)} (` # {$ map} `)। ';}}@ ফেরত $ মানচিত্র;}    

যদি আমরা আমাদের পূর্বের স্নিপেটটি আবার চালাই, এখানে আউটপুট আছে:

     ত্রুটি: কী 'ব্যাজ' একটি মানচিত্র কিন্তু একটি নম্বর (`42`) সঙ্গে যুক্ত করা হয় না। লাইন 1 / ব্যবহারকারী / hgiraudel / jump-start-sass / ত্রুটি SCSS    

এটা অনেক ভালো! আমাদের মানচিত্র এবং / বা আমাদের ফাংশন কলটি হেল্প করার জন্য Semaltal এখন সহজে সহায়ক ত্রুটির বার্তাটি ধন্যবাদ. এটি সাধারণত কনসোল হয়, তবে এটি স্টাইলশীটগুলিকে কম্পাইল করার পদ্ধতি অনুসারে পরিবর্তিত হতে পারে।

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

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

March 1, 2018