বড় জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলি কীভাবে কাঠামোগত হওয়ার কথা?


12

আমাকে সম্প্রতি ওবিআইইই মোবাইল অ্যাপ বিকাশকারীদের জন্য লিখিত কিছু জাভাস্ক্রিপ্ট প্লাগইন, পাশাপাশি বিভিন্ন প্রকল্পের জন্য কিছু কাস্টম লাইব্রেরি প্রদর্শিত হয়েছে।

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

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

বড় অ্যাপ্লিকেশনগুলি কীভাবে কাঠামোগত হয়? এর জন্য কোনও সাধারণ ওওপি নকশার নিদর্শন?



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

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

3
হ্যাঁ, একটি সাধারণ ওওপি ডিজাইনের ধরণ রয়েছে। একে টাইপস্ক্রিপ্ট বলা হয়। বা ES6, যদি আপনি পছন্দ করেন। টাইপসক্রিপ্ট এবং ES6 বিশেষত বৃহত জাভাস্ক্রিপ্ট প্রোগ্রামগুলি পূরণের জন্য ডিজাইন করা হয়েছে।
রবার্ট হার্ভে

1
এনসিজেডের এই ভিডিওটি অত্যন্ত প্রাসঙ্গিক: youtu.be/b5pFv9NB9fs আপনি মধ্যস্থতা, উপাদান এবং মডিউল-লোডিং প্যাটার্নগুলি সন্ধান করতে পারেন যে তিনি বড় বড় ফ্রেমওয়ার্কগুলিতে কথা বলেছেন
তেহশ্রাইক

উত্তর:


8

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

প্রকাশের মডিউল প্যাটার্ন যদিও আপনাকে বড় ফাইলগুলি বিভক্ত করার এবং যুক্তিযুক্তভাবে এগুলি সংগঠিত করার জন্য একটি দুর্দান্ত উপায় দেওয়া উচিত; তবে আপনি যখন জাভাস্ক্রিপ্টে কোনও ডিজাইনের নিদর্শন নিয়ে কাজ করছেন তখন সচেতন হন যে এটি খুব বিভ্রান্তিকর হয়ে উঠতে পারে। ব্যবহারের চেষ্টা এই , নতুন , প্রোটোটাইপ , .call()এবং .apply()বিজ্ঞতার সঙ্গে।

বড় প্রকল্পগুলিতে কাজ করার সময় এগুলিও কার্যকর হতে পারে:

  • যদি সম্ভব হয় তবে টাইপস্ক্রিপ্ট বা ES6 এ স্যুইচ করুন।
  • মডুলার কোড লিখুন । বিভিন্ন উপায়ে এবং তৃতীয় পক্ষের লাইব্রেরি রয়েছে তবে এগুলির যে কোনও একটির চেয়ে ভাল।
  • কার্যগুলি স্বয়ংক্রিয় করতে একটি টাস্ক রানার / বিল্ড সিস্টেম ব্যবহার করুন ।
  • ডিজাইন প্যাটার্নস সম্পর্কে পড়ুন । এটি একটি ভাল শুরু হতে পারে। যেমনটি আমি উপরে বলেছি, প্রকাশিত মডিউল প্যাটার্নটি খুব দরকারী, বিশেষত যদি আপনি মনে করেন যে সমস্ত জনপ্রিয় নিদর্শনগুলিতে আয়ত্ত করার জন্য আপনার সময় প্রয়োজন।
  • ইউনিট টেস্ট লিখুন । গতিশীল ভাষার সাথে কাজ করা আরও চ্যালেঞ্জের হতে পারে। আপনার আবেদনের গুরুত্বপূর্ণ অংশগুলি পরীক্ষা করা অনেক সময় সাশ্রয় করতে পারে।
  • এমন একটি আইডিই বা পাঠ্য সম্পাদক ব্যবহার করুন যা আপনাকে লিখন কোড এবং বাগ বাগ উভয় ক্ষেত্রেই সহায়তা করতে পারে। ওয়েবস্টোরম একটি ভাল পছন্দ। সুব্লাইম টেক্সট।
  • যদি আপনার আইডিই কোনও ডিবাগারটি না দেয় তবে আপনার প্রিয় ওয়েব ব্রাউজারের ডিবাগারটি আয়ত্ত করার চেষ্টা করুন।
  • লাইব্রেরি ব্যবহার করুন। প্রকল্পের প্রকৃতির উপর নির্ভর করে, আপনি খুঁজে পেতে পারেন এমন সেরা তৃতীয় পক্ষের কোডটি নিয়োগ করার চেষ্টা করুন। আপনি যদি ওয়েব অ্যাপ্লিকেশন লিখছেন তবে কৌণিক , প্রতিক্রিয়া এবং ভাল-পুরাতন ব্যাকবোন.জেএস দেখুন । আপনি যদি নোড.জেএস অ্যাপ্লিকেশন লিখছেন, তবে এনপিএম সংগ্রহস্থলে অনুসন্ধান করার জন্য আপনার সময় দিন । আপনি অবাক হবেন যে কতগুলি প্যাকেজ ইতিমধ্যে আপনি যা করতে যাচ্ছিলেন তা করছে।
  • এমনকি যদি আপনি একমাত্র ব্যক্তি যিনি প্রকল্পে কাজ করছেন, তবুও গিটের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করুন এবং একটি কোডিং স্ট্যান্ডার্ড অনুসরণ করুন যা খুব কঠোর এবং মতামতযুক্ত নয় তবে এখনও একটি ভাল গাইড লাইন সরবরাহ করে যা আপনার সতীর্থরাও এতে খুশি হবে অনুসরণ করুন।
  • এমনকি আপনি যদি টাইপস্ক্রিপ্ট বা ইএস for এর জন্য অপছন্দ করেন, তবুও জাভাস্ক্রিপ্টের ক্লাস-কম ওওপি বুঝতে পারছেন, প্রোটোটাইপাল ওওপি বিশেষত ডিবাগ করার সময় কার্যকর হতে পারে।

