নির্ভরতা নেওয়ার ভয়ে কীভাবে মোকাবেলা করা যায়


54

আমি যে দলটিতে রয়েছি তা এমন উপাদান তৈরি করে যা আমাদের প্ল্যাটফর্মের সাথে সংহত করতে সংস্থার অংশীদাররা ব্যবহার করতে পারে।

এই হিসাবে, আমি সম্মত (তৃতীয় পক্ষের) নির্ভরতা প্রবর্তন করার সময় আমাদের চরম যত্ন নেওয়া উচিত। বর্তমানে আমাদের কোনও তৃতীয় পক্ষের নির্ভরতা নেই এবং আমাদের ফ্রেমওয়ার্কের সর্বনিম্ন এপিআই স্তরে থাকতে হবে।

কিছু উদাহরণ:

  • আমরা ফ্রেমওয়ার্কের (। নেট স্ট্যান্ডার্ড) সর্বনিম্ন এপিআই স্তরে থাকতে বাধ্য হই। এর পিছনে যুক্তিটি হ'ল নতুন প্ল্যাটফর্মটি এমন একদিন আসতে পারে যা কেবলমাত্র খুব নীচের এপিআই স্তরকে সমর্থন করে।
  • আমরা (ডি) জেএসওএনকে সিরিয়ালকরণের জন্য নিজস্ব উপাদান প্রয়োগ করেছি এবং জেডাব্লুটিটির জন্যও এটি করার প্রক্রিয়াধীন। এটি ফ্রেমওয়ার্ক এপিআই এর উচ্চতর স্তরে উপলব্ধ।
  • আমরা স্ট্যান্ডার্ড লাইব্রেরির এইচটিটিপি কাঠামোর চারপাশে একটি মোড়ক কার্যকর করেছি, কারণ আমরা স্ট্যান্ডার্ড লাইব্রেরির HTTP প্রয়োগের উপর নির্ভরতা নিতে চাই না।
  • এক্সএমএল থেকে / ম্যাপিংয়ের সমস্ত কোডই আবার "একই সাথে" লেখা হয়।

আমি মনে করি আমরা এটিকে অনেকদূর নিয়ে যাচ্ছি। আমি কীভাবে এটি মোকাবেলা করব তা ভাবছি যেহেতু আমি মনে করি এটি আমাদের বেগকে ব্যাপকভাবে প্রভাবিত করে।


20
এটির (যেমন, বাহ্যিক প্রয়োজনীয়তা) কোনও যৌক্তিকতা রয়েছে বা এটি অজ্ঞতার কারণে করা হচ্ছে?
blrfl

6
কোডবেসের কিছু ছোট অংশ নিয়ে একটি পরীক্ষা করুন, একটি বিচ্ছিন্ন স্তর তৈরি করুন যা জেনেরিক লাইব্রেরি হওয়ার চেষ্টা করে না, তবে একটি বিমূর্ত ইন্টারফেসকে সংজ্ঞায়িত করে যা আপনার প্রয়োজনের মডেল করে; তারপরে আপনার নিজের প্রয়োগ এবং একটি তৃতীয় পক্ষের নির্ভরতা উভয়ই রেখে দিন এবং দুটি সংস্করণ কীভাবে কাজ করে / সম্পাদন করে তা তুলনা করুন। উপকারিতা এবং বিবেচনাগুলি বিবেচনা করুন, বাস্তবায়নগুলি অদলবদল করা কতটা সহজ (বা কতটা শক্ত) তা নির্ধারণ করুন, তারপরে কোনও সিদ্ধান্ত নিন। সংক্ষেপে, জিনিসগুলি তুলনামূলকভাবে কম ঝুঁকিপূর্ণ উপায়ে পরীক্ষা করুন, কী ঘটে তা দেখুন, তারপরে সিদ্ধান্ত নিন।
ফিলিপ মিলোভানোভিć

