সংকলক ত্রুটির একটি শব্দকোষের অভাবে হতাশ নবীন প্রোগ্রামার (গুলি)


66

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

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

সুতরাং, কীভাবে একজন নবজাতক প্রোগ্রামারকে সংকলক ত্রুটি বার্তাগুলি বোঝার চ্যালেঞ্জের কাছে যাওয়া উচিত? বিশেষত, সি এবং জিসিসির সংমিশ্রণে?


7
"সুতরাং, কোনও নবজাতক প্রোগ্রামার কীভাবে সংকলক ত্রুটি বার্তাগুলি বোঝার চ্যালেঞ্জের কাছে যেতে হবে?" / বিদ্রূপাত্মক 1 ম দক্ষতাটি হ'ল সংকলক বার্তা থেকে প্রতিটি বিট পড়তে সক্ষম হবেন, একে একে একে খুব প্রসঙ্গের সাথে সম্পর্কিত করে। / বিদ্রূপ বন্ধ। এটি কমই সংকলকটিতে ত্রুটি বা বাগ হিসাবে দেখা দেয়।
27 ῥεῖ

10
@ মেসনহিলার: প্রশিক্ষণ নেওয়ার সময় কোনও নবাগত প্রায়ই কোন সংকলকটি ব্যবহার করবেন তা চয়ন করে না। এবং জিসিসি হ'ল অনেকগুলি, বহু সিস্টেমের একটি সাধারণ ডিনোমিনেটর ...
আইনপোকলুম

24
যখন জিসিসি সি ++ টেম্পলেট ত্রুটিগুলির কথা আসে তখন আমি "ত্রুটি <ফাইল: লাইন>" পরে পড়া বন্ধ করে উত্স ফাইল (গুলি) পড়াশোনা করি, তবুও ত্রুটিটি তত দ্রুত খুঁজে পাচ্ছি, আমার বোধগম্যতা বজায় রাখার একটি অতিরিক্ত পার্শ্ব প্রতিক্রিয়া ছাড়া আমি যদি জিসিসির দেওয়া প্রকৃত ত্রুটিটি পড়ি .....
ম্যাটনজ

18
সমাধানটি সুস্পষ্ট: কম বিভ্রান্তিকর আউটপুট সহ একটি সংকলক ব্যবহার করুন। আমি আরএমসিসির পরামর্শ দিই । এটি প্রিন্ট করে Yes.বা তার No.উপর নির্ভর করে আপনার কোডটি সংকলিত হয়েছে কিনা। দীর্ঘ এবং অর্থহীন বার্তা না বোঝার সাথে সাথে হতাশাকে তাত্ক্ষণিকভাবে সরিয়ে দেয়!
পাইপ

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

উত্তর:


164

কয়েকটি কার্যকর কৌশল:

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

23
একটি ভাল আইডিই উদাহরণস্বরূপ অভিজ্ঞতাকে ব্যাপকভাবে সহায়তা করতে পারে। লাল মধ্যে ত্রুটিরেখা চিহ্নিত করা।
ব্লুরাজা - ড্যানি পিফ্লুঘুফ্ট

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

4
@ আইনপোকলুম: তৃতীয় বিকল্পটিকে অবমূল্যায়ন করবেন না; সংকলক ত্রুটি বার্তা অনেক উন্নত হয়েছে। অনুরূপ শিরাতে, বেশ কয়েকটি সংকলক ব্যবহার করুন (উদাঃ জিসিসি এবং ঝনঝন) - আরও ত্রুটি / সতর্কতাগুলি ক্যাচ করে এবং তাদের মধ্যে একটির নির্দিষ্ট সমস্যার জন্য অন্যটির তুলনায় আরও ভাল ডায়াগনস্টিক থাকতে পারে।
মাদুর

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

4
একটি কৌশল যা আমাকে সাহায্য করেছিল: ত্রুটি বার্তায় লাইন এন উল্লেখ করা থাকলে, লাইন এন -1 চেক করুন। উদাহরণস্বরূপ, আপনি যদি লাইন 17-তে একটি সেমিকোলন মিস করছেন, ত্রুটি বার্তাটি বলবে 18 লাইনটির সাথে কিছু ভুল হয়েছে This
ব্যবহারকারী 2023861

