ভেরিয়েবলের নামগুলি কি ওয়েবসাইটের কার্যকারিতাকে প্রভাবিত করে?


10

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


2
দয়া করে আপনার প্রশ্নটি পরিষ্কার করুন - এই পরিবর্তনশীলটি কোথায় এবং কোন ভাষায় লিখিত আছে?
লুক গ্রাহাম

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

আমি পিএইচপি ব্যবহার করছি ..
অবিনাশ

2
... এবং আপনি xpertdeveloper.com এর মালিক?
জিম জি।

3
হাই অবিনাশ আপনি কি এই প্রশ্নটি ভেবে ভেবে আপনার যুক্তিতে ব্যাখ্যা করতে পারেন যে এটি হতে পারে?

উত্তর:


17

পারফরম্যান্সের দিক থেকে দীর্ঘ ভেরিয়েবল নাম না বেছে নেওয়ার কারণ কি কেউ দিতে পারে?

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

সাধারণভাবে, আপনি সংক্ষিপ্ত, বর্ণনামূলক পরিবর্তনশীল নামগুলি ব্যবহার করতে চান কারণ এগুলি পড়া সহজ। 10 বছরের জন্য আপনার কোডটি উপেক্ষা করতে হবে এবং তারপরে সবকিছু আবার বুঝতে হবে কিনা তা কল্পনা করুন। আপনি কি "getInput" বা "getInputFromUserWhoInputsStringOrElseInformReaderOfError" পড়তে চান? (অবশ্যই অত্যুক্তি: পি)

কিছু সময় আছে, তবে কিছুটা দীর্ঘ নাম রাখা উপকারী হতে পারে। উদাহরণস্বরূপ, getBirthdayInput () getInput () এর চেয়ে অনেক বেশি বর্ণনামূলক হবে। আপনি একটি বিন্দুতে সরল করতে চান তবে ওভারসিম্প্লিফিকেশন সমস্যাযুক্তও হতে পারে।


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

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

ofc এটি প্রাসঙ্গিক থেকে নির্ভর করে তবে আমার অভিজ্ঞতায় আর নাম ভাল (তবে getInputFromUserWhoInputsStringOrElseInformReaderOfError হিসাবে এত দীর্ঘ নয়)। ফাইল এবং রিড () ফাইল ফাইলের চেয়ে দ্রুত হিসাবে প্রসঙ্গটি অত্যন্ত গুরুত্বপূর্ণ () ফাইলড্রেডআলফিলএএসবাইটআরে () এর চেয়ে দ্রুত। তবে আমি যেমন বলেছি সাধারণত আইএমএইচও-র দীর্ঘ নামটি আরও তথ্য সরবরাহ করে।
ডেইনিয়াস

1
যদি ডকুমেন্টেশনটি ভুল, অসম্পূর্ণ বা অনুপস্থিত থাকে তবে কোডবেস যাইহোক ডুমড করা হবে।
ক্রিস্টোফার মাহান

2
এটি এমন প্রশ্নের উত্তর দিচ্ছে যা জিজ্ঞাসা করা হয়নি।

16

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

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

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


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

1
@ গ্যাভিন এটি অনুবাদ করা ভাষার জন্যও সঠিক - "জেআইটি প্রথম ব্যাখ্যা" interpretation বেশিরভাগ ব্যাখ্যামূলক ভাষাগুলি এখন সংকলন করে যখন তারা লাইন বাই লাইন প্রয়োগের পরিবর্তে সম্পাদন করে, এএএফআইকে।
মাইকেল কে

1
মাইকেল - সংকলনের জন্য, ফাইলটি প্রথমে মেমোরিতে পড়তে হবে। ফাইলের দৈর্ঘ্যের উপর নির্ভর করে এই প্রক্রিয়াটি আরও বেশি সময় নেবে। দীর্ঘতম ভেরিয়েবলের নাম = দীর্ঘতর ফাইল।
গ্যাভিন কোটস

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

8

আপনি যদি অপ-কোড ক্যাশে ("পিএইচপি এক্সিলারস" নামেও পরিচিত) না ব্যবহার করেন তবে অবশ্যই সেখানে একটি প্রভাব রয়েছে। তবে সেই প্রভাব এতটাই কম যে এটিকে অবহেলা করা যায়। আপনি যদি অপ-কোড ক্যাশে ব্যবহার করেন তবে শূন্য প্রভাব আছে।


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

তবে স্পষ্টতই যে প্রভাবটি সংশ্লেষজনক, তাই অ্যাপ্লিকেশনটি যত বড় হবে, প্রভাবটি তত বড় হবে, তাই না?
n00dles

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

3

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

পারফরম্যান্সটি এটি করার মাধ্যমে হিট হবে তাত্পর্যপূর্ণ এবং সম্ভবত একটি সম্পূর্ণ স্ক্রিপ্টের জন্য এটি মিলিসেকেন্ডের ভগ্নাংশের অঞ্চলে হবে। আপনি সর্বদা এটা চেষ্টা করে দেখতে পারেন একটি নমুনা স্ক্রিপ্ট এবং এই ধরনের এ বিস্তারিতভাবে জানিয়েছে হিসাবে একটি সময়জ্ঞান পদ্ধতি ব্যবহার http://www.developerfusion.com/code/2058/determine-execution-time-in-php/ কিন্তু এই সম্ভবত না করবে না ফাইলটি পড়া শেষ হওয়ার আগেই সময় শুরু করুন Additionally অতিরিক্তভাবে, পুনরায় চেষ্টাগুলির মধ্যে সম্পাদনের সময়টি ভেরিয়েবলের নাম দৈর্ঘ্যের পার্থক্যের চেয়ে অনেক বেশি পরিবর্তিত হতে পারে, সুতরাং আপনাকে উল্লেখযোগ্য সংখ্যক পুনরায় চেষ্টা করতে হবে এবং আপনি পারার আগে প্রতিটিটির গড় গ্রহণ করতে হবে একটি দূরবর্তী অর্থপূর্ণ গড় পান।

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

সুতরাং সংক্ষেপে, পরিবর্তনশীল দৈর্ঘ্যের নাম সম্পর্কে চিন্তা করবেন না, বরং পরিবর্তে পরিষ্কার, অর্থপূর্ণ কোড লেখায় মনোনিবেশ করুন।


1

হতে পারে :

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

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


1

হ্যাঁ, এটি হবে তবে আপনি যে অর্থে ভাবছেন তা নয়।

খারাপ ভেরিয়েবলের নাম সহ, বিকাশকারীরা সোর্স কোডে সহজেই বিভ্রান্ত হয়ে পড়বে। এটি পড়া কঠিন এবং বুঝতে অসুবিধা হবে।

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

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

ভাল চলক নাম সম্পর্কে জানতে এগুলি পড়ুন: http://tottinge.blogsome.com/meaningfulnames

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


0

উত্তরটি অবশ্যই পিএইচপি করার ক্ষেত্রে হ্যাঁ।

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


1
তবে আপনি ভুল। যে কোনও শালীন পিএইচপি ইন্টারপ্রেটার কোডটি কেবল একবার পার্স করবে। ছেলেরা পিএইচপি ইন্টারপ্রেটার লিখছেন তারা বোকা নয়।
gnasher729

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

0

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

সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য ("এটি কি কার্যকারিতা প্রভাবিত করে"): হ্যাঁ, তবে আপনার পছন্দ মতো নয়।

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