73
"বর্তমানে আমাদের কোনও তৃতীয় পক্ষের নির্ভরতা নেই" লোকেরা যখন দাবি করে তখন এটি আমাকে সর্বদা হাসায়। অবশ্যই তুমি করবে. আপনি আপনার নিজের সংকলক, আইডিই, কোনও মানক লাইব্রেরির প্রয়োগ করেন নি। আপনি অপ্রত্যক্ষভাবে (বা প্রত্যক্ষভাবে) ব্যবহার করেন এমন কোনও শার্প অবজেক্ট লিব লিখেনি। আপনি কীভাবে তৃতীয় পক্ষের সফ্টওয়্যার এবং লাইব্রেরিগুলির উপর নির্ভরশীল তা বুঝতে পারলে আপনি "নির্ভরতা খারাপ" ধারণাটি ফেলে দিতে পারেন এবং চাকাটি পুনরায় আবিষ্কার না করে উপভোগ করতে পারেন। আমি কেবলমাত্র আপনার নির্ভরতাগুলি পতাকাঙ্কিত করব এবং তারপরে তারা কেন গ্রহণযোগ্য তা জিজ্ঞাসা করব, তবে জসন পার্সিং হয় না।
ইউকেমনকি

8
এটি বলেছে যে বিকল্প ড্র ব্যাক রয়েছে, যেমন শেষ না হওয়া প্রকল্পগুলি। তবে এটি সফ্টওয়্যার কাজ এবং কর্মসংস্থান প্রচার করে না :)
মার্শাল ক্র্যাফট

5
আপনি ঠিক বলেছেন যে আপনি পণ্য সফ্টওয়্যার পুনরায় উদ্ভাবন করে প্রচেষ্টা নষ্ট করছেন। আপনি ভুল যে এটি "সমস্ত নির্ভরতা এড়ানো" এর কাছাকাছি কোথাও নেই। মাইক্রোসফট এ এক্সেল দল একবার তাদের নিজস্ব সি কম্পাইলার লিখেছেন সি দলের নির্ভরশীলতার গ্রহণ এড়াতে মাইক্রোসফট এ । আপনি অপারেটিং সিস্টেম, উচ্চ-স্তরের ফ্রেমওয়ার্ক ইত্যাদির উপর প্রচুর নির্ভরতা নিচ্ছেন।
এরিক লিপার্ট

উত্তর:


94

... আমরা ফ্রেমওয়ার্কের (। নেট স্ট্যান্ডার্ড) সর্বনিম্ন এপিআই স্তরে থাকতে বাধ্য হই ...

এটি আমার কাছে এই সত্যটি তুলে ধরে যে, আপনি কেবল নিজেরাই সম্ভাব্য মাত্রাতিরিক্ত পরিমাণে সীমাবদ্ধ রাখছেন না, আপনি আপনার পদ্ধতির সাথে খারাপ অভ্যাসের দিকেও যাচ্ছেন।

.NET স্ট্যান্ডার্ড নয় এবং কখনও " ফ্রেমওয়ার্কের সর্বনিম্ন এপিআই স্তর " হবে না । উইন্ডোজ ফোন এবং সিলভারলাইটকে টার্গেট করে এমন একটি পোর্টেবল ক্লাস লাইব্রেরি তৈরি করে .NET- র জন্য সর্বাধিক সীমাবদ্ধ API গুলি অর্জন করা হয় set

.NET স্ট্যান্ডার্ডের আপনি যে সংস্করণটিকে লক্ষ্য করছেন তার উপর নির্ভর করে আপনি .NET ফ্রেমওয়ার্ক ,। নেট কোর , মনো এবং Xamarin এর সাথে সামঞ্জস্যপূর্ণ এমন অনেকগুলি API এর সমৃদ্ধ সেটটি শেষ করতে পারেন । এবং অনেকগুলি তৃতীয় পক্ষের লাইব্রেরি রয়েছে যা .NET স্ট্যান্ডার্ড সামঞ্জস্যপূর্ণ যা এই সমস্ত প্ল্যাটফর্মগুলিতে কাজ করবে।

