প্রশ্নটি আসলে মেটা-প্রোগ্রামিং ঠিক আছে কিনা তা নিয়ে নয়, বরং দলের অন্যদের চেয়ে ভাল হওয়া ভাল কিনা সে সম্পর্কে তাই এখানে আমি কীভাবে এটি দেখছি সে সম্পর্কে কয়েকটি বিতর্কিত বিষয় ...
আমি সম্প্রতি একটি নতুন চাকরিতে চলে এসেছি যেখানে আমি একটি বৃহত্তর দলে কাজ করছি এবং এটি [মেটা-প্রোগ্রামিং] আমার কয়েকজন সহকর্মীকে চিন্তিত করে, কারণ তারা এটি বুঝতে পারে না।
তারা চিন্তিত যে আপনি তাদের চেয়ে আরও ভাল। এটা ভালো. আপনি নতুন বিশেষজ্ঞ হতে চলেছেন। আপনি কেবল তাদের স্থিতাবস্থা বিশ্বকে ধ্বংস করেছেন।
আমি সর্বদা ভাষাটির সম্পূর্ণ সম্ভাব্যতা অর্জনের চেষ্টা করি, তবে আমার সহকর্মীদের মধ্যে কিছু (সমস্ত না) বুঝতে পারে যে ঝুঁকি হিসাবে (কেউ কেউ পদ্ধতির অভ্যর্থনা জানায়)।
অবশ্যই, কেউ কারও চেয়ে কম দক্ষ হতে পছন্দ করে না, তাই তারা আপনাকে এমন কৌশলগুলি ব্যবহার করা থেকে বিরত করার চেষ্টা করছে যা তাদের পক্ষে জটিল। তারা হয় এটি উপলব্ধি করতে পারে না বা যাচ্ছে না, কারণ তারা এখন নিরাপদ বোধ করে।
আমি সম্মত হই যে কোড লিখতে সমস্যা যেটি দলের অন্য কেউ বুঝতে পারে না।
আমি না। আমি মনে করি এটি আপনার দক্ষতা দেখাচ্ছে।
আমার প্রশ্ন, কে সঠিক, আমি কি করব?
আপনি যে সর্বোত্তম কোডটি লিখতে পারেন তা লিখতে আপনার সমস্ত দক্ষতা ব্যবহার করা উচিত এবং যারা এটি বোঝে না তাদের পিছনে তাকান না। অন্যথায় আপনি তাদের স্তরে আটকে যাবেন এবং কেবল একটি সাধারণ কোডার হয়ে যাবেন। অন্যের চেয়ে ভাল হওয়া ভাল জিনিস এবং তাদের থেকে ভাল হওয়ার জন্য প্রচেষ্টা করা ভাল জিনিস। আপনি নতুন কিছু ব্যবহার করার বা ভিন্নভাবে কিছু করার চেষ্টা না করলে আপনি কোনও নতুন অভিজ্ঞতা অর্জন করতে পারবেন না।
আমি জানি আমি নিম্নমানের হতে চলেছি, তবে এটি দেখতে কেমন দেখাচ্ছে। দলের অন্যদের চেয়ে ভাল হওয়া কোনও অপরাধ নয় এবং আপনার দক্ষতা ব্যবহার করা কোনও অপরাধ নয়। এটি ঠিক যে প্রত্যেকে এটি স্বীকার করতে ভয় পায় ... কারণ তারা দক্ষ নয় এমন লোকের পক্ষে এবং এটি ঘৃণা করে যে নতুন লোকটি হঠাৎ করে এমন কিছু করতে পারে যা তারা করতে পারে না। যদি তারা চালাক হয় তবে তারা আপনাকে সাহায্য এবং পরামর্শ চাইবে এবং আপনার কোডটি বোধগম্য বলে সমালোচনা করবে না।
সম্পাদনা
এই প্রশ্নটি নিয়ে অনেক বিভ্রান্তি রয়েছে বলে মনে হচ্ছে। মন্তব্যগুলি দেখায় যেহেতু অনেকে মনে করেন এটি সাধারণ কোড পঠনযোগ্যতা সম্পর্কে। না এইটা না. এটি নির্দিষ্ট ভাষার বৈশিষ্ট্য / নির্মাণগুলি নিষিদ্ধ করা উচিত বা এড়ানো উচিত কিনা তা সম্পর্কে কিছু দলের সদস্যরা তাদের বোঝে না।
আমার উত্তর না । তাদের নিষেধ করা উচিত নয়। আপনি যদি কিছু নিষেধ করতে চান তবে আপনি কীভাবে তা করবেন? আপনার দলের সদস্যরা কী পারে এবং কী করতে পারে তা জানতে আপনাকে এক প্রকার প্রশ্নপত্র প্রস্তুত করতে হবে - বা বরং শিখতে চান না কারণ আমি মনে করি যে সমস্ত ল্যাঙ্গুগ বৈশিষ্ট্য কোথাও দরকারী তাই সেগুলি জানার এবং সেগুলি ব্যবহার করতে সক্ষম হওয়া সর্বদা ভাল এবং আপনি আরও ভাল কোড লিখতে পারেন জানেন। কোন বৈশিষ্ট্যটি প্রাথমিক, মধ্যবর্তী বা উন্নত বৈশিষ্ট্যগুলি নির্ধারণ করতে আপনার একটি স্কেলও প্রয়োজন।
এই জাতীয় নিষেধাজ্ঞাগুলি কীভাবে নির্ধারণ করা যায় তা প্রদর্শনের জন্য, আসুন একটি সহজ উদাহরণটি ধরুন: আপনাকে একটি সফটওয়্যার ইঞ্জিনিয়ার হিসাবে নিয়োগ দেওয়া হবে তবে আপনার ভবিষ্যত বস আপনাকে বলবে আপনাকে do/while
লুপ ব্যবহার করতে দেওয়া হবে না কারণ সেখানে কয়েকজন লোক রয়েছেন যে দলটি তাদের আগে কখনও ব্যবহার করেনি এবং তাও যাচ্ছে না কারণ তারা সবসময় for
লুপগুলি সর্বদা ব্যবহার করে যাওয়ায় তারা do/while
লুপগুলি বিভ্রান্তিকর খুঁজে পান ।
এখন আপনি ভাবছেন এটি বোকা এবং পাগল, তাই না? তবে তাই অন্যান্য বৈশিষ্ট্য বারণ করা হয়। কিছু পোপল তাদের ব্যবহার করতে পারে এবং অন্যরা তাদের শিখতে চায় না।
আপনি কেন আরও খারাপ কোড তৈরি করবেন যদি আপনি জানেন যে এমন কিছু আছে যা আপনাকে খুব কম পরিশ্রম করে একই কাজ করতে দেয় এবং এরপরে আরও বেশি পঠনযোগ্য ফলস্বরূপ কোড হয়?
আপনি যেহেতু কেবলমাত্র মৌলিক ভাষার বৈশিষ্ট্য বা উন্নততর ব্যবহার করেন তা বিবেচনাধীন নয়, আপনি উভয়টিকেই সমানভাবে অব্যক্ত এবং অনিচ্ছাকৃত কোড তৈরি করতে ব্যবহার করতে পারেন তাই এটি সম্পূর্ণ আলাদা একটি বিষয়।