ভালো কোড মন্দ কোড: জাভা পার্ট - ৩

bad-codegood-codestatic-field

স্ট্যাটিক ভ্যালু সরাসরি কোড না বসিয়ে, একটা স্ট্যাটিক ফিল্ডে সুন্দর নাম দিয়ে ভ্যালু বসলে কোড পড়তে অনেক সুবিধা হয়।



মন্দ কোড

setTimeout(blastOff, 86400000);  // 86400000 is the value of ms of a day

এখানে 86400000 দিয়ে কি বুঝানো হয়েছে তা ক্লিয়ার না। সেটা ক্লিয়ার করার জন্য অনেকেই কমেন্ট ব্যবহার করে। কমেন্ট ব্যবহার না করে স্ট্যাটিক ভেরিয়েবল নিয়েতার নাম এই মানের একটা হিন্ট দিয়ে দেয়া যেতে পারে।


ভালো কোড

public static final int MILLISECONDS_IN_A_DAY = 86400000;

setTimeout(blastOff, MILLISECONDS_IN_A_DAY);






সম্ভব হলে লুপের মধ্যে ইনডেক্স দিয়ে ভ্যালু বের না করে সরাসরি কালেকশনের টাইপ আইটারেট করা উচিত।



হালকা মন্দ কোড - তবে সব সময় না

String [] locations = {"Austin", "New York", "San Francisco"};
for (int i = 0; i < locations.length; i++) {
    String location = locations[i];
    doStuff();
    doSomeOtherStuff();
    dispatch(location);
 }


ভালো কোড - যদি সম্ভব হয়

String[] locations = {"Austin", "New York", "San Francisco"};
for (String location : locations) {
    doStuff();
    doSomeOtherStuff();
    dispatch(location);
 }




এখন যেটা বলব, সেটা আগে আমি নিজেই করতাম। ক্লাসের নামের রিপিট তার ফিল্ড ভেরিয়েবলে না করা। এতে অবজেক্ট দিয়ে ফিল্ড একসেস করতে বিরক্ত লাগে।


মন্দ কোড

class Car {
  public String carMake = "Honda";
  public String carModel = "Accord";
  public String carColor = "Blue";
}

void paintCar(Car car) {
  car.carColor = "Red";
}



ভালো কোড

class Car {
  public String make = "Honda";
  public String model = "Accord";
  public String color = "Blue";
}

void paintCar(Car car) {
  car.color = "Red";
}


ধন্যবাদ ....