তারপরে .NET স্ট্যান্ডার্ড 2.1 রয়েছে, যা 2019 এর শরত্কালে প্রকাশিত হতে পারে It এটি নেট নেট, মনো এবং জ্যামারিন সমর্থন করবে। এটি NET ফ্রেমওয়ার্কের কোনও সংস্করণ দ্বারা কমপক্ষে আগামীর ভবিষ্যতের জন্য সমর্থিত হবে না এবং সম্ভবত সর্বদা সম্ভবত। সুতরাং অদূর ভবিষ্যতে, " ফ্রেমওয়ার্কের সর্বনিম্ন এপিআই স্তর " হওয়া থেকে দূরে , নেট স্ট্যান্ডার্ড ফ্রেমওয়ার্কটিকে ছাড়িয়ে দেবে এবং এপিআইগুলি থাকবে যা পরবর্তীকালে সমর্থিত নয়।

সুতরাং " এর পিছনে যুক্তিটি হ'ল খুব সতর্ক থাকুন যে কোনও নতুন প্ল্যাটফর্মটি এমন একদিন উপস্থিত হতে পারে যা কেবলমাত্র খুব নীচু এপিআই স্তরকে সমর্থন করে " কারণ সম্ভবত নতুন প্ল্যাটফর্মগুলি পুরানো কাঠামোর চেয়ে উচ্চতর স্তরের এপিআই সমর্থন করবে।

তারপরে তৃতীয় পক্ষের লাইব্রেরিগুলির সমস্যা আছে। উদাহরণস্বরূপ JSON.NET .NET স্ট্যান্ডার্ডের সাথে সামঞ্জস্যপূর্ণ। .NET স্ট্যান্ডার্ডের সাথে সামঞ্জস্যপূর্ণ যে কোনও গ্রন্থাগার গ্যারান্টিযুক্ত - এপিআই-ভিত্তিক - .NET স্ট্যান্ডার্ডের যে সংস্করণটির সাথে সামঞ্জস্যপূর্ণ NET প্রয়োগের সাথে কাজ করে। সুতরাং আপনি এটি ব্যবহার না করে এবং আপনার জেএসএন লাইব্রেরি তৈরি করে কোনও অতিরিক্ত সামঞ্জস্যতা অর্জন করতে পারেন না। আপনি কেবল নিজের জন্য আরও কাজ তৈরি করুন এবং আপনার সংস্থার জন্য অপ্রয়োজনীয় খরচ বহন করুন।

হ্যাঁ, আপনি অবশ্যই আমার দৃষ্টিতে এটিকে অনেক দূরে নিয়ে যাচ্ছেন।


16
"আপনি কেবল নিজের জন্য আরও কাজ তৈরি করেন এবং আপনার সংস্থার জন্য অপ্রয়োজনীয় খরচ বহন করেন।" - এবং সুরক্ষা দায়বদ্ধতা। আপনি যদি কোনও পুনরাবৃত্ত বস্তু দেন তবে কী আপনার জাসন এনকোডারটিকে স্ট্যাকের ওভারফ্লো দিয়ে ক্রাশ করা হচ্ছে? আপনার পার্সার হ্যান্ডেলগুলি পালিয়ে যাওয়া অক্ষরগুলি সঠিকভাবে কার্যকর করেছে? এটি কি অপরিশোধিত অক্ষরগুলির উচিত তা প্রত্যাখ্যান করে? আনপায়ার্ড সারোগেট চরিত্রগুলি সম্পর্কে কীভাবে? যখন JSON 2 ^ 64 এর চেয়ে বড় সংখ্যাকে এনকোড করে তখন কি এটি উপচে পড়ে? অথবা এটি কেবলমাত্র evalকিছু সংবেদনশীল চেক সহ একটি ক্ষুদ্র মোড়ক যা সহজেই বাইপাস করা যায়?
জন ডিভোরাক

