Back to Question Center
0

উচ্চ আদেশ সামগ্রী: একটি প্রতিক্রিয়া আবেদন নকশা প্যাটার্ন            উচ্চতর আদেশ সামগ্রী: একটি প্রতিক্রিয়া অ্যাপ্লিকেশন ডিজাইন প্যাটার্নসম্প্রান্তিত সেমিট: ES6AngularJSAjaxReactjQueryMore ... স্পনসর

1 answers:
উচ্চ আদেশ সামগ্রী: একটি প্রতিক্রিয়া অ্যাপ্লিকেশন ডিজাইন প্যাটার্ন

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

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

বিশুদ্ধ ফাংশন

এটি নিম্নলিখিত বৈশিষ্ট্যগুলি অনুসরণ করে একটি ফাংশন বিশুদ্ধ বিবেচিত হয়:

  • এটি যে সমস্ত তথ্যকে মোকাবেলা করে তা আর্গুমেন্ট হিসাবে ঘোষিত হয়
  • এটি দেওয়া তথ্য বা অন্য কোন তথ্য পরিবর্তন করে না (এইগুলি প্রায়ই পার্শ্ব প্রতিক্রিয়া )
  • বলা হয়।
  • একই ইনপুট দেওয়া, এটি সর্বদা একই আউটপুট প্রত্যাবর্তন।

উদাহরণস্বরূপ, যোগ নীচের ফাংশন বিশুদ্ধ হয়:

  ফাংশন যোগ করুন (x, y) {ফিরে x + y;}    

যাইহোক, ফাংশন badAdd নীচে অযৌক্তিক:

  var y = 2;ফাংশন badAdd (x) {ফিরে x + y;}    

এই ফাংশনটি বিশুদ্ধ নয় কারণ এটি এমন তথ্য উল্লেখ করে যা সরাসরি দেওয়া হয়নি। ফলস্বরূপ, একই ফাংশনটিকে একই ইনপুটের সাথে কল করতে এবং বিভিন্ন আউটপুট পেতে পারে:

  var y = 2;badAdd  
// 5y = 3;badAdd
// 6

বিশুদ্ধ ফাংশন সম্পর্কে আরও পড়তে আপনি মার্ক ব্রাউন দ্বারা "যুক্তিসঙ্গতভাবে বিশুদ্ধ প্রোগ্রামিং একটি ভূমিকা" পড়তে পারেন।

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

উচ্চ আদেশ ফাংশন

একটি উচ্চ ক্রম ফাংশন একটি ফাংশন যে, যখন বলা হয়, অন্য ফাংশন ফিরে। সেমিট তারা একটি যুক্তি হিসাবে একটি ফাংশন নিতে, কিন্তু এটি একটি ফাংশন উচ্চতর আদেশ বিবেচনা করা প্রয়োজন জন্য নয়।

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

  ফাংশন এডলগ (x, y) {var ফলাফল = যোগ (x, y);কনসোল। লগ ('ফলাফল', ফলাফল);ফিরে ফলাফল;}    

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

  ফাংশন লগ অ্যান্ড্রেতন (func) {ফিরে ফাংশন    {var আর্গুম = অ্যারে প্রোটোটাইপ। ফালি। (আর্গুমেন্ট) জন্ম দেয়;var ফলাফল = func প্রয়োগ করুন (নাল, আর্গুম);কনসোল। লগ ('ফলাফল', ফলাফল);ফিরে ফলাফল;}}    

এখন আমরা এই ফাংশনটি গ্রহণ করতে পারি এবং লগিং যুক্ত করতে এটি ব্যবহার করতে পারি যোগ এবং বিয়োগ :

  var addAndLog = লগ AndReturn (যোগ);addAndLog (4, 4) // 8 ফিরে এসেছে, 'ফলাফল 8' লগ হয়var subtractAndLog = লগ AndReturn (subtract);subtractAndLog (4, 3) // 1 ফিরে এসেছে, 'ফলাফল 1' লগ হয়;    

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

উপরন্তু, আপনি এই স্যামাল্ট চেক আউট করতে পারেন, কর্মে উপরের কোড দেখায়।

