লোডাশ এবং আন্ডারস্কোরের মধ্যে পার্থক্য [বন্ধ]


1602

কেন কেউ ল্যাড্যাশ.জে বা অন্যের চেয়ে আন্ডারস্কোর.জেএস ইউটিলিটি লাইব্রেরি পছন্দ করবেন?

লোড্যাশ আন্ডারস্কোরের জন্য একটি ড্রপ-ইন প্রতিস্থাপন বলে মনে হচ্ছে, এরপরেরটি প্রায় দীর্ঘস্থায়ী।

আমি মনে করি উভয়ই উজ্জ্বল, তবে তারা শিক্ষিত তুলনা করার জন্য তারা কীভাবে কাজ করে সে সম্পর্কে আমি পর্যাপ্ত পরিমাণে জানি না এবং আমি পার্থক্যগুলি সম্পর্কে আরও জানতে চাই।


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

26
lodashএবং এখন মার্জ থ্রেডেরunderscore অধীনে রয়েছে
zangw

উত্তর:


2022

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

যেহেতু লো-ড্যাশ অ্যান্ডসকোরের চেয়ে বেশি ঘন ঘন আপডেট হয়, তাই ইনডকোরের সর্বশেষ স্থিতিশীল সংস্করণের সাথে সামঞ্জস্যতা নিশ্চিত করার জন্য একটি lodash underscoreবিল্ড সরবরাহ করা হয়।

এক পর্যায়ে আমি এমনকি দেওয়া হয়েছিল ধাক্কা এক্সেস অংশে, আন্ডারস্কোর কারণ লো-ড্যাশ 30 টিরও বেশি বিষয় সংগ্রহের উদ্দেশ্যে তিনি দায়ী; অ্যান্ডস্কোর v1.4.x + এ ল্যান্ডিং বাগ ফিক্স, নতুন বৈশিষ্ট্য এবং পারফেক্ট লাভ।

এছাড়াও কমপক্ষে 3 টি ব্যাকবোন বয়লারপ্লেট রয়েছে যা ডিফল্টরূপে লো-ড্যাশ অন্তর্ভুক্ত করে এবং লো-ড্যাশ এখন ব্যাকবনের অফিসিয়াল ডকুমেন্টেশনে উল্লেখ করা হয়েছে ।

লো-ড্যাশ এবং ইন্ডসকোরের মধ্যে পার্থক্যগুলির আরও গভীর ভাঙ্গনের জন্য কিট ক্যামব্রিজের পোস্টটি লো-ড্যাশকে "হ্যালো" বলুন

পাদটিকা:

  1. ইনসকোরের অ্যারে, স্ট্রিং, অবজেক্টস এবং argumentsঅবজেক্টের জন্য অসামঞ্জস্যিত সমর্থন রয়েছে । নতুন ব্রাউজারগুলিতে, অ্যান্ডস্কোর পদ্ধতিগুলি অ্যারেগুলির ছিদ্রগুলিকে উপেক্ষা করে , "অবজেক্টস" পদ্ধতিগুলি পুনরুক্তি করা argumentsঅবজেক্টগুলি, স্ট্রিংগুলিকে অ্যারে-জাতীয় হিসাবে গণ্য করা হয়, এবং পদ্ধতিগুলি সঠিকভাবে ফাংশনগুলি পুনরাবৃত্তি করে (তাদের "প্রোটোটাইপ" বৈশিষ্ট্য উপেক্ষা করে) এবং অবজেক্টস ("স্ট্রিং" এর মতো ছায়াময় বৈশিষ্ট্যগুলিকে পুনরাবৃত্তি করে) "valueOf"), পুরানো ব্রাউজারগুলিতে তারা তা করবে না। এছাড়াও, অ্যান্ডকোর পদ্ধতিগুলি _.cloneঅ্যারেগুলিতে ছিদ্র সংরক্ষণের মতো , অন্যরা পছন্দ _.flattenকরে না।

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