4
"উইন্ডোজ ফোন এবং সিলভারলাইটকে টার্গেট করে এমন একটি পোর্টেবল ক্লাস লাইব্রেরি তৈরি করে .NET- র জন্য এপিআইয়ের সর্বাধিক সীমাবদ্ধ সেট অর্জন করা যায়।" আমি একটি অঙ্গ প্রত্যাহার করব এবং দাবি করব যে সেই উপসেটে কমপক্ষে এমন কিছু এপিআই রয়েছে যা বর্তমানে উপস্থিত সমস্ত সম্ভাব্য প্রয়োগগুলি দ্বারা সমর্থিত নয় (এবং উইনফোন বা সিলভারনাইট আর কেউ মাইক্রোসফ্টও নয়) about একটি আধুনিক কাঠামোর লক্ষ্য হিসাবে। নেট স্ট্যান্ডার্ড ২.০ ব্যবহার করা অত্যন্ত বুদ্ধিমান এবং বিশেষত সীমাবদ্ধ নয় বলে মনে হয়। ২.১ এ আপডেট করা অন্যরকম গল্প তবে তারা এমনটি করত এমন কোনও ইঙ্গিত নেই।
ভু

ভবিষ্যতের প্ল্যাটফর্মগুলি সম্ভবত কমের চেয়ে বেশি সমর্থন করে, যা ঘটতে পারে তার সবকিছুর জন্য বিকাশ অবিশ্বাস্যরকম ব্যয়বহুল (এবং আপনি যে কোনওভাবেই মিস করতে পারেন)। পরিবর্তে, চাকা reinventing ছাড়া উন্নয়নশীল হবে কিছু নতুন অবস্থা থেকে অভিযোজিত যখন প্রয়োজন হয় যে খরচ যাচ্ছে চেয়ে বেশি সময় বাঁচাতে।
জ্যাস্পার

51

আমরা ফ্রেমওয়ার্কের (। নেট স্ট্যান্ডার্ড) সর্বনিম্ন এপিআই স্তরে থাকতে বাধ্য হই। এর পিছনে যুক্তিটি হ'ল নতুন প্ল্যাটফর্মটি এমন একদিন আসতে পারে যা কেবলমাত্র খুব নীচের এপিআই স্তরকে সমর্থন করে।

এখানে যুক্তি বরং পিছনের দিকে। পুরানো, নিম্ন API স্তরেরগুলি নতুনগুলির চেয়ে অপ্রচলিত এবং অসমর্থিত হওয়ার সম্ভাবনা বেশি। যদিও আমি সম্মত হই যে "কাটিয়া প্রান্ত" এর পিছনে স্বাচ্ছন্দ্য বজায় রাখা আপনার দৃশ্যের যে দৃশ্যের সাথে সামঞ্জস্যের যুক্তিসঙ্গত স্তর রয়েছে তা নিশ্চিত করার জন্য বোধগম্য, কখনই এগিয়ে যাওয়া চরমের বাইরে নয়।

আমরা (ডি) জেএসওএনকে সিরিয়ালকরণের জন্য নিজস্ব উপাদান প্রয়োগ করেছি এবং জেডব্লিউটি-তেও এটি করার প্রক্রিয়াধীন। এটি ফ্রেমওয়ার্ক এপিআই এর উচ্চতর স্তরে উপলব্ধ। আমরা স্ট্যান্ডার্ড লাইব্রেরির এইচটিটিপি কাঠামোর চারপাশে একটি মোড়ক কার্যকর করেছি কারণ আমরা স্ট্যান্ডার্ড লাইব্রেরির এইচটিটিপি নিষিদ্ধকরণের উপর নির্ভরতা নিতে চাই না। এক্সএমএল থেকে / ম্যাপিংয়ের সমস্ত কোডই আবার "একই সাথে" লেখা হয়।

