এর্ব, হামল বা স্লিম: আপনি কোনটিকে পরামর্শ দিচ্ছেন? এবং কেন? [বন্ধ]


103

আমি রেলগুলি শিখছি এবং আমি এই টেম্পলেট ইঞ্জিনগুলি দেখেছি। তাদের সাথে আমার কোনও অভিজ্ঞতা নেই (কেবল ইরব)।

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

সম্পাদনা: আমি এখানে কোনও বিজয়ীর সন্ধান করছি না। আমি তাদের সম্পর্কে আপনার মতামত, তাদের বাক্য গঠন, কার্যকরকরণের গতি এবং আরও শুনতে চাই।


7
সংক্ষিপ্ত উত্তরটি হল, শিক্ষানবিশ হিসাবে, ইআরবি ব্যবহার করুন।
স্কট শুলথেস


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

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

2
এটি এখনও 'রেল এইচটিএমএল এর্ব' এর জন্য # 1 গুগল ফলাফল
অরওলোফিল

উত্তর:


67

ইআরবি মূলত আপনার কাছে এমন একটি ওয়েব ডিজাইনার রয়েছে যা সাদামাটা এইচটিএমএল এ কাজ করবে এবং এটি এইচএমএল বা স্লিম জানে না mainly এইভাবে সে এইচটিএমএল লিখতে পারে এবং আপনি সঠিক ট্যাগ দিয়ে রুবি যুক্তি এম্বেড করতে পারেন।

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

উদাহরণস্বরূপ (অফিসিয়াল এইচএএমএল সাইট থেকে নেওয়া ):

ইআরবি-তে আপনার দৃষ্টিভঙ্গি এরকম দেখাবে:

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>

এইচএএমএল থাকাকালীন এটি দেখতে এটির মতো দেখাবে:

#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio

অনেক ক্লিনার!

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


এটি পড়ুন - চূড়ান্ত বিজয়ী সম্পর্কে সর্বশেষ বাক্যটি ছিল এইচএএমএল এবং এসএলআইএম (সঠিকভাবে সম্পাদিত) সম্পর্কে।
এরেজ রবিহ

1
হ্যাঁ, এটির জন্য +1, যদিও হ্যামল ও স্লিম এইচটিএমএল থেকে সমস্ত আবর্জনা সরিয়ে ফেলেছে এবং একটি ভাল শব্দগুচ্ছের প্রয়োজনে, সম্পূর্ণ ফ্রিকিন 'দুর্দান্ত, অনেক এইচটিএমএল-মানুষ কেবল তার চারপাশে মাথা পেতে পারে না (বা আরেন না 'প্রথম স্থানে হ্যান্ডকোডারগুলি ব্যবহার করবেন না, বা স্নিপেট এবং অনুলিপি-
পাস্তার

8
@ এরেজরাবিহ আসলে এইচএএমএল এবং এসএলআইএম এর মধ্যে একটি বড় পার্থক্য রয়েছে। এইচএএমএল থেকে স্লিম অনেক দ্রুত। এটি একটি ক্লিনার সিনট্যাক্স আছে, এবং আপনি HTML আরও পরিচ্ছন্ন বৈশিষ্ট্যাবলী লিখতে অনুমতি দেয়: a href="foo"
মোহাম্মাদ

87

এইচএমএল থেকে স্লিম ওভার ব্যবহারের দুটি বড় সুবিধা:

  1. স্লিম বর্তমানে এইচএমএল থেকে প্রায় আটগুণ দ্রুত is

  2. স্লিম এইচটিটিপি স্ট্রিমিং সমর্থন করে, যখন এইচএএমএল দেয় না।

  3. স্লিমের আরও প্রাকৃতিক বাক্য গঠন রয়েছে: a href="foo.html"


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

4
@ জোশুয়ামুহিম স্লিম এমন মানদণ্ডের কোড নিয়ে আসে যা আপনি নিজের মেশিনে পরিবর্তন / পরীক্ষা করতে পারবেন: github.com/stonean/slim#testing
গেরি

5
+1 স্লিম এইচটিটিপি স্ট্রিমিংকে সমর্থন করে, আমরা আমাদের পেমেন্ট গেটওয়ে এবং হেরোকু নিয়ে সমস্যা অনুভব করছি, মনে হচ্ছে এইচটিটিপি এই স্ট্রিমিং সমাধান করার একটি উপায় তবে আমাদের অ্যাপ্লিকেশন এইচএএমএল-এর সাথে চালিত হওয়ায় এই সমাধানটি আর কোনও বিকল্প নয়
ফ্লাভ

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

