আমি কীভাবে "নির্ভরতা পরিচালনার" জন্য একটি মামলা করতে পারি?


9

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

  • ভাগ করা মডিউলগুলি বিতরণ এবং আমদানি করার প্রক্রিয়াটি সহজ করে, বিশেষত সংস্করণ আপগ্রেড।
  • ভাগ করে নেওয়া মডিউলগুলির নির্ভরতাগুলি অবশ্যই সঠিকভাবে ডকুমেন্ট হওয়া দরকার Requ
  • উত্স নিয়ন্ত্রণ, দ্রুতগতি এবং সরলকরণের চেকআউটগুলি / চেক ইনগুলি থেকে ভাগ করা মডিউলগুলি সরিয়ে দেয় (যখন আপনার 20+ লাইব্রেরির সাথে অ্যাপ্লিকেশন থাকে এটি আসল ফ্যাক্টর)
  • আপনার সংস্থায় তৃতীয় পক্ষের libs কী ব্যবহৃত হয় সে সম্পর্কে আরও নিয়ন্ত্রণ বা সচেতনতার মঞ্জুরি দেয়।

আমি কি অনুপস্থিত আছে যে কোন বিক্রয় পয়েন্ট আছে? উন্নতি মেট্রিক্স দেওয়া কি কোন গবেষণা বা নিবন্ধ আছে?


1
আমি মনে করি আপনি এটি পেরেক দিয়েছিলেন।
মাইক পার্টরিজ

4
আমি ভাঙা মাভেন সেটআপগুলিতে নষ্ট হওয়া আমার জীবনের বেশ কয়েক ঘন্টা কখনই ফিরে পাব না। আমি দৃ convinced় বিশ্বাসী হয়েছি যে ভাল উদ্দেশ্য নির্বিশেষে, একটি বৃহত কর্পসে, এটি অবশেষে এমন এক অনিচ্ছাকৃত জগাখিচায় পরিণত হবে যা আপনার ফাঁপা শেল না হওয়া অবধি আপনার জীবন কেড়ে নেবে।
মিস্টারফক্স

1
@ সুসলিক কে "ভাঙ্গা মাভেন" সেটআপ কী তা বোঝানোর জন্য কেয়ার?
অ্যান্ড্রু টি ফিনেল

1
@ অ্যান্ড্রুফিনেল বলুন যে 5 টি গ্রুপ এমন প্রকল্পে কাজ করছে যা আপনার বিল্ড সংকলন করার জন্য আপনাকে টানতে হবে এবং দুর্বল সমন্বয়ের কারণে প্রত্যেকে লাইব্রেরির বিভিন্ন সংস্করণের উপর নির্ভর করে শেষ হয়। তারপরে দেখা যাচ্ছে যে প্রকল্পগুলির মধ্যে একটি এখনও মুক্তি পাওয়ার কথা নয় তবে (কাউকে মাভেন বলেনি!) আপনার নির্ভরতা আপনার সন্তুষ্ট করতে হবে। এটি ঘটতে 'অনুমিত' নয়, তবে স্বয়ংক্রিয় রেজোলিউশন এটিকে খুব সহজ করে তুলেছে। প্রত্যেকের যদি এসএনএন-র বজায় রাখার জন্য একটি / লিবিস সাহস থাকে তবে এটি জিনিসগুলি হাতছাড়া হওয়ার আগে লোকেরা থামাতে এবং প্রশ্ন জিজ্ঞাসা করতে বাধ্য করেছিল।
মিঃফক্স

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

উত্তর:


8

