মিনিট সিএসএস কি গিটে রাখা উচিত?


10

আমি যে প্রকল্পে কাজ করছি তার জন্য আমার এসএএসএস কোড থেকে মিনিফাইড সিএসএস তৈরি করতে গুল্প ব্যবহার করি।

আমি বিস্মিত হয়েছি যে গিট থেকে লাইভ ঠেলাঠেলি করার সময় এই মিনিফাইড সিএসএসটি পুনঃজন্মের পক্ষে সেরা অনুশীলন বলে মনে করা হচ্ছে ...

অথবা

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

আমি এই সম্পর্কে মানুষের ধারণা প্রশংসা করব। ধন্যবাদ!


এখানে কেবলমাত্র একটি জায়গা সিএসএস / জেএস / ইত্যাদি রয়েছে ified সঞ্চিত হওয়া উচিত: /dev/null
আর .. গিথহাব বন্ধ করুন ICE

(যে কারণে আপনার ওয়েবসার্ভার gzipped পরিবহন ব্যবহারের পুরোপুরি সক্ষম।)
আর .. GitHub বন্ধ সাহায্য করা বরফ

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

উত্তর:


13

"এটা নির্ভর করে." সাধারণ বিকাশের জন্য, না। ক্লাউড এবং ডিভোপ্স মোতায়েনের জন্য, তবে এটি প্রায়শই সুবিধাজনক বা এমনকি প্রয়োজনীয়।

বেশিরভাগ সময়, @ptyx সঠিক হয় । প্রকৃতপক্ষে, তার "না" কিছুটা বেশি জোর দিয়ে বলা যেতে পারে। "নং না! ওএমজি না! " এর মতো কিছু

গিটের মতো উত্স নিয়ন্ত্রণ সিস্টেমে সংশোধিত বা সংকুচিত সম্পদগুলি কেন সংরক্ষণ করবেন না?

  1. এগুলি উত্স কোড থেকে ফ্লাইতে আপনার বিল্ড প্রক্রিয়াটি দ্বারা প্রায় তুচ্ছভাবে পুনঃজাত করা যায়। সংকুচিত সম্পদগুলি সংরক্ষণ করা মূলত একই লজিকাল সামগ্রীটি দু'বার সংরক্ষণ করে। এটি "নিজেকে পুনরাবৃত্তি করবেন না" (ওরফে ডিআরওয়াই ) নীতি লঙ্ঘন করে।

  2. একটি কম দার্শনিক তবে আরও ব্যবহারিক কারণ হ'ল গিটে সঞ্চিত থাকাকালীন / অপ্টিমাইজড সম্পদের খুব কম সংকোচনেতা থাকে। উত্স নিয়ন্ত্রণ সিস্টেমগুলি স্টোরকৃত প্রতিটি ফাইলের বিভিন্ন সংস্করণের মধ্যে পরিবর্তনগুলি ("ডেল্টাস") সনাক্ত করে কাজ করে। এটি করার জন্য, তারা পূর্ববর্তী সংস্করণ সহ সর্বশেষতম ফাইলটি "পৃথক" করে এবং ফাইলের প্রতিটি সংস্করণের সম্পূর্ণ অনুলিপি সংরক্ষণ না করার জন্য এই ডেল্টাগুলি ব্যবহার করে। তবে মিনিফাই / অপ্টিমাইজ ধাপে রূপান্তরগুলি প্রায়শই সাদৃশ্যগুলি সরিয়ে দেয় এবং ডেল্টা অ্যালগরিদমগুলির ব্যবহারের উপায়গুলি এবং উপায়গুলিকে সরিয়ে দেয় । সর্বাধিক তুচ্ছ উদাহরণ লাইন বিরতি এবং অন্যান্য সাদা স্থান অপসারণ; ফলস্বরূপ সম্পদ প্রায়শই একটি দীর্ঘ লাইন হয়। ওয়েব বিল্ড প্রক্রিয়াটির অনেকগুলি অংশ - বাবেল , ইউগ্লিফাইজেএস , ব্রাউজারফাই ,কম , এবং স্যাস / এসসিএসএস - উত্তেজনাপূর্ণ সম্পদ রূপান্তর করে। তাদের আউটপুট পার্থক্যযুক্ত; ছোট ইনপুট পরিবর্তন আউটপুট বড় পরিবর্তন হতে পারে। ফলস্বরূপ, ডিফ-অ্যালগরিদম প্রায়শই বিশ্বাস করবে এটি প্রতিবার প্রায় সম্পূর্ণ আলাদা ফাইল দেখে। ফলস্বরূপ আপনার সংগ্রহস্থলগুলি আরও দ্রুত বৃদ্ধি পাবে। আপনার ডিস্কগুলি যথেষ্ট পরিমাণে বড় হতে পারে এবং আপনার নেটওয়ার্কগুলি দ্রুত পর্যাপ্ত পরিমাণে উদ্বেগের কারণ নয়, বিশেষত যদি মাইনযুক্ত / অনুকূলিত সম্পদ দু'বার সংরক্ষণ করার জন্য কোনও মূল্য ছিল - যদিও পয়েন্ট 1 এর ভিত্তিতে অতিরিক্ত কপিগুলি কেবলমাত্র 100% অর্থহীন হতে পারে ফোলানো।

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

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


