উত্স কোডে চেক করার আগে কিছু ভাল অনুশীলনগুলি কী কী? [বন্ধ]


47

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

কোড চেক করার আগে কী কী ভাল অভ্যাস রয়েছে তা জানতে চাই - আমি আর এই ধরণের ভুল করতে চাই না।

উত্তর:


149

আমি যা করার অভ্যাসটি পেয়েছি তার মধ্যে আমি যা যাচাই করতে যাচ্ছি তার প্রতিটি ফাইলের মধ্যে আগে যাচাই করা ঠিক আছে, তা আগে যাচাই করার আগে looking


46
+1 এটি সুস্পষ্ট, তবে যদি কেউ এই কাজটি না করে থাকে তবে তারা এটিকে ভুল করছে!
ডেভিড হেফারনান

6
+1 আসলে এটি সুস্পষ্ট নয় তবে আপনি যদি তা না করেন তবে আপনি দুঃখিত হবেন।
নেমানজা ত্রিফুনোভিক

14
+1 এছাড়াও, আপনি যদি এটি খুব বেশি কাজ বলে মনে করেন তবে আপনি সম্ভবত একবারে খুব বেশি প্রতিশ্রুতি দিচ্ছেন।
এমপিটারসন

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

4
এটি যদি দেখার মতো না হয় তবে এটি অবশ্যই চেক ইন করা উচিত নয়
রবার্ট জেপ্পেসেন

63

আপনার মন্তব্য-আউট কোড কখনও চেক ইন করা উচিত নয়। যদি আপনার এমন কোড থাকে যা চেক-ইনগুলির আগে মন্তব্য করার দরকার পড়ে তবে আপনি এটি ভুল করছেন।

বিধি হিসাবে:

  1. সর্বশেষ পেতে
  2. সংযুক্তির বিরোধগুলি ঠিক করুন
  3. বিল্ড

    3.1 বিল্ড ত্রুটিগুলি ঠিক করুন

  4. পরীক্ষা চালান

    ৪.১ ভাঙ্গা পরীক্ষা ঠিক করুন

  5. 1 এ যান (যতক্ষণ না নতুন কিছু পাওয়া যায়)

সমস্ত পদক্ষেপ সম্পূর্ণ হলে কেবল চেক ইন করুন।

দেখুন চেক-ইন নাচ


অন্যান্য ভাল অভ্যাস:

  • তারা প্রত্যাশিত ফাইলগুলি তা নিশ্চিত করতে চেক-ইন করার জন্য ফাইলগুলির তালিকা পর্যালোচনা করুন।
  • প্রতিটি ফাইলের জন্য পরিবর্তনগুলি পর্যালোচনা করুন (মুছে ফেলা / সংযোজন / পৃথকীকরণ)

আমি এখানে একটি ডাবল নিতে। সম্ভবত আপনি বলতে চান 'কমেন্ট-আউট কোড'? নিজেই, আমি কখনই বিনা বিভাগে কোড চেক করার দিকে ঝুঁকছি!
পন্টাস গ্যাগ

11
+1 - এটি ঠিক সেখানে একটি সম্পূর্ণ সম্পূর্ণ তালিকা! বিল্ড করবেন না!
ওজ

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

2
ফিলিপ, এই কারণেই গিটটি দুর্দান্ত। আপনি স্থানীয়ভাবে এই ডাব্লুআইপি পরিবর্তনগুলি প্রায়শই পছন্দ মতো করতে পারেন, তবে মূল সংগ্রহস্থলটির দিকে ধাক্কা দেওয়ার আগে আপনি rebase -iএবং আপনার স্থানীয় ইতিহাস সাফ করুন, স্কোয়াশিং কমিটস-ইন-প্রগ্রেস কমিটস নেই so
অ্যালেক্স বুদোভস্কি

2
@ জেমস গোবারব্র.হইট / নিউ- ডি 01 বিবিবি
ডিসিএফ

20

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

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


5
চেকিনে মন্তব্য করার জন্য +1। এটি আমার দোকানে নীতিমালা নয়, তবে আমি পরে সবসময় আমার স্মৃতি জাগ্রত করতে চাইলে একটি বর্ণনামূলক নোট রেখে দেওয়ার চেষ্টা করি।
পিএসইউ

