অস্থায়ী কোডটি কী সংস্করণ নিয়ন্ত্রণের মধ্যে রাখা উচিত এবং কীভাবে?


29

অস্থায়ী / স্থানীয় কোডের কয়েকটি উদাহরণ এখানে। কোডবেস নিয়ে কাজ করার জন্য এটি প্রয়োজন তবে এটির অংশ হওয়া ক্ষতিকারক হবে:

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

আমি গিমে প্রতিশ্রুতিবদ্ধদের ধরে রাখার চেষ্টা করেছি যে রেপোতে চাপ দেওয়ার আগে আমি সর্বদা শীর্ষে ফিরে আসি এবং তারপরে ঠেলাঠেলি করি HEAD~। এটি বেশ অসুবিধাজনক এবং এসএনএন-এর সাথে কাজ করে না। স্ট্যাশিং আমাকে আরও ভয় দেখায় - "আমি কি ধাক্কা দেওয়ার পরে পপ করতে মনে করি ??"।

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

এই ধরনের থ্রো-অ্যাওড কোডের কী বোঝার সমাধান হবে?


এই অস্থায়ী কোডটির অস্থায়ী ব্যবহারের সময়কালে মূল প্রকল্প থেকে আপডেট করার প্রয়োজন হবে?
জেফো

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

@ ভোরাক - কোড রিভিউ এবং পরীক্ষার জন্য এটিই! আমি এর থেকে আরও খারাপ আপনাকে দেখাতে পারি - কোডটি এটি প্রথম নজরে দেখতে ভাল লাগলেও কার্যকর হয় না। Return 7.. যদি তারা সবাই এত প্রকট ছিল!
gbjbaanb

@ ভোরাক: এটি অন্য যে কোনও কিছুর চেয়ে দার্শনিক মন্তব্য ছিল।
blrfl

2
আপনি কোন পরিবেশে রয়েছেন তা বলার কোনও উপায় আছে? উদাহরণস্বরূপ, আপনি কোডটি কার্যকর করতে সেট আপ করতে পারেন যদি এটি সনাক্ত করে যে আপনি দেব পরিবেশে আছেন তবে ভাল / প্রোডে নয়। এইভাবে প্রতিশ্রুতি দেওয়ার সময় আপনার নিয়মিত স্থানধারক কোড যুক্ত / অপসারণ করতে হবে না।
সাগিও

উত্তর:


46

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

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

সংস্করণ নিয়ন্ত্রণ কোনও আর্টিক্ট রিপোজিটরি বা ডকুমেন্ট স্টোরেজ সিস্টেম নয়। পরিবর্তনের ইতিহাস ধারণ সম্পর্কে এটি। আপনি সেখানে যা চান তা সবই আঁকুন একদিন আপনি এটি দেখতে চেয়েছিলেন এবং এটি সেই দিনগুলি যা আপনি বুঝতে পারবেন যে আপনার এসসিএম আসলে কী।

গীত। সত্যিকারের অস্থায়ী ফাইলগুলির (যেমন .obj বা শিল্পকলাগুলি তৈরির) আপনার এসসিএমের কোনও স্থান নেই। এগুলি এমন জিনিস যার কারও কাছে মূল্য নেই। সেগুলি কী আপনি তা বলতে পারেন - আপনি যদি এগুলি মুছেন তবে আপনার আপত্তি নেই এবং এমনকি তারা লক্ষ্য করে গেছে।


5
একমত। ব্রাঞ্চিং হল যাওয়ার উপায় way একটি শাখা তৈরি করুন, আপনি যা চান সেখানে করুন এবং সমাপ্ত কোডটি সম্পূর্ণ হয়ে গেলে মার্জ করুন। মাথাটি একটি মুক্তির সংস্করণ হিসাবে বিবেচনা করা উচিত যা ক্লায়েন্ট যে কোনও সময় ডাউনলোড এবং ব্যবহার করতে পারে।
ক্যামেরন ম্যাককে

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

2
আমি একটি বড় পোস্টার প্রিন্ট করতে যাচ্ছি "সমস্ত কোড ইজ টেম্পোরারি" এবং এটি প্রাচীরের সাথে লাগিয়ে দেওয়া। সম্ভবত কমিক সেন্সে।
বব টিওয়ে

2
ক্লিপির ঠোঁট থেকে আগত একটি বুদ্বুদ উদ্ধৃতিতে @ ম্যাটথ্রওয়ার?
gbjbaanb

1
নন চলমান কোড বা কোড যা সংকলন করে না সেগুলি যদিও সংস্করণ নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ হবে না।
তুলাইনস কর্ডোভা

17