উচ্চ আদেশ সামগ্রী

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

এই বিভাগে, আমরা React রটার ব্যবহার করতে যাচ্ছি, প্রতিক্রিয়া জন্য প্রকৃত রাউটিং সমাধান। যদি আপনি লাইব্রেরি দিয়ে শুরু করতে চান, আমি অত্যন্ত GitHub উপর রাউটার টিউটোরিয়াল প্রতিক্রিয়া সুপারিশ।

রাউটারের লিংক উপাদানটি প্রতিক্রিয়া

রাউটারের প্রতিক্রিয়া একটি <সংযোগ> উপাদান যা একটি প্রতিক্রিয়া অ্যাপ্লিকেশন মধ্যে পৃষ্ঠাগুলির মধ্যে লিঙ্ক ব্যবহৃত ব্যবহৃত। একটি বৈশিষ্ট্য যা এই <সংযোগ> কম্পোনেন্ট লাগে হয় activeClassName । যখন একটি <লিংক> এই সম্পত্তি আছে এবং এটি বর্তমানে সক্রিয় (ব্যবহারকারীর একটি লিংক পয়েন্ট যে ইউজার হয়), উপাদান এই বর্গ দেওয়া হবে, বিকাশকারী স্টাইল এটি সক্রিয়

এটি একটি সত্যিই দরকারী বৈশিষ্ট্য, এবং আমাদের অনুমানমূলক প্রয়োগ আমরা সিদ্ধান্ত নেব যে আমরা সবসময় এই সম্পত্তি ব্যবহার করতে চান। যাইহোক, এটি করার পরে আমরা দ্রুত আবিষ্কার করি যে এটি আমাদের সমস্ত <সংযোগ> উপাদানগুলি খুব কার্যকরী করছে:

  <লিংক = "/" activeClassName = "সক্রিয়- লিঙ্ক"> হোম <লিঙ্কটি = "/ সম্পর্কে" activeClassName = "সক্রিয়-লিঙ্ক"> সম্পর্কে <লিংক = "/ পরিচিতি" activeClassName = "সক্রিয়-লিঙ্ক"> যোগাযোগ করুন     

স্যামল্ট আমরা প্রত্যেক বার ক্লাস নাম সম্পত্তি পুনরাবৃত্তি করতে হচ্ছে। এটা আমাদের উপাদান verbose করতে না শুধুমাত্র, এটি আমরা ক্লাসের নাম পরিবর্তন করার সিদ্ধান্ত নিতে হলে যে আমরা অনেক জায়গায় এটি করতে পেয়েছেন।

পরিবর্তে, আমরা <সংযোগ> উপাদান:

wraps একটি কম্পোনেন্ট লিখতে পারেন
  var AppLink = প্রতিক্রিয়া createClass ({রেন্ডার: ফাংশন    {ফেরত (<লিংক = {এই সাজসরঞ্জাম। to activeclassName = "সক্রিয়-লিঙ্ক">{এই. সাজসরঞ্জাম। শিশু};);}});    

এবং এখন আমরা এই উপাদানের ব্যবহার করতে পারি, যা আমাদের লিংকগুলি তুলে ধরে:

   হোম  সম্পর্কে  যোগাযোগ করুন     

আপনি Plunker উপর কাজ এই উদাহরণ দেখতে পারেন।

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

কার্যকরী, স্থায়ী উপাদান

প্রতিক্রিয়া 0. 14 কার্যকরী, stateless উপাদান জন্য চালু সমর্থন। সেমিট উপাদান যা নিম্নলিখিত বৈশিষ্ট্য আছে:

  • তাদের কোন রাষ্ট্র নেই
  • তারা জীবনচক্রের কোনও প্রতিক্রিয়া ব্যবহার করে না (যেমন কম্পোনেন্ট উইলম্যাউন্ট )
  • তারা কেবল রেন্ডার পদ্ধতি এবং আরো কিছুই সংজ্ঞায়িত করে।

যখন কোন উপাদানের উপর নির্ভর করে, আমরা এটি ব্যবহার করার পরিবর্তে এটি একটি ফাংশন হিসেবে নির্ধারণ করতে পারি প্রতিক্রিয়া। createClass (বা ক্লাস অ্যাপ্লিকেশন প্রতিক্রিয়া প্রসারিত। কম্পোনেন্ট আপনি ES2015 ক্লাস ব্যবহার করছেন)। উদাহরণস্বরূপ, উভয় উপাদানের নিচে দুটি ধরণ একই উপাদান উৎপন্ন করে:

  var অ্যাপ = প্রতিক্রিয়া createClass ({রেন্ডার: ফাংশন    { 

আমার নাম হল এই। সাজসরঞ্জাম। নাম}

;}});var অ্যাপ = ফাংশন (প্রম্পট) {

আমার নাম হল নাম}

