বিকাশকারী স্ক্রিপ্টগুলি পরিচালনা করার সঠিক উপায় কী?


15

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

এগুলি পরিচালনা করার সর্বোত্তম উপায় কী? এগুলি কোনও ডিরেক্টরিতে রেখে (সম্ভবত /scripts) এবং এগুলিকে গিটে চেক করতে চান? কিছু ফাইল সার্ভারে এগুলি আলাদাভাবে বজায় রাখতে?

তাদের উত্স কোড হিসাবে বিবেচনা করার যুক্তিটি হ'ল তারা উত্স এবং পরিবর্তন করতে পারে। এটি না করার যুক্তিটি হ'ল এগুলি কেবলমাত্র সহায়ক সরঞ্জাম এবং সমস্ত বিকাশকারীকে কোনও প্রদত্ত স্ক্রিপ্টের প্রয়োজন নেই (যেমন লিনাক্স-নির্দিষ্ট স্ক্রিপ্ট যেখানে কিছু বিকাশকারী উইন্ডোজে কাজ করে)।


7
ব্যবহারিকভাবে প্রতিটি প্রকল্পে কার্যকারিতা থাকে যা কেবলমাত্র কিছু বিকাশকারীই মোকাবেলা করতে পারেন। এটি গোপন রাখার কোনও কারণ নেই। "একটি ঘরে কোনও লোককে সাবধান করুন!" (জোয়েল
স্পলস্কি

1
আপনি যদি এগুলি উত্স-নিয়ন্ত্রণে রাখেন তবে নিশ্চিত হয়ে নিন যে আপনি ক্রাশের পরেও প্রস্তুত থাকতে পারেন। আপনি যদি আপনার বর্তমান পিসিটি আবর্জনায় ফেলে দিতে পারেন, একটি নতুন গ্রহণ করতে পারেন এবং একঘন্টার মধ্যে উত্পাদনশীল হয়ে উঠতে পারেন তবে এটি একটি উপকার benefit
পিটার বি

"কোনও ঘরে লোকের থেকে সাবধান!" (স্টিভ ম্যাককনেল, 1993) @
কিলিয়ান

উত্তর:


23

বিকাশকারী স্ক্রিপ্টগুলি সংস্করণ নিয়ন্ত্রণেও যায়, কারণ সাধারণত এই স্ক্রিপ্টগুলি সংস্করণ নিয়ন্ত্রণের আইটেমগুলির উপর নির্ভর করে, যেমন ফাইলের পাথ।

যদি এই স্ক্রিপ্টগুলি সংস্করণ করা হয় তবে এগুলি এড়াতে সমস্ত বিকাশকারীদের পক্ষেও কাজ করা উচিত যে প্রতিটি বিকাশকারী তার নিজের স্ক্রিপ্টগুলির সেট লেখেন যা রক্ষণাবেক্ষণের নরক হয়ে যায়।

এই স্ক্রিপ্টগুলির বাগ-ফিক্স বা উন্নতিগুলি সংস্করণ নিয়ন্ত্রণের মাধ্যমে প্রতিটি বিকাশকারীকে স্বয়ংক্রিয়ভাবে রোল আউট করা হয়।


10

@ সাইমন এর উত্তর ছাড়াও।

সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের সবগুলিই প্রোগ্রামিং, ডিজাইনিং বা মডেলিং সম্পর্কে নয়। কার্যদিবসের সময় আমরা ক্রমাগত সম্পাদন করি। আপনি ইতিমধ্যে একটি উল্লেখ করেছেন - আইডিইর বাইরে প্রকল্প তৈরি করা - তবে আরও অনেক কিছু রয়েছে।

অভিজ্ঞ / প্র্যাকটিভ বিকাশকারীরা এই কাজগুলিকে স্বয়ংক্রিয় করতে ঝোঁক। কিছু, এমনকি সরঞ্জামগুলি তৈরি করে যখন এই কাজগুলি এসডিএলসির অংশ হয়ে যায় এবং এগুলি ক্লান্তিকর - এবং ত্রুটির প্রবণ - হাতে হাতে করতে। প্রোগ্রামগুলি যতই ক্লান্তিকর হোক না কেন পুনরাবৃত্তিমূলক কাজ করা ভাল। আমরা - মানুষ - ভাল না।

এই সরঞ্জামগুলি / স্ক্রিপ্টগুলির অন্যের ইতিবাচক পার্শ্ব প্রতিক্রিয়া রয়েছে

  1. প্রমোদ
  2. জ্ঞান স্থানান্তর
  3. স্বায়ত্তশাসন (নতুনদের জন্য)

সুতরাং, হ্যাঁ স্ক্রিপ্টগুলি এসসিএম এ থাকা উচিত এবং সেগুলি বিকাশকারীর টুলবক্সে আরও একটি সরঞ্জাম হওয়া উচিত।

ফোল্ডারটি সম্পর্কে /scriptsআমি বলব যে এটি কোনও বিষয় নয়। সরলতার জন্য আমি তাদের প্রকল্পের রুট ডিরেক্টরিটি ছেড়ে যাতে সব রুটে স্ক্রিপ্ট ঘোষণা হয় আপেক্ষিক প্রকল্পের ফোল্ডারে। আমার যদি বাহ্যিক ফোল্ডার বা ফাইলগুলিতে অ্যাক্সেসের প্রয়োজন হয় তবে আমি নরম লিঙ্কগুলি তৈরি করি ।

এসসিএম-এ স্ক্রিপ্টগুলি পরীক্ষা করার আগে বিবেচনা করার বিষয়গুলি।

  • সুরক্ষার জন্য, স্ক্রিপ্টগুলির কোনও হার্ডকোড শংসাপত্র নেই তা নিশ্চিত করুন - আদর্শভাবে, স্ক্রিপ্টগুলি ভাল প্যারামিট্রাইজ করা উচিত -

  • নিশ্চিত করুন যে স্ক্রিপ্টগুলি সিস্টেমে অদ্ভুত কিছু না করে, উদাহরণস্বরূপ যে কমান্ডগুলি পূর্বাবস্থায় ফেরা যায় না (সম্পাদনা করা যেতে পারে rm -rf) কার্যকর করতে পারে ।

  • যেহেতু এগুলি প্রকল্পের উত্সের অংশ হয়ে যায়, তাই ডকুমেন্টেশনগুলি খুব প্রশংসা করা হয়।

  • স্ক্রিপ্টিং রকেট বিজ্ঞান নয়। স্ক্রিপ্টগুলি সংক্ষিপ্ত করুন। তাদের সমস্তকে শাসন ​​করার পরিবর্তে ... এবং অন্ধকারে তাদের আবদ্ধ করুন , আরও, আরও ছোট এবং সংক্ষিপ্ত করুন। যেন আপনি এসআরপি প্রয়োগ করছেন।


4

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

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

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

আরও অনেকগুলি বিবেচনা রয়েছে যা সফ্টওয়্যার থেকে নিজের চেয়ে স্ক্রিপ্টগুলিতে বেশি প্রয়োগ হয়:

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

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


আমি রাজি. একরকম, আমরা এখানে স্ক্রিপ্টগুলি প্রবীণ প্রোফাইল বা বিকাশকারীদের এই ধরণের বিকাশের একটি পটভূমি দিয়েছি deleg আমি উল্লেখ করা 3 টি ইতিবাচক পার্শ্ব প্রতিক্রিয়া কেবল তখনই সম্ভব যদি ন্যূনতম মানের :-) থাকে। শেল স্ক্রিপ্টগুলি বিকাশকারীদের দ্বারা সত্যই আন্ডাররেটেড হয় যা কেবলমাত্র তাদের মূল এসডিকে ফোকাস করে। ওএস স্তরটি আমাদের জন্য অনেক কিছু করতে পারে।
লাইভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.