লজিক্যাল স্টেটমেন্টে আমার প্রয়োজনীয় বন্ধনীগুলি ব্যবহার করা উচিত?


100

ধরা যাক আমার বুলিয়ান অবস্থা রয়েছে a AND b OR c AND dএবং আমি এমন একটি ভাষা ব্যবহার করছি যেখানে ANDঅপারেশনটির নজিরের চেয়ে বেশি অর্ডার রয়েছে OR। আমি কোডের এই লাইনটি লিখতে পারি:

If (a AND b) OR (c AND d) Then ...

তবে সত্যই, এর সমতুল্য:

If a AND b OR c AND d Then ...

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


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

6
আমিও. আমি কেবল আশা করছি যে আমি এটি পাঠযোগ্যতার জন্য আরও বেশি করছি এবং কম কারণ আমি আমার ল্যাংজের বেসিকগুলিতে আত্মবিশ্বাসী / সক্ষম হতে খুব অলস।
জেফ ব্রিজম্যান

16
প্রথম বন্ধনী ব্যবহারের ব্যাকরণের ভাল ব্যবহারের মতো। দ্বিতীয়টি পড়া সহজ তবে 2 * 3 + 2একই হতে পারে (2 * 3) + 2
চুল্লী

16
@ গণিত সম্ভবত আপনি যদি গণিতে দুর্বল হন। আরও জটিল ক্ষেত্রে, অবশ্যই, প্রথম বন্ধনী ব্যবহার করুন। তবে অন্ধভাবে স্পষ্ট ব্যক্তিদের জন্য (BODMAS…) বিশৃঙ্খলার কারণে এটিকে সহায়তা করার চেয়ে তারা পঠনযোগ্যতা কমিয়ে দেয়
কনরাড রুডলফ

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

উত্তর:


117

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

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

  • তারা কোড বোঝার জন্য প্রয়োজনীয় কাজ হ্রাস করে।
  • তারা বিকাশকারীদের অভিপ্রায়টির নিশ্চিতকরণ সরবরাহ করে।

তদতিরিক্ত, অতিরিক্ত বন্ধনীগুলি, যেমন ইনডেন্টেশনস, হোয়াইটস্পেস এবং অন্যান্য স্টাইলের মানগুলির মতো কোডটি যৌক্তিক উপায়ে দৃশ্যতভাবে সংগঠিত করতে সহায়তা করে।

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

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

আমি সর্বদা সম্মিলিত অভিব্যক্তিগুলির জন্য andএবং or(এবং একইরকম প্রাধান্য ইস্যুগুলির সাথে গাণিতিক ক্রিয়াকলাপের জন্য) প্রথম বন্ধনী ব্যবহার করি ।


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

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

1
@ লার্শ, ধন্যবাদ, আমি উত্তরে এটি স্পষ্টভাবে যুক্ত করেছি।

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

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

94

আপনি ভাষাটি আপনার উপলব্ধি সম্পর্কে আত্মবিশ্বাসী কিনা তা গুরুত্ব দেয় না। আরও গুরুত্বপূর্ণ বিষয়গুলি হ'ল আপনাকে অনুসরণ করা n00b ভাষার ভাষার উপলব্ধি।

আপনার কোডটি সম্ভবত সবচেয়ে পরিষ্কারভাবে পরিষ্কার করুন। অতিরিক্ত বন্ধনী প্রায়শই (তবে সর্বদা নয়) সহায়তা করে। একটি লাইনে কেবল একটি বিবৃতি দেওয়া প্রায়শই সহায়তা করে। কোডিং স্টাইলে ধারাবাহিকতা প্রায়শই সহায়তা করে।

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


72
অসুস্থ, ক্লান্ত, বা গত বছর আপনি যে কোডটি লিখেছিলেন সেগুলি মোকাবেলায় আপনি একা বিকাশকারী এমনকি ভুলে যাবেন না; আপনার বোধগম্যতা স্তরটি একটি n00b এর থেকে হ্রাস পেয়েছে।
ড্যান নীলি

30
There is such a thing as too many parenthesis- আপনি স্পষ্টতই কোনও লিপার নন;)
পল

