কীভাবে সম্পূর্ণ মডুলার ওয়েব অ্যাপ্লিকেশনগুলি [বন্ধ] তৈরি করা যায়


34

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

অ্যাপ্লিকেশন আর্কিটেকচারের জন্য যখন আপনি কোনও স্ক্র্যাচ থেকে কোনও অ্যাপ্লিকেশন তৈরি করছেন তখন Coreকোনও ক্লায়েন্টের জন্য বিশেষভাবে সংশোধন করার জন্য কোনও কিছুর জন্য নমনীয়তা বজায় রেখে আপনি সমস্ত ক্লায়েন্টের মধ্যে ভাগ করে নিতে চান এমন কোনও ভাল পদ্ধতির কী কী ?

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

উত্তর:


26

অত্যন্ত সংগঠিত এবং ডিউপলড মডুলারিটি অর্জন করতে আপনি হায়ারারিকিকাল এমভিসি আর্কিটেকচারাল প্যাটার্নটি অনুসরণ করতে পারেন , যা কখনও কখনও উপস্থাপনা – বিমূর্ততা – নিয়ন্ত্রণ হিসাবে পরিচিত (যদিও তারা কঠোরভাবে একই প্যাটার্ন নয়)। Kohana , খাদ , সাবলীলতা এবং FuelPHP সমর্থন HMVC নেটিভ * এবং Kohana এর HMVC পদ্ধতির মধ্যে আলোচনা করা হয় HMVC সঙ্গে স্কেলিং ওয়েব অ্যাপ্লিকেশন এবং পারফরমেন্স নিখুঁত HMVC ওয়েব অ্যাপ্লিকেশন দ্বারা স্যাম ডি Freyssinet

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

এখানে চিত্র বর্ণনা লিখুন

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

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

* এমন আরও অনেকে থাকতে পারে যাদের আমি চিনি না।


1
এএসপি.এনইটি এমভিসি এর পক্ষে কি সমর্থন করে?
রবার্ট হার্ভে

@ রবার্ট হার্ভে আমার কোনও ধারণা নেই ...
ইয়ানিস

@ রবার্ট হার্ভে আমার কাছে এটিকে ফ্রেমওয়ার্কের চেয়ে আরও নিদর্শন বলে মনে হয়। হতে পারে আমি কিছু মিস করছি তবে কেন আমি এএসপি.নেট এমভিসিতে উত্তরাধিকার নিয়ে এটি করতে পারছি না তা দেখতে পাচ্ছি না।
জেরেমি

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

উপরের চিত্রটিতে দেখে মনে হচ্ছে যে স্তরক্রমের নীচে অবস্থিত ছোট দর্শনগুলি থেকে উপরের স্তরের মতামত রচনা করা হচ্ছে। এটি ইতিমধ্যে একটি নির্দিষ্ট পরিমাণে সম্পন্ন করা যেতে পারেRenderAction()
রবার্ট হার্ভে

5

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

অনুরোধের ভিত্তিতে সার্ভারের উপর নির্ভরতা হ্যান্ডলিং বিল্ড স্টেপ হিসাবে কতটা নির্ভরতা হ্যান্ডলিং করা হয়, নির্ভরতা ঘোষণা করা হয়, এবং অনুরোধের ভিত্তিতে গতিশীলভাবে কতটা নির্ভরতা হ্যান্ডলিং করা হয় এবং আপনার জাভা- লেখার পদ্ধতিতে আপনাকে কতটা পরিবর্তন করতে হবে তার মধ্যে বিভিন্ন ফ্রেমওয়ার্কগুলি আলাদা হয় vary লিপি.

যদি আপনার সার্ভার সাইড ফ্রেমওয়ার্কটি এটি পরিচালনা করে বা আপনার জন্য আপনার জাভা-স্ক্রিপ্ট তৈরি করে তবে এই ফ্রেমওয়ার্কগুলি তত বেশি প্রয়োগ হয় না (তবে সম্ভবত আপনি নিজের জাভা-স্ক্রিপ্টটি আপনার সার্ভারের পাশের কাঠামোর চেয়ে আলাদা করে রাখতে চান)।

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


0

মডুলার ডিজাইন কীভাবে করবেন সে সম্পর্কে এখানে কয়েকটি নির্দেশনা দেওয়া হয়েছে: https://class.coursera.org/saas/lecture/preview/9

এছাড়াও এটি: " এসওএর মাধ্যমে বিতরণকৃত কম্পিউটারিং এবং মডিউলার প্রোগ্রামিংয়ের পুরানো ধারণা থেকে এবং এসএএএ-এর বর্তমান পদ্ধতিগুলিতে, সাশ , ... এর ধারাবাহিকতায় এসওএকে দেখা যেতে পারে ..."

এইচএমভিসি কোড সংস্থাগুলি নিজে থেকেই সংশোধন করে না।

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