প্রকল্প ফাইল। বর্তমান পিসিতে লেআউট প্রতিবিম্বিত করতে পাথগুলি সম্পাদনা করার প্রয়োজন হতে পারে।

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

ফাইল তৈরী। উদাহরণস্বরূপ, ডিবাগিংয়ের সময় অপ্টিমাইজেশানটি বন্ধ করা দরকার হতে পারে তবে সিআই সার্ভারের জন্য নয়।

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

নোংরা কুৎসিত হ্যাকস উদাহরণস্বরূপ, ফাংশনের উপর নির্ভর করে কোনও কিছু পরীক্ষা করার জন্য, ফাংশনের উপর নির্ভর করে কোনও কিছুর পরীক্ষা করার জন্য এবং of এর মান ভেঙে ফেলার সন্দেহ রয়েছে, বা আমি এখনও প্রয়োগ করা হয়নি এমন বোতামের কোড, যা আমি বাস্তবায়ন করছি এবং এটি দরকার আমার শাখা সারা জীবন পরীক্ষা।

সন্দেহজনক ব্যর্থতার ঘটনাটি প্ররোচিত করে এমন কোনও পরীক্ষা আপনি কী লিখতে পারবেন না?

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


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

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

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

5

সংস্করণ নিয়ন্ত্রণে কোড এবং কনফিগারেশন থাকতে হবে যা অ্যাপ্লিকেশনটি তৈরি করতে প্রয়োজনীয়।

এই যে মানে:

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

  • স্থানীয় ফাইলগুলি যা কোনও নির্দিষ্ট মেশিনের সাথে উপযুক্ত তা একটি শাখায় রাখা যেতে পারে।

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

    অন্যদিকে, ফাইলের কাঠামোর সাথে সাবধানতা অবলম্বন করুন: স্থানীয় কনফিগারটি ঠিক আছে, যতক্ষণ না এটি অপ্রতিরোধ্য হয়ে যায়, এবং আপনাকে প্রকল্পে অংশ নেওয়া 42 জন বিকাশকারীদের প্রত্যেকটি ফাইলে একক পরিবর্তন করতে বাধ্য করে।

    মেশিনগুলির মধ্যে বিশদগুলি অপসারণ করার সুযোগের জন্য দেখুন। এর অর্থ হতে পারে:

    • বিকাশকারীদের মেশিনে স্থানীয় দৃষ্টান্তগুলি প্রতিস্থাপন করতে কোনও ডেভেল এসকিউএল সার্ভারে অ্যাক্সেস দেওয়া,

    • মত প্যাকেজ বিতরণ সেবা ব্যবহার Pypi বা npm প্রকাশ্য প্যাকেজ ও আভ্যন্তরীণ প্যাকেজের জন্য তাদের ব্যক্তিগত প্রতিরূপ জন্য,

    • দলের সদস্যদের সফ্টওয়্যারগুলির একই সংস্করণ ইনস্টল করতে বলুন,

    • যতটা সম্ভব স্বচ্ছ সফ্টওয়্যার আপডেট করুন,

    • অথবা কোনও ক্লিকে কোনও মেশিনে ওএস এবং প্রয়োজনীয় সফ্টওয়্যার স্থাপন করা সম্ভব করে তুলুন (প্লাস প্রতিটি বিকাশকারীকে তার পছন্দসই ভিম বনাম ইম্যাকস, ক্রোম বনাম ফায়ারফক্স, ইত্যাদি ইনস্টল করার সময়)

তাই:

প্রকল্প ফাইল। বর্তমান পিসিতে লেআউট প্রতিবিম্বিত করতে পাথগুলি সম্পাদনা করার প্রয়োজন হতে পারে।

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

উদাহরণ:

ভিজ্যুয়াল স্টুডিও দিয়ে তৈরি একটি প্রকল্পে আপনি এটি পেতে পারেন:

  • ফাইলগুলি নিজেরাই। পাথগুলি আপেক্ষিক হওয়ার কারণে, এটি আমার মেশিনে নেই কিনা, প্রকল্পটির অবস্থান রয়েছে H:\Development\Hello World Project\যখন দলের অন্যান্য সদস্যরা প্রকল্পটি পরীক্ষা করে দেখেছিল C:\Work\HelloWorld\

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

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

  • সেটিংস। দলটি একই সেটিংস ভাগ করে নেওয়া অত্যন্ত গুরুত্বপূর্ণ। যদি দলের অর্ধেক সতর্কবাণীকে ত্রুটি হিসাবে বিবেচনা করে এবং দলের অর্ধেক সতর্কবাণীকে তেমনি রাখে তবে দলের প্রথম অংশের সদস্যরা দলের দ্বিতীয় অংশ থেকে বিকাশকারীদের দ্বারা প্রাপ্ত সতর্কবাণীগুলি সরাতে তাদের সময় ব্যয় করবে।

  • ইউটিলিটি সম্পর্কিত সেটিংস settings এগুলি জটিল, কারণ দলের কিছু সদস্য হয়তো কিছু উপযোগ ইনস্টল করেছেন, অন্যরা তা ব্যবহার করেনি।

    একই টুলসেটটি ইনস্টল করার জন্য দৃ strongly়ভাবে সুপারিশ করা হয়। কিছু প্রোগ্রামার যদি স্টাইলকপ ব্যবহার করতে চায় তবে অন্যরা তা না করে তবে দলটি কাজটি করবে না। কিছু যদি কোড চুক্তি ব্যবহার করে তবে অন্যরা তা না করে তবে তাদের একই সমস্যা থাকবে।

