আমি একটি ভাল কল্পনা করা আর্কিটেকচারের মাধ্যমে আমার অ্যাপ্লিকেশনগুলিকে উন্নত করতে এবং স্কেল করার জন্য সর্বোত্তম অনুশীলনগুলির সন্ধান করছি। উপরে উল্লিখিত সমস্ত অনুশীলনগুলি ছোট থেকে মাঝারি আকারের অ্যাপ্লিকেশানের জন্য কাজ করে তবে আপনি যখন বড় দলে কাজ করবেন তখন ব্যর্থ হবে। আমি চেষ্টা করেছি বিভিন্ন উপায়:
1) আমি এই কৌশলটি অনুসরণ করেছি: টেমপ্লেটগুলি স্কেল এবং পুনঃব্যবহার করতে https://github.com/aldeed/meteor-autoform । উপাদান এবং ক্ষেত্রের নকশা সম্পর্কে লেখকের খুব ভাল ধারণা রয়েছে। আমি বর্তমানে এটি বাস্তবায়ন করছি কারণ সম্প্রদায়টি প্রায় প্রতিটি ক্ষেত্রে কভার করে 36 টি প্যাকেজ তৈরি করেছে এবং আমি বিকাশের পর্যায়ে টাইপসক্রিপটি টাইপ সুরক্ষিত রাখতে ব্যবহার করতে পারি ।
<template name="autoForm">
{{#unless afDestroyUpdateForm this.id}}
{{! afDestroyUpdateForm is a workaround for sticky input attributes}}
{{! See https://github.com/meteor/meteor/issues/2431 }}
<form {{atts}}>
{{> Template.contentBlock ..}}
</form>
{{/unless}}
</template>
এটি কীভাবে করা যায় সে সম্পর্কে এখানে একটি ভাল ব্লগ পোস্ট: http://blog.east5th.co/2015/01/13/custom- block-helpers-and-meteor-composability/ পাশাপাশি এখানে: http: // meteorpedia .com / পড়া / Blaze_Notes
2) এটি দেখতে খুব আশাবাদী তবে ইদানীং আপডেট করা হয়নি। এটি কফি স্ক্রিপ্ট লিখিত একটি প্যাকেজ বলা হয়। উল্কাপুলির জন্য ব্লেজ উপাদান ( https://github.com/peerlibrary/meteor-blaze-comp घटक) জটিল UI উপাদানগুলি সহজে বিকাশের জন্য একটি সিস্টেম যা আপনার উল্কা অ্যাপের চারপাশে পুনরায় ব্যবহার করা প্রয়োজন। আপনি এগুলি কফিস্ক্রিপ্ট, ভ্যানিলা জাভাস্ক্রিপ্ট এবং ইএস 6 এ ব্যবহার করতে পারেন। সেরা জিনিসটি হল, উপাদানগুলি ওওপি। এখানে তাদের উদাহরণগুলির মধ্যে একটি:
class ExampleComponent extends BlazeComponent {
onCreated() {
this.counter = new ReactiveVar(0);
}
events() {
return [{
'click .increment': this.onClick
}];
}
onClick(event) {
this.counter.set(this.counter.get() + 1);
}
customHelper() {
if (this.counter.get() > 10) {
return "Too many times";
}
else if (this.counter.get() === 10) {
return "Just enough";
}
else {
return "Click more";
}
}
}
ExampleComponent.register('ExampleComponent');
{{> ExampleComponent }}
3) আমি টাইপ এবং ট্রান্সপোর্টার পছন্দ করি যা আমাকে কখন এবং কখন কোনটি ভুল হয়ে যাবে তা বলে। আমি উল্কাটির সাথে কাজ করতে টাইপস্ক্রিপ্ট ব্যবহার করছি এবং নিম্নলিখিত সংগ্রহস্থলগুলি পেয়েছি: https://github.com/dataflows/meteor-typescript-utils দেখে মনে হচ্ছে স্রষ্টা এমভিসি পদ্ধতির সাফল্যের চেষ্টা করেছেন।
class MainTemplateContext extends MainTemplateData {
@MeteorTemplate.event("click #heybutton")
buttonClick(event: Meteor.Event, template: Blaze.Template): void {
// ...
}
@MeteorTemplate.helper
clicksCount(): number {
// ...
}
}
class MainTemplate extends MeteorTemplate.Base<MainTemplateData> {
constructor() {
super("MainTemplate", new MainTemplateContext());
}
rendered(): void {
// ...
}
}
MeteorTemplate.register(new MainTemplate());
<template name="MainTemplate">
<p>
<input type="text" placeholder="Say your name..." id="name">
<input type="button" value="Hey!" id="heybutton">
</p>
<p>
Clicks count: {{ clicksCount }}
</p>
<p>
<ul>
{{#each clicks }}
<li> {{ name }} at <a href="{{pathFor 'SingleClick' clickId=_id}}">{{ time }}</a></li>
{{/each}}
</ul>
</p>
</template>
দুর্ভাগ্যক্রমে, এই প্রকল্পটি রক্ষণাবেক্ষণ বা সক্রিয়ভাবে বিকাশযুক্ত নয়।
4) এবং আমি মনে করি এটি ইতিমধ্যে উল্লিখিত ছিল, আপনি প্যাকেজ ব্যবহার করে স্কেল করতে পারেন। এর জন্য ভাবনার একটি ভাল বিমূর্ত পদ্ধতি প্রয়োজন। এটি টেলিস্কোপের পক্ষে কাজ করছে বলে মনে হচ্ছে: https://github.com/TelescopeJS/Telescope
5) উল্কা-টেমপ্লেট-এক্সটেনশন - সহায়তা, ইভেন্ট হ্যান্ডলার এবং টেমপ্লেটগুলির মধ্যে হুকগুলি অনুলিপি করার বিভিন্ন উপায় সরবরাহ করে যা কোড পুনরায় ব্যবহারের অনুমতি দেয়; একটি খারাপ দিক হ'ল সমস্ত অনুলিপিটি একজন বিকাশকারীকে যত্ন নিতে হয়, প্রায়শই বারবার যা কোডবেস বাড়ার সাথে সাথে সমস্যা হয়ে ওঠে; তদ্ব্যতীত, একটি স্পষ্টভাবে সংজ্ঞায়িত এপিআই সম্প্রদায় ছাড়াই উপাদানগুলি তৈরি করতে এবং ভাগ করতে পারে না
)) ফ্লো উপাদানসমূহ - ফ্লো উপাদানগুলি এপিআই নকশায় প্রতিক্রিয়া ঘনিষ্ঠ হয় যখন ব্লেজ উপাদানগুলি তথ্য প্রসঙ্গে এবং টেমপ্লেট সহায়কগুলির মতো পরিচিত ধারণাগুলি রাখছে; অন্যদিকে ফ্লো উপাদানগুলি এখনও টেমপ্লেট-ভিত্তিক ইভেন্ট হ্যান্ডলারগুলি ব্যবহার করে যখন ব্লেজ উপাদানগুলি তাদের শ্রেণিবদ্ধ করে তোলে যাতে উত্তরাধিকারের মাধ্যমে তাদের প্রসারিত বা ওভাররাইড করা সহজ হয়; সাধারণভাবে ব্লেজ উপাদানগুলি আরও OOP ভিত্তিক বলে মনে হয়; ফ্লো উপাদান এখনো আনুষ্ঠানিকভাবে মুক্তি না হয় ( জন্য # 5 ও 6 নম্বর টেক্সট ক্রেডিট https://github.com/peerlibrary/meteor-blaze-components#javascript-and-es6-support )
2 এবং 3 নম্বরটির কিছুটা ব্যবহার করাও দরকার তবে আপনি সময়ের সাথে সাথে বিকাশের গতি অর্জন করতে পারবেন। চার নম্বর নম্বরে আপনাকে আপনার কোডটিকে আরও স্থিতিশীল করতে উপাদানগুলি তৈরি এবং পরীক্ষা করতে দেয়। তিন নম্বরে টাইপস্ক্রিপ্টের সম্পূর্ণ ধরণের সুরক্ষার সুবিধার্থে আসে, যখন আপনি দরিদ্র দলিল সহ একটি দলে বিকাশ করেন তখন এটি একটি বিশাল প্লাস। যাইহোক, আমি বর্তমানে টাইপস্ক্রিপ্টে দুই নম্বর পোর্ট করছি কারণ আমি এটির সাথে কাজ করতে খুব স্বাচ্ছন্দ্য বোধ করি এবং আমি যখন গুল্প ব্যবহার না করছি তখন উল্কাটির সাথে এটি কাজ করার জন্য আমার সংকলক প্যাকেজটি টিক করতে হবে না।
উল্কার সাথে কাজ করার সঠিক উপায় খুঁজে পাওয়া এখনও শক্ত। আপনার নিজের এটি নির্ধারণ করা দরকার, অন্যথায় আপনি একটি সুন্দর সাজানো ফোল্ডার কাঠামো শেষ করেন, তবে যেখানে সবকিছু সেখানে আপনার কোনও ধারণা নেই। শুভ কোডিং।