উত্স কোড লেখার সময় কীভাবে 80 টি অক্ষরের সীমা সেরা অনুশীলনটি অনুসরণ করবেন?


15

সুতরাং আপনি জানেন যে একটি ভাল অনুশীলন বলার আছে

80 টি অক্ষরে সোর্স কোডের একটি সারি সীমিত করুন।

এখানে 2 টি লিঙ্ক রয়েছে:

কেন 80 টি অক্ষর কোড প্রস্থের জন্য 'মানক' সীমা?

ওয়াইডস্ক্রিন মনিটরের সময়ে কি 80 টি চরিত্রের সীমাটি এখনও প্রাসঙ্গিক?

এবং আমি নিশ্চিত আপনি যদি এই সেরা অনুশীলনটি সন্ধান করেন তবে আপনি আরও জরিমানা করতে পারবেন।

তবে আমি এটি অত্যন্ত কঠিন বলে মনে করি, এখানে একটি নমুনার উদাহরণ রয়েছে:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference

সুতরাং আপনি প্রতিটি বর্গ এবং প্রতিটি পদ্ধতি এবং প্রতিটি বিবৃতি ইনডেন্ট।

আমি ইতিমধ্যে আমার 'মাই রেফারেন্স' এ থাকা সর্বশেষ 'ই' এর শেষে 60 কলামে এসেছি।

আমার কাছে 20 টি ফাঁকা জায়গা রয়েছে যাঁরা প্রকৃতপক্ষে কন্সট্রাক্টরকে কল করতে পারেন এবং আমার কাছে থাকা রেফারেন্সটিতে অবজেক্টটি নির্ধারণ করুন।

আমি বলতে চাইছি এটি কি সত্যিই আরও ভাল দেখাচ্ছে:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference 
                = new HashMap<String, List<MyInterfaceHere>>(); 

এখানে সেরা অনুশীলন কি?


6
আমরা এটা করতে 140. 80 ছোট পর্দা এবং ছোট প্রিন্টার দিন ভাল হয়ে থাকতে পারে
tgkprog

7
সেরা অনুশীলনের যদি না আপনি শেষ অফ লাইফ সংস্করণের উপর করছেন 5/6 সম্ভবত হবে final Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();(যেমন খাঁজ সঙ্গে 80 অক্ষর আপনার উদাহরণে)
মশা

4
একটি মেটা-সেরা-অনুশীলনটি কুড়ি বছর আগে থেকে অন্ধভাবে সেরা অনুশীলনগুলি ব্যবহার না করা। । পিছনে যখন 17 "সিআরটি 1280x1024 রেজল্যুশন, নিম্ন চরিত্র অনুভূতি তৈরি সীমা, কিন্তু না আজ sported
TMN

2
মনে রাখবেন যে আপনার ডিসপ্লেতে সমস্ত উপলভ্য স্থান জুড়ে বিস্তৃত না হয়ে পাঠ্যের সংকীর্ণ কলামগুলি ব্যবহার করার একটি সুবিধা হ'ল পাশাপাশি একাধিক কোডের পাশাপাশি টুকরো দেখার ক্ষমতা view 80 chars * 7 pixels/char = 560 pixels per file। এটি দুটি ফাইলকে (1120 পিক্স) 1280 পিক্সেস প্রশস্ত স্ক্রিনে আরামদায়কভাবে ফিট করতে পারে বা 1920 পিক্সের স্ক্রিনে তিনটি (1680 পিক্সের), উভয় ক্ষেত্রেই লাইন সংখ্যা, স্ক্রোল বার, সিগিলস এবং অন্যান্য ইউআই উপাদানগুলির জন্য কিছু অতিরিক্ত জায়গা রেখে দেয় । বা এমনকি মাঝে মাঝে সামান্য দীর্ঘ লাইন।
বিট্রি

3
@ 8 বিট্রি আমি দুটি মনিটরে পাশাপাশি পাশাপাশি কোড দেখতে পারি। একক মনিটরে বিকাশ করা কেবল একটি চাকা দিয়ে গাড়ি চালানোর মতো।

উত্তর:


18

সর্বোত্তম অনুশীলনটি "একটি লাইনের দৈর্ঘ্য সীমাবদ্ধ করা উচিত যাতে আপনি, আপনার সমস্ত সহকর্মী এবং আপনি যে সমস্ত সরঞ্জামগুলি ব্যবহার করছেন এটি এতে খুশি", পাশাপাশি কিছু সাধারণ জ্ঞান। 80 টি অক্ষর খুব কম বলে মনে হচ্ছে এবং পাঠযোগ্যতা হ্রাস করতে পারে। আমি একবার এই মত একটি লাইন দ্বারা পুরোপুরি ঠকানো হয়েছে:

/* Very long comment to the end of the line */ realCode ();

যেখানে ফাংশন কলটি স্ক্রিনে দৃশ্যমান ছিল না (এটি কোনও সহকর্মীর পর্দায়ও দৃশ্যমান ছিল না) কোনও ইঙ্গিত ছাড়াই।

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

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

পুনশ্চ. আমি প্রকৃত মানব-লিখিত কোডে লাইনগুলির মুখোমুখি হয়েছি, যেগুলি 400 টিরও বেশি অক্ষরের। অন্য কথায়, আপনাকে 24 ইঞ্চি মনিটরে এমনকি বাকী রেখাটি পড়তে যুগে যুগে স্ক্রল করতে হবে। আমি বিস্মিত হইনি :-(


10
/* Very long comment to the end of the line */ realCode ();ইতিমধ্যে কিছু অন্যান্য স্টাইলের নিয়ম ভাঙার উচিত বলে মনে হচ্ছে ।
রবার্ট হার্ভে

3
/* Very long comment to the end of the line */ realCode ();আইডিইগুলির কাছে এমন কোড ফর্ম্যাটর রয়েছে যেগুলি মন্তব্য এবং কোডটিকে স্বয়ংক্রিয়ভাবে পৃথক লাইনে ফেলে দেয়।

2
এটি একই উত্স থেকে এসেছে যা কুখ্যাতভাবে লিখেছিল "যদি (শর্ত) \ n \ tgoto প্রস্থান; \ n \ tgoto প্রস্থান;"। মাত্র কয়েক বছর আগে।
gnasher729

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

3

হ্যাঁ, এটি আরও ভাল দেখাচ্ছে। এ কারণেই "অতিরিক্ত লাইনগুলি ব্যবহার করবেন না!" ম্যাক্সিম খুব শক্তিশালী।

সর্বোত্তম অনুশীলন হিসাবে, আমি কখনও কখনও এই ভয়াবহ দীর্ঘ নির্মাণকারী এক্সপ্রেশন ব্যবহার করি না। আমি সবসময় ব্যবহার করব

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> yReference = newMap();

কিছু উপযুক্তভাবে সংজ্ঞায়িত, স্ট্যাটিকালি আমদানি মান newMap()। আমি এটিকে জাভাতে একটি গুরুতর ত্রুটি হিসাবে বিবেচনা করি যা এটির অন্তর্নির্মিত সংস্করণ নেই।


1

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

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


1

রিটার্ন কী চাপলে ভয় পাবেন না। বেশিরভাগ আধুনিক ভাষা (আপনার উদাহরণ হিসাবে জাভা সহ) বেশ কয়েকটি লাইন জুড়ে চলে এমন বিবৃতিতে বেশ খুশি।

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

ঠিক হয়ে গেছে, খুব সুন্দরভাবে ভাঙা লাইনটি স্ক্রিনের দিক থেকে অদৃশ্য হয়ে যাওয়ার চেয়ে অনেক বেশি পঠনযোগ্য।


1

আপনি যদি লাইনের দৈর্ঘ্য / কোডের প্রস্থ প্রয়োগ করেন তবে একটি সরঞ্জাম ব্যবহার করুন।

  • Resharper
  • ভিজ্যুয়াল সহায়তা
  • প্রভৃতি

বিকাশকারীরা সিদ্ধান্ত নেয় যে যুক্তিসঙ্গত দৈর্ঘ্য কী (80, 120, 200 ইত্যাদি), সরঞ্জামটিতে সেই বিকল্পটি সেট করে।

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

মাইন্ডলেস এবং সহজ এবং প্রতিটি উত্স ফাইল একইভাবে ফর্ম্যাট করা হবে।


0

80 চর সীমা এই দিনগুলিতে কিছুটা কম হতে পারে তবে এটি সাহায্য করে। আমি এই সমস্ত মতামতের সাথে একমত হব যে কোডটিও ভাল ফর্ম্যাট করা উচিত। যেমন কোড

/ * লাইনের শেষে খুব দীর্ঘ মন্তব্য * / রিয়েলকোড ();

৮০ chr এর মধ্যে হতে পারে তবে মন্তব্য এবং কোড অপশন একই একক লাইনে থাকায় বিভ্রান্তি তৈরি হয়।

80 সিআর সীমা মেনে চলুন বা না করা ব্যক্তিগত পছন্দ নয় তবে যদি জিনিসগুলি একক শটে দৃশ্যমান হয় তবে প্রোগ্রামার এবং অন্যান্য পর্যালোচকদেরও এটি সর্বদা একটি আরামদায়ক দৃষ্টিভঙ্গি এবং অনুভূতি দেবে।

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