18
এটা খারাপ পরামর্শ: noobs জন্য লিখবেন না । এটি আপনার কোডের মানকে হ্রাস করবে (যথেষ্ট পরিমাণে) কারণ আপনি কোনও প্রতিষ্ঠিত প্রতিমা ব্যবহার করতে পারবেন না যা কোনও শিক্ষানবিশের বইয়ের প্রথম দুটি অধ্যায় ছাড়িয়ে যায়।
কনরাড রুডলফ

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

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

31

হ্যাঁ

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

বাস্তব বিশ্ব কারণ

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

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

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

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

যেহেতু আমি ধীরে ধীরে এটি পরিষ্কার করে নিচে নামলাম, আমি পর্যায়ক্রমে আমার কাজ সংরক্ষণ করব। এক পর্যায়ে আমি কোডটি সংকলনের চেষ্টা করেছি এবং একটি অদ্ভুত জিনিস হ্যাঁসেন্ড করে। ত্রুটিটি কোডের মূল লাইনটি পেরিয়ে গেছে এবং এখন আরও নীচে ছিল। তাই আমি অব্যাহত, speparating ANDএবং ORডান বন্ধনী সঙ্গে শর্ত। আমি যখন এটি পরিষ্কার করে ফেললাম তখন এটি কাজ করেছিল। চিত্রে যান.

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

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

পাঠ আমি এর কাছ থেকে শিখেছি ... সর্বদা, সর্বদা, সর্বদা পৃথক ANDশর্ত এবং ORশর্তগুলির জন্য প্যারেন্স ব্যবহার করে যখন তারা একে অপরের সাথে কনজেকশনে ব্যবহৃত হয়।

সরলীকৃত উদাহরণ

IF Product = 191 OR Product = 193 AND Model = "ABC" OR Product = 201 OR Product = 202 AND Model = "DEF" ...(কোডগুলির মধ্যে বেশ কয়েকটি দ্বারা লিটারযুক্ত)

এটি আমি যা सामना করেছি তার একটি সরল সংস্করণ। যৌগিক বুলিয়ান যুক্তি বিবৃতিগুলির সাথে অন্য শর্ত ছিল।

আমি মনে করি এটি চ্যাজ করা:
IF ((Product = 191 OR Product = 193) AND Model = "ABC") OR ((Product = 201 OR Product = 202) AND Model = "DEF") ...



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


22
এটি একটি ভাল সংকলক কেন গুরুত্বপূর্ণ তা এর চেয়ে ভাল উদাহরণ হিসাবে মনে হয়।
রুখ

6
@ কেপকডগুনি: আমি নিশ্চিত আপনি তা করেন নি। তবে এখানে সমস্যাটি হ'ল আপনার একটি খারাপ সংকলক বিক্রেতা ছিল যা একটি ব্রেকিং পরিবর্তন করেছিল। উন্নত সংকলক ব্যবহার করার পরেও আপনি কীভাবে "সর্বদা, সর্বদা, সর্বদা" এই কাজের জন্য একটি কাজ শিখেছিলেন তা আমি দেখতে পাচ্ছি না।
রুখ

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

2
দুর্দান্ত গল্প, তবে আমি সম্মত হই যে এটি বন্ধনী ব্যবহারের কোনও কারণ নয়। এবং / বা অগ্রাধিকার প্রায় সর্বজনীন এবং যেটি ভাবতে পারে তার পরিবর্তনের সবচেয়ে কম সম্ভাব্য জিনিস। আপনি যদি এই জাতীয় মানক, মৌলিক ক্রিয়াকলাপের জন্য সামঞ্জস্যপূর্ণ আচরণের উপর নির্ভর করতে না পারেন তবে আপনার সংকলকটি আবর্জনা এবং আপনি যা-ই করুন না কেন আপনাকে হজ দেওয়া হয়। আপনার গল্পটি 100% একটি সংকলক সমস্যা এবং 0% কোড সমস্যা। বিশেষত প্রদত্ত যে ডিফল্ট আচরণটি সহজ বাম থেকে ডান মূল্যায়ন ছিল - ক্রমটি সর্বদা পরিষ্কার থাকবে, সুতরাং কেন কেউ বন্ধনী ব্যবহার করবে?

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

18

হ্যাঁ, যদি সেখানে 'এবং' এবং 'বা' মিশ্র থাকে।

() যৌক্তিকভাবে একটি চেক কী তাও ভাল ধারণা।

