বাবেল ES6 এ কোডিং করে আমি একটি সিনিয়র ফ্রন্ট-এন্ড দেব। আমাদের অ্যাপ্লিকেশনটির একটি অংশ একটি এপিআই কল করে এবং ডেটা মডেলের উপর ভিত্তি করে আমরা এপিআই কল থেকে ফিরে আসি, নির্দিষ্ট ফর্মগুলি পূরণ করা দরকার।
এই ফর্মগুলি দ্বিগুণ-সংযুক্ত তালিকায় সঞ্চিত হয় (যদি পিছনের শেষের অংশটি কিছু ডেটা অবৈধ বলে মনে হয় তবে আমরা ব্যবহারকারীকে দ্রুত যে পৃষ্ঠায় ফেলেছিলাম তার একটি পৃষ্ঠায় ফিরে যেতে পারি এবং তারপরে কেবলমাত্র সংশোধন করে তা আবার লক্ষ্যবস্তুতে ফিরে পেতে পারি) তালিকা।)
যাইহোক, পৃষ্ঠাগুলি যুক্ত করার জন্য একটি গুচ্ছ ফাংশন ব্যবহার করা হচ্ছে এবং আমি ভাবছি আমি খুব চালাক হয়ে যাচ্ছি কিনা। এটি কেবলমাত্র একটি প্রাথমিক ওভারভিউ - প্রকৃত অ্যালগরিদম অনেক বেশি জটিল, বিভিন্ন পৃষ্ঠা এবং পৃষ্ঠার ধরণের সংখ্যার সাথে, তবে এটি আপনাকে একটি উদাহরণ দেবে।
আমার মনে হয়, একজন নবজাতক প্রোগ্রামার এটি পরিচালনা করবে।
export const addPages = (apiData) => {
let pagesList = new PagesList();
if(apiData.pages.foo){
pagesList.add('foo', apiData.pages.foo){
}
if (apiData.pages.arrayOfBars){
let bars = apiData.pages.arrayOfBars;
bars.forEach((bar) => {
pagesList.add(bar.name, bar.data);
})
}
if (apiData.pages.customBazes) {
let bazes = apiData.pages.customBazes;
bazes.forEach((baz) => {
pagesList.add(customBazParser(baz));
})
}
return pagesList;
}
এখন, আরও পরীক্ষামূলক হওয়ার জন্য, আমি যদি বিবৃতিগুলি পৃথক করে রাখি, একা ফাংশনগুলি দাঁড় করিয়ে রাখি, এবং তারপরে আমি তাদের উপরে ম্যাপ রাখি।
এখন, পরীক্ষণযোগ্য একটি জিনিস, তবে এটি পাঠযোগ্য এবং আমি ভাবছি যে আমি এখানে জিনিসগুলি কম পঠনযোগ্য করে তুলছি কিনা।
// file: '../util/functor.js'
export const Identity = (x) => ({
value: x,
map: (f) => Identity(f(x)),
})
// file 'addPages.js'
import { Identity } from '../util/functor';
export const parseFoo = (data) => (list) => {
list.add('foo', data);
}
export const parseBar = (data) => (list) => {
data.forEach((bar) => {
list.add(bar.name, bar.data)
});
return list;
}
export const parseBaz = (data) => (list) => {
data.forEach((baz) => {
list.add(customBazParser(baz));
})
return list;
}
export const addPages = (apiData) => {
let pagesList = new PagesList();
let { foo, arrayOfBars: bars, customBazes: bazes } = apiData.pages;
let pages = Identity(pagesList);
return pages.map(foo ? parseFoo(foo) : x => x)
.map(bars ? parseBar(bars) : x => x)
.map(bazes ? parseBaz(bazes) : x => x)
.value
}
এখানে আমার উদ্বেগ। করতে আমাকে নীচে আরো সংগঠিত হয়। কোডটি নিজেই ছোট ছোট খণ্ডে বিভক্ত হয়ে গেছে যা বিচ্ছিন্নভাবে পরীক্ষামূলক। তবে আমি ভাবছি: আমি যদি জুনিয়র বিকাশকারী হিসাবে সনাক্ত করতে পারি, যেমন আইডেন্টিটি ফ্যান্ট্যাক্টর ব্যবহার, তরকারী বা তিনটি বিবৃতি ব্যবহার করার মতো ধারণাগুলি অবলম্বন করা, তবে আমি কী বুঝতে পারি যে পরবর্তী সমাধানটি কী করছে? কখনও কখনও "ভুল, সহজ" উপায়ে জিনিসগুলি করা কি ভাল?
Babel ES6