10
আমি কিছু বেঞ্চমার্ক পোস্ট করতে খুব লোভিত, কিন্তু এটি ক্লান্তিকর হয়ে উঠতে পারে। বলার অপেক্ষা রাখে না যে আমি যে প্রতিটি বেঞ্চমার্ক চালিয়েছি তা আন্ডারস্কোরের চেয়ে লো-ড্যাশকে দ্রুত ( অনেক ক্ষেত্রে অনেক বেশি দ্রুত) প্রমাণিত করেছে ।
উইল মুর তৃতীয়

186
আমি লো-ড্যাশ পছন্দ করি এবং আমি এটি ব্যবহার করছি, সুতরাং দয়া করে ভাবেন না যে আমি চাপ দিচ্ছি, তবে কেন নতুন লাইব্রেরি তৈরির পরিবর্তে আন্ডারস্কোরটিতে অবদান রাখবেন না?
Xananax

133
@ জ্যানানাক্স - মন্তব্যগুলির থ্রেডটি পরীক্ষা করুন: github.com / জ্যাশকেনাস / মাউন্ডসর / কম্মিট /… - এটি সেই প্রশ্নের উত্তর দিতে পারে।
রব গ্রান্ট

41
লোডাশকে আবার আন্ডারস্কোরে ফেরত দেওয়ার কোনও প্রচেষ্টা হয়েছে?
রাস্তার আলো

186

লো-ড্যাশ আন্ডারস্কোর দ্বারা অনুপ্রাণিত, তবে আজকাল এটি উচ্চতর সমাধান। আপনি আপনার কাস্টম বিল্ডগুলি তৈরি করতে পারেন , উচ্চতর পারফরম্যান্স করতে পারবেন , এএমডি সমর্থন করতে পারেন এবং দুর্দান্ত অতিরিক্ত বৈশিষ্ট্য থাকতে পারেন । এই লো-ড্যাশ বনাম অ্যান্ডস্কোর বেনমার্কগুলিকে জেএসপিআইপি এবং .. পরীক্ষা করুন লো-ড্যাশ সম্পর্কে এই দুর্দান্ত পোস্টটি :

আপনি যখন সংগ্রহগুলি নিয়ে কাজ করেন তখন সবচেয়ে দরকারী বৈশিষ্ট্যটি হ'ল শর্টহ্যান্ড সিনট্যাক্স:

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },
  { 'name': 'fred',   'age': 40, 'blocked': true }
];

// using "_.filter" callback shorthand
_.filter(characters, { 'age': 36 });

// using underscore
_.filter(characters, function(character) { return character.age === 36; } );

// → [{ 'name': 'barney', 'age': 36, 'blocked': false }]

( লোডাশ ডক্স থেকে নেওয়া )


1
কিট ক্যামব্রিজের ব্লগের লিঙ্কটি খুব তথ্যপূর্ণ।
ব্রায়ান এম হান্ট

আমি মনে করি এটি ভুল (বহুর উদাহরণ)। সর্বশেষ আপডেট 1.8.3 হিসাবে, আপনি লোডাশের মতো প্লাক ব্যবহার করতে পারেন। যাইহোক যাইহোক পূর্ববর্তী সংস্করণগুলির জন্য আমি মনে করি না আন্ডারস্কোর এমন কোনও ফাংশন প্রকাশ করবে যা একই মানচিত্রের (আপনার আন্ডারস্কোর উদাহরণটি মানচিত্রের ফাংশনের মতো মনে হয়)
আলেকসাইভার

7
filter2012 github.com/jashkenas/underscore/issues/648 (এর নাম where) থেকে আন্ডারস্কোরের বৈশিষ্ট্য
মুহাম্মদ হেউডি

লো-ড্যাশ বনাম
ইন্ডসকোর

86