56

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

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

এর উদাহরণ হ'ল "সেমিকোলন প্রত্যাশিত" বা যেকোন সংখ্যক সিনট্যাক্স ত্রুটি যা ইঙ্গিত করে যে পার্সারটি কোনও কিছুর উপর ঝুলিয়ে দেওয়া হয়েছে (অগত্যা একটি সেমিকোলন নয়)। বা "অপ্রত্যাশিত ফরওয়ার্ড ডিক্লেয়ারেশন" এর মতো এমন একটি ত্রুটি যা আমি যখন দেখি, এর অর্থ হ'ল আমি আমার .h ফাইলগুলির মধ্যে একটিতে মূলধনকে ভুল পেয়েছি, তবে যা সমস্যার উত্স হিসাবে .h ফাইলটিকে নির্দেশ করে না।

আপনার বন্ধুর কৌশলটি ত্রুটি এবং সমাধানের তালিকার সাথে প্যাটার্নের সাথে মিল থাকা উচিত নয়; আসল সমস্যাটি কী তা বোঝার জন্য সি ভাষার বাক্য গঠন এবং স্পেসিফিকেশনটি ভালভাবে বোঝা উচিত ।


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

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

36
এটি অন্য উপায়ে বলতে গেলে, সংকলক ত্রুটিগুলি বোঝার জন্য একটি অভিধানের কাছে জিজ্ঞাসা করা ইংরেজি ভাষা বোঝার জন্য অভিধান পড়ার মতো; এটি ঠিক কীভাবে এটি কাজ করে তা নয়। আপনি ইংরেজি পড়তে এবং বুঝতে এবং এটি পড়ার মাধ্যমে বুঝতে পারেন, অভিধানটি পড়ছেন না।
রবার্ট হার্ভে

14
[শ্রাগুলি] আপনি যদি ইংরেজী সম্পর্কে ইতিমধ্যে বিদ্যমান জ্ঞানের পরিপূরক হিসাবে যদি কোনও অভিধান ব্যবহার না করেন তবে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি এটি ভুল করছেন। আমি সর্বশেষ যে জিনিসটি সুপারিশ করব তা হ'ল এমন কিছু যা নবজাতক প্রোগ্রামাররা তাদের শব্দের সংক্ষিপ্তসারগুলি ইতিমধ্যে তার চেয়ে বেশি ঝুলিয়ে রাখে। প্রোগ্রামারদের আরও শব্দের দরকার নেই; তাদের আরও দক্ষতা
রবার্ট হার্ভে

13
@ আইনপোকলুম, একটি শব্দকোষ এখানে সাহায্য করবে না। 'ল্যাভেলু' শব্দের বিবরণটি কোনও শিক্ষানবিশদের জন্য বা 'একটি কার্যভারের বাম-হাতের দিক দিয়ে কী হতে পারে' এর ধারায় খুব প্রযুক্তিগত বলে মনে হতে পারে যা ঠিক ততটা অসহনীয়।
বার্ট ভ্যান ইনজেন শেনৌ

26

উল্লেখযোগ্য একটি প্রাসঙ্গিক কৌশলটি দ্বিতীয় সংকলক ব্যবহার করছে। ঝনক উদাহরণস্বরূপ, আরও ভাল ত্রুটি বার্তাগুলিতে বিনিয়োগ করেছে, তবে ত্রুটিটি বাক্য গঠনের কোনও বিকল্প উপায় আলোকিত করা যেতে পারে।

এটি সবচেয়ে জটিল ধরণের ত্রুটিগুলির জন্য বিশেষত তাই। উদাহরণস্বরূপ, আপনি যখন দুটি অনুরূপ নির্মাণ মিশ্রণ করেন (নতুনদের জন্য অস্বাভাবিক নয়), কম্পাইলারগুলিতে সাধারণত সঠিক ত্রুটি বার্তা উত্পন্ন করতে সমস্যা হয়। কম্পাইলারটি কনস্ট্রাক্ট এ এর ​​ভুল ব্যবহার সম্পর্কে একটি ত্রুটি বার্তা দিলে এটি বিভ্রান্তি সৃষ্টি করতে পারে যখন আপনি বাস্তবে বি নির্মাণের পরিকল্পনা করেছিলেন দ্বিতীয় সংকলকটি বিয়ের লক্ষ্য নির্ধারণ করতে পারে B.