আমি ইতিবাচক উপর 100% নিশ্চিত নই। এখানে কয়েকটি নেতিবাচক

  1. আপনি প্রায়শই তৃতীয় পক্ষের সার্ভারগুলি / শেষ পয়েন্টগুলিতে নির্ভরতা যুক্ত করে শেষ করেন যা স্থিতিশীল নাও হতে পারে।

    আমি কিছুটা নির্ভরতার রেপো মুছে ফেলা বা সরানো হয়েছে তা বোভারের সাথে ঘটেছিল। সুতরাং একটি নতুন দেব বরাবর আসে, আমার রেপোগুলি টাইপ করে bower installএবং অ্যাক্সেসযোগ্য रिपোর জন্য ত্রুটি পায়। পরিবর্তে যদি আমি আমার রেপোতে তৃতীয় পক্ষের কোডটি যাচাই করে থাকি তবে সমস্যাটি অদৃশ্য হয়ে যায়।

    এটি আপনি যেমন চালাবেন এমন একটি সার্ভারে থাকা অনুলিপিগুলি থেকে ডিপগুলি টানছেন বলে ওপি পরামর্শ দিলে এটি সমাধান হয়ে যায়।

  2. Noobs জন্য কঠিন।

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

    1. গিথুব থেকে জিপো ডাউনলোড করুন (লক্ষ্য করুন এটি গিথুবের প্রতিটি রেপোর ডানদিকে রয়েছে। কারণ তারা গিট জানেন না)
    2. নোড ডাউনলোড এবং ইনস্টল করুন (যাতে আমরা বোর ইনস্টল করতে এনপিএম চালাতে পারি)
    3. গিট বা এমএসএসজিট ইনস্টল করুন (কারণ বোরের এটি প্রয়োজন এবং এটি অনেক শিক্ষার্থীর মেশিনে ইনস্টল করা হয়নি)
    4. বোর ইনস্টল করুন ( npm install -g bower)
    5. bower install (অবশেষে আমাদের নির্ভরতা পেতে)

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

  3. টানার সময় এটি আরও একটি পদক্ষেপ যুক্ত করে।

    এটি অনেকবার ঘটেছিল আমি একটি করি git pull origin masterএবং তারপরে আমার কোডটি পরীক্ষা করি এবং bower install সর্বশেষতম ডিপগুলি পেতে আমার টাইপ করতে হবে তা মনে রাখতে 5 থেকে 10 মিনিট সময় লাগে । আমি নিশ্চিত যে এটি বেশ কয়েকটি পুল স্ক্রিপ্ট হুক দিয়ে সহজেই সমাধান করা হয়েছে।

  4. এটি গিটের শাখা শক্ত করে তোলে

    যদি 2 টি শাখার আলাদা আলাদা ডিপ থাকে তবে আপনি একধরণের স্ক্রুযুক্ত। আমি মনে করি আপনি bower installপ্রতিটি পরে টাইপ করতে পারেন git checkout। গতির জন্য এত।

আপনার ইতিবাচক হিসাবে আমি মনে করি তাদের প্রত্যেকের পাল্টা উদাহরণ রয়েছে are

ভাগ করা মডিউলগুলি বিতরণ এবং আমদানি করার প্রক্রিয়াটি সহজ করে, বিশেষত সংস্করণ আপগ্রেড।

বনাম কি? এটি অবশ্যই বিতরণ করা সহজ নয়। ২০ এর পরিবর্তে একটি রেপো টানানো সহজ নয় এবং এটি ব্যর্থ হওয়ার সম্ভাবনা বেশি। উপরে # 1 দেখুন

উত্স নিয়ন্ত্রণ, দ্রুতগতি এবং সরলকরণের চেকআউটগুলি / চেক ইনগুলি থেকে ভাগ করা মডিউলগুলি সরিয়ে দেয় (যখন আপনার 20+ লাইব্রেরির সাথে অ্যাপ্লিকেশন থাকে এটি আসল ফ্যাক্টর)।

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

আপনি তাদের রেপো আলাদাভাবে ক্লোন করে এটি সমাধান করতে পারেন এবং তারপরে আপনি আপনার প্রকল্পের প্রতিলিপিগুলি আপনার অনুলিপিগুলিতে দেখান। তারপরে আপনি আপনার অনুলিপিগুলিতে কোনও স্থির প্রয়োগ করুন। অবশ্যই আপনি এটি করতে পারেন যদি আপনি কেবল আপনার রেপোতে উত্সটি অনুলিপি করেন

আপনার সংস্থায় তৃতীয় পক্ষের libs কী ব্যবহৃত হয় সে সম্পর্কে আরও নিয়ন্ত্রণ বা সচেতনতার মঞ্জুরি দেয়।

তর্কযোগ্য মনে হয়। কেবল ডিভসকে তাদের নিজস্ব ফোল্ডারে তৃতীয় পক্ষের লাইব্রেরিগুলি রাখার প্রয়োজন <ProjectRoot>/3rdparty/<nameOfDep>। তৃতীয় পক্ষের লিবগুলি কী ব্যবহৃত হয় তা দেখতে এটি ততই সহজ।

আমি বলছি না কোন ধনাত্মক আছে। আমি যে সর্বশেষ টিমে ছিলাম তাতে 100 টি তৃতীয় পক্ষ ছিল। আমি কেবল ইঙ্গিত করছি এটি সব গোলাপ নয়। উদাহরণস্বরূপ আমার প্রয়োজনের জন্য যদি আমার ধনুক থেকে মুক্তি পাওয়া যায় তবে আমি মূল্যায়ন করছি।