আমার মতো আপনি যদি আন্ডারস্কোর এবং লোডাশের মধ্যে ব্যবহারের পার্থক্যের তালিকার প্রত্যাশা করছিলেন তবে আন্ডারস্কোর থেকে লোডাশে স্থানান্তরের জন্য একটি গাইড রয়েছে

উত্তরোত্তর জন্য এটির বর্তমান অবস্থা এখানে:

  • আন্ডারস্কোর _.anyLodash হয়_.some
  • আন্ডারস্কোর _.allLodash হয়_.every
  • আন্ডারস্কোর _.composeLodash হয়_.flowRight
  • আন্ডারস্কোর _.containsLodash হয়_.includes
  • ইনসকোরগুলি _.eachফিরে আসার অনুমতি দেয় নাfalse
  • আন্ডারস্কোর _.findWhereLodash হয়_.find
  • আন্ডারস্কোর _.flattenডিফল্টরূপে গভীর থাকাকালীন Lodash অগভীর হয়
  • আন্ডারস্কোর _.groupByএকটি iteratee যে পরামিতি পাস করা হয়েছে সমর্থন (value, index, originalArray)যখন Lodash মধ্যে, জন্য iteratee, _.groupByশুধুমাত্র একটি একক প্যারামিটার পাস করা হয়েছে: (value)
  • আন্ডারস্কোর _.indexOf3rd পরামিতি সঙ্গে undefinedLodash হয়_.indexOf
  • আন্ডারস্কোর _.indexOf3rd পরামিতি সঙ্গে trueLodash হয়_.sortedIndexOf
  • আন্ডারস্কোর _.indexByLodash হয়_.keyBy
  • আন্ডারস্কোর _.invokeLodash হয়_.invokeMap
  • আন্ডারস্কোর _.mapObjectLodash হয়_.mapValues
  • আন্ডারস্কোর _.maxসম্মিলন Lodash _.max&_.maxBy
  • আন্ডারস্কোর _.minসম্মিলন Lodash _.min&_.minBy
  • আন্ডারস্কোর _.sampleসম্মিলন Lodash _.sample&_.sampleSize
  • আন্ডারস্কোর _.objectসম্মিলন Lodash _.fromPairsএবং_.zipObject
  • আন্ডারস্কোর _.omitএকটি বিধেয় দ্বারা Lodash হয়_.omitBy
  • আন্ডারস্কোর _.pairsLodash হয়_.toPairs
  • আন্ডারস্কোর _.pickএকটি বিধেয় দ্বারা Lodash হয়_.pickBy
  • আন্ডারস্কোর _.pluckLodash হয়_.map
  • আন্ডারস্কোর _.sortedIndexসম্মিলন Lodash _.sortedIndex&_.sortedIndexOf
  • আন্ডারস্কোর _.uniqএকটি দ্বারা iterateeLodash হয়_.uniqBy
  • আন্ডারস্কোর _.whereLodash হয়_.filter
  • আন্ডারস্কোর _.isFiniteদিয়ে সারিবদ্ধ নেই Number.isFinite
    (যেমন _.isFinite('1')আয় trueআন্ডারস্কোর কিন্তু falseLodash মধ্যে)
  • ইন্ডস্কোর _.matchesশর্টহ্যান্ড গভীর তুলনাগুলি সমর্থন করে না
    (উদাঃ _.filter(objects, { 'a': { 'b': 'c' } }))
  • অ্যান্ডস্কোর ≥ 1.7 এবং লোডাশ _.templateসিনট্যাক্স
    _.template(string, option)(data)
  • লোডাশ _.memoizeক্যাশেগুলি Mapবস্তুর মতো
  • লোডাশ contextঅনেক পদ্ধতির পক্ষে পক্ষে যুক্তি সমর্থন করে না_.bind
  • লোডাশ অন্তর্নিহিত শৃঙ্খলা , অলস চেইনিং এবং শর্টকাট ফিউশনকে সমর্থন করে
  • Lodash বিভক্ত তার ওভারলোড _.head, _.last, _.rest, & _.initialছড়িয়ে
    _.take, _.takeRight, _.drop, & _.dropRight
    (অর্থাত _.head(array, 2)আন্ডারস্কোর হয় _.take(array, 2)Lodash মধ্যে)