যদিও সুনির্দিষ্টভাবে প্রিডিকেট ফাংশন ব্যবহার করা এবং সেখানে বেশিরভাগ চেক এবং শর্তগুলি উচ্ছেদ করা সহজ এবং পাঠযোগ্য হলে ছেড়ে দেওয়া ভাল।


6
সত্য, একটি খুব ভাল সম্ভাবনা a AND bসম্ভবত একটি ফাংশন বা প্রাক-গণনাযুক্ত বুলেট মান যার সাথে আরও বর্ণনামূলক নাম রয়েছে তা প্রতিস্থাপন করা উচিত।
জেফ ব্রিজম্যান

14

প্রথম বন্ধনীগুলি অর্থহীনভাবে অপ্রয়োজনীয়, তাই সংকলকটি যত্ন করে না, তবে এটি একটি লাল রঙের হেরিং - আসল উদ্বেগটি প্রোগ্রামার পঠনযোগ্যতা এবং বোধগম্যতা।

আমি এখানে মৌলিক অবস্থান নিতে যাচ্ছি এবং প্রথম বন্ধনীগুলিকে একটি হৃদয়গ্রাহী "না" দেব a AND b OR c AND d। প্রত্যেক প্রোগ্রামারকে হৃদয় দিয়ে জানা উচিত যে বুলিয়ান এক্সপ্রেশনগুলিতে প্রাধান্যটি>> এবং> বা যায় না , দয়া করে বীজগণিতিক অভিব্যক্তিগুলির জন্য দয়া করে আমার প্রিয় চাচী স্যালিকে ক্ষমা করুন । অপ্রয়োজনীয় বিরামচিহ্নগুলি প্রোগ্রামারে পঠনযোগ্যতার কোনও সুবিধা ছাড়াই কোডটিতে বেশিরভাগ সময় কেবল ভিজ্যুয়াল ক্লোটার যুক্ত করে।

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

বীজগণিতের ক্ষেত্রের বাইরে (বুলিয়ান বা না) যেমন কিছু আছে, যেমন সি এর পয়েন্টার এক্সপ্রেশন, তার চেয়ে বেশি কিছু ব্যতিক্রম করবো যেখানে মানক আইডিয়মের চেয়ে বেশি জটিল কিছু *p++বা p = p->nextসম্ভবত বোধগম্য এবং পাটিগণিত সোজা রাখার জন্য প্রথম বন্ধনী করা উচিত। এবং, অবশ্যই এর কোনওটিই লিস্প, ফোর্থ বা স্মলটালকের মতো ভাষার ক্ষেত্রে প্রযোজ্য না যা প্রকাশের জন্য পোলিশ স্বরলিপি ব্যবহার করে; তবে মূলধারার বেশিরভাগ ভাষার জন্য, যৌক্তিক এবং পাটিগণিতের অগ্রাধিকার সম্পূর্ণ মানসম্পন্ন are


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

1
সমস্ত ভাষা আমি সঙ্গে কাজ নিয়মিতভাবে এটা .memberআগে ইউনারী অপারেটর, ইউনারী বাইনারি অপারেটর আগে, *এবং /সামনে +এবং -সামনে <এবং >এবং ==সামনে &&সামনে ||নিয়োগ আগে। এই নিয়মগুলি মনে রাখা সহজ কারণ অপারেটররা সাধারণত কীভাবে ব্যবহৃত হয় সে সম্পর্কে তারা আমার "সাধারণ জ্ঞানের" সাথে মেলে (উদাহরণস্বরূপ, আপনি এর ==চেয়ে বেশি অগ্রাধিকার দেবেন না +বা 1 + 1 == 2কাজ করা থামিয়ে দিবেন না ) এবং তারা আমার যে অগ্রাধিকার প্রশ্নগুলির 95% অংশ কভার করেছেন তা কভার করে ।
টিম গুডম্যান

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

8

আমি এটি দেখতে হিসাবে:

হ্যাঁ পেশাদাররা:

  • ক্রিয়াকলাপ ক্রম সুস্পষ্ট।
  • ভবিষ্যতের বিকাশকারীদের থেকে আপনাকে সুরক্ষা দেয় যারা অপারেশনের ক্রম বুঝতে পারে না।

