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