সুন্দর কোড কী? [বন্ধ]


30

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

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



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


উত্তর:


55

"চোখের রায় দিয়ে সৌন্দর্য কেনা হয়"।

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

  • স্পষ্টতা এবং স্বচ্ছতা : স্পষ্টতা হ'ল কোনও পাঠক কোডটি কী করে তা কতটা সহজেই ছাড়িয়ে নিতে পারে। স্বচ্ছ কোড যা করে বলে মনে হচ্ছে তা করে। কোড যদি কোনও কাজ করে বলে মনে হয় তবে প্রকৃতপক্ষে অন্য কিছু (বা আরও কিছু) করে, এটি স্বচ্ছ নয় - এটি বিভ্রান্তিকর।

  • কমনীয়তা : বেশিরভাগ অ্যালগরিদম বাস্তবায়নের জন্য অনেকগুলি উপায় রয়েছে তবে কিছু উপায় আনাড়ি এবং অন্য উপায়গুলি ঝরঝরে ও করুণাময়। Succinctness প্রায়শই কমনীয়তা যোগ করে, তবে অতিরিক্ত সংবেদনশীলতা স্বচ্ছতা হ্রাস করতে পারে।

  • দক্ষতা : সংস্থানসমূহের অপ্রয়োজনীয় ব্যবহার এড়ানো (যেমন সিপিইউ সময়, মেমরি এবং I / O)।

  • নান্দনিকতা : চোখে সহজ হওয়া। এটি বেশ সাবজেক্টিভ। এটি বেশিরভাগ শৈলীতে নেমে আসে। একটি গুরুত্বপূর্ণ বিবেচনা হ'ল ক ধারাবাহিক শৈলী থাকা। কোড যা পরিবর্তিত হয়, উদাহরণস্বরূপ, শৈলীর অর্ধেক পথ অবলম্বন করা কুরুচিপূর্ণ।


11
একটি সুন্দর ব্যাখ্যা, +1
koenmetsu

2
আমি "দক্ষতা" নিতে হবে। যদিও কঠোর অর্থে এটি ইতিবাচক, তালিকাগুলি সহ এটি সর্বোত্তমভাবে বিভ্রান্তিকর হতে পারে। এটি সাধারণত অন্যের উপজাত হয় এবং কোডিংয়ের সময় এটি গৌণ উদ্বেগ হওয়া উচিত। মূল কারণটি হ'ল, বেশিরভাগ ক্ষেত্রে, সংকলকটি তার গা dark় যাদুটি কাজ করার পরে এটি কেবল নিজেকে প্রকাশ করে।
DPM

@ জুব্বাট প্রকৃতপক্ষে - কখনও কখনও সর্বাধিক দক্ষ সমাধান আসলে খুব কুৎসিত কোডের দিকে নিয়ে যায়। (উদাহরণস্বরূপ ক্লাসিক ফাস্ট ইনভার্স স্কোয়ার রুট ফাংশন)
ড্যারেল হফম্যান

