নীচের মতো বাসা বাঁধার স্টাইল শিটের ভাষা ব্যবহারের চেয়ে বিইএম আরও ভাল করে তোলে কি?


27

আমার এক সহকর্মী তিনি যে প্রকল্পটি চালাচ্ছেন তার জন্য সিএমএসের জন্য বিইএম ( ব্লক এলিমেন্ট মডিফায়ার ) পদ্ধতিটি প্রচন্ডভাবে চাপ দিচ্ছেন , এবং আমরা কয়েক বছর ধরে যে কম লেখার জন্য সিএসএস লিখছি তার চেয়ে ভাল এটি বুঝতে পারি না।

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

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

তিনি দাবি করেছেন "নেস্টেড সিএসএস একটি বিরোধী নিদর্শন is" "অ্যান্টি-প্যাটার্ন" এর অর্থ কী এবং নেস্টেড সিএসএস খারাপ কেন?

তিনি দাবি করেছেন যে "সবাই বিএম ব্যবহারের দিকে এগিয়ে চলেছে, তাই আমাদেরও উচিত।" আমার কাউন্টারটি হ'ল "যদি সবাই একটি ব্রিজ থেকে ঝাঁপিয়ে পড়ে তবে আপনি কি অনুসরণ করবেন?" তবে তিনি এখনও এ বিষয়ে পুরোপুরি অনড়।

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


1
বিইএম এবং কম বিভিন্ন উদ্দেশ্যে পরিবেশন করে। আমি বিইএম এবং কম ব্যবহার করি।
zzzzBov

4
নোট করুন যে বিইএম মূলত সিএসএস সম্পর্কিত নয় - এটি আপনার ডিজাইনে পুনরাবৃত্ত এনক্যাপসুলেটেড নিদর্শনগুলি সনাক্তকরণ এবং সেই ব্লকের (আচরণ, টেমপ্লেট, শৈলী) এক কেন্দ্রীয় জায়গায় সংগ্রহ করার জন্য। এমনকি কেবল সিএসএসে সীমাবদ্ধ থাকলেও, বিএমইএম এখনও আপনার স্টাইলগুলি সংগঠিত করার এবং নির্ভরযোগ্যভাবে নাম সংঘর্ষ প্রতিরোধের দুর্দান্ত উপায়। এটি কম বা SASS এর মতো প্রিপ্রোসেসরগুলি থেকে সম্পূর্ণ স্বাধীন, যা প্লেইন সিএসএসের চেয়ে আরও বেশি উত্পাদনশীল স্টাইলিং ভাষা কারণ তারা ম্যাক্রো এবং ভেরিয়েবল এবং শর্টহ্যান্ড স্বীকৃতি এবং সমস্ত ধরণের দুর্দান্ত বৈশিষ্ট্যগুলি সরবরাহ করে। কম = জয়, বিইএম = জিত, তবে কম × বেম = উইন²!
আমন

উত্তর:


29

আমার এক সহকর্মী তিনি যে প্রকল্পটি চালাচ্ছেন তার জন্য সিএমএসের জন্য বিইএম (ব্লক এলিমেন্ট মডিফায়ার) পদ্ধতিটি প্রচন্ডভাবে চাপ দিচ্ছেন, এবং আমরা কয়েক বছর ধরে যে কম লেখার জন্য সিএসএস লিখছি তার চেয়ে ভাল এটি বুঝতে পারি না।

বিইএম একটি সিএসএস পদ্ধতি। অন্যদের মধ্যে OOCSS এবং SMACSS অন্তর্ভুক্ত। এই পদ্ধতিগুলি মডিউল, এক্সটেনসিবল, পুনরায় ব্যবহারযোগ্য কোড লিখতে ব্যবহৃত হয় যা স্কেলটিতে ভাল সম্পাদন করে।

