"ক্লিন কোড" অনুশীলনগুলি কি আসলেই পরিষ্কার এবং দরকারী? [বন্ধ]


11

আমি বর্তমানে একটি বৃহত কর্পোরেশনে ইন্টার্নশিপ করছি এবং তারা সফটওয়্যার বিতরণ কাঠামোর (অ্যাগিলিতে চলেছে) অনেকগুলি পরিবর্তন নিয়ে চলছে।

গত কয়েকমাসে আমি Clean Codeঅনুশীলনের সাথে এই ধর্মীয় সংযুক্তি এবং বইটি বিকাশকারীদের কাছে বাইবেলের মতো হতে দেখেছি ।

এখন, পরিষ্কার কোডটির একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল স্ব-বর্ণনামূলক কোড যা বোধগম্য নামকরণ এবং কঠোর পুনরায় ফ্যাক্টরিংয়ের উপর ভিত্তি করে। এটি no commentingনিয়ম অনুসরণ করা হয় ।

আমি বুঝতে পারি যে এই পরিষ্কার কোডটি একটি দীর্ঘমেয়াদী বিনিয়োগ যা নিম্নলিখিত কোড রক্ষণাবেক্ষণ এবং উন্নতি সহজ করবে, কিন্তু ... এটি কি এই সমস্ত ঝামেলার উপযোগী?

কেউ কি ক্লিন কোড এবং তাদের মতামত ভাগ করে নেবে যে আমি খুব রক্ষণশীল বা এটি কেবল একটি সাময়িক প্রবণতা।


1
অনেক ভাল প্রশ্ন বিশেষজ্ঞের অভিজ্ঞতার ভিত্তিতে কিছুটা মতামত তৈরি করে, তবে এই প্রশ্নের উত্তরগুলি তথ্য, তথ্যসূত্র বা নির্দিষ্ট দক্ষতার চেয়ে প্রায় পুরোপুরি মতামতের উপর ভিত্তি করে হয়ে থাকে।
gnat 4'13

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

2
70 টি অক্ষরের নামের একটি পদ্ধতি সম্ভবত একাধিক জিনিস করে। এসআরপি লঙ্ঘন আমি ঠিক করছি ?!
টমব্যাট্রন

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

3
"কোনও মন্তব্য নেই" এর অধীনে (সংক্ষেপে) কাজ করার পরে, আমি এটিকে একটি নিয়মের চেয়ে শক্তিশালী গাইডলাইন হিসাবে বেশি পছন্দ করি । মন্তব্যগুলির প্রয়োজন হয় এমন অনেক সময় রয়েছে - সাধারণত অস্পষ্ট ব্যবসায়িক যুক্তিতে। নামক একটি পদ্ধতি CalculateFoonicityMetric()আপনাকে ঠিক কী করছে তা আপনাকে জানায় এবং ভাল লিখিত কোড আপনাকে কীভাবে তা দেখায় ... তবে এগুলির উভয়ই আপনাকে কেন তা বলে না । কোডটি কী (যা দ্বারা এটির দ্বারা গুণিত করুন, অন্য জিনিস দিয়ে ভাগ করুন, এটি বর্গক্ষেত্র করুন, এই বিটটিতে যোগ করুন ...) তবে কেন অস্পষ্ট হতে পারে (ফ্যাক্টর = এ * বি / সি; বর্গক্ষেত্রের নেতিবাচক foo অ্যাকাউন্টে, সামঞ্জস্য করুন) ড্রিফ্টের জন্য ...)। আমি একটি দ্রুত মন্তব্য প্রশংসা করি যা কেন তা ব্যাখ্যা করে।
anaximander

উত্তর:


17

আমি বুঝতে পারি যে এই পরিষ্কার কোডটি একটি দীর্ঘমেয়াদী বিনিয়োগ যা নিম্নলিখিত কোড রক্ষণাবেক্ষণ এবং উন্নতি সহজ করবে, কিন্তু ... এটি কি এই সমস্ত ঝামেলার উপযোগী?

একেবারে।

পুনঃ-ফ্যাক্টরিং অত্যন্ত গুরুত্বপূর্ণ, তবে আপনার যথাযথ শিরোনামটি নির্ধারণের জন্য 75% সময় ব্যয় করা পদ্ধতিগুলি ও সময় ব্যয় করা উত্পাদনশীল বলে মনে হয় না।

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

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


4

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

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

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

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

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


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

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

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