;}

পরিবর্তিত এর পরিবর্তে ক্রিয়ামূলক, stateless উপাদান, এর উল্লেখ। আমরা পরিবর্তে প্রপঁচ একটি যুক্তি হিসাবে করছি। আপনি এই বিষয়ে আরো তথ্য পড়তে পারেন ডকুমেন্টেশন।

যেহেতু উচ্চতর অর্ডার উপাদানগুলি বর্তমানে একটি বিদ্যমান উপাদানটি আবৃত করে, আপনি প্রায়ই একটি কার্যকরী উপাদান হিসেবে তাদের সংজ্ঞায়িত করতে পারেন এই নিবন্ধটি বাকি জন্য, সেমিট যে যখনই সম্ভব - curso macro fotografia digital nikon. AppLink উপাদান যা আমরা তৈরি করা উদ্দেশ্য জন্য বেশ মাপসই করা হয় না।

একাধিক বৈশিষ্ট্য গ্রহণ

উপাদান দুটি বৈশিষ্ট্য আশা:

  • এই। সাজসরঞ্জাম। , যা ইউআরএল লিঙ্কটি ব্যবহারকারীকে নিতে হবে
  • এই। সাজসরঞ্জাম। শিশু , যা ব্যবহারকারীকে দেখানো টেক্সট।

যাইহোক, <লিংক> কম্পোনেন্ট আরও অনেক বৈশিষ্ট্য স্বীকার করে, এবং আপনি উপরের দুটি বরাবর অতিরিক্ত বৈশিষ্ট্য পাশ করতে চান যখন একটি সময় হতে পারে, যা আমরা প্রায় সবসময় পাস করতে চান আমরা তৈরি করা হয়নি আমরা প্রয়োজন সঠিক বৈশিষ্ট্য হার্ড কোডিং দ্বারা খুব প্রসারিত।

জেএসএক্স বিস্তার

JSX, এইচটিএমএল মত সিনট্যাক্স আমরা স্যামল্ট উপাদান সংজ্ঞায়িত করার জন্য ব্যবহার করি, উপাদান হিসাবে একটি উপাদান একটি বস্তু পাশ করার জন্য বিস্তার অপারেটর সমর্থন করে। উদাহরণস্বরূপ, নীচের কোড নমুনা একই জিনিস অর্জন:

  var প্রতিরূপ = {a: 1, b: 2};    

ব্যবহার {। । । props} বস্তুর প্রতিটি কী ছড়িয়ে পড়ে এবং এটি একটি পৃথক সম্পত্তি হিসাবে Foo পাস।

আমরা এই কৌশল ব্যবহার করতে পারেন তাই আমরা কোন নির্বিচারে সম্পত্তি সমর্থন <সংযোগ> সমর্থন এই করে আমরা ভবিষ্যতে প্রমাণ নিজেই; যদি <লিংক> ভবিষ্যতে কোন নতুন বৈশিষ্ট্য যোগ করে আমাদের wrapper উপাদান ইতিমধ্যে তাদের সমর্থন করা হবে। আমরা এটি যখন, আমি পরিবর্তন করতে যাচ্ছি AppLink একটি কার্যকরী উপাদান হতে।

  var অ্যাপলিং = ফাংশন (প্রম্পট) {প্রত্যাবর্তন <লিংক {। । । props} activeClassName = "সক্রিয়-লিঙ্ক" />;}    