এটাই পাগলামি । এমনকি যদি আপনি যে কোনও কারণেই স্ট্যান্ডার্ড লাইব্রেরি ফাংশন ব্যবহার করতে না চান তবে ওপেন সোর্স লাইব্রেরি বাণিজ্যিকভাবে সামঞ্জস্যপূর্ণ লাইসেন্সগুলির সাথে বিদ্যমান যা উপরোক্ত সমস্ত কিছু করে। এগুলি ইতিমধ্যে রচনা করা হয়েছে, কার্যকারিতা, সুরক্ষা এবং এপিআই নকশার দৃষ্টিকোণ থেকে ব্যাপকভাবে পরীক্ষা করা হয়েছে এবং আরও অনেক প্রকল্পে ব্যাপকভাবে ব্যবহৃত হয়েছে।

যদি সবচেয়ে খারাপটি ঘটে এবং সেই প্রকল্পটি চলে যায়, বা রক্ষণাবেক্ষণ বন্ধ করে দেয় তবে লাইব্রেরিটি যেভাবেই তৈরি করার কোড পেয়েছে, এবং আপনি এটি রক্ষণাবেক্ষণের জন্য কাউকে নিয়োগ দিয়েছেন। আর তুমি সম্ভবত করছি এখনও অনেক ভালো অবস্থানে চেয়ে যদি আপনার নিজস্ব ঘূর্ণিত চাই, যেহেতু বাস্তবে আপনি আরো পরীক্ষিত হবে, ক্লিনার, আরো রক্ষণীয় কোড দেখাশোনা করতে।

প্রকল্পটি রক্ষণাবেক্ষণের মতো আরও অনেক দৃশ্যে এবং সেই লাইব্রেরিতে বাগ বা শোষণগুলি পাওয়া যায়, আপনি সেগুলি সম্পর্কে জানবেন তাই এ সম্পর্কে কিছু করতে পারেন - যেমন বিনা মূল্যে নতুন সংস্করণে আপগ্রেড করা বা আপনার সংস্করণটিকে প্যাচ করা as ঠিক আছে যদি আপনি একটি অনুলিপি নিয়েছেন।


3
এবং না পারলেও অন্য লাইব্রেরিতে স্যুইচ করা আপনার নিজের রোলিংয়ের চেয়ে এখনও সহজ এবং ভাল।
মনিকার সাথে লাইটনেস রেস

5
দুর্দান্ত পয়েন্ট যে নিম্ন স্তরের জিনিসগুলি দ্রুত মারা যায়। বিমূর্ততা প্রতিষ্ঠার পুরো বিষয়টি এটি।
মনিকার সাথে লাইটনেস রেস

"পুরানো, নিম্নতম এপিআই স্তরগুলি নতুনগুলির চেয়ে অপ্রচলিত এবং অসমর্থিত হওয়ার সম্ভাবনা বেশি"। তাই না? নেটস্ট্যান্ডার্ডগুলি যতটা আমি জানি (একেবারে 2.0 এর 1.3 + X) একে অপরের উপরে নির্মিত। এছাড়াও স্ট্যান্ডার্ডগুলি সহজভাবে .. মানক, বাস্তবায়ন নয়। কোনও মানটি অসমর্থিত হয়ে ওঠার বিষয়ে কথা বলার কোনও মানে হয় না, সেই মানটির সুনির্দিষ্ট সুনির্দিষ্ট বাস্তবায়ন ভবিষ্যতেও হতে পারে (তবে এটি কেন উদ্বেগ নয় তা পূর্ববর্তী বিষয়টি দেখুন)। যদি আপনার লাইব্রেরিতে নেট স্ট্যান্ডার্ড ১.৩ এর বাইরে কিছু প্রয়োজন না হয় তবে এটি এটিকে ২.০ এ পরিবর্তন করার কোনও কারণ নেই
ভু

11

সামগ্রিকভাবে এই জিনিসগুলি আপনার গ্রাহকদের জন্য ভাল। এমনকি কোনও জনপ্রিয় ওপেন সোর্স লাইব্রেরিও কোনও কারণে তাদের পক্ষে ব্যবহার করা অসম্ভব হতে পারে।