1
মাইগ্রেশন করার সময় আমি নিজেই এই সমস্যাগুলি পেরিয়ে এসেছি এবং আমি একটি (ডাব্লুআইপি) ক্রস ডকুমেন্টেশন এক এবং অন্যের মধ্যে চলেছি maintaining আশা করি এটি অন্যান্য ব্যক্তিরও সহায়ক হবে!
লাক্সন

60

জন এর উত্তর ছাড়াও, এবং লোডাশ পড়ার জন্য (যা আমি এখন পর্যন্ত আন্ডারস্কোর হিসাবে "আমাকে" হিসাবে বিবেচনা করেছি), এবং পারফরম্যান্স পরীক্ষাগুলি দেখে, উত্স-কোড এবং ব্লগ পোস্টগুলি পড়ছি, লোডাশ তৈরি করার কয়েকটি বিষয় আন্ডারস্কোর থেকে অনেক উচ্চতর এগুলি:

  1. এটি গতি সম্পর্কে নয়, কারণ এটি গতির ধারাবাহিকতা (?)

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

    এর আগে ব্লগ পোস্টটি পড়ুন এবং এটির জন্য এটি বিশ্বাস করার পরিবর্তে মানদণ্ড চালিয়ে বিচার করুন । ক্রোমের মতো সাধারণ , নেটিভ ফাংশনগুলিতে আন্ডারস্কোরের তুলনায় লড্যাশ 100-150% দ্রুত পারফর্ম করে দেখে আমি এখনই হতবাক হয়েছি Array.every!

  2. অতিরিক্ত lodash এছাড়াও বেশ উপযোগী।

  3. জ্যানানাক্সের আন্ডারস্কোরের কোডটিতে অবদানের পরামর্শ হিসাবে দেওয়া উচ্চ মন্তব্যটির বিষয়ে: ভাল প্রতিযোগিতা রাখা সর্বদা ভাল , এটি কেবল নতুনত্বকেই চালিত করে না, বরং নিজেকে (বা আপনার লাইব্রেরি) ভাল অবস্থানে রাখতে আপনাকে পরিচালিত করে।

লোডাশের মধ্যে পার্থক্যের একটি তালিকা এখানে রয়েছে এবং এটি আন্ডারস্কোর-বিল্ড আপনার আন্ডারস্কোর প্রকল্পগুলির জন্য একটি ড্রপ-ইন প্রতিস্থাপন।


6
কোন ক্ষেত্রে "গতির ধারাবাহিকতা" একটি মান? ধরা যাক, আমার কাছে এমন একটি পদ্ধতি রয়েছে যার এফএফ এবং আইইতে 100% গতি রয়েছে এবং স্থানীয় বাস্তবায়নের আইইতে 80% এবং এফএফ-তে 120% (বা অন্যভাবে রাউন্ড) গতি থাকতে পারে। তারপরে আমি বলব এফএফের নেটিভ বাস্তবায়ন এবং আইইয়ের নিজস্ব বাস্তবায়ন ব্যবহার করা ভাল। আমি কোনও ক্ষেত্রেই কল্পনা করতে পারি না, যেখানে আমি বলব: আসুনের মতোই গতি থাকার কারণেই এফএফকে ধীর করে দিন। কোড এবং রক্ষণাবেক্ষণের আকার বা সমস্ত ব্রাউজারগুলিতে গড় মন্দা হওয়া যুক্তি হতে পারে তবে গতির ধারাবাহিকতা কি?
stofl

2
আমি বোঝাতে চেয়েছিলাম, "ধারাবাহিকভাবে দ্রুত গতি"
কুমারহর্ষ