13

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

"সতর্কতা" বিভাগের তুলনায় "ত্রুটি" বিভাগটি আরও অনেক বেশি। দেখে মনে হচ্ছে এটি জি ++ এর লক্ষ্য ছিল, তবে এখনও সেখানে আপনার বন্ধুর ব্যবহারের কিছু তথ্য থাকার সম্ভাবনা রয়েছে।


12

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

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

এর বাইরেও ভাষা এবং সংকলকের সাথে সময় এবং পরিচিতি আপনার প্রয়োজনীয়। এটি, এবং কার্ল বিলেফেল্টের দেওয়া ভাল পরামর্শ


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

6
@ আইনপোকলম আপনি কি কখনও পিএইচপি ডক্স দেখেছেন? আপনি যখন সম্প্রদায়টিকে সেই জিনিসগুলির যত্ন নিতে দেবেন তখনই এটি ঘটে।
কেভিন

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

2
এমনকি কোনও শব্দকোষ বিদ্যমান থাকলেও অনুসন্ধান ইঞ্জিনগুলি এগুলি অ্যাক্সেস করার সর্বোত্তম উপায় হতে পারে। আপনি যখন
অসমাপ্ত অঞ্চলে থাকবেন তখন এগুলি স্পষ্ট করার

2
কলেজে আমি একবার সংকলক ত্রুটি পেয়েছি "ডেভ মনে হয় না এটি হওয়া উচিত। দয়া করে তাকে <dave@example.com>" এ ইমেল করুন। আমি তাকে ইমেল করেছিলাম এবং আসলে আমিই প্রথম সেই বিশেষ ত্রুটিটিকে আঘাত করেছি!
ব্যবহারকারী 1118321

6

সি স্ট্যান্ডার্ড অন্যান্য প্রোগ্রামিং ভাষার থেকে পৃথক বিভিন্ন উপায়ে "লভ্যালু" এবং "অবজেক্ট" এর মতো বিভিন্ন শর্তাদি ব্যবহার করে এবং সংকলক বার্তাগুলি প্রায়শই এই জাতীয় পদগুলিতে লেখা হয়। স্ট্যান্ডার্ডের কিছু অংশে পরিভাষাটির ব্যবহার অসঙ্গত, তবে যে কেউ সি শিখতে চায় তাদের উচিত সি 89, সি 99, এবং / অথবা সি 11 মানকগুলির খসড়া পাশাপাশি তাদের জন্য যুক্তিযুক্ত নথির দিকে নজর দেওয়া উচিত। যেমন "C99 খসড়া" বা "C89 যুক্তি" অনুসন্ধানের জন্য বেশ ভালভাবে কাজ করা উচিত, যদিও আপনি যে নথিটি প্রত্যাশা করছেন তা নিশ্চিত করার প্রয়োজন হতে পারে। যদিও বেশিরভাগ সংকলকগুলি সি 99 স্ট্যান্ডার্ডকে সমর্থন করে, এটি কীভাবে সি 98 স্ট্যান্ডার্ড থেকে পৃথক হয় তা জানার জন্য দরকারী হতে পারে এবং সি 89 এর যুক্তিটি এমন কিছু historicalতিহাসিক পটভূমি দিতে পারে যা পরবর্তী সংস্করণগুলি দেয় না।


11
সি স্ট্যান্ডার্ডটি খুব ঘন এবং ভারী পাঠ্য। একটি শিক্ষানবিস এটি বুঝতে সুযোগ নেই।
নিডজেজেকব

4
@ নিডজেজেকোব: সংকলকগণ দ্বারা ব্যবহৃত পরিভাষা - যা মনে হচ্ছে প্রশ্নটি - এটি স্ট্যান্ডার্ড থেকে প্রাপ্ত। আপনি যখন সঠিক করেছেন যে স্ট্যান্ডার্ডের অংশগুলি বোধগম্য (অংশ হিসাবে এটি কমিটি দ্বারা ডিজাইন করা হয়েছে, এবং লেখকরা এর অংশগুলির অর্থ কী বলে বোঝাচ্ছে তার একটি ধারাবাহিক বোধ আছে বলে মনে হয় না), তবে যে কেউ কী বুঝতে চায় "ল্যাভেলু" অর্থের মতো পদগুলি কোথায় থেকে এসেছে সে সম্পর্কে সচেতন হওয়া উচিত। তদ্ব্যতীত, যদি কেউ বুঝতে চায় যে এর মতো কিছু কেন x=0x1e-xএকটি ত্রুটি দেয় তবে আমি স্ট্যান্ডার্ড ছাড়া অন্য কিছু জানি না ...
সুপারক্যাট