16
অতিরিক্ত অতিরিক্ত কাজের প্রয়োজন হলে অকাল অপটিমাইজেশন একটি ভাল ধারণা নয়, তবে উল্লেখযোগ্য পারফরম্যান্স সুবিধার কারণে কেবল একটির তুলনায় একটির মতো একই লাইব্রেরিটি বেছে নেওয়া অকাল নয়।
জ্যামন হল্মগ্রেন

35

আমার মাথার উপরের অংশটি এটাই আমি নিয়ে এসেছি

ইআরবি :

পেশাদাররা

  • ডিফল্ট বাক্স বাইরে
  • সাদা স্থান নির্ভর নয়
  • রুবি কোডটি ছিটানো এর সাথে এইচটিএমএল হিসাবে প্রবেশের সর্বনিম্ন বাধা (যদি এইচটিএমএল থেকে আগত হয়)
  • বেশিরভাগ আইডিই এর লেক্সাররা এটি ডিফল্টরূপে পড়ে
  • ডিএইচএইচ এটি পছন্দ করে
  • উত্তরাধিকার অ্যাপ্লিকেশন সম্ভবত এখনও এটি ব্যবহার করছে

কনস

  • আরও ভার্বোজ
  • সহায়ক_ সহায়কগুলির জন্য ট্যাগগুলির জন্য এবং দর্শনগুলি দ্রুত হাত থেকে বেরিয়ে আসতে পারে
  • Content_for ট্যাগগুলি নীড়ের ট্যাগগুলিকে আরও শক্ত করে তোলে কারণ এরব কেবলমাত্র ব্লকের শেষ লাইনটি দেয়। সুতরাং আপনি একটি স্ট্রিং সংযোজন এবং তারপরে ফিরে আসতে হবে।

HAML

পেশাদাররা

  • আরও সংক্ষিপ্ত কোনও ক্লোজিং ট্যাগ নেই, ছোট পর্দায় ফিট করে
  • দৃশ্যত ক্লিনার কাঠামো
  • সহায়তাকারী পদ্ধতিতে এইচএমএল ব্যবহার করতে সহায়তাকারীদের (haml_concat, haml_capture) তৈরি করেছেন
  • ক্লাস চেইন
  • ডিভসের জন্য # এর মতো প্রচুর দরকারী সিনট্যাকটিক চিনি। ক্লাস শৃঙ্খলার জন্য, বা: জেএস ট্যাগের জন্য জাভাস্ক্রিপ্ট

কনস

  • হোয়াইটস্পেস নির্ভর যা কখনও কখনও কিছু হার্ড ত্রুটিগুলি বের করার জন্য তৈরি করে
  • জটিল ট্যাগগুলির সাধারণত "হ্যাশ" ফর্ম্যাটটি অবলম্বন করা প্রয়োজন। (যদিও আমি বাস্তবে মনে করি এটি কারও কাছে শুরু হওয়ার সাথে এটি নমনীয়তার একটি দুর্দান্ত উদাহরণ এটি একটি ব্যথা হতে পারে))
  • রত্ন হিসাবে যুক্ত করা হয়েছে (এটি সম্ভবত একটি শঙ্কু হিসাবে রাখা একটি প্রসারিত)
  • ডিজাইনারদের সামঞ্জস্য করতে কিছু সমস্যা হতে পারে
  • সাধারণ শ্বেত স্পেস সতর্কতা ছাড়াও ... সাধারণ সাদা স্পেস ত্রুটি যেমন eg ইন্ডেন্টেশনের জন্য ট্যাব এবং স্পেসস, পৃষ্ঠাগুলি উত্পাদন করতে ভুল করতে পারে যা সাধারণ চশমা / পরীক্ষা ধরতে পারে না। নৈতিক: দেখার পরীক্ষাগুলির আরও বেশি প্রয়োজনের প্রত্যাশা করুন এবং মিশন সমালোচনামূলক দর্শনের জন্য সম্ভবত এইচএমএল ব্যবহার করবেন না, যদি না আপনি নিশ্চিত হন যে আপনার পরীক্ষাগুলি দৃশ্যের প্রকৃত রেন্ডারিং পরীক্ষা করছে।
  • ধীর
    • সতর্কতা: এটি রুবি কোড যা আমরা এই বিষয়ে কথা বলছি যদি আপনার অ্যাপ্লিকেশনটিতে গতি একটি ব্লকিং সমস্যা হয় তবে রুবির বিকল্প রয়েছে যেমন, হাস্কেল

আমি যুক্ত করব যে হামল শঙ্কু হিসাবে এর্বের চেয়ে ধীর পারফরম্যান্স বুদ্ধিমান।
bkunzi01