বাহ, প্রচুর নেতিবাচক ভোট এবং তাদের জন্য একটিও ন্যায়সঙ্গততা নয়। ভাল করেছ! :(
gman

আমি কখনও ধনুক ব্যবহার করি নি, তবে installপ্রতিবার আপনার চেকআউট করার প্রয়োজনটি ডিজাইনের ত্রুটির মতো বলে মনে হচ্ছে। এটি কোনও প্রকল্প তৈরি করার সময় এটির কনফিগারেশনটি পরীক্ষা করা উচিত: যদি পরিবর্তনগুলি থাকে তবে এটি স্ক্র্যাচ থেকে পুনর্নির্মাণ করা উচিত। এছাড়াও, রেপো মুভিং করা মাভেনের কাছে অপ্রাসঙ্গিক, কারণ এটি মাভেন সংগ্রহশালা থেকে নিদর্শনগুলি টেনে তোলে, যা শৈল্পিকাগুলি সংরক্ষণ করে, কোড সহ আসল রেপো নয়। আপনি কেবলমাত্র এটি পরিবর্তন করতে পারবেন artifactIdএবং groupIdআপনার শিল্পকর্মের পরবর্তী সংস্করণে যদি আপনি এটি ম্যাভেন সংগ্রহস্থলে প্রকাশ করেন। সুতরাং, আপনার পয়েন্টগুলি # 1 এবং # 4 বেশিরভাগই বিশেষত ম্যাভেনের কাছে অপ্রাসঙ্গিক। # 3 mvn clean(কখনও কখনও)
স্ক্রিপ্টিন

সত্য হওয়ার সময়ে, # 2 কোনও অসুবিধা নয় - এটি একটি বাণিজ্য বন্ধ। অবশ্যই, আপনার সরঞ্জামগুলি শিখতে হবে! উদাহরণস্বরূপ, গিটকে ধরে রাখা বেশ কঠিন, তবে আমি ডেম নুবসের কারণে এটি ছেড়ে দেব না।
স্ক্রিপ্টিন

1

কটাক্ষপাত বারো ফ্যাক্টর অ্যাপ

নির্ভরতা সম্পর্কে তাদের কী বলতে হবে তা সম্পর্কে বিশেষত পড়ুন । আপনি লক্ষ্য করবেন যে ভাল ডিজাইন নির্ভরতাগুলি সনাক্তকরণের জন্য একটি ঘোষিত প্রক্রিয়া সরবরাহ করে, জাভাতে এটি প্রায়শই মাভেনের মাধ্যমে উপলব্ধি হয়। আইভী এবং নুগেট ঠিকঠাক কাজ করে তবে মাভেন বর্তমানে মাঠে শীর্ষে রয়েছেন এবং আইভী দৃ hard়ভাবে কঠোর পরিশ্রমী।

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

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

উপরের প্রত্যেকটি কোরকে তৈরি করে যা মাভেন। আজকাল, এটি প্রায় একটি মস্তিষ্কের সিদ্ধান্ত।


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

2
নির্ভরতা ইনজেকশন (নকশার প্যাটার্ন) নির্ভরতা পরিচালন নয় (বিল্ড প্যাটার্ন)। আপনি ইতিমধ্যে আপনার প্রশ্নের সমস্ত গুরুত্বপূর্ণ দিকটি aspectsেকে রেখেছেন। আপনার দলগুলি সেগুলি শোনার পরেও যদি দৃinc় বিশ্বাসের প্রয়োজন হয়, তবে নির্ভরতা পরিচালনার ফলে কী নেতৃত্ব দেবে তা দেখার চূড়ান্ত প্রত্যয়ী হওয়া উচিত।
গ্যারি রোয়ে

0

এবং আমাদের শীর্ষ 10 তালিকার # 1 আইটেমটি হ'ল ...

(ড্রাম রোল)

প্রতিটি বিকাশকারী সমস্ত নির্ভরতার ঠিক একই সংস্করণ দিয়ে তৈরি করে, তাই আপনাকে কখনই উত্পাদনে স্থাপন করা উচিত তা ভাবতে হবে না।


2
নির্ভরতা যাচাই করা ছাড়া এটি অন্যরকম কীভাবে? প্রকৃতপক্ষে যদি আপনি নির্ভরতাগুলি পরীক্ষা না করেন তবে আপনি ঝুঁকিটি চালাচ্ছেন কোনও তৃতীয় পক্ষ আপনার ডিস্ট্রো ভেঙে। আমি এটি একাধিকবার ঘটেছে যেখানে কিছু বোর ডিপ রেপো রেফিট করেছেন বা নাম পরিবর্তন করেছেন এমন কোনও রেপোকে নির্দেশ করে। আমি যদি কেবলমাত্র আমাদের রেপোতে উত্সটি অনুলিপি করতাম তবে সমস্যাটি চলে যায়।
gman
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.