কম একটি সিএসএস প্রিপ্রোসেসর। অন্যদের মধ্যে সাস এবং স্টাইলাস অন্তর্ভুক্ত। এই প্রিপ্রোসেসরগুলি তাদের নিজস্ব উত্সগুলি প্রসারিত সিএসএসে রূপান্তর করতে ব্যবহৃত হয়।

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

তিনি দাবি করেছেন "উচ্চতর পারফরম্যান্স" ...

পারফরম্যান্সটির একটি ধ্রুপদী সিএসএস শৈলীর মধ্যে পরিমাপ করা প্রয়োজন:

.widget .header

এবং এর বিইএম শৈলী:

.widget__header

তবে সাধারণভাবে বলতে গেলে সিএসএস নির্বাচকের পারফরম্যান্স কোনও বাধা নয়, এবং এটি অনুকূলিতকরণের প্রয়োজন নেই।

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

তিনি দাবি করেছেন "পঠনযোগ্যতা" এবং "পুনরায় ব্যবহার" ...

আমি জানি না যে আমি একজন নতুন বিকাশকারীকে বলব যে বিইএম আরও পাঠযোগ্য। আমি বলতে পারি এটি ক্লাসগুলির অর্থ এবং কাঠামো সম্পর্কে কিছু সু-সংজ্ঞায়িত গাইডলাইন সরবরাহ করে।

একটি ক্লাস দেখেছি

.foo--bar__baz

আমাকে বলে যে একটি fooব্লক barরয়েছে যা রাজ্যে রয়েছে এবং এতে একটি bazউপাদান রয়েছে ।

আমি একেবারেই বলব যে ক্লাসিকাল মডেলের চেয়ে বিইএম বেশি পুনরায় ব্যবহারযোগ্য।

যদি দুটি বিকাশকারী ব্লক ( fooএবং bar) তৈরি করে এবং সেই দুটি ব্লকের শিরোনাম থাকে, তারা নামকরণের সংঘর্ষের উদ্বেগ ছাড়াই তাদের ব্লকগুলি নিরাপদে বিভিন্ন প্রসঙ্গে নিরাপদে পুনরায় ব্যবহার করতে পারে।

এটি কারণ, একটি শাস্ত্রীয় প্রসঙ্গে, .foo .headingএবং .bar .headingদ্বন্দ্ব সৃষ্টি করে এবং একটি নির্দিষ্টতা সংঘাতের প্রবর্তন করে যা সম্ভবত কেস-বাই-কেস ভিত্তিতে সমাধান করা দরকার।

একটি বিইএম সাইটে ক্লাসগুলি হবে .foo__headingএবং .bar__headingযা কখনও দ্বন্দ্ব করে না।

তিনি দাবি করেছেন "নেস্টেড সিএসএস একটি বিরোধী নিদর্শন is" "অ্যান্টি-প্যাটার্ন" এর অর্থ কী এবং নেস্টেড সিএসএস খারাপ কেন?

একটি "অ্যান্টি-প্যাটার্ন" হ'ল একটি কোডিং প্যাটার্ন যা অনভিজ্ঞ বিকাশকারীদের পক্ষে আরও উপযুক্ত বিকল্পের চেয়ে শিখতে এবং ব্যবহার করা সহজ।

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

#something .lorem .ipsum .dolor ul.sit li.amet a.more

যখন একজন অভিজ্ঞ বিকাশকারী চিন্তিত হবেন যে তাদের সিএসএস একাধিক পৃষ্ঠাগুলিকে প্রভাবিত করতে পারে না , তাই তারা নির্বাচকদের যেমন:

.more

তিনি দাবি করেছেন যে "বিএমইএম ব্যবহারের দিকে এগিয়ে চলেছে, তাই আমাদেরও উচিত।" ...

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

কেউ দয়া করে বিশদ দিয়ে বলতে পারেন যে কমকে কম চেয়ে বিইএমকে আরও ভাল কী করে?

আমি এটি আগে coveredেকে দিয়েছি, বিইএম এবং কম তুলনাযোগ্য নয়। আপেল এবং কমলা ইত্যাদি