1
আকারের পার্থক্য সম্পর্কে কী? আসুন ধরা যাক আপনি লোডাশের সাথে একটি কাস্টম বিল্ড তৈরি করেছেন যা আন্ডারস্কোরের মতো ঠিক একই কার্যকারিতা রয়েছে? তাদের মধ্যে কি বড় পার্থক্য রয়েছে? আমি অনুমান করব যে পুনর্নির্মাণটি সাইটে ওজন যুক্ত করে।
এফ লেকচাস

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

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

42

এটি 2014 এবং বেশ কয়েক বছর দেরী। তবুও আমি মনে করি আমার বক্তব্যটি ধরে রেখেছে:

IMHO এই আলোচনাটি অনুপাতের বাইরে বেশ খানিকটা উড়ে গেছে bl পূর্বোক্ত উদ্ধৃত করা ব্লগ পোস্টের :

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

যেন "সিম্পল লুপস" এবং "ভ্যানিলা জাভাস্ক্রিপ্ট" অ্যারে বা অবজেক্ট পদ্ধতি প্রয়োগের চেয়ে বেশি নেটিভ। জিৎ ...

সত্যের একক উত্স থাকলে অবশ্যই এটি চমৎকার লাগবে, তবে তা নেই। এমনকি যদি আপনাকে অন্যথায় বলা হয় তবে আমার প্রিয় কোন ভ্যানিলা Godশ্বর নেই। আমি দুঃখিত. সত্যিকার অর্থে একমাত্র অনুমান যে আমরা সকলেই জাভাস্ক্রিপ্ট কোডটি লিখছি যার লক্ষ্য সমস্ত বড় ব্রাউজারগুলিতে ভাল সম্পাদন করা, জেনে যে তাদের সকলেরই একই জিনিসগুলির বিভিন্ন বাস্তবায়ন রয়েছে। এটিকে সামলাতে, হালকা করে রাখা এক কুত্তা। তবে এটি ভিত্তি, আপনি এটি পছন্দ করেন বা না চান।

সম্ভবত আপনি সমস্ত বৃহত্তর স্কেল প্রকল্পগুলিতে কাজ করছেন যা টুইটারিশ পারফরম্যান্সের প্রয়োজন হয় যাতে আপনি প্রতি সেকেন্ডের একটি তালিকার চেয়ে 850,000 (আন্ডারস্কোর) বনাম 2,500,000 (লোডাশ) এর পুনরাবৃত্তির মধ্যে পার্থক্য দেখতে পান এখনই পাবেন!

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

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

আপনার ইউটিলিটি বেল্ট

... পরের বার.

সুতরাং এটি প্রাসঙ্গিক রাখতে:

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

আপনার প্রয়োজন অনুসারে যে পদ্ধতির সর্বাধিক মানানসই তা বেছে নিন। সচরাচর. আমি যে কোনও সময় মতামতযুক্ত রানটাইম চিটের চেয়ে প্রকৃত বাস্তবায়নগুলিতে ফ্যালব্যাককে প্রাধান্য দেব তবে এটি আজকাল স্বাদের বিষয় বলে মনে হয়। Http://developer.mozilla.com এবং http://caniuse.com এর মতো মানের সংস্থানগুলিতে লেগে থাকুন এবং আপনি ঠিক থাকবেন।


Lukas পোস্ট করার জন্য ধন্যবাদ। বিল্ট-ইনগুলি কি আরও অনুকূলিত করা যায়? আমি একত্রিত হয়েছি যে তারা মানদণ্ডগুলির দ্বারা আরোপিত প্রতিবন্ধকতা রয়েছে যা তাদের গ্রন্থাগারগুলির সাথে তুলনামূলকভাবে অপ্টিমাইজেশন হওয়া থেকে বিরত করে, তবে আমি বিবরণটি অফেন্ডেড জানি না বা এটি সত্য ছিল কি না।
ব্রায়ান এম হান্ট