সম্মত - আমি কল্পনা করেছি যে ওডেদের কর্মপ্রবাহটি প্রতিটি পদক্ষেপের মধ্যে খুব সামান্যতম প্রতিটি লুপের মধ্যে সংস্করণ নিয়ন্ত্রণ থেকে প্রচুর উপকার পেতে পারে।
কেভিন ভার্মির

7
আপনি যখন চেক ইন করবেন তখন কি এই ধাপগুলি সমস্তই সরে যায় না?
ব্যবহারকারী 13278

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

2
+1 টি। কোনও কাজের আইটেমের সাথে সংযুক্তি হ'ল গিট বা এইচজি তে করা এক কঠিন কাজ। কিলনের মতো আপনাকে একটি পুরো প্যাকেজ চালানো দরকার। এটিই (কেবলমাত্র) অঞ্চল যেখানে টিএফএস ভাল। যদিও এটি সংস্করণ নিয়ন্ত্রণের জন্য ক্ষতিকারক।
রবার্ট জেপ্পেসেন

8

তিনটি জিনিস যা আমি অন্য উত্তরে দেখিনি:

নতুন ফাইল অন্তর্ভুক্ত করুন

  • নতুন ফাইলগুলি অনুসন্ধান করুন যা আপনার পরিবর্তন তালিকার অংশ নয়
  • পারফফোর্সের মতো এসসিএমগুলিতে সুনির্দিষ্ট হতে পারে - আপনার পরিবর্তনে যা আছে তা আপনাকে এটিকে বলতে হবে।

অপরিবর্তিত ফাইলগুলি ফিরুন

  • আমি ঘৃণা করি যখন আমি অন্য ব্যক্তির পরিবর্তনগুলি দেখছি এবং সেখানে নয়টি ফাইল সহ একটি পরিবর্তন তালিকা রয়েছে তবে তার মধ্যে কেবল তিনটিই সংশোধন করা হয়েছে।
  • আমি হোয়াইটস্পেস বা অন্যথায় অর্থহীন পরিবর্তনের সাহায্যে ফাইলগুলিও ফিরিয়ে আনি।

আপনার জমা দেওয়া প্রতিশ্রুতি পরীক্ষা করুন

  • আপনার প্রতিশ্রুতিবদ্ধ হওয়ার পরে বিল্ডটি সবুজ থেকে যায় তা নিশ্চিত করুন।
  • আমার একটি দ্বিতীয় মেশিন ছিল যা আমি সিঙ্ক, বিল্ড এবং আমার প্রতিশ্রুতিগুলির পরে চালিত করব তাই যদি কিছু ভুল হয়ে যায় তবে আমি সহজেই লাফিয়ে এটিকে ঠিক করতে পারি।

আমি যখন গিট ব্যবহার করি তখন দুটি জিনিস:

পারমাণবিক অঙ্গীকার:

  • প্রতিশ্রুতিবদ্ধতার জন্য শুধুমাত্র পর্যায়ে পৃথক কার্যকরী পরিবর্তন।
  • যতটা সম্ভব ছোট ছোট কমিট করুন। তাদের প্যাচ, রিভার্ট এবং বুঝতে সহজ করুন।
  • আমি প্রয়োজনে git add --patchআমার পরিবর্তনগুলি একাধিক অংশে বিভক্ত করতে ব্যবহার করি ।

সংক্ষিপ্তসারের সময় বিভিন্নগুলি দেখুন

  • আমি সর্বদা সাথে চেক ইন git commit --verboseকরি যাতে আমার প্রতিশ্রুতি বার্তাটি টাইপ করার সময় আমি আমার পরিবর্তনের একটি ভিন্নতা দেখতে পাচ্ছি। (বা আমি পৃথক দেখানোর জন্য আমার প্যাচড গিট-ভিম ব্যবহার করি ))
  • এটি আপনার পরিবর্তনের মধ্য দিয়ে যাওয়া এবং সম্পূর্ণ প্রতিশ্রুতি বর্ণনা করা আরও সহজ করে তোলে। মাঝেমধ্যে, আমি এই পর্যায়ে অনিচ্ছাকৃত পরিবর্তনগুলি ধরি। (আপনার পরিবর্তন বর্ণনা করা আপনাকে এটি সম্পর্কে ভাবতে সহায়তা করে))

একমাত্র পারমাণবিক কমিটের উল্লেখ করার জন্য ব্যক্তি হিসাবে +1।
স্টিফেন পলগার

7

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

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