ফাইল তৈরী। উদাহরণস্বরূপ, ডিবাগিংয়ের সময় অপ্টিমাইজেশন বন্ধ করা দরকার হতে পারে তবে সিআই সার্ভারের জন্য নয়।

সংস্করণ নিয়ন্ত্রণে বেশ কয়েকটি মেকফাইল রাখুন। পাশাপাশি সিআই সার্ভারে একটি ডিবাগ সংস্করণ তৈরি করা এবং এটি একটি ক্লায়েন্টের কাছে ঠেলাঠেলি করা অস্বাভাবিক কিছু নয় যা একটি জটিল ত্রুটির শিকার হয়।

নোংরা কুৎসিত হ্যাকস উদাহরণস্বরূপ, ফাংশনের উপর নির্ভর করে কিছু পরীক্ষা করার জন্য কোনও ফাংশনের মাঝামাঝি 7 ফিরে আসুন এবং 7 এর মান ভেঙে যাওয়ার সন্দেহ।

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

আপনি এটি বর্ণনা হিসাবে, আপনি একটি পরীক্ষা লিখতে হবে। উদাহরণস্বরূপ, আপনি যদি নিশ্চিত হতে চান যে:

class TemperatureConverter
{
    public int CelsiusToFahrenheit(int temperature)
    {
        ...
    }
}

ধ্রুবক temperatureথেকে নিকৃষ্ট যখন একটি ব্যতিক্রম ছুঁড়ে AbsoluteZero, আপনি কোড নিজেই না খেলা উচিত। পরিবর্তে, একটি ইউনিট পরীক্ষা তৈরি করুন যা করবে:

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

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

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

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

বনাম সঙ্গে, আপনি কখনও কখনও নিশ্চিত করুন যে আপনি পরম মার্গে গোপন না করতে যত্ন নিতে আমি করেছি দৌড়ে মধ্যে প্রয়োজন আরো যখন 3rd পার্টি প্ল্যাটফর্মের জন্য win64 আপগ্রেড এবং থাকার লাইব্রেরি থেকে সরে ধারণার চেয়ে রেফারেন্স সঙ্গে কয়েক সমস্যার চেয়ে। C:\Program Files\...থেকেC:\Program Files (x86)\...
ড্যান নীলি

@ ড্যানিয়েলি: এজন্য তৃতীয় পক্ষের লাইব্রেরিগুলি নুগেট দ্বারা পরিচালনা করা উচিত।
আর্সেনী মোরজেনকো

2

@@টেস্টের উদ্দেশ্যে, ইত্যাদির জন্য কোনও কিছু প্রস্তুত না হওয়ার জন্য আমরা কোডটিতে মন্তব্যগুলি ব্যবহার করি

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

@@বিটা পরীক্ষা ইত্যাদির চূড়ান্ত পর্যায়ে প্রবেশের আগে কোনও 'বাম ওভার' রোধের জন্য আমরা বিশ্বব্যাপী অনুসন্ধান করি etc.

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


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

এমনকি @@nameআমি 'নাম' দিয়ে যে বিষয়গুলি নিয়ে আলোচনা করতে হবে তা ইঙ্গিত করতে ব্যবহার করি।


1

2 হামার সমাধান:

  • HAMSTER এর মতো কিছু অস্বাভাবিক কীওয়ার্ডের জন্য আপনার কোডটি পরীক্ষা করতে আপনি প্রি-কমিট হুক ব্যবহার করতে পারেন। লোকেদের যে হামলা চালানো হয়েছে তা প্রতিশ্রুতিবদ্ধ না করতে এবং আপনি যখনই নোংরা হ্যাক করেন তখন তা ব্যবহার না করে।

  • সি হিসাবে অন্য বিকল্পের জন্য হল # আইফডিএফ হ্যামস্টার ব্যবহার করা, তারপরে কোডটি কেবলমাত্র আপনার মেশিনে চলবে যেখানে আপনার সংকলক পতাকা হ্যামস্টার রয়েছে।