হা. অবশ্যই। আমি
ইঞ্জিনিয়ারডেভ

1
আপনি যদি এইচএএমএল পছন্দ করেন এবং আপনার অভিনয় সম্পর্কে চিন্তিত হন, হ্যামলিট চেষ্টা করুন try আমি আমার অ্যাপ্লিকেশনগুলিতে ইআরবির প্রায় দ্রুত গতি রেন্ডার ক্ষেত্রে একটি বড় উন্নতি দেখেছি। github.com/k0kubun/hamlit
জর্জে নাজেরা টি

21

আমার জন্য প্রশ্নটি নেমে আসে আপনি বরং %প্রতিটি ট্যাগের আগে রেখে দিতে চান| আগে পাঠ্যের প্রতিটি নতুন ব্লকের আগে রাখবেন?

স্লিম:

 tag(attr= "value")
  | text

Haml:

 %tag{attr: "value"}
   text

আরও একটি বিষয় সন্ধান করতে হবে: এইচএমএল নতুন লাইনের মধ্যবর্তী একটি সাদা স্থান ধরেছে ( হ্যামেলের সাদা অংশকে সরিয়ে ফেলুন ) যখন স্লিম কোনও স্থান ধরে নেয় না (স্লিমের সাদা অংশটি এখানে এবং এখানে যোগ করুন )


9
+1 টি। তবে ট্যাগ হিসাবে একই লাইনে পাঠ্যের জন্য পাইপের প্রয়োজন হয় না। এটি কেবলমাত্র তখন প্রয়োজন যখন কোনও ট্যাগের মধ্যে পাঠ্যের প্রথম লাইন ট্যাগের মতো একই লাইনে না থাকে। প্রথম পর্বের পরে প্রতিটি লাইনের পাইপের প্রয়োজন হয় না, ইনডেন্টেশনের কারণে।
কেলভিন

আমি আসলে পাতলা এই দিকটি পছন্দ করি, কারণ এটি অ-আন্তর্জাতিকীকরণযুক্ত স্ট্রিংগুলি লিখতে আমার পক্ষে অতিরিক্ত অসুবিধা বোধ করে।
কনস্ট্যান্টিনেকে

অবশ্যই |প্রতিটি ট্যাগের জন্য পাঠ্যের প্রতিটি ব্লকের জন্য %। আক্ষরিক পাঠ্যের ব্লকগুলির চেয়ে অনেক বেশি ট্যাগ রয়েছে। স্লিম সহ আমার কাছে একটি ছোট্ট, তবে শব্দার্থক জয়টি হ'ল যে কোনও কাঁচা আক্ষরিক এইচটিএমএল <>ব্যবহৃত ট্যাগ সহ স্পষ্টতই তার আগে থাকে |। আমি পছন্দ "সবকিছু পাতলা যদি না আপনি স্পষ্টভাবে এটি দিয়ে আক্ষরিক করতে হয় |" উপর "সবকিছু আক্ষরিক হওয়া পর্যন্ত আপনি এটি দিয়ে একটি haml করা %
ahnbizcad

আমি মনে করি attr="value"স্লিমটি আরও এইচটিএমএল ( ) এর মতো দেখায় , অন্যদিকে হামল দেখতে রুবির ( {key: "value"}হ্যাশের মতো) দেখতে বেশি লাগে ।
ফ্রাঙ্কলিন ইউ

16

https://github.com/scalp42/hamlerbslim - এটি একটি স্বতন্ত্র মানদণ্ড যা স্লিম এবং এরবকে বিজয়ী হিসাবে দেখায়, পারফরম্যান্স অনুসারে (স্লিম এইচটিএমএল আউটপুট আকারকেও হ্রাস করে)

আমার ব্যক্তিগত মতামতটি হ'ল সামগ্রিকভাবে, স্লিম এবং হামল আপনার রক্ষণাবেক্ষণের ক্ষেত্রে আপনার সময় (== টাকা) বাঁচাতে পারে, তবে আপনি হ্যামাল / স্লিম জ্ঞান ব্যক্তিদের আপনার মতামত দেখছেন providing

আপনার যদি এই লোকগুলি না থাকে তবে এরব অবশ্যই যাওয়ার উপায়, কারণ বিশ্বের সেরা ইচ্ছা থাকা সত্ত্বেও, এইচটিএমএল / এর্বের সাথে কাজ করতে পারে এমন অনেক সস্তা ব্যয়কারী লোক পাওয়া যায়, তবে হামল / স্লিমকে সম্পূর্ণ খুঁজে পান রহস্য।

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

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