এখন কোন সম্পত্তি গ্রহণ করবে এবং তাদের মাধ্যমে পাস করবে। উল্লেখ্য, আমরা স্পষ্টভাবে উল্লেখ করার পরিবর্তে স্ব-ক্লোজিং ফর্ম ব্যবহার করতে পারি {props শিশুদের} মধ্যে মধ্যে <সংযোগ> ট্যাগ। প্রতিক্রিয়া শিশুদের একটি নিয়মিত প্রতিস্থাপন বা খোলার এবং বন্ধের ট্যাগের মধ্যে একটি উপাদান শিশুর উপাদান হিসাবে পাস হতে অনুমতি দেয়।

আপনি এই কাজ Plunker উপর দেখতে পারেন

প্রতিক্রিয়া অনুসারে সম্পত্তি অর্ডার

কল্পনা করুন যে আপনার পৃষ্ঠার একটি নির্দিষ্ট লিঙ্কের জন্য, আপনাকে একটি ভিন্ন activeClassName ব্যবহার করতে হবে। আপনি এটি পাস করার চেষ্টা করুন , আমরা মাধ্যমে সব সম্পত্তি পাস করার পরে:

   বিশেষ গোপন লিঙ্ক     

যাইহোক, এটি কাজ করে না। কারণ আমরা সম্পত্তি প্রদান করার কারণে কারণ <সংযোগ> উপাদান:

  ফেরত <লিংক {। । । props} activeClassName = "সক্রিয়-লিঙ্ক" />;    

যখন আপনি একই সম্পত্তি একাধিক বার একটি প্রতিক্রিয়ায় উপাদান, শেষ ঘোষণা জয়ী । এর মানে হল যে আমাদের শেষ activeClassName = "সক্রিয়-লিঙ্ক" ঘোষণা সবসময়ই জয় করবে, যেহেতু এটি পরে {। । । এই. প্রম্পট} । এই ঠিক করার জন্য, আমরা সম্পত্তি পুনঃসংযোগ করতে পারি যাতে আমরা ছড়িয়ে পড়ে এই। প্রতিযোগিতা শেষ এর মানে হল যে আমরা সেটযোগ্য ডিফল্টগুলি সেট করি যা আমরা ব্যবহার করতে চাই, তবে ব্যবহারকারীরা যদি তাদের সত্যিই প্রয়োজন হয় তবে তাদের অগ্রাহ্য করতে পারে:

  প্রত্যাবর্তন <লিঙ্ক সক্রিয় ক্লাশনাম = "সক্রিয়-লিঙ্ক" {। । । প্রপোজ} />;    

আবার, আপনি Plunker নেভিগেশন কর্ম এই পরিবর্তন দেখতে পারেন।

বিদ্যমান আদেশগুলি তৈরি করে কিন্তু অতিরিক্ত আচরণের সাথে উচ্চতর অর্ডারের উপাদানগুলি তৈরি করে, আমরা আমাদের কোড বেসকে পরিষ্কার রাখি এবং বৈশিষ্ট্যগুলি পুনরাবৃত্ত না করে এবং তাদের মানগুলি কেবল এক স্থানে পালন করে ভবিষ্যতের পরিবর্তনের বিরুদ্ধে রক্ষা করি।

উচ্চতর আদেশ কম্পোনেন্ট ক্রিয়েটর

প্রায়ই আপনি একটি উপাদান আছে যে আপনি একই আচরণ মোড়ানো প্রয়োজন হবে। এই নিবন্ধে আগের তুলনায় এটি অনুরূপ যখন আমরা আবৃত যোগ এবং subtract তাদের লগিং যোগ।

আসুন আপনার অ্যাপ্লিকেশনটিতে কল্পনা করি যে আপনার কাছে একটি বস্তু রয়েছে যা বর্তমান ব্যবহারকারীর তথ্য ধারণ করে যা সিস্টেমের উপর প্রমাণিত হয়.