উদাহরণস্বরূপ, তারা ওপেন সোর্স পণ্য ব্যবহার না করার প্রতিশ্রুতি দিয়ে তাদের গ্রাহকদের সাথে একটি চুক্তি স্বাক্ষর করতে পারে।

যাইহোক, আপনি চিহ্নিত হিসাবে, এই বৈশিষ্ট্যগুলি বিনা খরচ হয় না।

  • বাজার করার সময়
  • প্যাকেজের আকার
  • কর্মক্ষমতা

আমি এই ডাউনসাইডগুলি উত্থাপন করব এবং গ্রাহকদের সাথে কথা বলব যাতে তারা আপনাকে যে উপযুক্ত সামঞ্জস্যতা দিচ্ছে তার উচ্চ স্তরের প্রয়োজন কিনা find

যদি সমস্ত গ্রাহক ইতিমধ্যে উদাহরণস্বরূপ জসন.এনইটি ব্যবহার করেন, তবে এটি আপনার নিজের ডিসরিয়ালাইজেশন কোডের পরিবর্তে আপনার পণ্যটিতে ব্যবহার করে এর আকার হ্রাস করে এবং উন্নত করে।

আপনি যদি আপনার পণ্যের দ্বিতীয় সংস্করণটি উপস্থাপন করেন তবে এটি তৃতীয় পক্ষের লাইব্রেরি এবং সেইসাথে একটি সামঞ্জস্যপূর্ণ যা আপনি উভয়ই আপটাকে বিচার করতে পারেন uses গ্রাহকরা কি সামান্য আগে সাম্প্রতিক বৈশিষ্ট্যগুলি পেতে তৃতীয় পক্ষগুলি ব্যবহার করবেন, বা 'সামঞ্জস্যপূর্ণ' সংস্করণটির সাথে লেগে থাকবেন?


11
হ্যাঁ আমি স্পষ্টভাবে একমত, এবং আমি আপনার তালিকায় "সুরক্ষা" যুক্ত করব। কিছুটা সম্ভাবনা রয়েছে যা আপনি আপনার কোডে দুর্বলতার পরিচয় দিতে পারেন, বিশেষত জেএসএন / জেডব্লিউটি এর মতো জিনিসগুলির সাথে, ভালভাবে পরীক্ষা করা ফ্রেমওয়ার্ক এবং অবশ্যই স্ট্যান্ডার্ড লাইব্রেরির তুলনায়।
বার্টাস

হ্যাঁ, তালিকা তৈরি করা শক্ত কারণ স্পষ্টতই সুরক্ষা এবং পারফরম্যান্সের মতো জিনিস উভয় পথে যেতে পারে। তবে সমাপ্ত বৈশিষ্ট্যগুলি এবং বীমা ব্যবস্থার অভ্যন্তরীণ উপাদানগুলি সম্পূর্ণরূপে বৈশিষ্ট্যযুক্ত / বোঝার মধ্যে আগ্রহের একটি সুস্পষ্ট দ্বন্দ্ব রয়েছে
ইওয়ান

12
"তারা ওপেন সোর্স পণ্য ব্যবহার না করার প্রতিশ্রুতি দিয়ে তাদের গ্রাহকদের সাথে একটি চুক্তি স্বাক্ষর করতে পারে" - তারা .NET স্ট্যান্ডার্ড ব্যবহার করছে, যা ওপেন সোর্স। আপনি যখন ওপেন সোর্স ফ্রেমওয়ার্কটিতে আপনার পুরো পণ্যটি বেস করছেন তখন সেই চুক্তিতে স্বাক্ষর করা খারাপ ধারণা।
স্টিফেন

এবং এখনও লোকেরা এটি করে
ইভান

7