উদাহরণস্বরূপ "99% ব্যবহারের ক্ষেত্রে অনুকূলকরণের মাধ্যমে, দ্রুত.js পদ্ধতিগুলি তাদের দেশীয় সমতার তুলনায় 5x পর্যন্ত দ্রুত হতে পারে" " - github.com/codemix/fast.js
ব্রায়ান এম হান্ট

1
হাই ব্রায়ান, আমি দুঃখিত যদি এটি বিভ্রান্তিকর হয় তবে আমি বলতে চাইছিলাম না যে এই লাইব্রেরিগুলি তাদের স্থানীয় সমপরিমাণের তুলনায় খুব দ্রুত নয়। যদি আপনি এখনই পারফরম্যান্সের মরিয়া প্রয়োজন , আপনি সম্ভবত লোড্যাশ বা ফাস্ট.জেসের মতো একটি সরঞ্জামকিট দিয়ে আরও ভাল হন কারণ তারা মানক পদ্ধতির দ্রুত বাস্তবায়ন সরবরাহ করে। তবে আপনি যদি এমন কোনও লাইব্রেরি ব্যবহার করতে বেছে নেন যা নেটিভ পদ্ধতিতে ফিরে না আসে তবে আপনি বিল্ট-ইনগুলিতে ভবিষ্যতের কোনও পারফরম্যান্স অপটিমেশন মিস করতে পারেন। ব্রাউজারগুলি শেষ পর্যন্ত বিকশিত হবে।
Lukas Bünger

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

2
... তবে আপনি যদি তাদের সম্পর্কে জিজ্ঞাসা করেন তবে Array.fromতারা সম্ভবত এটি জানত না যে এটি করার কথা কি। জেএস "ইউটিলিটি বেল্ট" লোকেরা তাদের ওহ-তাই-জেনিয়াল কাজের ক্ষেত্রগুলি প্রচার করার ক্ষেত্রে এত বেশি উদ্বিগ্ন বলে মনে হয় যে তারা এটি ভুলে যাওয়ার প্রবণতা পোষণ করে যে তারা প্রকৃতপক্ষে মানককরণ প্রক্রিয়াটি হ্রাস করছে। বৈশিষ্ট্যগুলির প্রয়োজনের কারণে ব্রাউজারের "নির্মাতারা" কোনও চাপ সৃষ্টি করে না। মজাদার ঘটনা: 4 টি প্রধান ব্রাউজারের 2 ওপেন সোর্স প্রকল্পের উপর ভিত্তি করে ( 1 , 2 )।
লুকাশ ব্যঞ্জার

20

আমি এখানে বলা বেশিরভাগ জিনিসের সাথে একমত আছি তবে আমি কেবল আন্ডারস্কোর.জেএস: লাইব্রেরির আকারের পক্ষে একটি যুক্তি তুলে ধরতে চাই।

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

তুলনার জন্য, এই মাপগুলি হ'ল আমি আয়নিক পরিবেশনার পরে উত্স-মানচিত্র-এক্সপ্লোরারের সাথে লক্ষ্য করেছি:

lodash: 523kB
underscore.js: 51.6kb

2020 ফেব্রুয়ারী সম্পাদিত :

ব্যবহার করতে পারেন BundlePhobia বর্তমান আকার চেক করতে লো-ড্যাশ এবং আন্ডারস্কোর


1
ধন্যবাদ পিটার, এখানে এখানে লক্ষণীয় একটি উপযুক্ত বিষয়। আরও কোথাও আরও আলোচনা রয়েছে, সহ: gist.github.com/alekseykulikov/5f4a6ca69e7b4ebed726 । (অন্যান্য উত্তরগুলির সাথে কিছু লিঙ্ক করে এবং প্রাসঙ্গিক বিট উদ্ধৃত করে এই উত্তরটির উন্নতি করা যেতে পারে) লডাশের সাব-বিভাগগুলি, এবং গাছ-কাঁপানো লোডাশ বেছে নিয়ে আকারের পার্থক্য হ্রাস করা যায়। 🕷
ব্রায়ান এম হান্ট

