কীভাবে ভাল / আরও ভাল উত্স কোড নিয়ন্ত্রণ অনুশীলনগুলি প্রয়োগ করতে হয়?


28

আমি সন্দেহ করি যে আমি ভুল সমস্যার দিকে মনোনিবেশ করছি সুতরাং আমি যে সমস্যাটি ভাবছি তা সম্ভবত আমি suboptimal সমাধান উপস্থাপন করার আগে বর্ণনা করব।

বর্তমান পরিস্থিতি:
বর্তমানে আমার সহকর্মীরা প্রকল্পের সমস্ত অংশে ছড়িয়ে পড়া পরিবর্তন সহ বিশাল সময়ের মধ্যে কেবল দীর্ঘ সময় পরে তাদের কোড পরিবর্তন করতে প্রতিশ্রুতিবদ্ধ। আমার ধারণা এটি অগ্রগতি, কারণ খুব বেশি দিন আগে তারা কিছু নেটওয়ার্ক শেয়ারে .zip সংরক্ষণাগার রাখে। তবুও, মার্জ করা একটি দুঃস্বপ্ন - এবং সত্যি বলতে আমার কাছে এটি যথেষ্ট ছিল। এবং আমি কথা বলতে ও ব্যাখ্যা করতে এবং ভিক্ষা করতে করতে ক্লান্ত হয়ে পড়েছি। এটি কেবল থামাতে হবে - আমি ক্রমাগত "খারাপ লোক" না হয়ে।

আমার সমাধান:
যেহেতু সমস্যাগুলি সম্পর্কে কোনও সচেতনতা এবং / বা কোনও আগ্রহ নেই বলে মনে হচ্ছে এবং আমি কয়েক দিনের চেয়ে দীর্ঘতর কোনও প্রচেষ্টা আশা করতে পারি না ... হরতাল, ঘন্টা, আমি সাবস্ট্রেশন সার্ভারটি করতে চাই বিরক্তি।

আমার প্রশ্ন:
আমি কি এখানে অফ-বেস করছি বা আমি ভুল সমস্যার দিকে চেয়ে আছি? দেখে মনে হচ্ছে যে আমি কিছু মিস করছি এবং আমি মনে করি যে আমার সমস্যা সমাধানের সরঞ্জামগুলি দেখে ভুল জিনিসটি জিজ্ঞাসা করছি।

এই সমস্যাটি সমাধান করার জন্য আমার কি কোনও সরঞ্জামের সন্ধান করা উচিত বা এটি সমাধান করার জন্য আমার কী করা উচিত?


তারা যেভাবে কাজ করছে তাদের উন্নতি করতে তাদের জন্য উত্সাহী হওয়ার জন্য যে সমস্যাগুলি রয়েছে তা কি তারা নয়?
ফ্লোসকুলাস

1
কেবল একটি ধারণা, তাদের কোডটি মার্জ করুন;) তবে এসভিএন-এ আমাকে প্রায়শই প্রতিশ্রুতিবদ্ধ করা থেকে
বিরত রাখে এমন একটি বিষয় হ'ল

5
কেউ মার্জ করার পরে বিরোধগুলি সমাধানের জন্য দায়িত্ব কে নেয়?
ফ্লস্কুলাস

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

উত্তর:


47