3
আমি @ নীডজেজেকোব এর সাথে একমত: সি স্ট্যান্ডার্ডটি আপনি কোনও নবজাতকের মুখোমুখি হতে চান এমন পাঠ্য নয়। নবজাতকদের জন্য দ্রুত ইতিবাচক অভিজ্ঞতা প্রয়োজন । এবং তাদের পপ আপ করার সাথে সাথে একে একে নতুন জিনিস শিখতে হবে। কোনও স্ট্যান্ডার্ড বা যৌক্তিক পাঠ পড়ার ক্ষেত্রে তথ্য সহ একটি নবাগতকে পুরোপুরি ওভারলোড করার সময় অনেক বেশি সময় লাগে।
মাস্টার

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

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

5

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

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

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

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

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

1 এলম এবং llাল (এবং সম্ভবত র‌্যাকেট) এর মতো কয়েকটি ভাষা, পাশাপাশি কয়েকটি ভাষার "শিক্ষানবিমুখ" বাস্তবায়ন যদিও এটি করার চেষ্টা করে। এই শিরাতে, MSalters একটি পৃথক বাস্তবায়ন ব্যবহারের পরামর্শ সরাসরি প্রাসঙ্গিক। আমি ব্যক্তিগতভাবে এই জাতীয় জিনিসগুলি আপত্তিহীন এবং সঠিক সমস্যার দিকে লক্ষ্য রাখেনি find এটি বলার অপেক্ষা রাখে না যে আরও ভাল ত্রুটি বার্তা দেওয়ার কোনও উপায় নেই, তবে আমার কাছে তারা সংকলকের বিশ্বাস এবং সেই বিশ্বাসগুলির ভিত্তিকে আরও পরিষ্কার করে তোলে।


4

সুতরাং, কীভাবে একজন নবজাতক প্রোগ্রামারকে সংকলক ত্রুটি বার্তাগুলি বোঝার চ্যালেঞ্জের কাছে যাওয়া উচিত? বিশেষত, সি এবং জিসিসির সংমিশ্রণে?

আপনার বন্ধুটি যখন বুঝতে না পারে এমন একটি সমস্যার মুখোমুখি হয়ে নিম্নলিখিত কাজটি করতে বলুন:

  • শেষ সফল বিল্ডের পরে যুক্ত কোডটি সরান / মন্তব্য করুন।
  • এর ছোট অংশগুলি পিছনে রেখে সংকলন করুন
  • ত্রুটি না হওয়া পর্যন্ত পুনরাবৃত্তি করুন

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

যতক্ষণ না তারা নির্মাণে কয়েক মিনিট সময় নেয় এমন প্রকল্পগুলিতে কাজ করা শুরু না করে, অন্যান্য কোড যুক্ত করার আগে অনেকগুলি ত্রুটি চিহ্নিত করে ততক্ষণ তাদের সংকলন করুন।

সবশেষে, তাদের একবারে একটি বিষয়ে কাজ করতে বলুন, মাঝে মধ্যে সংকলন না করে একাধিক ফাইলে কাজ করবেন না, একসাথে একাধিক নির্ভরতা প্রবর্তন করবেন না ইত্যাদি


4

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

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


1
এই ডকুমেন্টটির অত্যন্ত গুরুত্বপূর্ণ পার্শ্ব সুবিধা রয়েছে যে এটি অনলাইনে রাখা যেতে পারে (যদিও এটিতে কেবল 5-10 টি প্রবেশিকা রয়েছে) এবং ইন্টার্নশিপগুলির জন্য আবেদন করার সময় এটি একটি দুর্দান্ত ডিফারিয়েটার হতে পারে।
জোশ রুম্বট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.