হ্যাঁ কনস:

  • বিশৃঙ্খলা, কোড পড়া কঠিন হতে পারে

কোন পেশাদাররা:

  • ?

কোন কনস:

  • ক্রিয়াকলাপ ক্রম জড়িত
  • ক্রিয়াকলাপের ক্রম সম্পর্কে ভাল ধারণা ছাড়াই বিকাশকারীদের পক্ষে কোড কম রক্ষণাবেক্ষণযোগ্য।

ভাল বলেছি, যদিও আমি মনে করি "বিশৃঙ্খলা সৃষ্টি হতে পারে, কোড পড়তে অসুবিধা" বরং বিষয়ভিত্তিক।
হতাশ

2
আপনার কোডটির শব্দার্থক শব্দগুলি কীভাবে স্পষ্টভাবে তৈরি করা পঠন করে?
ম্যাসন হুইলারের

1
আপনার "হ্যাঁ কনস" সম্পর্কে প্রশ্ন করার ক্ষেত্রে আমি অন্যদের সাথে একমত। আমি মনে করি এটি প্রায় সর্বদা বিপরীত।

@ ফ্রাস্ট্রেটেড বিপরীত দাবির মতো বিষয়গত মানে, মোটেও না, সত্যই। পরিমাপ করা ঠিক শক্ত।
কনরাড রুডলফ

1
@ মেসনওহিলার: যদিও আমি একমত যে স্পষ্টভাবে প্যারেনগুলি অনেক ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ, তবে আমি দেখতে পাচ্ছি যে কীভাবে শব্দার্থককে সুস্পষ্ট করে তুলতে পারে one আমি 3 * a^2 + 2 * b^2পড়তে সহজ মনে করি (3 * (a^2)) + (2 * (b^2)), কারণ ফর্ম্যাট এবং অগ্রাধিকার পরিচিত এবং মান। তেমনিভাবে, আপনি (চরমভাবে) আপনার কোডটির শব্দার্থবিজ্ঞানকে আরও সুস্পষ্ট করার জন্য ফাংশন এবং ম্যাক্রোগুলি (বা সংকলকগুলি) ব্যবহার নিষিদ্ধ করতে পারেন। স্পষ্টতই আমি এর পক্ষে পরামর্শ দিচ্ছি না, তবে আমি বিষয়টির স্পষ্ট করার ক্ষেত্রে কেন সীমাবদ্ধতা (ভারসাম্য) থাকা দরকার তা আপনার প্রশ্নের জবাব প্রত্যাশা করছি।
LarsH

3

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

যদি আর কারও কাছে আমার কোডটি আবার না দেখানো হয় তবে আমি চিন্তা করি না যে আমি যত্ন করি।

তবে, আমার অভিজ্ঞতা থেকে:

  • আমি আমার কোডটি আবার মাঝে মাঝে দেখি (কখনও কখনও এটি লেখার কয়েক বছর পরে)
  • অন্যরা কখনও কখনও আমার কোড তাকান
    • অথবা এটি প্রসারিত / ঠিক করতে হবে!
  • আমি নিজে বা অন্য কেউ এটি লেখার সময় ঠিক কী ভাবছিলাম তা মনে পড়ে না
  • ক্রিপ্টিক "ক্যারেক্টার কাউন্ট মাইনাইজ করুন" কোড লেখার ফলে ব্যাঘাত ঘটে

আমি প্রায় সর্বদা এটি করি কারণ আমি দ্রুত পড়ার আমার ক্ষমতাকে বিশ্বাস করি এবং পেরেন্সের সাথে অন্য কিছু বাদ দিয়ে খুব বেশি ভুল করার চেষ্টা করি না।

আপনার ক্ষেত্রে, আমি প্রায় নিশ্চিতভাবেই এমন কিছু করব:

if (a AND b) then ab = true
if (c AND d) then cd = true
If (ab OR cd) Then ...