আপনার উত্তরের জন্য Thx @ ব্রায়ানএম.হান্ট, জানেন না যে লোডাসের সাবসেকশনগুলি অন্তর্ভুক্ত করা সম্ভব, এক ঝলক দেখতে হবে। আয়নিক-নেটিভের সাথে সম্প্রতি, আয়নিক তাদের নেটিভ লিবার্সের জন্যও এমন একটি পথ নিয়েছিল, আরও মনে রাখবেন যে অ্যাপ্লিকেশন আকার সম্পর্কে আরও বেশি উদ্বেগ রয়েছে
ডেভিড ডাল বাসকো

1
আমি ভাবছি আপনি 523 কেবি কোথায় পেয়েছেন? লড্যাশ ডট কম বলেছেন যে এটি কেবল 24 কেবি সংক্ষেপিত। ডাউনলোড হয়েছে মাত্র 74 কেবি
মার্টিয়ান 2049

1
আমার পোস্টটি এপ্রিল 2017 তে তৈরি হয়েছিল like যেমনটি আমি আমার মন্তব্যে বলেছিলাম,source-map-explorer after running ionic serve
ডেভিড ডাল বাসকো

5
মার্চ 2018 সালে - lodash.min.js 72,5 kB র এবং আন্ডারস্কোর-min.js 16,4 kB র হয়
একত্রিত

10

ওপি বলতে যা বোঝায় তা নিশ্চিত কিনা তা নিশ্চিত নয় তবে আমি এই প্রশ্নটি নিয়ে এসেছি কারণ আন্ডারস্কোর থেকে লোডাশে স্থানান্তরিত করার সময় আমি যে বিষয়গুলি মনে রাখতে হবে সেগুলির একটি তালিকা অনুসন্ধান করছি।

যদি কেউ এই ধরনের পার্থক্যের সম্পূর্ণ তালিকা সহ একটি নিবন্ধ পোস্ট করেন তবে আমি সত্যিই প্রশংসা করব। আমি যে জিনিসগুলি হার্ড পদ্ধতিতে শিখেছি সেগুলি দিয়ে শুরু করতে দাও (এটি এমন জিনিস যা আমার কোডটি উত্পাদনে বিস্ফোরিত করেছিল: /):

  • _.flattenআন্ডারস্কোর এ ডিফল্টরূপে গভীর এবং এটিকে অগভীর করার জন্য আপনাকে দ্বিতীয় তর্ক হিসাবে সত্য হিসাবে যেতে হবে। লোডাসে এটি ডিফল্টরূপে অগভীর এবং দ্বিতীয় আর্গুমেন্ট হিসাবে সত্য পাস করা এটি গভীর করে দেবে! :)
  • _.lastআন্ডারস্কোর ইন একটি দ্বিতীয় যুক্তি গ্রহণ করে যা আপনাকে বলে যে কতগুলি উপাদান চায়। এ lodashজাতীয় কোনও বিকল্প নেই। আপনি এটি দিয়ে অনুকরণ করতে পারেন.slice
  • _.first (একই সমস্যা)
  • _.templateআন্ডারস্কোর ইন বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে, যার মধ্যে একটি হ'ল টেমপ্লেট স্ট্রিং এবং ডেটা সরবরাহ করে এবং HTMLফিরে পাওয়া (বা কমপক্ষে এটি কিছুক্ষণ আগে এটি কাজ করেছিল)। ইন lodashআপনি যদি একটি ফাংশন যা আপনি পরে ডেটার সাথে আহার্য যোগাবে পাবেন।
  • _(something).map(foo)আন্ডারস্কোরে কাজ করে, তবে লোডাসে আমাকে এটিতে আবার লিখতে হয়েছিল _.map(something,foo)। সম্ভবত এটি ছিল একটি TypeScriptবিস্মৃত

