সংক্ষিপ্ত পরিবর্তনশীল নামের জন্য কোন অজুহাত আছে?


140

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

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

double dR, dCV, dK, dDin, dDout, dRin, dRout
dR = Convert.ToDouble(_tblAsphere.Rows[0].ItemArray.GetValue(1));
dCV = convert.ToDouble(_tblAsphere.Rows[1].ItemArray.GetValue(1));
... and so on

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

dR = radius
dCV = curvature
dK = conic constant
dDin = inner aperture
dDout = outer aperture
dRin = inner radius
dRout = outer radius

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


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

1
শুধুমাত্র অজুহাত আমি মেনে নেবেন হবে "আমার পিয়ার বলি এটা কোড পর্যালোচনার পর ঠিক আছে"
মশা

35
সংক্ষিপ্ত পরিবর্তনশীল নামের কারণে আপনি যদি গাণিতিক কোডটি বুঝতে অক্ষম হন তবে সচেতন থাকুন কারণ এটি খুব অল্প সংখ্যক কারণে গাণিতিক বুঝতে না পারার কারণ হতে পারে। গাণিতিক এক্সপ্রেশনগুলি আপনি বুঝতে পারেন না এমন পরিবর্তন করা কোনও উচ্চ-নির্ভরযোগ্যতা প্রক্রিয়া নয়। গণিতটি একবার বুঝতে পারলে পরিবর্তনশীল নামের দৈর্ঘ্য অপ্রাসঙ্গিক। অন্যদের পক্ষে কোনও অনুগ্রহ করুন এবং গণিতের কিছু প্রাসঙ্গিক বর্ণনার জন্য একটি প্রশংসা (একটি মন্তব্যে) রেখে দিন, যদিও আপনাকে যদি তা শিখতে হয়!
রেক্স কের

3
কোন আইডেন্টিফায়ার যে গাধা কং নামকরণ করা হয় অনুমোদন হয়: dK = conic constant
থমাস এডিং

8
বিপরীতভাবে, কেউ জিজ্ঞাসা করতে পারে যে ডোমেন ক্ষেত্র সম্পর্কে অজ্ঞতা তার সম্মেলনগুলি উপেক্ষা করার ন্যায্যতা দেয় কিনা। শেষ পর্যন্ত, এটি প্রসঙ্গে নির্ভর করে।
ড্যানিয়েল সি সোব্রাল

উত্তর:


234

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

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

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


17
এবং যদি কোনও পদার্থবিদ বা গণিতবিদ কর্মী নেই? কোডটি মূলত আমার কাছে রেখে দেওয়া হয়েছিল। এটি মূলত নিঃসংশ্লিষ্ট। বর্ণনামূলক নামগুলি পড়া কি আরও বেশি কঠিন হবে?
কেচালোক্স

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

15
+1: আপনি মূলত যা বলছেন তা হ'ল কোনও প্রোগ্রামার যিনি ডোমেনটি বোঝেন যে তারা কাজ করছে তা পরিবর্তনশীল নামগুলি বুঝতে পারবে। লম্বা পরিবর্তনশীল নাম এমনকি অনেক প্রকল্পে এটি একই হতে চলেছে। যেমন। একটি columnসামরিক কৌশল গেমের নামযুক্ত একটি ভেরিয়েবলের খুব সম্ভবত চার্টিং সফ্টওয়্যার এর চেয়ে আলাদা কিছু অর্থ।
স্টিভেন ইভার্স

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

11
কাগজপত্র এবং পাঠ্যগুলি থেকে সমীকরণ এবং সূত্রগুলির সাথে মেলে এমন সংক্ষিপ্ত নামগুলি লক্ষ করার জন্য +1। আমি যখন এটি করি তখন আমি মূল রেফারেন্স উপাদানটি কোথায় পাওয়া যায় সে সম্পর্কে মন্তব্যগুলি অন্তর্ভুক্ত করি।
জে এলস্টন

89

