কঠোর টাইপিং ব্যবহার করার সময় ডকব্লক টাইফিন্টগুলি রিডানডেন্ট


12

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

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

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


"আমি কিছু মতামত শুনতে পছন্দ করি" সরানো হয়েছে। বিবৃতি হিসাবে এটি সাজানোর জিনিস যা একটি ভাল প্রশ্ন মতামত ভিত্তিক হিসাবে বন্ধ করা হতে পারে।
ডেভিড আরনো

2
@ ডেভিড আর্নো: আহ আপনাকে ধন্যবাদ আমি তখন কিছু বাস্তব ভিত্তিক অন্তর্দৃষ্টি পেতে চাই :)
Xatoo

উত্তর:


8

কোডটিতে যে তথ্য পাওয়া যাবে সেগুলিকে মন্তব্যে নকল করা উচিত নয়।

সর্বোপরি, এগুলি সিঙ্ক্রোনাইজ করার চেষ্টা নষ্ট হয়। সম্ভবত, তারা শেষ পর্যন্ত সিঙ্ক থেকে বেরিয়ে আসবে। এই মুহুর্তে, তারা কেবল বিভ্রান্ত করছে।

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

এটি পিএইচপি-র সাথে প্রাসঙ্গিক নয়, তবে প্রকারটি যথাযথভাবে অনুমান করা হয় (যেমন হাস্কেল) ডুপ্লিকেটযুক্ত প্রকারের তথ্যটি বোধ করতে পারে।


5

হ্যাঁ, ডকব্লকগুলি পিএইচপি 7 এর সাথে নিরর্থক হয়ে উঠেছে।

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

আমি আর ডকব্লকগুলি লিখি না, যখন আমি নির্দিষ্ট ধরণের একটি অ্যারেরকে (যেমন @return int[]বা @param SomeStatus[] $statusList) ইঙ্গিতটি টাইপ করতে চাই অথবা যখন আমি পদ্ধতি, পরামিতিগুলি বা ফেরতের মান সম্পর্কে কোনও মন্তব্য যুক্ত করতে চাই except আমি phpstorm পরিদর্শনটি অক্ষম করা জরুরী বলে মনে করেছি যা ট্রিগার করে যখন আপনার কাছে ডকব্লক থাকে তবে ডকব্লকটিতে এলিট প্যারামিটার এবং রিটার্ন টাইপ না থাকে।


3

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

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

যখন সরবরাহ করা হয় তখন কী প্রত্যাশা করা হয় তা নির্দেশ করার জন্য একটি প্রকার থাকা আবশ্যক

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

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

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