Clean Code-এর খোঁজে

Omar Faruq
3 min readDec 17, 2023

--

programing sector-এ আমরা যারা আছি, আমরা সবাই Clean Code শব্দটির সাথে পরিচিত। কম-বেশি অগোছালো ভাবে Clean Code সম্পর্কে সম্যক অবগত।

Scattered type এর code দেখলেই আমাদের মাথা ঘুরাতে শুরু করে, মন চাই ডেভেলপারকে ২০ তলা বিল্ডিংয়ের ছাদের উপর থেকে যত্ন সহকারে আস্তে করে ছেরে দেই।

পরিষ্কার — পরিচ্ছন্ন code দেখলেই কাজ করতে মন চাই, কাজের আগ্রহ বারে। তাই সবার উচিৎ cline code লিখার habit গরে তুলা।

আজকের এই ব্লগে আমরা ধাপে ধাপে জানার চেষ্টা করবো কিভাবে Clean Code লিখতে হয় এবং তার সুবিধা — অসুবিধাগুলো কি কি।

প্রশ্ন: আমরা কিভাবে Clean Code লিখবো ?

উত্তর : প্রথমেই বলে রাখতে চাই Clean Code কিছুটা আপেক্ষিক, এটা অনেকটা নির্ভর করে ডেভেলপারের কাজের দক্ষতার উপর। একজন দক্ষ ডেভেলপারের Clean Code, অন্য একজন কম দক্ষ ওয়ালা ডেভেলপারের কাছে Clean মনে নাও হতে পারে। তবে Clean Code লিখার কিছু fundamental rules আছে, যা সকল programming language এর ক্ষেতরে প্রযোজ্য। নিছে সেই rules ব্যাখ্যা করা হলো।

১/ Variable ( চলক ) : Variable name এমন ভাবে লিখা উচিৎ, যাতে করে ঔ variable কি ধরনের value store করছে, কোন উদ্দেশ্য variable ডিক্লেয়ার করা হলো, তা variable name এর মধ্যেই স্পষ্টভাবে বুঝা যায়। variable name বড় হলেও সমস্যা নাই।

variable name সংক্ষিপ্ত করে লিখে রাখা, abcd, xyz, নিজের নাম, হিজিবিজি কিছু একটা লিখা। এই ধরণের habit বর্জন করতে হবে।

অতিরিক্ত variable ব্যাবহার না করা, যেখানে variable ব্যাবহার না করলেও চলে, সেখানে ব্যাবহার না করাই ভালো। তবে খেয়াল রাখতে হবে যে, বেশি সংক্ষিপ্ত করতে গিয়ে যেনো code এর readability নষ্ট না করি।

২/ Maintainability : Repeated কাজ যেনো খুব বেশি করতে না হয়, সেদিকে খেয়াল রাখতে হবে। Repeated কাজ ডেভেলপারদের জন্য যেমন বিরক্তিকর এবং কোম্পানির জন্যও ব্যায় সাপেক্ষ। এতে সময়, টাকা দুটোই বেশি লাগে। এইযে Repeated কাজ centralized করতে গেলে যা যা করতে হয়, তা মূলত Maintainability কেই Satisfy করে। এই Maintainability কে Satisfy করতে গেলে programming এর যে যে topics or concept সামনে আসবে, তা হলো। 1) reusable function, 2) Design principle, JavaScript library নিয়ে কাজ করলে, Reusable components, এর higher order component (HOC) etc.

৩/ Testability: Testability-এর জন্য সুবিধা হয় এমন Code লিখার Practice করতে হবে। যারা SQA-Engineer তাঁদের জন্য অনেকটায় helpful হবে।

৪/ Scalability: বড় বড় Code block ভেঙ্গে Reusable function-এ রুপান্তর করা যেতে পারে , তাতে Readability বারবে, এবং same code বার বার লিখতে হবে না। execution time কম লাগবে, এর ফলে প্রোগ্রাম খুব first run হবে। User experience আনেক ভল হবে। খেয়াল রাখতে হবে reusable code লিখতে গিয়ে যেন জটিল করে না ফেলি।

৫/ Over Engineering: অনেকেই আছে কোড লিখার সময়, নিজের কারিশমা দেখানর খুব ইচ্ছা হয়, তাই এমন ভাবে refactor করে, অন্য engineer -এর পক্ষে বুঝতে ঘাম ছুটে যায়। এমন কি যে code লিখেছে সে নিজেও কয়েকমাস পরে ঐ code বুজতে পারে না। Over Engineering সবসময় বিপদজনক। মনে রাখতে হবে যে, যেই project-এ আজকে আপনি কাজ করছেন, হয়তো দুইমাস পরে ঐ project-এ অন্য একজন কাজ করবে। সুতরাং তার life এলোমেলো করে দিতে পারে আপনার এই Over Engineering মনোভাব। তাই Over Engineering করা থেকে দুরে থাকুন।

৬/ Third-party package: Third-party package ব্যবহার করা কিছু ক্ষেত্রে ভাল আবার কিছু ক্ষেত্রে ভাল না। আপনি কোন Package ব্যবহার করছেন তার উপর Depend করে। যদি কোন trusted Organization বানিয়ে থাকে, যদি Download rate অনেক হয় , তাহলে আপনি নিঃসন্দেহে ব্যবহার করতে পারেন। অন্যথায় ব্যবহার করতে ছাইলে ঘেঁটে দেখবেন, Documentation ভাল করে পরে বুঝে নিবেন। Third-party package-এর বাপারে এই কথাগুলো কেন বল্লাম ? বলার কারন হল, Third-party package উপর কিন্তু আপনার নিয়ন্ত্রণ নাই। ঐ Package-এর Owner যদি কোন আপডেট নিয়ে আসে, তাহলে সরাসরি আপনার project-এর উপর effect পরবে। আর তখন যদি কোন কারনে আপনার code-এর সাথে Miss-Mass হয়ে যায়, তখন ভোগান্তির শেষ থাকবে না। সুতরাং Package ব্যবহার করার ক্ষেত্রে খানিকটা সতর্ক থাকবেন, যত্রতত্র ভাবে Package install করবেন না।

--

--