1

আমি একজন সি ++ বিকাশকারী এবং ইদানীং ওয়েব বিকাশ শুরু করেছি। আমি ওয়েব পরিবেশে একটি বড় ডেস্কটপ অ্যাপ পোর্ট করছি। আমি আমার জাভাস্ক্রিপ্ট কোডটি ঠিক একই ধরণের ব্যবহার করে সি ++ কোড কাঠামোগত তৈরি করেছি। আমার কাছে প্রায় 25-30 ফাইল রয়েছে তবে অবশেষে যথাযথ হিসাবে ক্লাব করে এগুলি 3-5-এ কমিয়ে আনব এবং সেগুলি সমস্ত মিনিমাইজ করব।

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

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


0

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

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


0

কোডটিতে কাজ করার সময়, বিভিন্ন উপাদানগুলি সাধারণত মডিউলগুলিতে বিভক্ত হয়, প্রত্যেকে সাধারণত একক শ্রেণি প্রয়োগ করে এবং প্রত্যেকে পৃথক ফাইলে বাস করে। উত্পাদনের সময়, এই ফাইলগুলি পরে ব্রাউজরিফাই ( http://browserify.org/ ) বা HTTP অনুরোধের সংখ্যা হ্রাস করার জন্য জেএসএসের মতো কিছু ব্যবহার করে একক ফাইলে (সুতরাং আপনি দেখছেন যে কোডের কয়েক হাজার লাইন) একত্রে ফাইলে একত্রিত করা হয়, তবে নির্ভরতা সঠিক ক্রমে লোড হয়েছে তা নিশ্চিত করার জন্য

এই মডিউলগুলির ক্লাসগুলি কীভাবে বাস্তবায়িত হয়, অন্তর্নিহিত যান্ত্রিকগুলিতে এটি ওওপি থেকে কিছুটা আলাদা তবে এটি পৃষ্ঠের চেয়ে আলাদা নয়। ES6 এমনকি classকীওয়ার্ডটি প্রবর্তন করেছিল , তাই এটি বেশ পরিচিত দেখা উচিত। এমডিএন সম্পর্কিত এই নিবন্ধটি শুরু করতে দরকারী: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / তথ্যসূত্র_আর_প্রোটোটাইপ_চেইন


0

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

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

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

কিছু বৈশিষ্ট্য eval ব্যবহার করে তৈরি করা হয়; অনেক সংখ্যক বৈশিষ্ট্যযুক্ত সামগ্রীর জন্য এটি উত্স ফাইলে কোডের পরিমাণ হ্রাস করতে পারে - এবং প্রোগ্রামার দ্বারা টাইপিংয়ের পরিমাণ হ্রাস করবে।


0

এটি এখনও সম্ভব এবং আপনি যেভাবে OOP পদ্ধতিতে জাভাস্ক্রিপ্ট লিখতে চান তা প্রস্তাবিত। এখানে একটি ভাল বই যা জাভাস্ক্রিপ্টে সর্বাধিক গুরুত্বপূর্ণ নকশার নিদর্শনগুলির মধ্য দিয়ে গেছে is

https://addyosmani.com/resources/essentialjsdesignpatterns/book/

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

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