4
লোডাশে, শৃঙ্খলা একটি অলস পুনরুক্তিকারী পাস করে এবং এর মতো এবং শেষের বিন্দু প্রয়োজন _(something).map(foo).value()
ব্রায়ান এম হান্ট

আপনি যদি ব্যাকবোন সংগ্রহটি ব্যবহার করেন যা এই লাইব্রেরিতে প্রক্সি কল করে - এটি সমস্তই আপনাকে আঘাত করতে পারে - উদাহরণস্বরূপ সংগ্রহ
fi

8

http://benmccormick.org/2014/11/12/underscore-vs-lodash/

দু'জনের তুলনা করে বেন ম্যাককর্মিকের সর্বশেষ নিবন্ধ:

  1. লো-ড্যাশের এপিআই হ'ল ইন্ডোরস্কোরের সুপারস্টেট।

  2. হুডের নীচে [লো-ড্যাশ] সম্পূর্ণরূপে আবার লেখা হয়েছে।

  3. লো-ড্যাশ অবশ্যই স্পষ্টভাবে ইনডকোরের চেয়ে ধীর নয়।

  4. লো-ড্যাশ কী যুক্ত করেছে?

    • ব্যবহারের উন্নতি
    • অতিরিক্ত কার্যকারিতা
    • পারফরম্যান্স লাভ
    • শৃঙ্খলা জন্য শর্টহ্যান্ড সিনট্যাক্স
    • কাস্টম বিল্ডস কেবলমাত্র আপনার যা প্রয়োজন তা ব্যবহার করতে
    • শব্দার্থক সংস্করণ এবং 100% কোড কভারেজ

6

আমি কেবল একটি পার্থক্য পেয়েছি যা আমার জন্য গুরুত্বপূর্ণ হয়ে ওঠে। লোডাশের নন-আন্ডারস্কোর-সামঞ্জস্যপূর্ণ সংস্করণটি তা_.extend() করে না শ্রেণি-স্তর-সংজ্ঞায়িত বৈশিষ্ট্য বা পদ্ধতিগুলিতে অনুলিপি ।

আমি কফি স্ক্রিপ্টে একটি জুঁই পরীক্ষা তৈরি করেছি যা এটি দেখায়:

https://gist.github.com/softcraft-development/1c3964402b099893bd61

ভাগ্যক্রমে, lodash.underscore.jsসমস্ত কিছু অনুলিপি করার জন্য আন্ডারস্কোরের আচরণ সংরক্ষণ করে, যা আমার পরিস্থিতির জন্য ছিল পছন্দসই আচরণ।


4

লোডাশ পেয়েছে _.mapValues()যা অনাবৃতের মতো _.mapObject()


0

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


এই সময়ে, আমাদের _.mapValues
ক্র্যাপথিংস

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

0

তারা বেশ অনুরূপ, লোডাশ দায়িত্ব গ্রহণের সাথে ...

তারা উভয়ই একটি ইউটিলিটি লাইব্রেরি যা জাভাস্ক্রিপ্টে ইউটিলিটির বিশ্বকে নিয়ে ...

দেখে মনে হয় লোদাশ এখন আরও নিয়মিত আপডেট হচ্ছে, তাই সর্বশেষ প্রকল্পে আরও ব্যবহৃত হচ্ছে ...

এছাড়াও Lodash মনে হয় কয়েক কেবি দ্বারা হালকা ...

দুজনেরই ভালো এপি ও ডক আছে তবে আমার মনে হয় লোডাশ আরও ভাল ...

একটি অ্যারের প্রথম মান পাওয়ার জন্য এখানে প্রতিটি ডক্সের স্ক্রিনশট দেওয়া আছে ...

আন্ডারস্কোর:

আন্ডারস্কোর

lodash: lodash

জিনিসগুলি সময়ে সময়ে আপডেট হতে পারে, কেবল তাদের ওয়েবসাইটটিও দেখুন ...

lodash

আন্ডারস্কোর

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