1
এই জন্য আপনাকে ধন্যবাদ! অনেক প্রশংসিত. এটির পরিবর্তে আমি এটি উত্তর হিসাবে চিহ্নিত করেছি কারণ এটি আরও অনেক ভাল ব্যাখ্যা করা আছে।
কনার গুরনি

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

আমি মনে করি আপনি কেবল পরিবর্তন করে "এবং নতুন নতুন বেল্টা" "র লাইনের পাশাপাশি কিছুতে সংরক্ষণ করতে পারেন এবং এই ডেল্টাটি ফাইলের প্রতিটি সংস্করণের সম্পূর্ণ অনুলিপি সঞ্চয় করতে এড়াতে" ব্যবহার করতে পারেন think এটি আপনার বক্তব্য তৈরি করবে, সত্যিকার অর্থে সঠিক হবে এবং প্রদত্ত যে কোনও উত্স নিয়ন্ত্রণ ব্যবস্থার জন্য এটি কীভাবে হয়েছিল তা ইস্যুতে ঝোঁক এড়াতে পারে।
jpmc26

ডিভোপস কি উভয় বিশ্বের সেরা পেয়ে ডিপ্লোয়ার সার্ভারে স্বয়ংক্রিয়ভাবে মিনিফিকেশন ট্রিগার করতে গিট হুক ব্যবহার করতে পারে?
বাটাল বাটকাস

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

17

না।

উত্স নিয়ন্ত্রণে কেবল উত্স থাকা উচিত। যদি এটি উত্স থেকে উত্পন্ন হয় তবে এটি সেখানে নেই - এবং এটি আপনার বিল্ড প্রক্রিয়া দ্বারা উত্পন্ন করা উচিত।

আপনি মধ্যবর্তী স্থাপনা তৈরির উত্স নিয়ন্ত্রণ করতে চান না এমন মৌলিক কারণ হ'ল আপনি যদি তা করেন তবে আপনি যা চালাচ্ছেন তা বিশ্বাস করা সত্যিই শক্ত হয়ে যায় আপনি কেবলমাত্র পরিবর্তিত উত্স থেকে, বা আপনি পুনর্নির্মাণে ব্যর্থ একটি মধ্যবর্তী পণ্য থেকে ।


3
এক্সিকিউটেবল কোডটিকে আপনি যেভাবে মনে করেন উত্পন্ন কোডটি ভাবেন।
candied_orange

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

@ আর ..: আদর্শভাবে, আপনি এই জিনিসগুলির জন্য একটি পৃথক শিল্পকলা সংগ্রহস্থল বজায় রাখেন, কিন্তু বাস্তবতা খুব কমই আদর্শ।
কেভিন

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

1
@ বুটল বাটকাস আমার কাছে ডিভস কেসে অনেক দক্ষতা নেই। আমি যা দেখেছি তা হ'ল নির্ভুলভাবে সোর্স কন্ট্রোল হিসাবে না হয়ে ট্রান্সপোর্ট / রিলিজ / ডিপ্লোয়মেন্ট মেকানিজম হিসাবে ব্যবহার করা হয় (খুব সুবিধাজনক এবং নমনীয়) it যদি 'উত্স' গিট এবং 'বিতরণ' গিট পৃথক না হয় (পৃথক রেপো বা পৃথক শাখা), এর অর্থ আপনাকে উত্স-> বিল্ড-> ডেলিভারিভ চেইনের সাথে কিছুটা আপস করতে হবে - উদাহরণস্বরূপ আপনি উত্স কোড সহ উত্পাদন শেষ করবেন up এবং চারপাশে থাকা অতিরিক্ত শাখা এবং অব্যবহৃত বাইনারি পণ্যগুলির সাথে বিকাশ। এটি একটি বাস্তবসম্মত সমঝোতা, তবে আমি যখন পারি তখন উদ্বেগগুলি পৃথক করতে পছন্দ করি।
ptyx
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.