তদুপরি, আপনার যদি টিএফএস প্রশাসনের সুবিধাগুলি থাকে তবে চেক-ইনগুলিতে রোলিং বিল্ডগুলি প্রয়োগ করুন (চেক-ইন কিছু ভেঙে ফেলেছে তা প্রত্যেকেই এখনই জানেন কিনা তা নিশ্চিত করার জন্য), এবং আপনি একটি গেটেড চেক-ইন সম্পাদন করতে সার্ভার সেট আপ করতে পারেন ( যদি চেক ইন কোডটি বিল্ডটি ভেঙে দেয়, সার্ভার এটি প্রত্যাখ্যান করে), বা আপনি কেবল এটি একটি বাগ তৈরি করতে এবং বিল্ডটি যে ভেঙেছে তাকে এটাকে নিয়োগ করতে পারেন।

আরও কিছু অপশন রয়েছে যা আপনি সবকিছু ভালভাবে রাখার জন্য চালু বা বন্ধ করতে পারেন বা জিনিসগুলি সুন্দর এবং পরিষ্কার রাখতে আপনার টিএফএস-অ্যাডমিনকে পরামর্শ দিতে পারেন ... তবে সেগুলি বেশিরভাগ ক্ষেত্রেই পছন্দ


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

7

অভিশপ্ত শব্দগুলি অনুসন্ধান এবং প্রতিস্থাপন করুন ;-)


ক্লুবুটিক ভুল না করার জন্য কেবল নিশ্চিত হন।
Tullo_x86

4

আপনি যদি উইন্ডোজ থেকে চেক ইন করেন, আপনার কোডটিতে সেই অদৃশ্য ^ এম অক্ষর নেই কিনা তা পরীক্ষা করুন - ইউনিক্সের সম্পাদকরা প্রায়শই ত্রুটি / সতর্কতার কারণ দেয়।

ট্যাবগুলিও প্রতিস্থাপন করুন এবং প্রতিস্থাপন করুন - বিভিন্ন ব্যবহারকারী 4 টি স্পেস, কিছু 8 এবং কোড পঠনযোগ্যতার জন্য ভাল নয় এমন আলাদাভাবে ট্যাবস্টপগুলি দেখবেন।

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


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

1
যথাযথভাবে। এজন্য আপনি ট্যাব ব্যবহার করবেন না।
অ্যালেক্স বুদোভস্কি

কিছু এসসিএমগুলি আপনার জন্য লাইনের সমাপ্তি পরিচালনা করে (কিছু অন্যের চেয়ে ভাল করে)। লাগুক আর নাই লাগুক ( kb.perforce.com/?article=063 ), Git (core.eol মধ্যে Git কনফিগ), SVN (SVN: eol-শৈলী), ইত্যাদি
idbrii

@ অ্যালেক্স: বা আপনি অবিচ্ছিন্নভাবে যে কোনও জায়গায় ট্যাব ব্যবহার করেন। আপনি সামঞ্জস্য রেখে এত দিন আপনি যা করেন তা বিবেচ্য নয় ।
ডোনাল ফেলো

@ ডোনাল, না এখানেই সমস্যা; ট্যাবগুলি আপনার সম্পাদকের কনফিগারেশনের সাপেক্ষে এবং তাই অন্তর্নিহিতভাবে বেমানান। কিছু "সম্পাদক" অপরিবর্তনীয়, যেমন cmd.exe, এবং বেশিরভাগ লিনাক্স কনসোলগুলি, তাই আপনি নিজের সাথেও বেমানান হতে পারেন।
অ্যালেক্স বুদোভস্কি

4

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

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


4

যখনই সম্ভব, আমি কাজের আইটেমের সাথে চেক-ইন যুক্ত করতে চাই। এটি আপনাকে WHAT পরিবর্তিত করা হয়েছিল তা নয়, কেন এটি পরিবর্তন করা হয়েছিল সে সম্পর্কে কিছু প্রাসঙ্গিক তথ্য দেয়। টিএফএসের একটি মোটামুটি শালীন কাজের আইটেম ট্র্যাকিং সিস্টেম রয়েছে, তাই এটি চেক-ইন করার সময় করা তুচ্ছ।

(এটি আমার পরিবর্তনের বিভিন্নতা পর্যালোচনা করা ছাড়াও)