হ্যাঁ, এটি আরও কোড। হ্যাঁ, আমি পরিবর্তে অভিনব বুল অপারেটরগুলি করতে পারি। না, ভবিষ্যতে 1+ বছর কোডে স্কিমিংয়ের সময় আমি অভিনব বুল অপারেটরগুলিকে ভুলভাবে লিখি I এমন সুযোগটি আমি পছন্দ করি না। আমি যদি কোনও ভাষায় কোড লিখি যা আলাদা এবং / OR এর প্রাধান্য পেয়েছিল এবং এটি ঠিক করতে পিছনে ঝাঁপিয়ে পড়তে হবে? আমি কি যাচ্ছি, "আহা! আমি এই চতুর ছোট্ট জিনিসটি আমার মনে পড়ে যা আমি করেছি! গত বছর এই লেখার সময় আমাকে পেরেনস অন্তর্ভুক্ত করতে হয়নি, ভাল জিনিসটি এখন আমার মনে আছে!" যদি এটি ঘটে (বা আরও খারাপ, অন্য কেউ যিনি এই চালাকি সম্পর্কে অবগত ছিলেন না বা "ফ্যাস অ্যাস্প" টাইপ পরিস্থিতিতে ফেলেছিলেন)?

() এর সাথে পৃথকীকরণ তাড়াতাড়ি স্কিম এবং পরে বোঝার জন্য আরও সহজবোধ্য করে তোলে ...


7
আপনি যদি তা করতে যাচ্ছেন তবে কেন করবেন না ab = a AND b?
এরিক

1
সম্ভবত abনা থাকলে অপরিবর্তিত থাকবে a AND b
আরমালি

3

জেনারেল কেস

সি # তে, গুণ এবং বিভাগের সংযোজন এবং বিয়োগফলের চেয়ে অগ্রাধিকার রয়েছে।

তবুও, স্টাইলকপ, একটি সরঞ্জাম যা কোডবেস জুড়ে সাধারণ শৈলীর প্রয়োগ করে অতিরিক্ত লক্ষ্য সহ কোড দ্বারা প্রবর্তিত বাগের ঝুঁকি হ্রাস করতে পারে যা যথেষ্ট পরিমাণে পরিষ্কার নাও হতে পারে, এই নিয়মটি রয়েছে SA1407 । এই নিয়মটি এই জাতীয় কোডের একটি অংশ সহ একটি সতর্কতা তৈরি করবে:

var a = 1 + 2 * 3;

এটি পরিষ্কার যে ফলাফলটি এসেছে 7এবং তা নয় 9, তবে এখনও, স্টাইলকপ প্যারেনসেসিস রাখার পরামর্শ দেয়:

var a = 1 + (2 * 3);

আপনার বিশেষ কেস

আপনার বিশেষ ক্ষেত্রে, আপনি যে বিশেষ ভাষা ব্যবহার করেন তার সাথে OR এর তুলনায় AND এর একটি নজির রয়েছে।

প্রতিটি ভাষা এইভাবে আচরণ করে না। অন্য অনেকেই এবং এবং ও সমানভাবে আচরণ করে।

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

এই বৈশিষ্ট্য এবং যে ঝুঁকিটি কিছু বিকাশকারীরা বিশ্বাস করতে পারে যে AND এবং OR এর একই অগ্রাধিকার প্যারেনেসিস যুক্ত করা আরও গুরুত্বপূর্ণ করে তোলে।

আপনি স্মার্ট তা দেখানোর লক্ষ্যে কোডটি লিখবেন না। পাঠ্যতার একটি লক্ষ্য সহ কোড লিখুন, এমন লোকদের দ্বারা যারা ভাষার প্রতিটি দিকের সাথে পরিচিত নাও হতে পারে।


1
"এটি অত্যন্ত অস্বাভাবিক": স্ট্রাস্ট্রুট ২০১৩ অনুসারে, সি ++ 11 এর ও ও এর পৃথক নজির রয়েছে বলে মনে হচ্ছে (পৃষ্ঠা 257)। পাইথনের ক্ষেত্রেও একই: ডকস.পিথন.আর.
ডার্ক

