আপনার যে দৃষ্টিকোণটি রয়েছে তা ব্যক্তিগত অভিজ্ঞতা থেকে ঝুঁকতে পারে। এটি স্বতঃস্ফূর্ত তথ্যগুলির পিছলে slাল যা পৃথকভাবে সঠিক, তবে ফলাফলটি অনুমান করা হয় না, যদিও এটি প্রথম নজরে সঠিক বলে মনে হয়।
- ক্ষুদ্র প্রকল্পগুলির চেয়ে ফ্রেমওয়ার্কগুলি বৃহত্তর।
- খারাপ অনুশীলন বৃহত্তর কোডবেসে মোকাবেলা করা উল্লেখযোগ্যভাবে শক্ত।
- একটি ছোট প্রকল্প তৈরির চেয়ে কাঠামো তৈরি করতে (গড়ে গড়ে) আরও দক্ষ বিকাশকারী প্রয়োজন।
- উন্নত বিকাশকারীরা আরও ভাল অনুশীলন (সোলিড) অনুসরণ করেন।
- ফলস্বরূপ, অবকাঠামো ভাল অনুশীলনের জন্য একটি উচ্চ প্রয়োজন আছে এবং বিকাশকারী যারা আরো ঘনিষ্ঠভাবে ভাল অভ্যাস সঙ্গে অভিজ্ঞ হয় দ্বারা নির্মিত হতে থাকে।
এর অর্থ হ'ল আপনি যখন ফ্রেমওয়ার্ক এবং আরও ছোট গ্রন্থাগারগুলির সাথে ইন্টারঅ্যাক্ট করেন, আপনি যে ভাল অনুশীলন কোডটি ব্যবহার করেন তার সাথে আরও বড় ফ্রেমওয়ার্কগুলি পাওয়া যায় be
এই ত্রুটি খুব সাধারণ, উদাহরণস্বরূপ আমার দ্বারা চিকিত্সা করা প্রতিটি ডাক্তার অহংকারী ছিল। অতএব আমি সিদ্ধান্তে পৌঁছেছি যে সমস্ত ডাক্তার অহংকারী। এই ভুলগুলি সর্বদা ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে একটি কম্বল অনুকরণ তৈরি করে ভোগ করে।
আপনার ক্ষেত্রে, এটি সম্ভবত আপনি বৃহত্তর ফ্রেমওয়ার্কগুলিতে ভাল অনুশীলনের অভিজ্ঞতা অর্জন করেছেন এবং ছোট লাইব্রেরিতে নয় possible আপনার ব্যক্তিগত পর্যবেক্ষণ ভুল নয়, তবে এটি বিবিধ প্রমাণ এবং সর্বজনীনভাবে প্রযোজ্য নয়।
প্রোগ্রামিংয়ের 2 টি পদ্ধতি - প্রয়োজনীয়তা এবং কেআইএসএস (টিপিকাল প্রোগ্রামিং) এর মাধ্যমে যা বলা হয় ঠিক তেমন তৈরি করা, বা খুব সাধারণ এবং পুনরায় ব্যবহারযোগ্য যুক্তি, পরিষেবাদি ইত্যাদি তৈরি করা যা অন্যান্য বিকাশকারীদের প্রয়োজন হতে পারে নমনীয়তা সরবরাহ করে (ফ্রেমওয়ার্ক প্রোগ্রামিং)
আপনি কিছুটা এখানে নিশ্চিত করছেন। একটি কাঠামো কী তা ভেবে দেখুন। এটি কোনও অ্যাপ্লিকেশন নয়। এটি একটি সাধারণীকরণ করা "টেম্পলেট" যা অন্যরা সব ধরণের প্রয়োগ করতে ব্যবহার করতে পারে। যৌক্তিকভাবে, এর অর্থ হল যে একটি কাঠামো প্রত্যেকের দ্বারা ব্যবহারযোগ্য হওয়ার জন্য আরও বিমূর্ত যুক্তিতে নির্মিত is
ফ্রেমওয়ার্ক নির্মাতারা শর্টকাট নিতে অক্ষম, কারণ পরবর্তী অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তাগুলি কী তা তারা জানে না। একটি কাঠামো তৈরি করা স্বভাবতই তাদের কোডটিকে অন্যদের জন্য ব্যবহারযোগ্য করে তোলার জন্য উত্সাহ দেয়।
অ্যাপ্লিকেশন বিল্ডারগুলির অবশ্য যৌক্তিক দক্ষতার সাথে আপস করার ক্ষমতা রয়েছে কারণ তারা কোনও পণ্য সরবরাহের দিকে মনোনিবেশ করেছেন। তাদের মূল লক্ষ্যটি কোডটির কাজ নয় বরং ব্যবহারকারীর অভিজ্ঞতা।
কাঠামোর জন্য, শেষ ব্যবহারকারীটি অন্য বিকাশকারী, যিনি আপনার কোডের সাথে ইন্টারঅ্যাক্ট করবেন। আপনার কোডের মানটি আপনার শেষ ব্যবহারকারীর কাছে গুরুত্বপূর্ণ।
একটি অ্যাপ্লিকেশনের জন্য, শেষ ব্যবহারকারী হলেন একটি অ বিকাশকারী, যিনি আপনার কোডের সাথে ইন্টারঅ্যাক্ট করবেন না। আপনার কোডের মান তাদের কাছে কোনও গুরুত্বের নয়।
ঠিক এই কারণেই একটি উন্নয়ন দলের স্থপতিরা প্রায়শই ভাল অনুশীলনের প্রয়োগকারী হিসাবে কাজ করে। তারা পণ্য সরবরাহ করা থেকে এক পদক্ষেপ অপসারণ করা হয়েছে, যার অর্থ তারা প্রয়োগটি নিজেই সরবরাহের দিকে মনোনিবেশ করার চেয়ে কোডটি উদ্দেশ্যমূলকভাবে দেখার প্রবণতা রাখে।
আপনি যদি বিমূর্ততার এই এন্ট্রি পয়েন্টগুলি যুক্ত করেন, আপনি কি সত্যিই ব্যবহারকারীদের প্রয়োজনীয়তাগুলি পূরণ করছেন, বা আপনি ভবিষ্যতের সংযোজনগুলি আরও সহজ করার জন্য আপনার বিদ্যমান ফ্রেমওয়ার্ক এবং টেক স্ট্যাকের শীর্ষে একটি কাঠামো তৈরি করছেন? কোন ক্ষেত্রে আপনি গ্রাহক, বা বিকাশকারীর স্বার্থ পরিবেশন করছেন?
এটি একটি আকর্ষণীয় বিষয় এবং এটি (আমার অভিজ্ঞতায়) মূল কারণ কেন লোকেরা এখনও ভাল অনুশীলন এড়ানো ন্যায়সঙ্গত করার চেষ্টা করে।
নীচের বিষয়গুলির সংক্ষিপ্তসার হিসাবে: ভাল অনুশীলন এড়িয়ে যাওয়া কেবলমাত্র তার পক্ষে যুক্তিযুক্ত হতে পারে যদি আপনার প্রয়োজনীয়তা (বর্তমানে পরিচিত) অপরিবর্তনীয় হয় এবং কোডবেজে কোনও পরিবর্তন / সংযোজন কখনও ঘটে না। স্পোলার সতর্কতা: এটি খুব কমই ঘটে।
উদাহরণস্বরূপ, যখন আমি একটি নির্দিষ্ট ফাইল প্রক্রিয়া করার জন্য 5 মিনিটের কনসোল অ্যাপ্লিকেশনটি লিখি, আমি ভাল অনুশীলন ব্যবহার করি না। কারণ আমি কেবল আজই অ্যাপ্লিকেশনটি ব্যবহার করতে যাচ্ছি, এবং ভবিষ্যতে এটি আপডেট করার দরকার নেই (আমার আবার একটি প্রয়োজন হলে আলাদা আলাদা অ্যাপ্লিকেশন লিখতে সহজ হবে)।
আসুন ধরা যাক আপনি 4 মাসের মধ্যেই কোনও অ্যাপ্লিকেশন তৈরি করতে পারেন এবং আপনি 6 সপ্তাহের মধ্যে সঠিকভাবে এটি তৈরি করতে পারেন। প্রথম দর্শনে, খুব সুন্দরভাবে বিল্ডিং এটি আরও ভাল মনে হয়। গ্রাহক তাদের আবেদন দ্রুত পান, এবং সংস্থাটি বিকাশকারী মজুরির জন্য কম সময় ব্যয় করতে হবে। জয় / জিত, তাই না?
যাইহোক, এটি সামনে চিন্তা না করেই নেওয়া সিদ্ধান্ত। কোডবেসের গুণমানের কারণে, খুব সহজেই নির্মিত একটিতে বড় পরিবর্তন করতে 2 সপ্তাহ সময় লাগবে, সঠিকভাবে তৈরির ক্ষেত্রে একই পরিবর্তন করতে 1 সপ্তাহ সময় লাগে। ভবিষ্যতে এর মধ্যে অনেকগুলি পরিবর্তন আসতে পারে।
তদুপরি, পরিবর্তনের জন্য অপ্রত্যাশিতভাবে আরও বেশি কাজের প্রয়োজন হয় যা আপনি প্রথমে ভাস্বরভাবে নির্মিত কোডবেসগুলিতে ভেবেছিলেন তার চেয়ে আপনার বিকাশের সময়টিকে দু'টির পরিবর্তে তিন সপ্তাহের দিকে ঠেলে দেবে।
এবং তারপরে বাগের শিকারে সময় নষ্ট করার প্রবণতাও রয়েছে। প্রকল্পগুলিতে প্রায়শই এটি ঘটে থাকে যেখানে সময়সীমাবদ্ধতা বা এটি বাস্তবায়নের নিছক অনিচ্ছার কারণে লগিং উপেক্ষা করা হয় কারণ আপনি অনুপস্থিতভাবে এই অনুমানের অধীনে কাজ করেন যে শেষ পণ্যটি প্রত্যাশা অনুযায়ী কাজ করবে।
এটি এমনকি একটি বড় আপডেট হতে হবে না। আমার বর্তমান নিয়োগকর্তায়, আমি বেশ কয়েকটি প্রকল্প দেখেছি যা দ্রুত এবং নোংরা নির্মিত হয়েছিল, এবং যখন ক্ষুদ্রতম বাগ / পরিবর্তন প্রয়োজনে কোনও ভুল সংঘর্ষের কারণে করা দরকার ছিল, যা মডিউল পরে রিফ্যাক্টর মডিউলের প্রয়োজনের একটি চেইন প্রতিক্রিয়া সৃষ্টি করে । এর মধ্যে কয়েকটি প্রকল্প তাদের প্রথম সংস্করণ প্রকাশের আগেই ভেঙে পড়েছিল (এবং কোনও কল্পনা ছাড়াই জবাবদিহি রেখেছিল)।
শর্টকাট সিদ্ধান্তগুলি (দ্রুত এবং নোংরা প্রোগ্রামিং) কেবলমাত্র তখনই উপকারী যদি আপনি সিদ্ধান্তগুলি নিশ্চিত করতে পারেন যে প্রয়োজনীয়তাগুলি ঠিক সঠিক এবং কখনই পরিবর্তনের প্রয়োজন হবে না। আমার অভিজ্ঞতায়, আমি কখনই এমন প্রকল্পে আসিনি যেখানে সত্য।
ভাল অনুশীলনে অতিরিক্ত সময় বিনিয়োগ করা ভবিষ্যতে বিনিয়োগ করে। ভবিষ্যতের বাগ এবং পরিবর্তনগুলি এত সহজ হবে যখন বিদ্যমান কোডবেসটি ভাল অনুশীলনের উপর নির্মিত হবে। এটি মাত্র দুই বা তিনটি পরিবর্তন করার পরে ইতিমধ্যে লভ্যাংশ প্রদান করবে।