2
এটি একটি চেক-ইন নীতি হিসাবে সেট করা যেতে পারে, যাতে কোনও কাজের আইটেমের সাথে সম্পর্কিত না হয়ে কোনও কোড চেক ইন করা যায় না
জন স্যান্ডার্স

ভালো কথা, জন আমি যেখানে কাজ করি খুব শীঘ্রই এটি করার আশা করছি।
এমপিটারসন

স্টাফ প্রয়োগ করা সাধারণত পাল্টা-উত্পাদনশীল। পরিবর্তে আপনার লোকেরা বুঝতে পারে যে এটি তাদের পক্ষে ভাল।
রবার্ট জেপ্পেসেন

3

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

এইভাবে, আপনার পরিবর্তনটি (কোনও কাজের আইটেমের সাথে যুক্ত) কাজের আইটেমটি সন্তুষ্ট করার জন্য প্রয়োজনীয় ফাইলগুলি অন্তর্ভুক্ত করে।


3

সমস্ত উত্তর এখানে একত্রিত এবং একটি সম্পূর্ণ চেকলিস্ট দিতে

  1. [চেক ইন / চেক আউট] আপনার অন্য যে স্ট্রিমটি কাজ করছে সেটিতে সরাসরি যাচাই করা উচিত নয় You আপনার একটি স্ট্রিম কৌশল থাকা উচিত: উদাহরণস্বরূপ বিকাশকারী প্রতি এমন একটি স্ট্রিম যাতে আপনি অন্যকে বিরক্ত না করে স্বাধীনভাবে চেক ইন করতে পারেন এবং চেক আউট করতে পারেন: আপনার কাজ করবে নিরাপদে থাকুন তবে আপনার নিজস্ব বিকাশ প্রবাহে তাই [কেবলমাত্র আপনার নিজের বিকাশ প্রবাহে]। আপনার প্রতিটি পরীক্ষার সাথে এটি একটি পরিবর্তনের রেকর্ডের সাথে যুক্ত করে রাখুন যাতে আপনার পরিবর্তনগুলি পরিবর্তিত সেট হিসাবে পরিবর্তিত পরিবর্তনের বিরুদ্ধে পারমাণবিক হয় (যাতে আপনি পৃথক আরএফসি / বাগ ইত্যাদি বিতরণ করতে পারেন ... 'সবকিছু সরবরাহ না করে)'।

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

  3. [সম্পূর্ণ প্রত্যাবর্তন] যদি সবকিছু ঠিক থাকে তবে আপনি টিম স্ট্রিম থেকে সবেমাত্র যে পরিবর্তনগুলি পেয়েছেন তা পরীক্ষা করে দেখুন: আপনার নিজস্ব স্ট্রিমটি এখন আপ টু ডেট is

  4. [বিতরণ] এখন আপনার কাজ টিম স্ট্রিমে পৌঁছে দিন। যদি আপনি সবকিছু সরবরাহ করতে না চান তবে আপনি উদাহরণস্বরূপ 1 টি নির্দিষ্ট আরএফসির ফাইলগুলির নির্দিষ্ট সংস্করণ বা আরএফসি / সেটগুলির ত্রুটি সমাধানের একটি সেট সহ নির্বাচন করতে পারেন।

  5. [পরীক্ষার বিতরণ] এটি ঠিকঠাক হওয়া উচিত তবে যেহেতু সুযোগটি উপস্থিত রয়েছে যে ইতিমধ্যে বিতরণ করা পরিবর্তনগুলিও রয়েছে: আপনার কাজটি টিম স্ট্রিমের সর্বশেষ পরিবর্তনগুলির সাথে কাজ করে কিনা তা পরীক্ষা করতে পারেন। একই মার্জ সংলাপগুলির সাথে পার্থক্য দেখায়।

  6. [সম্পূর্ণ বিতরণ] আপনার বিতরণ সম্পূর্ণ করুন এবং আপনার কাজ এখন টিম স্ট্রিমে।

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

  • হিস্টোমনেস থেকে উত্তরটি 2 বার হয়: 2 এবং 6 ধাপে
  • চেক-ইন নাচে ওডেদের উত্তর: আপনি বিচ্ছিন্ন হয়ে পড়েছেন এবং ত্রুটিগুলি পরবর্তী পর্যায়েও সর্বদা সহজেই বের করা যেতে পারে তা নিশ্চিত করার জন্য আইডিম তবে চেক ইন / চেক আউট করার সময় ডেলিভারি এবং পুনর্বাসনের একটি অতিরিক্ত স্তর
  • জবাবদিহি গিল্ডসবাউন্টির উত্তর: সর্বশেষতম পদক্ষেপ 2 the বিল্ডটির জন্য: এটি নির্ভর করে যদি আপনি কোনও বিল্ড থাকেন ... আমার বিশ্বে আপনার কাছে ডেটা মডেল, শব্দ নথি, প্রয়োজনীয় শিট, ইনফর্মটিকা থেকে কনফিগার ডেটা, সিয়েল, ইত্যাদি .., এবং হ্যাঁ জাভা কোড, নেট কোড ইত্যাদি ... যে সমস্ত একসাথে মিশ্রিত হওয়া উচিত। সুতরাং এখানে সত্যিকারের "বিল্ড" নেই তবে আরও বেশি সংহতকরণ নির্ভর করে যদি আপনার "কোড" থেকে একক যেমন বিল্ডটি বাকী সমস্ত সামগ্রীর সাথে সংহত করে যেহেতু আপনি নিশ্চিতভাবে জানতে পারবেন না এটি ইন্টিগ্রেশন স্টাফ কিনা এবং তার উপর নির্ভর করে তাদের পরীক্ষার পরিবেশগুলি এটি সংকলিত স্টাফগুলির প্রয়োজন হতে পারে বা উচ্চতর বিতরণে অন্য বিল্ড তৈরি করতে পারে কারণ এর জন্য অন্য দলের থেকে কিছু প্রয়োজন।
  • মন্তব্য ও প্রয়োজনীয়তার বিষয়ে গিল্ডসবাউন্টির উত্তর: আমি মনে করি যে প্রতিটি পরিবেশ যেখানে আপনার সংস্করণ এবং পরিবর্তনের সেটে পরিবর্তনগুলির সংহতকরণ নেই (এবং টাইপ করুন: ত্রুটিগুলি, আরএফসি, হটফি) পরিপক্ক নয়। আমি মনে করি এটির বিশৃঙ্খলা আপনি যদি না করতে পারেন তবে যে পরিমাণ বাগ এবং আরএফসিএস জমা দেওয়া আছে তার সাথে রিলিজ নোটগুলি স্বয়ংক্রিয়ভাবে প্রকাশ করতে পারেন যা স্পর্শ করা হ'ল সংস্করণগুলিতে ক্লিকযোগ্য (যেমন হ্যালো। সি এর সংস্করণ 1 এবং সংস্করণ 3 খুব ভাল সরবরাহ করা যেতে পারে তবে সংস্করণ) 2 সরবরাহ করা উচিত ছিল না কারণ সেখানে থাকা স্টাফগুলি পরে প্রকাশের অংশ হতে পারে তবে কিছু নুব এটি ইতিমধ্যে রেখেছিল) (সুতরাং এর অর্থ একটি ম্যানুয়াল সিদ্ধান্ত যদি আপনি হ্যালো-র সংস্করণ 3ও নিতে চান তবে)। সি কিন্তু সংস্করণ ৩ আউট করার অর্থ এই যে আপনাকে আরএফসি / ত্রুটি দ্বারা স্পর্শ করা সমস্ত অন্যান্য সংস্করণও বের করতে হবে যাতে সম্পূর্ণ জিনিসটি বের করার জন্য আপনাকে একটি সরঞ্জাম দিয়ে সহজেই এবং দ্রুত সক্ষম হতে হবে) (এমনকি একাধিক বিকাশকারী বিভিন্ন অংশে কাজ করলেও সেই একই আরএফসি) তবে এটির বিষয়ে সিদ্ধান্ত নেওয়ার জন্য কমপক্ষে আপনার চারপাশের জিনিসপত্রের প্রয়োজন হবে ...)। অতিরিক্ত ডকুমেন্টেশন সবসময় সহজ হয় তবে পরিবর্তনের সেটগুলি যুক্ত করে আপনি সম্পূর্ণ বৃত্তটি পান: একটি সংস্করণ <- একটি পরিবর্তন সেট <- কাজের আইটেম <- একটি টিকিট / আরএফসি / ত্রুটি <- একটি প্রয়োজনীয়তা। অর্থ: আপনি জানেন যে কোন প্রয়োজনীয়তা পুরোপুরি বা সম্পূর্ণ বিতরণ করা হয়েছে: একটি প্রয়োজনে একাধিক আরএফসি বা বাগ বা যা কিছু থাকে। আরএফসির একাধিক ব্যক্তির জন্য একাধিক কাজের আইটেম রয়েছে। সেই কাজের আইটেমটি এমন পরিবর্তনের সংগে মিল রয়েছে যা সংস্করণগুলির একটি সেট উপস্থিত রয়েছে (উদাহরণস্বরূপ হ্যালি কোডের সংস্করণ 1 এবং 3 ইন্টিগ্রেশন স্ট্রিমে যা অবশ্যই সংস্করণ 1 নয়,
  • luis.espinal এর মন্তব্য: বিল্ডটি ভাঙ্গা পুনরুদ্ধারে ডাবল চেক করা হবে না এবং এখনও বিতরণ করা হবে না ... 'রিলিজ ম্যানেজার এবং বিল্ড মিস্টারস' এর জন্য উচ্চতর ডেলিভারি রয়েছে যাদের পরিবর্তন সেট এবং বেসলাইনগুলি তাদের তথ্য হিসাবে দেখা উচিত। "কখনই সরাসরি প্রধান শাখায় কাজ করবেন না" হ্যাঁ, স্ট্রিম স্ট্রাকচারটি বড় বা সাধারণ হতে পারে তবে মূলত: বিকাশকারীদের নিজস্ব স্ট্রিম থাকে, তারা একটি টিম স্ট্রিমকে সরবরাহ করে যারা একটি রিলিজ স্ট্রিম সরবরাহ করে। -> যাতে সমস্ত দল থেকে সরবরাহ (যেমন ডকুমেন্টেশন দল, প্রয়োজনীয় দল, উন্নয়ন দল,

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


2

নীচের কিছুগুলি আপনার এসসিএমের উপর নির্ভর করে অন্যের চেয়ে বেশি (বা বিভিন্ন আকারে) প্রয়োগ করে, তাই এখানে তারা যায়:

  1. বিল্ডটি ভাঙ্গবেন না - সংকলনকারী কেবল কোডটি পরীক্ষা করুন।
  2. আপনার চেক ইন মন্তব্য করুন (এবং আপনার এসসিএম যদি সেই বিকল্পটি দেয় তবে সম্ভবত আপনার চেক আউট হয়))
  3. দীর্ঘ সময় ধরে জিনিসগুলি চেক না করে রাখুন।
  4. প্রায়শই চেক ইন করুন (সম্ভব হলে দিনে কয়েকবার।)
  5. অর্থবহ লেবেল।
  6. নিয়মিত লেবেল করুন।
  7. সরাসরি প্রধান শাখায় কাজ করবেন না।
  8. উত্পাদনের প্রতিটি প্রকাশের নিজস্ব লেবেল থাকতে হবে (এবং সম্ভব হলে মূল শাখার বাইরে পঠনযোগ্য একটি শাখা)। সম্ভব হলে ইউএটি / ইন্টিগ্রেশন / প্রাক-উত্পাদন পরীক্ষার রিলিজের জন্য একই কাজ করুন।
  9. আপনার এসসিএম-এ যা আছে তা থেকে এবং লেবেল থেকে উত্পাদনের ক্ষেত্রে ঠিক এটি তৈরি করতে সক্ষম হওয়া উচিত।

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


2

একটি ব্যক্তিগত চেক তালিকা আছে। কোনও এন্ট্রিতে আপনি গণ্ডগোল করার পরে এটি খালি শুরু করুন। এটি দ্বিতীয় প্রকৃতি হয়ে গেলে এটিকে তালিকা থেকে সরান।

পরীক্ষা চালান। যদি তারা উত্তীর্ণ হয় তবে এটি পরীক্ষা করে দেখুন you


1

আমরা নিম্নলিখিতটি করি ...

  1. পরীক্ষা - আমরা এটি নিশ্চিত হয় তা নিশ্চিত করতে চাই। খুব কমপক্ষে, আমরা জানতে চাই যে এটি কোনও কিছুই ভাঙেনি।

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

  3. অগ্রিম নোটিশ পাঠান - চেকইনের আগে গ্রুপে একটি অগ্রিম নোটিশ পাঠানো হয়। উদ্দেশ্যটি কেবল অন্যদেরকে জানানো নয় যে কোন ফাইল বা ক্ষেত্রগুলি পরিবর্তন হচ্ছে তা নয়, তবে এই পরিবর্তনগুলি প্রভাবিত হওয়ার আশঙ্কা করা হলে এটি তাদের মাথা উঁচু করে (তারা কি নোটিশ গ্রহণ করা বেছে নেওয়া উচিত)।

  4. অগ্রিম নোটিশ পাঠানোর কয়েক ঘন্টা পরে, চেক ইন সম্পন্ন হয় এবং গোষ্ঠীটি ইমেলের মাধ্যমে জানানো হয়। দলের ত্রুটি বা বৈশিষ্ট্যটির নির্দিষ্ট কাজটি কখন করা হবে তা গ্রুপের সবাই জানতে পারে।

  5. চেকিন নোটিশের একটি অনুলিপি বাগ বা বৈশিষ্ট্যের সাথে যুক্ত ফিক্স রেকর্ডে আটকানো হয়। রেকর্ডগুলির মাধ্যমে অনুসন্ধান করার সময়, আমরা দেখতে পেলাম যে ফিক্স / বৈশিষ্ট্যটি কী লিখেছে তা সম্পর্কে ধারণা রাখা খুব সহজ।


1

আপনার ইউনিট পরীক্ষা চালান আপনি এত পরিশ্রমের সাথে কাজ করছেন। সবুজ ভাল।


1

আপনার কোডটি যথাযথভাবে ফর্ম্যাট হয়েছে কিনা তা নিশ্চিত করুন (যেমন জাভার জন্য: আপনার কোড নির্বাচন করুন এবং Eclipse এ Ctrl-Shift-F টিপুন)। তবে পুরো ডকুমেন্টের জন্য একই কাজ করতে সাবধান হন।


1

সর্বদা, সর্বদা, সর্বদা , আপনি যা কিছু পরিবর্তন করেছেন তা বিল্ডটি ভেঙে না তা পরীক্ষা করুন। বিশেষত ছোটখাটো পরিবর্তন যা তুচ্ছ মনে হতে পারে।

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


1

আপনার পরিবর্তনগুলির অংশগুলি সন্ধান করুন যা একক ইউনিট হিসাবে যেতে পারে।

প্রায়শই, আমার কোডে ওয়ার্কিং ফিক্স বা বর্ধনের সময়, বেশ কয়েকটি পরিবর্তন রয়েছে। তাদের মধ্যে কিছু আচরণের পরিবর্তনের জন্য নির্দিষ্ট যা আমি যাচ্ছি; অন্যরা হ'ল সেই পরিবর্তনকে আরও পরিষ্কার করতে আমি যা করেছি।

আমি প্রতিটি রিফ্যাক্টরিং এর নিজস্ব পরিবর্তনের বর্ণনা সহ পৃথকভাবে চেক করতে পছন্দ করি:

প্রতিক্রিয়া: এক্স থেকে Y এর নাম পরিবর্তন করুন

এক্স এর আগে বোঝা গেল কারণ ... তবে এখন এটি ওয়াই হওয়া উচিত This এটি # 9 ইস্যুটির সাথে সম্পর্কিত।

তারপরে, প্রতিটি ভাল রিফ্যাক্টরিং একবার চেক ইন করা হলে চূড়ান্ত আচরণ পরিবর্তনটি প্রায়শই তুচ্ছ।

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

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


0

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


গিট প্রকাশ্যে প্রতিশ্রুতিবদ্ধ হওয়ার আগে আপনার জঞ্জাল পরিষ্কার করতে সহায়তা করে clean দুর্ভাগ্যক্রমে, কেন্দ্রীভূত ভিসিএসগুলি তা করে না।
অ্যালেক্স বুদোভস্কি

0

আমি আমার কাজের জন্য একটি স্থানীয় এইচজি রেপো রাখি।

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

আমি দাবি করি না যে এগুলি সেরা, তবে তারা আমার পক্ষে কাজ করে।


0

আমি যখন জানি যে কোডটি আমি চেক ইন করতে চাইছি না তখন আমি তার মধ্যে "// টিএমপি:" এবং তার পরে "// সমাপ্তি টেম্প" যুক্ত একটি লাইন যুক্ত করি। এটি, চেক ইন করার আগে আলাদা করার সাথে সাথে প্রতিশ্রুতি দেয় যে আমি ভুল করে এই কোডটি চেক করব না।


0

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

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

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