সরলতা কি সর্বদা পাঠযোগ্যতার উন্নতি করে?
আমি বলব, সম্ভবত কিছুটা বিতর্ক নিয়ে, একেবারেই নয় ।
আপনি আমাকে এর সার্বজনীন ইন্টারফেসে 200 সদস্যের ফাংশন সহ একটি শ্রেণি দিতে পারেন এবং এটি সেখানে সবচেয়ে মানবিকভাবে পঠনযোগ্য পাবলিক ইন্টারফেস হতে পারে। এই জাতীয় কোড এবং এর ডকুমেন্টেশনের মাধ্যমে কেবল আকস্মিকভাবে পড়া এটি একটি আনন্দ হতে পারে। তবে, আমি এটিকে "সিম্পল" বলব না, কারণ পাঠযোগ্যতা সত্ত্বেও, এই সমস্ত ফাংশনগুলি কীভাবে একে অপরের সাথে যোগাযোগ করে এবং সম্ভাব্যভাবে অপব্যবহারের ফলে কৌশলযুক্ত প্রান্তের মামলাগুলি দেখার জন্য আমাকে উদ্বিগ্ন হতে হবে।
আমি ২০ সদস্যের ফাংশন সহ এমন একটি শ্রেণিকে পছন্দ করব যা ২০০ তে পড়তে এতটা সহজ ছিল না, কারণ মানব ত্রুটি রোধ এবং কোডের রক্ষণাবেক্ষণের উন্নতি করার ক্ষেত্রে "পাঠযোগ্যতা" আমার পক্ষে প্রথম অগ্রাধিকার নয় (যে স্বাচ্ছন্দ্যে আমরা এটি পরিবর্তন করতে পারি, অর্থাত্)।
যাইহোক, এই সব আমাদের "সরলতা" এর ব্যক্তিগত সংজ্ঞা উপর জড়িয়ে যেতে চলেছে। "পঠনযোগ্যতার" সাধারণত পরিবর্তিত হয় না যে দুর্দান্তভাবে আমাদের মধ্যে, যদি না কেউ এত দক্ষতা এবং সাবলীলতা অর্জিত হয়েছে যে তারা খুব "পাঠযোগ্য" বলে Regex বিবেচনা, যেমন, আমাদের নিছক মানুষ বাকি বিস্মরণ।
সরলতা
একটা সময় ছিল, যেখানে আমি ভেবেছিলাম "সরলতা" এর অর্থ "যতটা সম্ভব পড়া সহজ" read সুতরাং আমি সি কোডটি উন্নত করার চেষ্টা করেছি এবং জিনিসগুলি যতটা সম্ভব পড়তে এবং লিখতে সহজ করে তুলতে চেষ্টা করেছি, সুবিধামত অনেক কার্যকারিতা সহ সি কোড লিখব would
আমি ফলস্বরূপ খুব বড়, ধনী, উচ্চ-স্তরের গ্রন্থাগারগুলি ডিজাইন করেছি, প্রতিটি প্রাকৃতিক মানবিক চিন্তার জন্য একটি ফাংশনকে মডেল করার চেষ্টা করেছি: সাহায্যকারীদের উপরে সহায়তাকারী, ক্লায়েন্ট কোডকে আরও বেশি পঠনযোগ্য বাক্য গঠনে রূপ দেওয়ার জন্য। আমি তখন যে কোডটি লিখেছিলাম তা সর্বাধিক "পঠনযোগ্য" হতে পারে, তবে এটি ছিল সর্বাধিক "অবিস্মরণীয়" এবং "জটিল"।
পাতার মর্মর
তবুও 90 এর দশকের মাঝামাঝি (লেটকমার) এর আশেপাশে আমার এলআইএসপি নিয়ে একটি সংক্ষিপ্ত আবেগ ছিল। এটি "সরলতা" সম্পর্কে আমার সম্পূর্ণ ধারণাটি পরিবর্তন করেছে।
পাতার মর্মর হয় না অধিকাংশ পাঠযোগ্য ভাষা। আশা করি কেউই ভাবেন না যে নেস্টেড বন্ধনীগুলির একটি নৌকা বোঝা সহ একটি পুনরাবৃত্তির ক্রিয়াকলাপটি করার সময় সিডিআর এবং সিআর বের করা খুব "পঠনযোগ্য" is
তবুও, ভাষাটির বিজোড় বাক্য গঠন এবং কাজগুলি করার সম্পূর্ণ পুনরাবৃত্ত পদ্ধতিগুলির সাথে আমার মস্তিষ্ককে আবৃত করার জন্য সংগ্রাম করার পরে, এটি আমার সরলতার ধারণাটি স্থায়ীভাবে পরিবর্তিত করেছিল।
আমি এলআইএসপিতে যে কোডটি লিখেছি তা দিয়ে আমি যা পেয়েছি তা হ'ল আমি আর সূক্ষ্ম ত্রুটি করছিলাম না, যদিও এইভাবে চিন্তা করার চতুরতা আমাকে আরও স্পষ্ট ভুল করেছিল (তবে এগুলি স্পট এবং সঠিকভাবে সহজ)। কোনও ফাংশন কী করছে এবং আমি একটি সূক্ষ্ম, অপ্রত্যাশিত পার্শ্ব প্রতিক্রিয়া হারিয়েছি তা ভুল বুঝছিলাম না। আমি সাধারণ পরিবর্তন এবং সঠিক প্রোগ্রাম লেখার ক্ষেত্রে খুব সহজ সময় কাটাচ্ছিলাম।
এলআইএসপি-র পরে, আমার কাছে সরলতা ন্যূনতমতা, প্রতিসাম্যতা, নমনীয়তা, কম পার্শ্ব প্রতিক্রিয়া, কম তবে আরও নমনীয় ফাংশনগুলির সাথে হয়ে যায় যা অসীম বিভিন্ন উপায়ে একত্রিত হয়।
আমি মানসিকতার প্রশংসা করতে পেরেছি যে সকলের মধ্যে সবচেয়ে নির্ভরযোগ্য কোড এমন কোড যা অস্তিত্ব নেই। যদিও এটি কেবল একটি অশোধিত মেট্রিক, আমি কোডের পরিমাণের ভিত্তিতে অবিশ্বাস্যতার সম্ভাবনা দেখতে চাই to সর্বাধিক সিনট্যাক্টিক্যাল সুবিধাযুক্তি এবং পাঠযোগ্যতার সন্ধান করা একটি বৃহত ফ্যাক্টর দ্বারা সেই পরিমাণ বাড়ায়।
minimalism
আমার মধ্যে এমআইডিএসপি থাকা এমআইএসপি মানসিকতার সাথে, আমি মিনিমালিস্ট এপিআইগুলিকে পছন্দ করতে এসেছি। আমি কম তবে আরও নির্ভরযোগ্য, নমনীয় ফাংশন সহ একটি লাইব্রেরি পছন্দ করবো যা "সুবিধাজনক" সহায়কদের একটি নৌকা বোঝার প্রস্তাব দেয় এমনগুলির চেয়ে কম সুবিধাজনক এবং সম্ভাবনা কম পড়ার সম্ভাবনা রয়েছে যা এই কোডটি "পড়ার" পক্ষে সহজ করতে পারে তবে সম্ভাব্যভাবে ভ্রমণ করতে পারে অবিশ্বাস্যতা এবং বিস্ময়ের আরও সমস্যা যা এই হাজার হাজার ক্রিয়াকলাপগুলির মধ্যে একটি কী করে তা ভুল বোঝাবুঝির ফলে ঘটে।
নিরাপত্তা
এলআইএসপি সম্পর্কে আর একটি বিষয় ছিল সুরক্ষা। এটি ন্যূনতম পার্শ্ব প্রতিক্রিয়া এবং খাঁটি ফাংশনগুলিকে উত্সাহিত করেছিল এবং সেই স্থানে আমি নিজেকে আর সূক্ষ্ম ভুল করতে দেখিনি, যদিও ভাষায় পড়া এবং লেখার অসুবিধাগুলি আরও বেশি স্পষ্ট ভুল বৃদ্ধি পেয়েছিল আমি 10 সেকেন্ড পরে স্পষ্ট করতে পারি।
খাঁটি ফাংশন এবং অপরিবর্তনীয় রাষ্ট্রগুলি যখনই আমি এটির সামর্থ্য করি তা আমার পক্ষে বেশি পছন্দসই হয়ে যায়, এমনকি এর বাক্য বাক্য গঠন থাকলেও:
sword = sharpen(sword)
... মানব চিন্তাধারা থেকে একটু কম সরল এবং বিচ্ছিন্ন:
sharpen(sword)
পঠনযোগ্যতা ভি.এস. সরলতা
তবুও, এলআইএসপি সর্বাধিক "পঠনযোগ্য" ভাষা নয়। এটি কোডের একটি ছোট বিভাগে (সম্ভবত প্রতি লাইনে একাধিক মানব চিন্তাধারার) প্রচুর যুক্তি প্যাক করতে পারে। আমি "পাঠযোগ্যতা" এর জন্য প্রতি লাইনে একজন মানুষের চিন্তাকে আদর্শিকভাবে পছন্দ করি তবে এটি "সরলতা" এর জন্য অগত্যা নয়।
"সরল" এর এই ধরণের সংজ্ঞা সহ, কখনও কখনও "সরল" আসলে কিছুটা "পঠনযোগ্য" এর সাথে প্রতিযোগিতা করে। এটি ইন্টারফেস ডিজাইনের দৃষ্টিকোণ থেকে জিনিসগুলিকে আরও বিবেচনা করছে।
একটি সাধারণ ইন্টারফেসের অর্থ এটি ব্যবহারের জন্য আপনাকে আরও কম কিছু শিখতে হবে এবং এর ন্যূনতমতার ফলস্বরূপ সম্ভাব্যতর নির্ভরযোগ্যতা এবং কম গোট্যাচ রয়েছে। বিষয়টিতে একটি বিস্তৃত ডকুমেন্টেশনগুলি বইয়ের বিশাল পরিমাণের চেয়ে একটি পুস্তিকা ফিট করতে পারে। তবুও, এর জন্য আরও কিছু ঝাঁঝরি-কাজের প্রয়োজন হতে পারে এবং কম পাঠযোগ্য কোড পাওয়া যায়।
আমার কাছে "সরল" আমাদের বিস্তৃত স্তরে আমাদের সিস্টেমে কার্যকারিতা বোঝার দক্ষতার উন্নতি করে। আমার কাছে "পঠনযোগ্য" কোডের প্রতিটি ক্ষুদ্র রেখাটিকে প্রাকৃতিক ভাষা এবং চিন্তাভাবনার সাথে সংযুক্ত করার আমাদের দক্ষতা উন্নত করে এবং কোডের একটি লাইন কী করে তা আমাদের বোঝার গতি বাড়িয়ে দিতে পারে, বিশেষত যদি আমরা ভাষায় সাবলীল না হই।
রেজেক্স হ'ল আমি "অত্যন্ত সাধারণ" বলে মনে করি তার একটি উদাহরণ। এটি আমার ব্যক্তিগত স্বাদের জন্য "খুব সহজ এবং অপঠনযোগ্য"। এই চূড়ান্ততার মধ্যে আমার জন্য ভারসাম্যহীন আইন রয়েছে, তবুও রেইগেক্সের এলআইএসপি-এর মতো সরলতার গুণ যেমন আছে আমি এটি সংজ্ঞায়িত করেছি: ন্যূনতমতা, প্রতিসাম্যতা, অবিশ্বাস্য নমনীয়তা, নির্ভরযোগ্যতা ইত্যাদি me এতটা অপঠনযোগ্য হয়ে উঠেছে যেখানে আমি মনে করি না যে আমি কখনই এর প্রতি সাবলীল হয়ে উঠব না (আমার মস্তিষ্ক কেবল সেভাবে কাজ করে না এবং আমি এমন লোকদের প্রতি vyর্ষা করি যারা রেগেক্স কোড সাবলীলভাবে লিখতে পারে)।
যাইহোক, এটি আমার "সরলতা" এর সংজ্ঞা, এবং এটি "পাঠযোগ্যতা" থেকে সম্পূর্ণ স্বাধীন এবং এটি কখনও কখনও অন্যের সাথে হস্তক্ষেপও করে যা আরও বেশি "সিনট্যাক্টিক্যালি সুবিধাজনক" এবং পঠনযোগ্য তবে বড় লাইব্রেরি বা "সিনট্যাক্টিক্যালি" এর মধ্যে ভারসাম্যপূর্ণ কাজ করে অসুবিধাজনক ", কম পঠনযোগ্য, তবুও ছোট লাইব্রেরি। আমি সর্বদাই যথাযথ "বোঝার সুবিধার্থে" এবং সত্যিকারের "রক্ষণাবেক্ষণ" অগ্রাধিকারগুলি পরেরটির সাথে একত্রিত করার জন্য পেয়েছি, এমনকি পাঠ্যতা এবং আরও প্রাকৃতিক মানব সিনট্যাক্সের জন্য কিছুটা ব্যয়ে এমনকি ন্যূনতমবাদের প্রতি দৃ pre় অগ্রাধিকার সহ (তবে রেজেক্সের বিন্দুতে নয়) । YMMV।