আপনি একটি মানুষের সমস্যার প্রযুক্তিগত সমাধান খুঁজছেন। এটি খুব কমই কাজ করে।

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

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

  1. আপনার সহকর্মীদের সাথে ইস্যুটি আলোচনা করুন এবং বৃহত্তর কমিটের পরিণতি ব্যাখ্যা করুন। সম্ভবত তারা সহজেই বুঝতে পারে না যে জটিল সংযুক্তিগুলি বিরল প্রত্যাশনের প্রত্যক্ষ পরিণতি এবং ছোটগুলির চেয়ে ঘন ঘন কমিটগুলি মার্জগুলি (তুলনামূলকভাবে) সহজ করে তোলে।

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

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

    কিছু লোক অসচেতন যে 5-10 সদস্যের এমন টিম রয়েছে যারা 50 টি উত্পাদন পর্যন্ত ধাক্কা দেয়, যা প্রতিদিন জনপ্রতি গড়ে 5-10 কমিটে অনুবাদ করে। কীভাবে সম্ভব তা তারা বুঝতে পারে না বা কেন কেউ এটি করবে।

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

  4. উপযুক্ত হলে "আমি আপনাকে বলেছিলাম" কৌশলটি ব্যবহার করুন । আপনি যখন দেখেন আপনার সহকর্মীরা বেদনাদায়ক একীকরণের জন্য ভুগছেন, উচ্চস্বরে মন্তব্য করুন যে ছোট, ঘন ঘন কমিটগুলি মার্জ (তুলনামূলকভাবে) ব্যথাহীন হতে পারে।

  5. ব্যাখ্যা করুন যে প্রতিশ্রুতিবদ্ধতার কোনও ন্যূনতম সময়কাল নেই। একটি প্রতিশ্রুতি এমনকি কয়েক সেকেন্ডের মধ্যে করা একটি সামান্য পরিবর্তনের সাথেও সামঞ্জস্য হতে পারে। একটি ফাইলের নাম পরিবর্তন, একটি অপ্রচলিত মন্তব্য মুছে ফেলা, একটি টাইপো সংশোধন করা সমস্ত কাজ যা অবিলম্বে প্রতিশ্রুতিবদ্ধ হতে পারে।

    প্রোগ্রামাররা একটি ক্ষুদ্র প্রতিশ্রুতিবদ্ধ হওয়া ভয় করবে না, বরং এক বিশাল প্রতিশ্রুতিতে বহু পরিবর্তনকে একত্রিত করা উচিত।

  6. উপযুক্ত হলে দলের পরিবর্তে ব্যক্তিদের সাথে কাজ করুন। যদি এমন কোনও ব্যক্তি আছেন যা বিশেষত ঘন ঘন, ছোট ছোট অঙ্গীকারগুলি করতে অস্বীকার করেন তবে তিনি কেন তা অস্বীকার করছেন তা দেখার জন্য এই ব্যক্তির সাথে স্বতন্ত্রভাবে কথা বলুন।

    তারা পুরোপুরি বৈধ কারণ দিতে পারে যা আপনাকে একটি দলের সাথে কী চলছে সে সম্পর্কে ইঙ্গিত দিতে পারে। কিছু কারণ আমি শুনেছি:

    • "আমার শিক্ষক / পরামর্শদাতা আমাকে বলেছিলেন যে প্রতিদিনের জন্য একটি প্রতিশ্রুতিবদ্ধ করা সবচেয়ে ভাল অনুশীলন college" কলেজে আমার শিক্ষকদের কাছ থেকে আমার যা শুনতে হয়েছিল তা দিয়ে আমি অবাক হই না ।

    • "আমার সহকর্মীরা আমাকে বলেছিলেন যে আমার কম কমিট করা উচিত।" আমাকেও কিছু দলে বলা হয়েছিল, এবং আমি তাদের বিষয়টি বুঝতে পারি। আমাদের একটি লগ ছিল যা কার্যত আমার কমেটগুলিতে পূর্ণ ছিল (যখন চার সতীর্থ এমনকি প্রতিদিন একটি প্রতিশ্রুতি নাও করেন তখন করা কঠিন নয়), যা আমার সহকর্মীদের হতাশ করেছিল।

    • "আমি ভেবেছিলাম ছোট কমিটগুলি একটি সংশোধন খুঁজে পাওয়া কঠিন করে দিয়েছে।" দলটি বর্ণনামূলক লগ বার্তা লেখার জন্য প্রচেষ্টা চালিয়ে গেলেও কোনওভাবে বৈধ পয়েন্ট।

    • "আমি আমাদের সংস্করণ নিয়ন্ত্রণ সার্ভারে খুব বেশি জায়গা নষ্ট করতে চাই না” "ব্যক্তি স্পষ্টত বুঝতে পারে না যে কীভাবে কমিটস সংরক্ষণ করা হয় (বা স্টোরেজ স্পেসটি কত সস্তা)।

    • “আমি মনে করি একটি প্রতিশ্রুতি নির্দিষ্ট কাজের সাথে সঙ্গতিপূর্ণ হওয়া উচিত।” প্রায়শই একটি কাজের মধ্যে কোনও কাজ কিছু দিনের সাথে মিলের সাথে মিলিত হয় (যেমন ভিজ্যুয়াল ম্যানেজমেন্টের টাস্ক বোর্ডগুলিতে) এটি কোনও কাকতালীয় ঘটনা নয়। তারপরে সেই ব্যক্তিকে ব্যাকলগে কোনও কাজের মধ্যে (2 থেকে 8 ঘন্টা কাজ) এবং একটি যৌক্তিকভাবে বিচ্ছিন্ন পরিবর্তন করতে হবে যা প্রতিশ্রুতিবদ্ধ হওয়া উচিত (কয়েক সেকেন্ড থেকে কয়েক ঘন্টা কাজ করা)। এটি 5 পয়েন্টের সাথেও সম্পর্কিত।

  7. দলটি আরও ঘন ঘন কমিট না করায় অনুসন্ধান করুন। ফলাফল দেখে আপনি অবাক হতে পারেন।

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

    অন্যান্য কারণে অন্তর্ভুক্ত থাকতে পারে:

    • প্রতিশ্রুতি বার্তা লিখতে অতিরিক্ত জটিল নিয়ম।

    • যে নিয়মটি বিকাশকারীকে একটি বাগ ট্র্যাকিং সিস্টেম থেকে কোনও কাজের সাথে প্রতিশ্রুতি যুক্ত করতে বাধ্য করে।

    • বিল্ড ভেঙে যাওয়ার ভয়।

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

    • একীভূত করার ভয়।

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

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