10
পুনঃ: "আমি জানি প্রতিটি ভাষা এবং ও এবং সমানভাবে আচরণ করি": আমি সন্দেহ করি যে এটি সত্য। যদি হয় সত্য, তাহলে আপনি জানি না কোন এর দশ সবচেয়ে জনপ্রিয় ভাষায় (সি, জাভা, সি ++, পিএইচপি, জাভাস্ক্রিপ্ট, পাইথন, সি #, পার্ল, এসকিউএল, এবং রুবি), এবং মন্তব্য করা কোন অবস্থানে আছে "অস্বাভাবিক" কি, "খুব অস্বাভাবিক" একা থাকুক।
রুখ

1
আমি রুখের সাথে একমত এবং সি ++ 11, অজগর, মতলব এবং জাভা সন্ধান করেছি।
ডার্ক

3
যে ভাষাগুলিতে এবং ও ওআর বাইনারি অপারেটর, এবং যা ওআর এর চেয়ে উচ্চতর নজির হিসাবে বিবেচনা করে না এবং ব্র্যান্ডম্যাজড ক্র্যাপ, সেগুলির লেখকরা কম্পিউটার বিজ্ঞানের ত্রুটিযুক্ত। এটি যুক্তিযুক্ত স্বরলিপি থেকে আসে। হ্যালো, "পণ্যগুলির যোগফল" কি কিছু বোঝায় না? এমনকি একটি বুলিয়ান স্বরলিপি রয়েছে যা AND এর জন্য গুণন (কারণগুলির অনুপাত) এবং + এর জন্য প্রতীক ব্যবহার করে।
কাজ

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

1

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


0

বা এটি কী এমন কোনও লক্ষণ যা কোনও বিকাশকারীকে সত্যই বসে বসে তাদের ভাষার বুনিয়াদি সম্পর্কে আত্মবিশ্বাসী হওয়া দরকার?

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

আপনি কি এই ভাষার প্রতিটিটির জন্য সঠিক নজির বিধিগুলি না দেখে মনে করেন?


1
এবং উপরে যেমন @ কেপ কড গুনি উল্লেখ করেছেন, এমনকি আপনি যদি মনে করেন যে আপনি ভাষাটি ঠান্ডা জানেন তবে সংকলক / রান-টাইম আপনার নীচে পরিবর্তিত হতে পারে।
জর্দান

0

"যেখানে প্রয়োজনীয় নয় সেখানে লজিক্যাল স্টেটমেন্টে আমার প্রথম বন্ধনী ব্যবহার করা উচিত" "

হ্যাঁ, কারণ দু'জন লোক তাদের সহায়ক বলে মনে করবে:

  • পরবর্তী প্রোগ্রামার, যিনি জ্ঞান, দক্ষতা বা শৈলী পৃথক হতে পারে

  • ভবিষ্যতে আপনি যারা এই কোডটিতে কিছু পরে ফেরেন!


-1

জটিল শর্তাদি হ'ল "বুলিয়ান বীজগণিত", যা আপনি কিছু উপায়ে লিখেছেন যে, ভাল, একে একে ঠিক বীজগণিতের মতো দেখায় এবং আপনি অবশ্যই বীজগণিতের জন্য পেরেন ব্যবহার করেন , তাই না?

সত্যিকারের দরকারী নিয়ম হ'ল উপকার:

!(A || B) <=> !A && !B
!(A && B) <=> !A || !B

অথবা, আরও পরিষ্কার ফর্ম্যাটে:

!(A + B) <=> !A * !B
!(A * B) <=> !A + !B

যা সত্যিই স্পষ্টভাবে ঠিক বীজগণিত হিসাবে যখন লেখা হয়:

-1*(A + B) = -A + -B
-1*(A * B) = -A * -B

তবে আমরা বীজগণিত সরলকরণ এবং প্রসারণের জন্য চিন্তাভাবনাটি প্রয়োগ করতে পারি:

(A && B) || (C && D) => 
((A && B) || C) && ((A && B) || D) => 
(AC && BC) && (AD && BD) =>
AC && BC && AD && BD

যদিও কোডে আপনাকে লিখতে হবে:

(A||C) && (B||C) && (A||D) && (B||D)

বা, একটু পরিষ্কার আকারে:

(A + B) * (C + D) => 
((A + B) * C) + ((A + B) * D) => 
(AC + BC) + (AD + BD) =>
AC + BC + AD + BD

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


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

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

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

2
শুধু nitpicking, কিন্তু !(A + B) <=> !A + !Bএবং -1*(A + B) = -A + -Bঅপারেটর থেকে ফ্লিপ করা হয়েছে করা উচিত নয় +থেকে *দ্বিতীয় এক্সপ্রেশনে?
জেফ ব্রিজম্যান

-1

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


-1

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

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