যতক্ষণ না প্রত্যেকে ব্যয়, সুবিধা এবং ঝুঁকি নিয়ে পেট করতে পারে সেখানে আসলেই কোনও খারাপ কাজ নেই।
... ঠিকঠাকটি যথেষ্ট সহজ মনে হচ্ছে ... কোডটি প্যাচ করার জন্য
আপনার যখন কাজ করার দরকার হয় তখন নিখুঁত (তৃতীয় পক্ষের লাইব্রেরিটি হ'ল যা আপনি চান ঠিক তাই করা) যথেষ্ট পরিমাণে শত্রু yourself আমি বেশ কয়েকটি প্রকল্প করেছি যেখানে আমরা বাণিজ্যিক লাইব্রেরির জন্য সোর্স লাইসেন্স কিনেছি যাতে বিক্রেতার কাছে যাওয়ার আগে আমরা সমস্যাগুলি সমাধান করতে পারি।
... প্রতিবন্ধকরা এই ক্ষেত্রে তর্ক করতে চান যে এটি প্রায়শই একটি খারাপ ধারণা যে এটি ঝুঁকিপূর্ণ এবং একটি ঝামেলা জটিলতার পরিচয় দেয়।
আপনার অন্যের কোড বিচ্ছিন্নকরণ, সমস্যা চিহ্নিতকরণ এবং একটি সমাধান লিখতে পরিচালনা করার চপস না থাকলে এটি একটি খারাপ ধারণা। কোডটি অভ্যন্তরীণ বা তৃতীয় পক্ষের কিনা তা সত্য; পার্থক্য কেবলমাত্র এটি আপনার কোলে নেওয়ার আগে এটি একটি ঘনক্ষেত্রের উপরে ছড়িয়ে দেওয়া হয়েছিল বা বিল্ডিং প্রাচীর।
যদি আপনার প্রতিবন্ধকরা এই প্যাচটি না করার ব্যয়টি ওজন না করে সহজেই ধারণাটি ব্রাশ করছেন তবে তারা তাদের গৃহকর্মটি করছেন না। আপনার প্যাচটি বাগের দ্বারা প্রভাবিত এমন অনেকগুলি ইন-হাউস কোড রয়েছে যা আপনার প্যাচটি ঠিক করে দেবে, আপনাকে এটিকে পুরোপুরি ঠিকঠাকভাবে কাজ করতে হবে তা নিশ্চিত করতে আপনাকে এটির চারপাশে গিয়ে এটি পরিবর্তন করতে হবে এবং সমস্ত কিছু পুনরায় পরীক্ষা করতে হবে। তারপরে, আপনি কি কখনও প্যাকেজটিকে বাগ-ফিক্সড সংস্করণে আপগ্রেড করতে হবে, আপনাকে আপনার কাজের ক্ষেত্রগুলি সরিয়ে এবং পুনরায় পরীক্ষা করতে হবে। এটি করার ঝুঁকি রয়েছে যেমন, আপনার পরিবর্তিত কেস বা অপর্যাপ্ত পরীক্ষা অনুপস্থিত testing ব্যক্তিগতভাবে, যদি আমার উত্সটিতে কোনও বাগ ঠিক করার সুযোগ হয় তবে আমি ফ্লাই ওয়াটারের সাথে বাকী কোডটির চারপাশে তাড়া করার পরিবর্তে এটি করতাম এবং আশা করি আমি সবকিছু পেয়েছি।
... কোড পরিবর্তনটি আমাদের দ্বারা করা হয়েছিল ... এটি অবশ্যই আমাদের কোড বেসের অংশ হতে হবে ... আমাদের অবশ্যই এটি একটি নতুন প্রকল্প হিসাবে পরিচয় করিয়ে দিতে হবে এবং এটির স্বয়ংক্রিয় বিল্ডটিকে আমাদের বিল্ড প্রক্রিয়ায় অন্তর্ভুক্ত করতে হবে।
আপনি যদি কোনও প্যাচ করছেন, প্যাচটি আপনার নিজস্ব কোডের একটি অংশ, যার অর্থ এটি আপনাকে আপনার প্রক্রিয়ার অংশ হিসাবে তৈরি করতে হবে। এটি আপনার সিস্টেমে আপনার কোডটি 100% যুক্ত করার চেয়ে আলাদা নয়। তৃতীয় পক্ষের বিতরণটিকে স্যাক্রোস্যানেক্ট হিসাবে বিবেচনা করুন এবং এটিকে উত্স কোডের মতো মডিউলে রাখুন। আপনার লেখা কোনও প্যাচগুলি এটির সাথে পৃথক ফাইলে সংরক্ষণ করা হয় এবং বিল্ড প্রক্রিয়াটির অংশ হিসাবে প্রয়োগ করা হয়। আপনি সর্বদা নির্গত উত্স থেকে পরিষ্কার উত্স থেকে প্যাচড উত্সে যান এবং ঠিক কী চলছে তা দেখাতে পারেন। (কিছু লোক আনপ্যাক, হ্যান্ড-প্যাচ, রি-প্যাক এবং সংস্করণ নিয়ন্ত্রণে এটি সংরক্ষণ করে That's এটি খারাপ))
... আমরা তাদের সোর্স কন্ট্রোল রিপোজিটরি থেকে তাদের কোডটি আমাদের মধ্যে টানবো এবং আমরা কোনও কোড পরিবর্তনের পিছনে ইতিহাস হারাব ...
যদি আপনি তৃতীয় পক্ষের লাইব্রেরিটিকে তৃতীয় পক্ষের নির্ভরতা হিসাবে বিবেচনা করে থাকেন তবে আপনার সেই ইতিহাস শুরু করার দরকার নেই এবং আপনি কোনও কিছু হারাচ্ছেন না। আপনার যদি তৃতীয় পক্ষের সংগ্রহস্থলটিতে অবিচ্ছিন্ন অ্যাক্সেস থাকে তবে আপনি যা প্রয়োজন তা পরামর্শ করতে পারেন। তৃতীয় পক্ষের রিলিজগুলি নিরবচ্ছিন্ন ব্লবগুলির মতো আচরণ করা উচিত যা আপনি আপনার নিজের সিস্টেমে আনল্টারডে যাচাই করেন। আপনি যে রিলিজটি ব্যবহার করছেন এবং পরে প্রকাশের মধ্যে পরিবর্তনগুলির দিকে নজর রাখতে হলে আপনি এটি করতে পারেন এবং আপনার চাইলে পুরানো সংস্করণে প্যাচগুলি উপস্থিত করতে চান যা আপনি চান পরিবর্তনগুলি অন্তর্ভুক্ত করে।
এছাড়াও এটি এমন কিছুর মতো মনে হয় যা এত ছোট কোড পরিবর্তনের জন্য খুব জটিল that
যদি আপনার বিল্ড প্রক্রিয়াটি যথেষ্ট পরিশীলিত হয় তবে এটি যুক্ত করা আপনার নিজের কোড যুক্ত করার চেয়ে বেশি অসুবিধা হবে না। আনপ্যাক / প্যাচ / বিল্ড প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পৌঁছানোর পর্যায়ে পৌঁছাতে এখানে অল্প পরিমাণ শ্রম রয়েছে তবে এটি শেষ হয়ে গেলে এটি চিরতরে হয়ে যায়। এখন একটি বাগ থাকতে পারে তবে ভবিষ্যতে বিশটি থাকতে পারে। যদি সেখানে থাকে তবে আপনি আরও সুখী হবেন যে আপনি এখনকার সমস্ত কিছুকে সমর্থন করার জন্য ভিত্তি তৈরি করেছিলেন কারণ এটি পরবর্তী 19 টি আরও কম কাজ নিয়ে কাজ করবে।