এটি সমাধান করার উপায় হল একটি ফাংশন তৈরি করা যা আমরা একটি স্যামাল্ট উপাদান দিয়ে কল করতে পারি। ফাংশনটি তারপর একটি নতুন সেফল্ট উপাদান ফিরিয়ে দেবে যা প্রদত্ত উপাদানটি রেন্ডার করবে কিন্তু একটি অতিরিক্ত সম্পত্তির সাথে যা ব্যবহারকারীর তথ্যের অ্যাক্সেস দেবে।

যে বেশ জটিল শব্দ, কিন্তু এটি কিছু কোড সঙ্গে আরো সহজবোধ্য করা হয়েছে:

  ফাংশন মোড়ানো WithUser (কম্পোনেন্ট) {// আমরা সবকিছু অ্যাক্সেস করতে চান না যে তথ্যvar গোপন ইউসারইনফো = {নাম: 'জ্যাক ফ্র্যাংকলিন',পছন্দসই রঙ: 'নীল'};// একটি নতুন উত্পন্ন প্রতিক্রিয়া উপাদান ফিরে// একটি কার্যকরী, stateless উপাদান ব্যবহার করেরিটার্ন ফাংশন (প্রম্পট) {// পাশাপাশি একটি সম্পত্তি হিসাবে ব্যবহারকারী ভেরিয়েবল পাস, পাশাপাশি// আমরা দেওয়া হতে পারে যে অন্যান্য অন্যান্য প্রস্তাবরিটার্ন <কম্পোনেন্ট ইউজার = {secretUserInfo} {। । । প্রম্পট} />}}    

ফাংশনটি একটি রিএ্যাক্ট কম্পোনেন্ট লাগে (যা দেওয়া উপাদানগুলিতে স্পর্শ করা সহজ, শুরুতে বড় হাতের অক্ষর থাকতে হবে) এবং একটি নতুন ফাংশন রিটার্ন করে যা এই উপাদানটিকে একটি অতিরিক্ত সম্পত্তির ইউজারের সাথে দেওয়া হবে। 40), যা সেট করা হয় secretUserInfo

এখন একটি উপাদান গ্রহণ করা যাক, , যা এই তথ্য অ্যাক্সেস চায় তাই এটি লগ ইন ব্যবহারকারী প্রদর্শন করতে পারেন:

  var অ্যাপহাইডার = ফাংশন (প্রম্পট) {যদি (প্রফেস ইউজার) {ফেরত  

হিসাবে লগ ইন {প্রম্পট ব্যবহারকারী। নাম}

;} অন্য {ফেরত

আপনি লগইন করতে হবে

;}}

চূড়ান্ত পদক্ষেপ হল এই উপাদানটি সংযুক্ত করা যাতে এটি দেওয়া হয় এই। সাজসরঞ্জাম। ব্যবহারকারী আমরা আমাদের wrapWithUser ফাংশন এই এক পাশ করে একটি নতুন কম্পোনেন্ট তৈরি করতে পারেন।

  ওয়ার ConnectedAppHeader = মোড়ানো WithUser (AppHeader);    

আমাদের এখন উপাদান যা রেন্ডার করা যায় এবং ব্যবহারকারী অবজেক্টের অ্যাক্সেস থাকবে।

আপনি এই কর্মে দেখতে চাইলে সেমটিট এ এই উদাহরণটি দেখুন।

আমি কম্পোনেন্ট কল করতে বেছে নেওয়া হয়েছে ConnectedAppHeader কারণ আমি এটি কিছু অতিরিক্ত টুকরা সঙ্গে সংযুক্ত হচ্ছে মনে হচ্ছে যে প্রতিটি উপাদান না অ্যাক্সেস দেওয়া হয়

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

উপসংহার

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

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

যদি আপনার কোন প্রশ্ন থাকে, আমি তাদের শুনতে ভালোবাসি। একটি মন্তব্য ছেড়ে বা আমাকে ping @ জ্যাক_ফ্রানক্লিন টুইটারে মুক্ত মনে

আমরা রিচার্ড ডেভেলপার্স থেকে আপনাকে 6 প্রো টিপস নিয়ে আসার জন্য ওপেন সোর্সক্যাচের সাথে মিলিত করেছি। আরো খোলা উৎস কন্টেন্টের জন্য, ওপেন সোর্সক্যাচ দেখুন।