"আপনি একটি মানুষের সমস্যার প্রযুক্তিগত সমাধান খুঁজছেন That এটি খুব কমই কার্যকর হয়।" - আমি জানি, তবে আমি আপনার সমস্ত পয়েন্ট দিয়ে কেবল ক্লান্ত এবং ইতিমধ্যে রয়েছি। এটি এখনও আমার দীর্ঘস্থায়ী সমস্যা নয় ...
ভলকারক

@ ভোলকারক: আমার সম্পাদনা দেখুন (উত্তরের প্রথম দুটি অনুচ্ছেদ) আপনার কি সিআই সার্ভার আছে? আপনি যখন আপনার সহকর্মীদের সাথে কথা বলছেন, তারা কীভাবে আরও বেশি ঘন ঘন প্রতিশ্রুতিবদ্ধ হওয়া তাদের অনিচ্ছাকে ব্যাখ্যা করবেন?
আর্সেনি মোরজেনকো

1
@ ভোলকারক এই উত্তরটি খুব ভালভাবে ব্যাখ্যা করেছে। আপনার কোনও প্রযুক্তিগত সমস্যা নেই। সমস্যাগুলি লোকেরা এই পদ্ধতিটি অনুসরণ করতে অস্বীকার করছে।
2013

1
পয়েন্ট 3 এর দিকে: কচ্ছপ এসভিএন ক্লায়েন্ট বিভিন্ন চিত্র তৈরি করতে পারে যা বিভিন্ন পরামিতিগুলির (সময়ের মতো) উপর ভিত্তি করে চেক-ইন আচরণটি ভিজ্যুয়ালাইজ করে। এগুলি মূল্যায়ণ করা আসলে বেশ আকর্ষণীয়। যে দিনগুলিতে আমরা এসভিএন ব্যবহার করছিলাম সেগুলিতে আমি এটি ঘন ঘন করেছি। stackoverflow.com/questions/412129/... :)
Aschratt


-3

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

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

অবশ্যই, নিয়মের "কেন" পাশাপাশি "কী" ব্যাখ্যা করা গুরুত্বপূর্ণ। যদি "কেন" পরিষ্কার না করা হয় তবে তারা কেবল তাদের উত্সটি USB ড্রাইভ বা অন্য কোনও কিছুতে সঞ্চয় করতে পারে।


4
এটি মানুষের চিকিত্সা করার এক ভয়ঙ্কর উপায়। যাবার আগে যখন আপনি কিছু ঠিক মনে করেন এবং মেশিনে রাখতে চান তখন কী হয়, তবে এটি সম্পূর্ণ হয় না (যেমন তৈরি হয় না) তাই আপনি এটি করতে চান না?
ব্যবহারকারী 1118321

3
এবং এটি সম্পদের অপচয়, কারণ সাধারণত আপনার একটি সেট-আপ পরিবেশ থাকে যা আপনার প্রয়োজনের সাথে খাপ খায়। অনেক দিন আগেও আমার একই অবস্থা ছিল এবং আমি 4 সপ্তাহ পরে আমার নিজের ল্যাপটপটি পেয়েছি। আমি প্রতিটি সেট সেট করার জন্য ঘৃণা করি, কেবল আমার কাজটি করা প্রত্যাশিত কাজটি করার জন্য।
mliebelt

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

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

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