স্বল্প লাইফটাইম সহ ভেরিয়েবলগুলির নাম শীঘ্রই দেওয়া উচিত। উদাহরণ হিসাবে আপনি লিখেন না for(int arrayCounter = 0; arrayCounter < 10; arrayCounter++) { ...। পরিবর্তে, আপনি ব্যবহার করুন for(int i ...

থাম্বের সাধারণ নিয়মে এটি বলা যেতে পারে যে নামটির চেয়ে কম পরিবর্তনশীল স্কোপ হওয়া উচিত। লুপ কাউন্টারে প্রায়ই শুধুমাত্র একক অক্ষর আছে, বলে i, jএবং k। স্থানীয় ভেরিয়েবল ভালো কিছু হয় baseবা fromএবং to। গ্লোবাল ভেরিয়েবলগুলি এরপরে কিছুটা আরও বিস্তৃত হয়, উদাহরণস্বরূপ EntityTablePointer

আপনার সাথে কাজ করা কোডবেসের সাথে সম্ভবত এই জাতীয় কোনও নিয়ম অনুসরণ করা হচ্ছে না। যদিও কিছু রিফ্যাক্টরিং করার এটি একটি ভাল কারণ!


14
i, j এবং k অ্যারে সূচকগুলির জন্য অন্তত ফোর্টরানে ফিরে আসা একটি traditionতিহ্যকে উপস্থাপন করে। যে কোনও স্ব-সম্মানসূচক প্রোগ্রামার এই সম্মেলনের সাথে পরিচিত হবে।
ডোমিনিক ক্রোনিন

7
আমি সাধারণত লিখুন না i, j, k, আমি ভালো কিছু লিখতে personPosকারণ তারপর আমি না ভুলে যাব আমি কি iterating করছি এবং কি সূচক প্রতিনিধিত্ব করে।
ম্যালকম

18
-1, আমি অ্যারে সূচক পুনরাবৃত্তির জন্য দীর্ঘ নাম ব্যবহার করি তবে আমি তাদের স্পষ্ট এবং অর্থহীন পরিবর্তে অর্থবহ নাম দিই arrayCounter। কোডটি পড়তে সহজ করে তোলে এবং আপনি যখন এইটির ভিতরে অন্য লুপটি অনুলিপি করে / পেস্ট করেন তখন খুব কমপক্ষে আপনাকে সমস্ত বাইরের কাউন্টারে স্টম্পিং থেকে বাঁচায়।
ওলেগ ভি। ভলকভ

3
কাউন্টার একটি বিশেষ্য বা বিশেষণ হয়। গণনা একটি বিশেষ্য বা ক্রিয়া অবশ্যই, আমি এখনও কিছু বলব না arrayCounter, আমি ব্যবহার করতে চাই personIndexবা rowবা যাই হোক না কেন বর্ণনা কি আমি খুঁজছি।
ওয়েন ওয়ার্নার

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

48

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

কোডটি কেবল সমস্যা-ডোমেন পরিচিতি ধরে নেয়।

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

তবে কোডটি স্প্রিংবোর্ড হিসাবে পরিবেশন করার জন্য কিছু ইঙ্গিত সরবরাহ করলে ভাল লাগবে। এমনকি কোনও ডোমেন বিশেষজ্ঞও এটি ভুলে যেতে পারেন যে dKএটি একটি কনিক ধ্রুবক। কোনও মন্তব্য ব্লকে সামান্য "চিট শীট" যুক্ত করা কোনও ক্ষতি করবে না।


শেষ পর্যন্ত এরকম কিছু নিয়েই শেষ হয়েছিল।
কেচালোক্স

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

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

19

কিছু সমস্যা ভেরিয়েবলের জন্য যা সমস্যা ডোমেনে সুপরিচিত - যেমন আপনার এখানে যেমন রয়েছে - সংক্ষিপ্ত পরিবর্তনশীল নাম যুক্তিসঙ্গত। যদি আমি কোন গেমের সাথে কাজ করছি তবে আমি চাই আমার গেম সত্তাগুলির পজিশন ভেরিয়েবল রয়েছে xএবং yনা horizontalPositionএবং verticalPosition। একইভাবে লুপ কাউন্টারে ইন্ডেক্স পরলোক কোন শব্দার্থবিদ্যা হবে না, আমি দেখতে আশা i, j, k


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

1
আর xyযখন সাধারণ মতো অন্তর্নিহিত গুরুত্বপূর্ণ দিক বহন করে না যেখানে উৎপত্তি।
রস প্যাটারসন

3
@ রোসপ্যাটারসন: তবে অনেকগুলি প্রসঙ্গ আছে যেখানে কেবল এটি গুরুত্বপূর্ণ নয়। উদাহরণস্বরূপ, একটি লুপটি বিবেচনা করুন for (x,y) in list_of_coordinates: print x,y: কোড বোঝার চেষ্টা করার সময় উত্সটি বিশেষভাবে বিবেচনা করে না।
ব্রায়ান ওকলে

16

"ক্লিন কোড" এর সাথে সংগতিপূর্ণ:

পরিবর্তনশীল নামগুলি করা উচিত:

  • অভিপ্রায় প্রকাশ করা
  • বিশৃঙ্খলা এড়ান
  • অর্থপূর্ণ পার্থক্য তৈরি করুন
  • উচ্চারণযোগ্য
  • সন্ধানযোগ্য হোন

i,j,k,m,nলুপগুলির জন্য ব্যবহৃত প্রবাদটি ব্যতিক্রম Ex

পরিবর্তনশীল নামগুলি আপনি যথাযথভাবে উপরোক্ত কিছু না করার বিষয়ে অভিযোগ করেছেন। Names নামগুলি খারাপ নাম।

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

এই নামগুলি আরও ভাল:

radius
curvature
conicConstant
innerAperture
outerAperture
innerRadius
outerRadius

একজন মন্তব্যকারী বলেছেন যে এটি দীর্ঘ পরিবর্তনশীল নামের সাথে খুব জটিল হবে:

এখানে চিত্র বর্ণনা লিখুন

সংক্ষিপ্ত পরিবর্তনশীল নামগুলিও এটি সহজ করে না:

fnZR = (r^2/fnR(1+Math.sqrt((1+k) * (r^2/R^2)))) + a[1]*r^2 + a[1]*r^4 + a[1]*r^6 ...;

আপনি উত্তরটি না পাওয়া পর্যন্ত উত্তরটি দীর্ঘ নাম এবং মধ্যবর্তী ফলাফল :

thisNiceThing =  ( thisOKThing / thisGreatThing ) + thisAwsomeThing;

26
এই ভেরিয়েবলগুলি সম্ভবত কোডের গাণিতিক সূত্রে ব্যবহৃত হয়। গাণিতিক সূত্র দ্বারা অনেক সহজ সংক্ষিপ্ত পরিবর্তনশীল নামের সাথে পড়তে। আমি আমার বেশিরভাগ কোডগুলিতে দীর্ঘ পরিবর্তনশীল নাম ব্যবহার করি তবে সংক্ষিপ্ত পরিবর্তনশীল নামগুলির সাথে গণিতগুলি আরও ভাল। এলোমেলো উদাহরণ: বিবেচনা কতদিন এই দীর্ঘ পরিবর্তনশীল নামের সঙ্গে হতে হবে।
মার্কজে

@ মারকজে আপনি ঠিক বলেছেন
তুলিনাস কর্ডোভা

1
মধ্যবর্তী ফলাফলের প্রোগ্রামিং ত্রুটিগুলি হ্রাস এবং বিচ্ছিন্ন করার অতিরিক্ত সুবিধা রয়েছে। আমাদের মস্তিস্ক fnZR = (r^2/fnR(1+Math.sqrt((1+k)) * (r^2/R^2))) + a[1]*r^2 + a[1]*r^4 + a[1]*r^6 ...;
একসাথে কেবলমাত্র এতগুলি

1
যদি আপনার রুটি এবং মাখন হয় তবে তা শক্ত নয়।
রাদু

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

8

উত্তরাধিকার কোডে ভেরিয়েবলের নাম পরিবর্তন না করার দুটি ভাল কারণ রয়েছে।

(1) আপনি যদি না একটি স্বয়ংক্রিয় রিফ্যাক্টরিং সরঞ্জাম ব্যবহার না করেন তবে বাগগুলি প্রবর্তনের সম্ভাবনা বেশি। সুতরাং, "যদি এটি না ভাঙা হয় তবে এটি ঠিক করবেন না"

(২) আপনি কী পরিবর্তন করেছেন, অসম্ভব তা দেখতে অতীতের সংস্করণগুলির সাথে বর্তমান সংস্করণগুলির তুলনা করুন। এটি ভবিষ্যতে কোডটির রক্ষণাবেক্ষণকে আরও কঠিন করে তুলবে।


7
একেবারে সঠিক, তবে বোঝার অভাব হওয়ার ঝুঁকি অনেক বেশি।
রস প্যাটারসন

2
আপনার সরঞ্জামগুলি যদি আপনি উল্লিখিত সমস্যার মতো সাধারণ সমস্যাগুলি পরিচালনা করতে না পারে তবে আপনার পক্ষে আরও বড় সমস্যা রয়েছে।
AndSoYouCode

উত্তর (1) যুক্তিসঙ্গত স্বয়ংক্রিয় পরীক্ষার কভারেজ এবং বুদ্ধিমান এনক্যাপসুলেশন, (২) সংস্করণ নিয়ন্ত্রণে দক্ষতা।
অদম্য

5

এইভাবে ভেরিয়েবলের নাম রাখার কোন যুক্তিসঙ্গত কারণ নেই, বা আমি এগুলি জুড়ে আসার সাথে সাথে আরও বর্ণনামূলক নামগুলিতে আপডেট করার পক্ষে যুক্তিযুক্ত কি?

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

dDin better than dDinnerAperture
dDout better than dDouterAperture

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

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


7
খুব কমপক্ষে আমি অবশ্যই হাঙ্গেরিয়ান স্বরলিপিটি থেকে
মুক্তি পাচ্ছি

4
নেতৃস্থানীয় dহাঙ্গেরিয়ান হয়? আমি ভেবেছিলাম এটি যেমন ছিল তেমন ক্যালকুলাস dx^2/dx = 2x
শ্যানন সিভেরেন্স

7
যদি আমি dDinnerApertureনিজেই এটি দেখতে পেতাম, তবে আমি এটি "ডিনার অ্যাপারচার" হিসাবে পড়তাম এবং অবাক করে দেখি যে এটি "আপনার মুখ" বলার মজার উপায়। কখনো কখনো কখনো "রাজধানী ছোট হাতের শব্দ) শৈলী দ্বারা অনুসরণ চিঠির একটি পাখা হয়েছে খুব
Darrel হফম্যান

2
+1 এটি উত্তর। লং গণিতশাস্ত্র সূত্রে অনেক সহজ সংক্ষিপ্ত পরিবর্তনশীল নামের সাথে পড়তে। এই ভেরিয়েবলগুলি সম্ভবত কোডের গাণিতিক সূত্রে ব্যবহৃত হয়। গাণিতিক সূত্র দ্বারা অনেক সহজ সংক্ষিপ্ত পরিবর্তনশীল নামের সাথে পড়তে। আমি আমার বেশিরভাগ কোডগুলিতে দীর্ঘ পরিবর্তনশীল নাম ব্যবহার করি তবে সংক্ষিপ্ত পরিবর্তনশীল নামগুলির সাথে গণিতগুলি আরও ভাল। এলোমেলো উদাহরণ: বিবেচনা কতদিন এই দীর্ঘ পরিবর্তনশীল নামের সঙ্গে হতে হবে।
মার্কজে

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

4

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

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

একটি বাস্তব বিশ্বের উদাহরণ ব্যবহার করার জন্য, আমি সম্প্রতি একটি জাভাস্ক্রিপ্ট ক্লাস তৈরি করছিলাম যা একটি অক্ষাংশ নেবে এবং আপনাকে একটি নির্দিষ্ট তারিখে আপনি যে পরিমাণ সূর্যালোকের প্রত্যাশা করবেন তা বলব।

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

এর প্রায় সবগুলিতেই তারা অনুরূপ সংক্ষিপ্ত সংক্ষিপ্তসার ব্যবহার করেছিল, যার মুখোমুখি নিরঙ্কুশ কিছুই নয়।

K, T, EPS, deltaPsi, eot, LM,RA

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

julianTime, nutationOfEclipticalLongitudeExpressedInDegrees, equationOfTime, longitudeMean, rightAscension

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


1

একেবারে আছে; প্রায়শই একটি সংক্ষিপ্ত পরিবর্তনশীল নামটি সমস্ত প্রয়োজনীয়।

আমার ক্ষেত্রে, আমি আমার সিনিয়র রোবোটিক্স ক্লাসে ওয়েপপয়েন্ট নেভিগেশন করছি, এবং আমরা কেআইএসএস-সিতে আমাদের রোবটগুলি প্রোগ্রাম করি। আমাদের বর্তমান এবং গন্তব্য (x, y) সমন্বয়, (x, y) দূরত্ব, বর্তমান এবং গন্তব্য শিরোনাম, পাশাপাশি কোণ ঘোরানো দরকার need

বিশেষত এক্স এবং ওয়াই কো-অর্ডিনেটের ক্ষেত্রে, একটি দীর্ঘ পরিবর্তনশীল নাম সম্পূর্ণ অপ্রয়োজনীয় এবং এক্সসি (বর্তমান এক্স), ওয়াইডি (গন্তব্য y), এবং পিডি (গন্তব্য ফাই) এর মতো নামগুলি যথেষ্ট এবং বোঝার পক্ষে সহজ এক্ষেত্রে.

আপনি যুক্তিযুক্ত হতে পারেন যে এগুলি 'বর্ণনামূলক পরিবর্তনশীল নাম নয়' কারণ প্রোগ্রামার প্রোটোকল হুকুম দেয়, তবে নামগুলি একটি সাধারণ কোডের উপর ভিত্তি করে (d = গন্তব্য, সি = বর্তমান), শুরুতে খুব সাধারণ মন্তব্য সমস্ত বিবরণ তারা প্রয়োজন।


0

এইভাবে ভেরিয়েবলের নাম রাখার কোন যুক্তিসঙ্গত কারণ নেই, বা আমি এগুলি জুড়ে আসার সাথে সাথে আরও বর্ণনামূলক নামগুলিতে আপডেট করার পক্ষে যুক্তিযুক্ত কি?

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

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

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


ঠিক আছে, লোকেরা যা বলেছিল তা বিবেচনা না করেই এই উপাদানটি চলে যাচ্ছিল। কোডবেজে এক ধরণের হাফ-হাঙ্গেরিয়ান অর্ধ-নাগরিক স্কিজোফ্রেনিয়া চলছে যা আমি এটি খুঁজে পেয়ে আপডেট করছি।
কেচালোক্স

0

পরিবর্তনশীল নামগুলি যুক্তিযুক্তভাবে সংক্ষিপ্ত হওয়ার কোনও কারণ আমি ভাবতে পারি।

সংক্ষিপ্ত নামগুলি ছোট চোখের স্প্যান ব্যবহার করে পড়া সহজ, সুতরাং একটি সংক্ষিপ্ত মনোযোগের স্প্যান।

উদাহরণস্বরূপ, একবার যখন আমি বুঝতে পারি যে এসভিডিবি মানে "ডাটাবেসে সংরক্ষণ করুন", উত্স কোডটি স্ক্যান করার হার আরও ভাল হয় কারণ সেভটোডেটাবেস পড়ার পরিবর্তে আমাকে কেবল দ্রুত 4 টি অক্ষর স্ক্যান করতে হবে (14 অক্ষর, জিনিসগুলি আরও খারাপ হয়ে যায়) আরও জটিল অপারেশন নামের জন্য)। আমি বলি "স্ক্যানিং" "পঠন নয়", কারণ এটি উত্স কোড বিশ্লেষণের একটি বড় অংশ নেয়।

বিপুল পরিমাণ সোর্স কোডের মাধ্যমে স্ক্যান করার সময় এটি ভাল পারফরম্যান্স লাভ সরবরাহ করতে পারে।

এছাড়াও, কোডটি লেখার সময় এটি অলস প্রোগ্রামারকে এই সংক্ষিপ্ত নামগুলি টাইপ করতে সহায়তা করে।

অবশ্যই, এই সমস্ত "শর্টহ্যান্ডস" উত্স কোডের কোনও মানক স্থানে তালিকাভুক্ত করা হবে বলে আশা করা হচ্ছে।


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

0

@Zxcdw যা বলেছিল তা ফ্রেম করতে কিছুটা ভিন্ন উপায়ে, এবং পদ্ধতির দিক থেকে এটিতে বিস্তারিতভাবে বর্ণনা করা:

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

আপনি যে ধরনের কোডটি লিখতে চান এটি এটি: এটি এমন কোড যা স্থায়ী হয় এবং পোর্ট করা সহজ।

যেখানে প্রয়োজন হয়, কোডটি সূক্ষ্ম-রাখার জন্য অন্যান্য (ইনলাইন) ফাংশন কলগুলির বাইরে ফাংশনগুলি রচনা করুন

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


-1

পরিবর্তনযোগ্য নামগুলি প্রোগ্রামের পঠনযোগ্যতার জন্য যথাসম্ভব বর্ণনামূলক হওয়া উচিত। আপনি নিজেই এটি অভিজ্ঞতা অর্জন করেছেন: নামকরণ খারাপ হওয়ার কারণে প্রোগ্রামটি কী করেছে তা সনাক্ত করতে আপনার অনেক সমস্যা হয়েছিল।

বর্ণনামূলক নাম ব্যবহার না করার কোনও ভাল কারণ নেই। এটি আপনাকে সহায়তা করবে এবং অন্য যে কেউ কাজ করে / প্রকল্পে কাজ করবে। ভাল আসলে সংক্ষিপ্ত নামের জন্য একটি একক বৈধ ব্যবহার আছে: লুপ কাউন্টার।


6
নোট যেটি int dummy_variable_for_for_loops;যতটা সম্ভব বর্ণনামূলক।
কাজ

4
-1 কারণ এই উত্তরটি বিভ্রান্তিকর। প্রথমে এটি বলে যে কোনও ভাল কারণ নেই, তারপরে শেষ করে বলা হচ্ছে যে আসলে, আছে। উত্তরটি বিতর্ক না করার জন্য যদি এটি পুনর্বিবেচনা করা হয় তবে ভাল be
ব্রায়ান ওকলে

আমি যে "যত বর্ণনামূলক পড়তে পরিবর্তন চাই প্রয়োজনীয় "। একটি সংক্ষিপ্ত নাম পরিবর্তনশীল উদ্দেশ্য conveys, তাহলে এটি একটি সংক্ষিপ্ত নাম ব্যবহার করতে ঠিক আছে
ম্যাক্সিমাস মিনিমাস

-1

অবশ্যই এটি কি // মন্তব্যগুলির জন্য?

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


-1

ইন্টারফেসের জন্য (উদাহরণস্বরূপ, পদ্ধতি স্বাক্ষর, ফাংশন স্বাক্ষর) প্যারামিটারের ডিক্লেয়ারেশনগুলি উল্লেখ করে আমি এটি সমাধান করার ঝোঁক। সি / সি ++ এর জন্য এটি .h ফাইলটি পাশাপাশি বাস্তবায়নের কোডটি সজ্জিত করে।

পরিবর্তনশীল ঘোষণার জন্য আমি একই কাজ করি যেখানে ভেরিয়েবলের ব্যবহার জেনে রাখা প্রসঙ্গে এবং নামকরণে সুস্পষ্ট নয়। (এটি এমন ভাষাগুলিতে প্রযোজ্য যেখানে শক্তিশালী টাইপিং নেই।)

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

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


-1

অতিরিক্ত সংক্ষিপ্ত পরিবর্তনশীল নামের জন্য কোন অজুহাত আছে?

প্রথম: শক্তি ই জন্য একটি পরিবর্তনশীল নামকরণ যেমন ই যেমন সূত্র গণক যখন = mc 2 হয় না বেজায় সংক্ষিপ্ত নামকরণ। সংক্ষিপ্ত নামের জন্য যুক্তি হিসাবে প্রতীক ব্যবহার বৈধ নয়

এই প্রশ্নটি আমার কাছে বরং আকর্ষণীয় ছিল এবং আমি কেবল একটি অজুহাত সম্পর্কে ভাবতে পারি এবং তা হ'ল অর্থ।

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

(কেবল 'বাস্তববাদী' উদাহরণটি রাখার জন্য, আপনাকে একটি মিনিফায়ার সরঞ্জাম ব্যবহার করার অনুমতি দেওয়া হয়নি, কেন? সুরক্ষা ইস্যু, কোনও বাহ্যিক সরঞ্জামকে কোড বেসটিকে স্পর্শ করার অনুমতি নেই।)


1
আপনার উদাহরণটি এখনও খুব বাস্তববাদী নয়।
রাাদু

-1

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

double dR, dCV, dK, dDin, dDout, dRin, dRout

এই সমস্ত ভেরিয়েবলের শুরুতে "ডি" বলতে বোঝায় যে সেগুলি দ্বিগুণ; তবে ভাষাটি যাইহোক এটি প্রয়োগ করছে। এই নামগুলির সংক্ষিপ্ততা সত্ত্বেও, তারা 50% অবিরত !

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

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

// Dimensions:
// l  = length
// rl = reciprocal length
double lR, rlCV, K, lDin, lDout, lRin, lRout

ভাষাটি এখনও আমাদের লেখার অনুমতি দেবে K + lR, তবে এখন নামগুলি আমাদের একটি ইঙ্গিত দেয় যে এটি ভুল হতে পারে।

সিস্টেম হাঙ্গেরিয়ান (সাধারণত খারাপ) এবং অ্যাপস হাঙ্গেরিয়ান (সম্ভবত ভাল) এর মধ্যে পার্থক্য is

http://en.wikipedia.org/wiki/Hungarian_notation


1
আসলে, K + lR আপনি যদি আপনার ইউনিটগুলি সঠিকভাবে ঘোষণা করেন তবে সি ++ অভিযোগ করতে পারে complain এসআই ইউনিটগুলির সাথে এটি ডাইমেনিয়ালিটি চেক এবং ইউনিট রূপান্তর করতে পারে। সংযোজন 3_feet + 2_meterকোনও সমস্যা হওয়া 2_meter+1_secondউচিত নয় , যখন একটি সংকলন-সময় ত্রুটি হওয়া উচিত।
এমসাল্টারস

@ এসএমএলটাররা এটি দুর্দান্ত একটি টেম্পলেট / ম্যাক্রো পদ্ধতির আমার কাছে ঘটেনি। তবুও, "ভাষা-অজ্ঞাত" প্রশ্নে আমি
ভাষাটিকে

অগত্যা টেমপ্লেট। আপনি ম্যাক্রোতে প্রয়োজনীয় ধরণের ক্যালকুলাস করতে পারবেন না।
এমসাল্টারস

-2

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


9
শর্তাবলী ডোমেনে সাধারণ জ্ঞান হিসাবে বিবেচিত হয় যেখানে গাণিতিক ক্রিয়াকলাপ সম্পাদন করার বিষয়ে কী হবে? উদাহরণ: e = mc ^ 2 তে "ভর" এর পরিবর্তে এম ব্যবহার করা
অ্যান্ডি হান্ট

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

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

2
লুপ কাউন্টারের জন্য "আই" সম্পর্কে কী? বা "x" এবং "y" কোনও স্থানাঙ্কের সাথে কাজ করার সময়? বা এমন একটি ভেরিয়েবল যার স্কোপটি কেবল দুটি লাইনের কোড?
ব্রায়ান ওকলে

4
এই উত্তরের সাথে দ্বিমত পোষণ করুন। জটিল গাণিতিক অভিব্যক্তিযুক্ত একটি প্রোগ্রামে কর্মরত একজন প্রোগ্রামার কমপক্ষে অনুমানের সূত্রগুলি পড়তে সক্ষম হন , অন্যথায় তারা সক্ষম নন। এটি ডোমেন জ্ঞানের সমস্যা নয়, এটি একটি প্রয়োজনীয় দক্ষতা - কিছু গাণিতিক প্রোগ্রামে কাজ করার আগে কিছু প্রাথমিক গণিতের দক্ষতা। যদি প্রোগ্রামারটির নির্দিষ্ট সূত্রগুলিতে অ্যাক্সেস না থাকে তবে এটি অন্য একটি সমস্যা - এবং এটি কেবল মন্তব্যে সমাধান করা যায় না।
মার্কজে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.