সম্প্রতি, আমরা আমার সংস্থার প্রায় সমস্ত উত্স কোডকে একক সমাধানে স্থানান্তরিত করেছি।
কেন?
মূলত, আমাদের কয়েক ডজন সমাধান ছিল। সমাধানের কিছু প্রকল্প অন্য প্রকল্পগুলির পুনরায় ব্যবহার করে এবং প্যাকেজ ম্যানেজারটি কেউ ব্যবহার করে না। যে দিন আপনি প্রায়শই ব্যবহার করা হয় এমন একটি প্রকল্প পরিবর্তন করেন, পরবর্তী দিন বা সপ্তাহের জন্য পুরো সংস্থার জন্য ঘন্টা এবং ঘন্টা হারিয়ে যাওয়া কাজ আশা করে। সবচেয়ে খারাপ দিকটি হ'ল আপনি এমনকি এটিও বুঝতে পারবেন না যে পরিবর্তনের ফলে ঠিক কী প্রভাবিত হবে।
সমস্ত কোডকে একটি দ্রবণে মার্জ করা বিকল্প ছিল। এটি মুহুর্তের জন্য ভালভাবে কাজ করে এবং নির্ভরতাগুলি এখন অনুসরণ করা সহজ। কোনও পদ্ধতি পরিবর্তন করতে চান তবে কোড বেসের যে কোনও জায়গায় এই পরিবর্তনগুলি থাকতে পারে তার ফলাফলগুলিও ট্র্যাক করতে চান? ভিজ্যুয়াল স্টুডিও সহজেই তা করতে পারে। আমার জন্য, এটি একটি সাফল্য।
অবিচ্ছিন্ন একীকরণ এখন খুব সহজ। সংকলন এবং মোতায়েন করার একটি সমাধান। কনফিগার করার জন্য প্রায় কিছুই নেই।
এটি কি স্কেলযোগ্য?
পারফরম্যান্স অনুযায়ী, ভিজ্যুয়াল স্টুডিওতে আমি খুব অবাক হয়েছিলাম । আমি ভেবেছিলাম যে এটি 50 টি প্রকল্পের সাথে একটি সমাধান দিয়ে কাঁদতে শুরু করবে। আজ 200 টিরও বেশি প্রকল্প রয়েছে; ভিজুয়াল স্টুডিওগুলি তাদের পরিচালনা করতে পর্যাপ্ত পরিমাণে স্কেলেযোগ্য বলে মনে হয়েছিল যেন তাদের মধ্যে কেবলমাত্র 20 জন রয়েছে। হ্যাঁ, এমন কিছু জিনিস রয়েছে যা সময় নেয়। আপনি যদি কোড প্রকল্পগুলি, কোড বিশ্লেষণ ডিফল্ট অনুসারে সক্ষম করা ইত্যাদি সহ প্রতিটি প্রকল্প পুনরায় সংকলন করেন তবে এটি কিছুটা সময় নেবে বলে আশাবাদী। তবে কেউ ১০০ টির মতো দ্রুত 200 প্রকল্প সংকলন করার প্রত্যাশা করবে না এবং যাইহোক, আপনার উচিত হবে না: এটি অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভারের ভূমিকা। প্রারম্ভকালীন সময় (ঠান্ডা শুরু, তারপর সমাধান লোড করা) চিত্তাকর্ষকভাবে দ্রুত ; 10 টি প্রকল্পের মতো দ্রুত নাও হতে পারে তবে এটি এখনও খুব গ্রহণযোগ্য (পাঁচ বছরেরও বেশি আগে কোনও মেশিনে 20 সেকেন্ডের অধীনে কেনা হয়েছিল)।
আরও এগিয়ে যাওয়ার জন্য, পদ্ধতিগতভাবে প্রকল্পগুলি আনলোড করা ভাল ধারণা (এবং সমাধানগুলির মধ্যে ডিরেক্টরিতে যখন প্রকল্পগুলি সংগঠিত করা হয় তখন সত্যই সহজ)। যদি কেউ এমন কোনও কিছুতে কাজ করে যার জন্য লোড করা মাত্র তিনটি প্রকল্পের প্রয়োজন হয়, তবে 200 টি প্রকল্পের লোড করার দরকার নেই (যদি না, নির্ভরতা প্রভাবিত হতে পারে)।
সংস্করণ নিয়ন্ত্রণ পাশাপাশি প্রত্যাশিত হিসাবে কাজ করে (আমি যদি একটি এসভিএন সার্ভার ব্যবহার করি তবে এটি গুরুত্বপূর্ণ)। আমি কয়েক হাজার বিকাশকারী কোডটি প্রায়শই কোড কমেন্ট করে বলার সাথে একটি আসল সমবর্তী পরিবেশে কাজ করি নি, তবে আমি কল্পনা করব যে এতে খুব বেশি সমস্যা নেই। অনেকগুলি বিকাশকারী একই সাথে নতুন প্রকল্প যুক্ত করার ক্ষেত্রে কেবল সাবধান থাকুন: .sln ফাইলটি মার্জ করা সহজ কাজ নয়।
উপসংহার
যদি আমাকে আবার সিদ্ধান্ত নিতে হয়:
আমি এখনও সবকিছুকে একটি একক সমাধানে স্থানান্তরিত করব। এটি ভাঙা নির্ভরতাগুলির ব্যথা প্রচুর পরিমাণে হ্রাস করে এবং একা এই সুবিধাটি একেবারেই মূল্যবান। সমস্ত কোডের জন্য কেন্দ্রীভূত স্থান রাখাও একটি ভাল ধারণা; এটি উদাহরণস্বরূপ ভিজ্যুয়াল স্টুডিওর মধ্যে কোনও কিছুর সন্ধান করা সম্ভব করে। আমি দুর্বল-সম্পর্কিত দুটি প্রকল্পেও কাজ করতে পারি এবং এখনও কেবল একটি ভিজ্যুয়াল স্টুডিও উইন্ডো খোলা আছে।
আমি আরও কিছুটা নুগেট এবং একটি বেসরকারী নুগেট সার্ভার হোস্ট করার ক্ষমতা নিয়েও অধ্যয়ন করব। নুগেটের মাধ্যমে নির্ভরতা পরিচালনা করা যখন আপনি কয়েকটি সাধারণ প্রকল্পকে একত্রীকরণ করতে চান না তখন কিছু সমস্যার সমাধান করতে পারে। ব্যক্তিগতভাবে, আমার কাছে এ জাতীয় মামলা ছিল না, তবে আমি ধারণা করি যে অন্যান্য সংস্থাগুলিরও এটি হতে পারে।
অবশেষে, প্রতিটি বিকাশকারীদের জন্য এসএসডি বিনিয়োগ করা একটি বিশাল পার্থক্য করতে পারে। তবে আপনার দরকার নেই এবং আমার ক্ষেত্রে কোড কোডটি এখনও একটি সাধারণ হার্ড ড্রাইভে সঞ্চিত রয়েছে।