সংক্ষিপ্ত উত্তরটি হ'ল আপনার তৃতীয় পক্ষের নির্ভরতা প্রবর্তন করা উচিত। আপনার পরবর্তী স্ট্যান্ড আপ মিটিংয়ের সময়, সবাইকে বলুন যে কাজের পরের সপ্তাহে বছরের পর বছরগুলি তাদের মধ্যে সবচেয়ে মজাদার হবে - তারা জেএসএন এবং এক্সএমএল উপাদানগুলি ওপেন সোর্স, স্ট্যান্ডার্ড লাইব্রেরি সমাধানগুলির সাথে প্রতিস্থাপন করবে। সবাইকে বলুন যে তাদের কাছে জেএসএন উপাদানটি প্রতিস্থাপনের জন্য তিন দিন রয়েছে। এটি সম্পন্ন হওয়ার পরে উদযাপন করুন। একটি পার্টি আছে। এটি উদযাপন মূল্যবান।


2
এটি গালে জিহ্বা হতে পারে তবে এটি অবাস্তব নয়। আমি এমন একটি সংস্থায় যোগ দিয়েছি যেখানে একজন "সিনিয়র" দেব (কেবলমাত্র শিক্ষার দ্বারা সিনিয়র) একটি রাষ্ট্রীয় মেশিন লাইব্রেরি লেখার সাথে একজন জুনিয়র দেবকে দায়িত্ব দিয়েছিলেন। এটিতে পাঁচটি বিকাশকারী-মাস ছিল এবং এটি এখনও বগী ছিল, তাই আমি এটিকে ছিঁড়ে ফেলেছি এবং কয়েক দিনের মধ্যে এটি একটি টার্নকি সমাধান দিয়ে প্রতিস্থাপন করেছি।
টিকেেকে

0

মূলত এটি সমস্ত প্রচেষ্টা বনাম ঝুঁকি থেকে নেমে আসে।

অতিরিক্ত নির্ভরতা যুক্ত করে বা আপনার কাঠামো আপডেট করে বা উচ্চ স্তরের এপিআই ব্যবহার করে, আপনি আপনার প্রচেষ্টা কম করেন তবে আপনি ঝুঁকি গ্রহণ করেন। সুতরাং আমি একটি সুইট বিশ্লেষণ করার পরামর্শ দেব ।

  • শক্তি: কম প্রচেষ্টা, কারণ আপনার নিজের কোডিং করতে হবে না।
  • দুর্বলতা: এটি কোনও হস্তশিল্পের সমাধান হিসাবে আপনার বিশেষ প্রয়োজনের জন্য নকশা করা কাস্টম নয়।
  • সুযোগ: বাজারে সময় কম হয়। আপনি বাইরের উন্নয়ন থেকে লাভ করতে পারেন।
  • হুমকি: আপনি অতিরিক্ত নির্ভরতা সহ গ্রাহকদের বিরক্ত করতে পারেন।

আপনি দেখতে পাচ্ছেন যে কোনও হস্তশিল্প সমাধান সমাধানের জন্য অতিরিক্ত প্রচেষ্টা আপনার হুমকি হ্রাস করার জন্য একটি বিনিয়োগ an এখন আপনি কৌশলগত সিদ্ধান্ত নিতে পারেন।


-2

আপনার উপাদান লাইব্রেরিগুলিকে একটি "মূল" সেটে বিভক্ত করুন, যার কোনও নির্ভরতা নেই (মূলত আপনি এখন যা করছেন) এবং একটি "প্রচলিত" সেট, যা আপনার "কোর" এবং তৃতীয় পক্ষের লাইব্রেরির উপর নির্ভরশীলতা রয়েছে।

যদি কেউ কেবল "কোর" কার্যকারিতা চায় তবে তারা তা রাখতে পারে।

যদি কেউ "কমন" কার্যকারিতা চায় তবে তারা তা রাখতে পারে।

এবং আপনি "কোর" বনাম "কমন" কী পরিচালনা করতে পারেন। আপনি "সাধারণ" তে আরও দ্রুত কার্যকারিতা যুক্ত করতে পারেন, এবং / যখন এটি নিজের বাস্তবায়ন সরবরাহ করার জন্য বোধ করে তখন তা আপনার নিজের "কোর" বাস্তবায়নে নিয়ে যেতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.