0

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

এটি এমনকি আপনার বর্ণিতগুলির মতো http://www.extremeprogramming.org/rules/spike.html স্পাইকের জন্য ধারণ করে ; আমরা কেবল তাদের একটি অন্য উপ-গাছে হোস্ট করি।


0

এখানে আমি বিভিন্ন পরিস্থিতিতে নিজেকে মাঝে মাঝে ব্যবহার করি এমন অনেকগুলি সমাধান রয়েছে এবং আপনার নিজের কর্মপ্রবাহে প্রয়োগ করার সময় আপনি সহায়ক হিসাবে বিবেচনা করতে পারেন:

  1. হালকা ওজনের শাখা যা স্কোয়াশ করা যায়।

    গিট এটি এ মহান। একটি শাখায় হ্যাক করুন, প্রচুর পরিমাণে কমিট করুন, এবং তারপরে শব্দটি সম্পাদনা করতে আপনার ইতিহাস পুনরায় বা স্কোয়াশ করুন।

  2. আপনার এসসিএম এর উপরে একটি প্যাচ সারি ব্যবহার করুন।

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

  3. ব্যবহারের RCS ছোট পরীক্ষার জন্য একটি "আউট-অফ-ব্যান্ড" এস সি এম হিসাবে।

    কখনও কখনও আপনি কেবল ইতিহাসের পরে পরিষ্কার না করে কেবল নিষ্পত্তিযোগ্য উপায়ে কোনও ফাইল অগ্রগতিতে চেকপয়েন্টে দেখতে চান। আমি সাধারণত গিট বা এসভিএন এর অভ্যন্তরের জন্য আরসিএস ব্যবহার করি। আমি গিটকে বলেছি যে আরসিএসের নিদর্শনগুলিকে উপেক্ষা করুন, আরসিএসে আমার কাজ চলছে তা চেকপয়েন্টে এবং ফলাফলগুলি পছন্দ করার পরে আমি কেবল *,vফাইলগুলি বা পুরো আরসিএস ডিরেক্টরি টস করি । git clean -fdxআপনার "সত্য" এসসিএম-এর প্রতি আপনার প্রতিশ্রুতিবদ্ধ না হওয়া পর্যন্ত কেবল চালানো বা সমান হবেন না বা আপনি এতে দুঃখিত হবেন না।

  4. নামযুক্ত স্ট্যাশস।

    আরেকটি গিট-ইসম, তবে হ্যান্ডি: git stash save --include-untracked <some-cool-title>একটি চিমটিতে কার্যকর হতে পারে। আপনি সংরক্ষণ করতে পারেন, পপ করতে পারেন এবং এভাবে অগ্রগতিতে কাজ প্রয়োগ করতে পারেন এবং এবং আপনার বিভিন্ন চেকপয়েন্টগুলি মাধ্যমে git stash listবা এর মাধ্যমে দেখতে পারেন git reflog --all। অন্যান্য এসসিএম-তে একই বৈশিষ্ট্য থাকতে পারে তবে আপনার মাইলেজটি এইটির সাথে অনেকগুলি পৃথক হতে পারে।


0

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

কমপক্ষে গিটে, যতক্ষণ না তারা মাস্টার / ট্রাঙ্কে একত্রীকরণের জন্য প্রস্তুত না হয় ততক্ষণ আপনি যে কোনও বৈশিষ্ট্যযুক্ত শাখার সাথে গোলমাল হতে পারেন।

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


0

আমি বিশ্বাস করি যে কয়েকটি সিস্টেম একটি মন্তব্যে TODO দেখার বিষয়ে সতর্কতা ছুঁড়ে দেবে, তাই

// TODO: remove this hack.

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

এটি একটি নির্দিষ্ট উপায়ে আপনার কোডটি সংগঠিত করার চেয়ে সহজ এবং আশা করি যে লোকেদের এটি ব্যবহার না করা মনে রাখবে। @Gbjbaanb এর পরামর্শ অনুসরণ করাও নিরাপদ করে তোলে (যদি আপনি নিশ্চিত করতে পারেন যে সবাই সতর্কতা দেখছে!)।

আপনি সেখানে যা চান তা সবই আঁকুন একদিন আপনি এটি দেখতে চেয়েছিলেন এবং এটি সেই দিনগুলি যা আপনি বুঝতে পারবেন যে আপনার এসসিএম আসলে কী।


0

কোডটি উত্স নিয়ন্ত্রণে রাখা কখনও ক্ষতিকারক নয়।

আপনি যে আইটেমগুলি উল্লেখ করেছেন তার প্রতিটি একক উত্স নিয়ন্ত্রণে থাকা উচিত।

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