@ ড্যারেলহফম্যান রাইট, যদিও যে সমঝোতা আরও কার্যকরভাবে সঠিক কোডকে সংজ্ঞায়িত করে এমন আরও পরিবর্তনশীল দ্বারা সত্য, কেবল দক্ষতা এবং বাকী অংশগুলিই নেই ("কোড কমপ্লিট" এ এর ​​একটি দীর্ঘ দীর্ঘ ব্যাখ্যা আছে - দুর্ভাগ্যক্রমে আমি মনে করি না যে কোন অংশে বই, শুরুতে সম্ভবত
সম্ভবত-

@ জুব্বাত: আমি সম্মত হই যে দক্ষতা সাধারণত একটি দ্বিতীয় উদ্বেগ, তবে আমি এখনও মনে করি এটি সৌন্দর্য সমীকরণের কারণ হিসাবে রয়েছে।
ইগবি লার্জম্যান

20

সুন্দর কোডটি নিম্নলিখিতটি এই ভেবে লোকেরা আপনাকে বোকা বানাবেন না:

  • চতুর অ্যালগরিদম
  • লুক্কায়িত ভাষা বৈশিষ্ট্য
  • কী স্ট্রোকের সর্বনিম্ন পরিমাণ নিয়ে সমস্যা সমাধান করা

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

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

তারা সেক্সি হয়
টন মজাদার, তবে নিজেকে এটিকে জিজ্ঞাসা করুন: আমি কি সত্যিই এই ভাষার শরীরচর্চা অন্বেষণে সময় ব্যয় করতে চাই, বা আমি কোনও ভাষার সাথে একত্রে কাজ করতে এবং সুন্দর কিছু তৈরি করতে চাই? সর্বোপরি, একটি প্রোগ্রামিং ভাষা কেবল তৈরি করার হাতিয়ার to


তাহলে সুন্দর কোডটি কী ?

সুন্দর কোড = রক্ষণাবেক্ষণযোগ্য কোড। এটাই!
এই ফর্মুলা!

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

সুতরাং আপনি যে সত্যটি জিজ্ঞাসা করতে চান তা হ'ল: "আমি কীভাবে আরও রক্ষণাবেক্ষণযোগ্য কোড লিখব?" আমি ভয় পাচ্ছি যে এটি একটি বড় প্রশ্ন এবং এটি বেশ সৃজনশীল শৃঙ্খলা। কেবল কোড লিখতে থাকুন, তবে এবার নিজেকে জিজ্ঞাসা করবেন না এটি আরও সুন্দর হতে পারে কিনা। আপনি এটিকে আরও রক্ষণাবেক্ষণযোগ্য করতে পারেন কিনা তা নিজেকে জিজ্ঞাসা করুন।


4
আপনার উত্থাপিত সমস্যাগুলি মোকাবিলার জন্য c2.com/cgi/wiki?KillYourDarlings
jk এর

4

আমার গ্রহণযোগ্যতাটি হ'ল "বিউটিফুল কোড" কোনও উদ্দেশ্য বা বিশেষত দরকারী শব্দ নয়। এবং আমাদের এটি সংজ্ঞায়িত করার চেষ্টা করা উচিত নয়।


ইংরেজি শব্দ "beauty" এর সাধারণ অভিধানের সংজ্ঞা এইভাবে থাকে:

  • "১. কোনও ব্যক্তি বা জিনিসের সমস্ত গুণাবলীর সংমিশ্রণ যা ইন্দ্রিয়গুলিকে আনন্দ দেয় এবং মনকে খুশি করে"
  • "১. কোন ব্যক্তি বা জিনিসে উপস্থিত গুণ যা মন বা ইন্দ্রিয়গুলিকে তীব্র নান্দনিক আনন্দ বা গভীর তৃপ্তি দেয়।"
  • "১. যে গুণটি মন বা ইন্দ্রিয়কে আনন্দ দেয় এবং রূপ বা রঙের সামঞ্জস্য, শৈল্পিকতার শ্রেষ্ঠত্ব, সত্যবাদিতা এবং মৌলিকতার মতো বৈশিষ্ট্যের সাথে যুক্ত" "

(সূত্র http://d.201.com )

সাধারণ থ্রেডটি হ'ল "সৌন্দর্য" হ'ল নান্দনিকভাবে আনন্দদায়ক about এটি অগত্যা সাবজেক্টিভ ... এই কথার দ্বারা চিত্রিত যে "সৌন্দর্য দর্শকের চোখে পড়ে"।


আমরা কোডটিতে "বিউটি" শব্দটি প্রয়োগ করতে পারি, এবং এর স্পষ্ট অর্থ হ'ল কোডটি "নান্দনিকভাবে আনন্দদায়ক"।

তবে তখনই বলা যায় যে "সুন্দর কোড" এর একটি নির্দিষ্ট বৈশিষ্ট্য রয়েছে (অন্যান্য উত্তরগুলির দ্বারা প্রস্তাবিত) নান্দনিকভাবে আনন্দদায়ক এর সুস্পষ্ট অর্থের দ্বন্দ্ব । নান্দনিকতা কীভাবে মানুষ ... স্বতন্ত্র ব্যক্তি ... জিনিসগুলি উপলব্ধি করে তা সম্পর্কে ।

বা অন্য উপায়ে বলতে গেলে , কিছু অপমানজনক রয়েছে বলতে কেউ আমাকে কী সুন্দর বলে মনে করা উচিত, তা মানুষের মধ্যে, শিল্পকর্মের, বা ... কোড সম্পর্কে ।

যতদূর আমি উদ্বিগ্ন সুন্দর কোড হ'ল কোডটি যা আমি সুন্দর বলে মনে করি এবং এটি এটি। এটি বিষয়গত এবং স্বতন্ত্র এবং এটি এটিকে ছেড়ে দেওয়া যাক।


2

এখানে আমার পরামর্শ।

একটি উত্তর -প্রোগ্রামারকে আপনি কীভাবে "সুন্দর কোড" ব্যাখ্যা করতে পারেন তার উত্তরগুলি দেখুন ? এবং তারা কী বৈশিষ্ট্যগুলিকে ফোকাস করতে বলে তা দেখুন। তারপরে কোড কমপ্লিটের মতো একটি বই বেছে নিন এবং আরও ভাল কোড কীভাবে লিখবেন সে সম্পর্কে পরামর্শ জানতে এটি পড়ুন।

আপনার কোনও পুরানো কোডটি দেখার সময় এটি আপনাকে আঘাত করবে, "এটি কুৎসিত" " এটি সরাসরি নান্দনিক প্রতিক্রিয়া হবে। এবং এটি দেখে আপনি বুঝতে পারবেন যে আপনি প্রোগ্রামারের মতো আপনার কোডটি দেখছেন, এবং কদর্যতা দেখতে পাবেন কারণ আপনি জানেন যে আরও ভাল দেখাচ্ছে কোডটি কেমন হওয়া উচিত look


1

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

আমার কাছে সুন্দর কোডটি হ'ল:

  • ভাবপূর্ণ
  • সংক্ষিপ্ত

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

কোডটি কী সুন্দর করে তোলে তার অংশ হিসাবে আমি রক্ষণাবেক্ষণকে অন্তর্ভুক্ত করব না, কারণ সৌন্দর্য এমন কিছু যা আপনি দেখেন / পড়েন, আপনি অভিনয় করেন এমন কিছু নয়। তবে আবার এটি আমার ব্যক্তিগত দৃষ্টিভঙ্গি।


0

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

এটি আমাকে কোড কভারেজ মেট্রিকের অনেক স্মরণ করিয়ে দেয়। আপনি যখন সংখ্যাটি বেশি পরিমাণে পেয়েছেন তখন আপনি শিথিল হয়ে অন্য কোনও কিছুতে যেতে পারেন। প্রায় ৮০% কভারেজ সহ একটি কোডবেস দুর্দান্ত, বুলেটপ্রুফ নয়, তবে শীতল হওয়া এবং অন্যান্য কাজ করার পক্ষে যথেষ্ট। 40% কভারেজ থাকা খুব ভয়ঙ্কর এবং আপনার এই সংখ্যাটি পেতে উত্সাহিত করা উচিত।

পয়েন্টটি হ'ল কোড কভারেজটি কেবলমাত্র অর্থবহ যদি সংখ্যা কম থাকে। সুতরাং এটি কম হতে না। যখন কভারেজটি একটি নির্দিষ্ট বিন্দুতে পৌঁছে যায়, তখন অন্য কোনও কিছুতে যান।

তেমনি সুন্দর কোড দুর্দান্ত। আপনার যদি চমত্কার কোড থাকে তবে দুর্দান্ত, অন্য কিছুতে যান। এটি সম্পর্কে খুব বেশি চাপ দিন না। আপনি কখনই এই ১০০% চিহ্নটিকে আঘাত করতে পারবেন না এবং আপনি যদি এটি দেখতে পান যে এটি কীভাবে পড়ছে বা কী দেখায়, এবং এটি কী করে, বা এটি কীভাবে করে তার পক্ষে যথেষ্ট নয় তবে আপনি খুব বেশি মনোযোগ দিয়েছেন । সুতরাং একটি যুক্তিসঙ্গত চিহ্ন পেতে এবং তারপর থামুন।

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

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

কোন যাদু দর্শন নেই। এর 1000 টি ছোট ছোট পদক্ষেপগুলি একসাথে সম্পন্ন হয়েছে, এর সবকটিই একটি দৃ concrete় উদ্দেশ্যে পরিবেশন করে যা কোডটি দেখতে কত সুন্দর দেখাচ্ছে তার সাথে কোনও সম্পর্ক নেই। তবে, আপনি যখন তাদের একসাথে পরিবেশন করেন, তখন এর অংশগুলির যোগফল হিসাবে তারা সুন্দর কোড গঠন করে। ভোল্ট্রনের মতো। বা ক্যাপ্টেন গ্রহ।


0

আমি এখানে উত্তরগুলির সাথে সত্যই একমত, তবে আমি কম প্রযুক্তিগত পন্থা অবলম্বন করে বলব যে সুন্দর কোডটি হ'ল সমস্যাটির বিষয়ে লেখকের ভাবনার স্পষ্টতার বহিঃপ্রকাশ যা একটি সুবিন্যস্ত এবং সুনির্দিষ্ট এখনও সরল ভাষার মাধ্যমে প্রকাশ পায়।

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

সুতরাং সেই দৃষ্টিকোণ থেকে, একজন প্রোগ্রামার হিসাবে আপনার ক্যারিয়ারে আপনি সুন্দর কোডগুলি আবিষ্কার করতে পারেন অন্যরা হয়ত বুঝতে পারে না কারণ তাদের জ্ঞানের অভাব রয়েছে বা তারা খুব বেশি সৌন্দর্যের দ্বারা নষ্ট হয়ে যাওয়ার কারণে আর উল্লেখযোগ্য হতে পারে না;)

সুন্দর কোডে সমস্ত ব্যবহারিক গুণ রয়েছে অন্যথায় উল্লিখিত হিসাবে, আমি সম্পূর্ণরূপে একমত।


0

আমার তিনটি মানদণ্ড রয়েছে:

  • সাধারণ: কমপক্ষে এটি অবশ্যই মানব পাঠযোগ্য। উদাহরণস্বরূপ, আপনি একটি কোড লিখতে পারেন যা টন লাইনের সাথে সমাধানের জন্য ও (1) এ কাজ করে তবে আমি কোডটি পছন্দ করি যা 0 (এন) দিয়ে কাজ করে কয়েকটি লাইন দিয়ে সলভ করে। এটি চরম পরিস্থিতির জন্য পরিবর্তিত হতে পারে তবে শুরুতে সরলতা গুরুত্বপূর্ণ।
  • পুনরায় ব্যবহারযোগ্য : কোড অবশ্যই পুনরায় ব্যবহারযোগ্য হবে, তবে ওভাররাইট নয় ten যদি আপনার কোনও অপারেশন প্রয়োজন হয় তবে আপনি এটি বছরটিকে পরে এটি যেভাবে ব্যবহার করতে পারেন সেভাবে এটি সংজ্ঞায়িত করা উচিত।
  • সূচক: সম্ভবত এটি আপনার সমস্যা নয়, তবে প্রাথমিক পর্যায়ে এটি প্রথম সমাধান করা উচিত।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.