আমার সহকর্মী আমাকে বোঝাতে পুরোপুরি ব্যর্থ হচ্ছে, তবে অনুসরণ করতে ছাড়া আমার কোনও পছন্দ আছে কিনা তা আমি জানি না।

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

আমি সত্যিই কৃপণভাবে এটি গ্রহণ করার চেয়ে বরং বিইএম এর প্রশংসা করতে সক্ষম হব।

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

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

যেখানে আপনি থাকতে পারে

.widget {
    .heading {
        ...
    }
}

বিইএম এর মাধ্যমে আপনি ব্যবহার করতে পারেন:

.widget {
    &__heading {
        ...
    }
}

অতিরিক্তভাবে, যেহেতু বিইএম স্বতন্ত্র ব্লকের চারদিকে ঘোরে, আপনি সহজেই পৃথক ফাইলে কোড পৃথক করতে পারবেন। ব্লকটির widget.lessজন্য শৈলী থাকতে পারে .widget, তবে ব্লকের component.lessজন্য শৈলী থাকতে পারে .component। এটি কোনও নির্দিষ্ট শ্রেণীর জন্য উত্স সন্ধান করা আরও সহজ করে তোলে যদিও আপনি এখনও উত্স মানচিত্র ব্যবহার করতে ইচ্ছুক হতে পারেন।


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

3
@ কোরডাম্পরর, এই উদাহরণটি বিবেচনা করুন । বিইএম ছাড়াই লেখককে লেখার জন্য প্রতিটি মডিউলের প্রতিটি সংমিশ্রণ যা তাদের মডিউলে যুক্ত হতে পারে তা যাচাই করতে অতিরিক্ত প্রচেষ্টা ব্যয় করতে হবে। বিইএম ব্যবহারকারী কোনও লেখক তা করেন না।
zzzzBov

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

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

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

8

2017 সম্পাদনা করুন

আপনি যদি 2017 এ এটি পড়ছেন, তবে আপনার কোডটি ছোট, আঁটসাঁট এবং মডুলার রেখে শ্যাডো ডিওএম এবং ছায়া ডোম পলিফিলগুলি, আরও উপাদানগুলি এই সমস্ত সমস্যার সমাধান করে। গ্রিনফিল্ড প্রকল্প আইএমওতে বিইএম ব্যবহার করবেন না।

বিইএম এর পরিবর্তে আমাদের কাছে ভিউএঙ্ক্যাপসুলেশন, পলিমার, স্টাইলডজেএসএক্স, এসএএসএস মডিউল, স্টাইলযুক্ত উপাদান ইত্যাদির মতো সরঞ্জাম রয়েছে have

আপনার কাছে কোনও উপাদান-ভিত্তিক আর্কিটেকচার না থাকলে বিইএম ব্যবহার করার বিষয়টি বিবেচনা করুন; যদি আপনার সমর্থন করার জন্য লিগ্যাসি কোড থাকে; অথবা আপনি যদি সরঞ্জাম না করে ম্যানুয়ালি সমস্ত কিছু করতে সবেমাত্র মৃত হয়ে থাকেন।


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

এটি আপনার কোডটিকে আরও মডুলার করে তোলে, কারণ বাসা বাঁধাকে আর বিবেচনায় নেওয়া হয় না, প্রচুর ভারবোসিটির ব্যয়ে।

বিইএম ছাড়া

বিইএম ছাড়া আমরা হয়ত এটি লিখতে পারি:

<div class="widget">
  <a>Hello!</a>
  <ul>...</ul>
</div>

স্ট্যান্ডার্ড সিএসএস স্টাইলিং এর মতো দেখতে পাবেন:

.widget {
  border: 1px solid red;
}

.widget a {
  color: green;
}

SASS এর সাথে একই জিনিসটি দেখতে পাবেন:

.widget {
  border: 1px solid red;
  a {
    color: green;
  }
}

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

বিইএম সহ

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

এখন আমাদের এইচটিএমএল অনেক বেশি ভার্বোস:

<div class="widget">
  <a class="widget__anchor">Hello!</a>
  <ul class="widget__ul">...</ul>
</div>

আমাদের সিএসএসের কোনও বংশধর নির্বাচনকারী নেই:

.widget {
  border: 1px solid red;
}

.widget__anchor {
  color: green;
}

তবে আমরা এখন এটি করতে পারি:

<div class="widget__2">
  <a class="widget__anchor">Hello!</a>
</div>

উইজেট_আঙ্গার মডুলার। .Widget__anchor এর আর একটি সংজ্ঞা পৃষ্ঠায় উপস্থিত থাকার সম্ভাবনা কম।

tradeoffs:

BEM:

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

স্ট্যান্ডার্ড সিএসএস (যা বংশধর নির্বাচকদের ব্যবহারের উপর নির্ভর করে):

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

তৃতীয় উপায় - রিয়েল উপাদান।

আপনি যদি প্রতিক্রিয়া, কৌণিক 2 বা অন্য কোনও আধুনিক ফ্রন্ট-এন্ড ফ্রেমওয়ার্ডের মতো কিছু ব্যবহার করছেন তবে আপনার আর একটি সমাধান রয়েছে। আপনি এনকেপসুলেশন প্রয়োগের জন্য সরঞ্জাম ব্যবহার করতে পারেন।

এই উদাহরণটি প্রতিক্রিয়া এবং স্টাইলডজেএসএক্স ব্যবহার করে তবে অনেকগুলি বিকল্প রয়েছে। এখানে একটি উইজেট রয়েছে:

const Widget = () => 
  <div>
    <a>Hello</a>
  </div>
  <style jsx>
    div {border:red }
    a { background: pink }
  </style>

তারপরে আপনি নতুন উইজেটটি এভাবে ব্যবহার করতে পারবেন:

<Widget />

উইজেটে ঘোষিত সমস্ত শৈলীগুলি এনপ্যাপুলেটেড হবে, এবং উপাদানগুলির বাইরের উপাদানগুলিতে প্রয়োগ হবে না। পৃষ্ঠায় দুর্ঘটনাক্রমে অন্য কোনও কিছু স্টাইল করার চিন্তা না করেই আমরা কেবল স্টাইল divএবং aসরাসরি স্টাইল করতে পারি are


1
কোনও পক্ষকে সমর্থন না করেই পেশাদার এবং কনস, এটি আমার পছন্দ হয়েছে।
অ্যাড্রিয়ান মাইসা

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

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

2

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

এর মর্ম বুঝতে না পারলে যে কোনও কিছু ব্যবহার করলে খারাপ ফল হয়।

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

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


অত্যন্ত ভাল যুক্তি। বিকাশকারীদের নিজের জন্য চিন্তা করতে এবং সমস্যার ক্ষেত্র বিশ্লেষণ করতে সক্ষম হওয়া উচিত। অন্ধভাবে অনুসরণ করা পদ্ধতিগুলি এখনও আপনাকে সমস্যার দিকে নিয়ে যায়। আমার সহকর্মীরা আছেন যারা পৃষ্ঠায় তাদের পরিবর্তনের প্রভাবগুলি একেবারেই বিবেচনা করেন না এবং আমাদের যে পদ্ধতিটি রয়েছে তা সময়ে সময়ে দক্ষিণে যায় তা বিবেচনা করে না। আমি দলে সিএসএস সচেতনতার স্তর বাড়াতে কঠোর চাপ দিচ্ছি। স্থানীয় শৈলী এবং গ্লোবাল শৈলীর সাথে নেস্টেড SASS প্রজেক্টটি পরিষ্কার রাখার জন্য যথেষ্ট সহজেই পড়া সহজ।
অ্যাড্রিয়ান মাইসা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.