ফুল ফোটানো জিইউআই কোড লেখার পক্ষে কীভাবে কেউ এড়ানো যায়?


48

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

আমি সাধারণত, উদাহরণস্বরূপ, ব্যবহারকারীর সাথে আলাপচারিতার সমস্ত পদ্ধতি বাস্তবায়নের জন্য কাঠামোগুলি থেকে যাইহোক সিগন্যাল / ইভেন্টগুলি / যে কোনও উপকরণের মাধ্যমে বিভিন্ন ধরণের ইনপুটগুলিতে প্রতিক্রিয়া জানাতে হয়। বিবিধ ইনপুট / আউটপুট যাতে অন্তর্ভুক্ত থাকতে পারে তা পরিচালনা করতে আমার একটি জিইউআই উইজেট / নিয়ন্ত্রণের প্রয়োজন হতে পারে:

  1. একটি ডান ক্লিক / প্রসঙ্গ মেনু
  2. প্রসঙ্গ মেনু থেকে নির্বাচনের প্রতিক্রিয়া - যা অনেকগুলি হতে পারে
  3. জিইউআই আঁকার একটি বিশেষ উপায়
  4. কীবোর্ড ইনপুট প্রতিক্রিয়া
  5. বোতাম, চেকবক্স,
  6. ইত্যাদি

... সবসময় জিইউআইয়ের অধীনে ক্লাস পরিচালনা করে যা ব্যবসায়িক যুক্তি উপস্থাপন করে।

একটি সাধারণ স্ট্রেট-ফরোয়ার্ড জিইউআই এর কোডটি খুব দ্রুত বাড়তে পারে, এমনকি বিজনেস যুক্তি আলাদা করে এবং এমভিসি ব্যবহার করার পরেও আমি দেখতে পাই জিইআইআই কোডটি পরিবর্তনের জন্য একটি বড় চৌম্বক।

জিইআইআই কোডটি কোনও বুদ্ধিমানভাবে পরিচালনা করার এবং এটিকে একটি ভাঙা উইন্ডোতে পরিণত হওয়া এড়াতে কি কোনও উপায় আছে? বা এলোমেলো ইভেন্টের হ্যান্ডলার / ওভাররাইড পদ্ধতিগুলির একটি ভর কি জিইআইআই কোডের জন্য আমরা সবচেয়ে ভাল করতে পারি?


4
"ফোটা" আপনার সঠিক সংজ্ঞা কি?

উত্তর:


36

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

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

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

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

আমার পরামর্শ তাই:

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

3
+1 এটি পছন্দ করুন বা না করুন, একটি জিইউআই জিলিয়ন বিশদ ক্রিয়াকলাপের যত্ন নেয় এবং এর অর্থ কোড।
প্যাট্রিক হিউজেস

বিকাশকারীদের জিইউআইয়ের জন্য ইভেন্ট-চালিত কোডিং ব্যবহার করা শিখতে হবে।
ডেভিড গাও

23

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

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

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


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

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

8

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

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


6

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

http://www.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html

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


1
+1 টি। এমভিপি কীভাবে জিইউআই যুক্তিটিকে আলাদা ক্লাসে এক্সট্রাক্ট করতে পারে ঠিক তার উপর দৃষ্টি নিবদ্ধ করে, যা প্রায়শই এমভিসির কথা বললে লোকেরা যা বোঝে তার থেকে অনেকটাই আলাদা।
ডক ব্রাউন

5

আমার উত্তরটি চারটি অংশ নিয়ে গঠিত: কাঠামো, সরলতা, পরীক্ষা এবং বাক্য গঠন।

প্রথম তিনটি করা সত্যিই কঠিন!

কাঠামোর অর্থ কোডের ন্যূনতম পরিমাণ এবং সর্বাধিক পরিমাণ ফ্রেমওয়ার্ক, গ্রন্থাগার ইত্যাদি ব্যবহার করার জন্য প্রচুর মনোযোগ দেওয়া means

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

পরীক্ষার অর্থ ব্রাউজার-পরীক্ষার সরঞ্জামগুলি সহ (ওয়েবরেট এবং ক্যাপিবারা আমার রেলের কাজটি মনে করে) সহ ক্রস-ব্রাউজারের বিষয়টি সামনে আসে যখন কোডটির ঘনঘন 'প্যাচিং' এর বিপরীতে শুরুতে তাদের সাথে ডিল করার জন্য আরও ভাল নকশা তৈরি করা যেতে পারে catch বিভিন্ন বিকাশকারী দ্বারা যেমন তারা বিভিন্ন ব্রাউজারের ব্যবহারকারীদের দ্বারা 'আবিষ্কার করা' হয়।

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


4

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


4

এখানে প্রচুর দুর্দান্ত উত্তর রয়েছে।

একটি জিনিস যা আমাকে জিইউআই কোড সহজীকরণে সহায়তা করেছে তা হ'ল জিইউআইয়ের নিজস্ব ডেটা মডেল রয়েছে তা নিশ্চিত করা।

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

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


2

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

জিইউআইকে সরল করার কয়েকটি কী হ'ল (সর্বাধিক। নেট) প্রয়োগ করা হয়:

  1. যখনই সম্ভব সহজ নকশার জন্য প্রচেষ্টা করুন। ব্যবসায়ের জন্য ডাকা না হলে অভিনব আচরণ এড়িয়ে চলুন Avo

  2. একটি ভাল নিয়ন্ত্রণ সরবরাহকারী ব্যবহার করুন।

  3. ক্লায়েন্ট কোডে নিজেই কাস্টম নিয়ন্ত্রণ কার্যকারিতা তৈরি করবেন না। পরিবর্তে, ব্যবহারকারীর নিয়ন্ত্রণগুলি তৈরি করুন যা আসল নিয়ন্ত্রণকে এমনভাবে প্রসারিত করে যাতে আপনি ব্যবহারের ফর্ম / পৃষ্ঠাটির কোডের পরিবর্তে নিয়ন্ত্রণগুলিতে আপনার নির্দিষ্ট আচরণগুলি প্রতিফলিত করতে পারেন।

  4. আন্তর্জাতিকীকরণ, সংস্থানসমূহ পরিচালনা, শৈলী ইত্যাদি পরিচালনা করার জন্য একটি কাঠামো (এমনকি বাড়ীতে বাড়ানো) ব্যবহার করুন যাতে আপনি প্রতিটি ইউআইতে এই কোডটি পুনরাবৃত্তি না করেন।

  5. নেভিগেশনের জন্য একটি উপাদান (বা ফ্রেমওয়ার্ক) নিয়োগ করুন।

  6. ত্রুটি, সতর্কতা, নিশ্চিতকরণ ইত্যাদির জন্য স্ট্যান্ডার্ড কথোপকথন তৈরি করুন


1

আপনার কোডে এবং ইউআই উন্নয়নের জন্য অবজেক্ট-ওরিয়েন্টেড ডিজাইন প্রয়োগ করুন:

  1. উপস্থাপনা এবং মডেল পৃথক করুন একটি এমভি-যা কিছু গ্রন্থাগার / ফ্রেমওয়ার্ক ব্যবহার করুন বা ডেটা মডেল থেকে পৃথক দর্শন / নিয়ামক যুক্তিকে সহায়তা করতে আপনার নিজের লিখুন। ব্যাকএন্ডের সাথে সমস্ত যোগাযোগ মডেলের অভ্যন্তরে করা উচিত এবং মডেল স্টেটটি সর্বদা ব্যাকএন্ডের সাথে সিঙ্ক থাকা উচিত।
  2. ডিকোপলিং যদি বস্তু A বস্তু বি সম্পর্কে জানে, তবে A বি সম্পর্কে পদ্ধতিগুলি কল করতে পারে, তবে খ এর বি সম্পর্কে জানা উচিত নয়, পরিবর্তে এ বি থেকে ঘটনাগুলি শুনতে পারে এটি নিশ্চিত করে যে কোনও বৃত্তাকার নির্ভরতা নেই। যদি আপনার অ্যাপ্লিকেশনটিতে উপাদানগুলির মধ্যে প্রচুর ইভেন্ট থাকে তবে একটি ইভেন্টবাস তৈরি করুন, বা টুইটার ফ্লাইটের মতো ইভেন্ট-চালিত কাঠামোটি উত্তোলন করুন।
  3. আংশিক বনাম সম্পূর্ণ রেন্ডার আপনার ভিউ যদি কোনও টেবিল বা আইটেমের তালিকা হয় তবে সংগ্রহ থেকে / আইটেম সন্নিবেশ / মুছতে আপনার "অ্যাড", "অপসারণ" এর মতো পদ্ধতি তৈরি করতে প্ররোচিত হতে পারে। আপনার কোডটি সহজেই ফুলে উঠতে পারে যখন আপনাকে বাছাই এবং পৃষ্ঠা-রচনা সমর্থন করতে হয়। সুতরাং আমার পরামর্শটি হ'ল: আংশিক পরিবর্তন হওয়ার পরেও কেবল পুরো দর্শনটি পুনরায় রেন্ডার করুন। পারফরম্যান্সের কী হবে? ভাল যদি আপনার সংগ্রহটি বড় হয়, তবে আপনার যেকোনভাবে প্যাফিকেশন করা উচিত। ওয়েব বিকাশকারী: আপনার ইভেন্ট হ্যান্ডলারগুলি দৃশ্যের মূল উপাদানকে দেওয়া হয়েছে তা পরিবর্তন করে না তা নিশ্চিত করুন।
  4. মডেল দেখুন যখন আপনার দেখার অবস্থা বজায় রাখা খুব জটিল হয়ে ওঠে, উদাহরণস্বরূপ, একটি সারণী দর্শনটিতে সারি তথ্য, কলামের তথ্য, সাজানো ক্রম, বর্তমানে পরীক্ষিত সারিগুলি (যদি এটি মাল্টি-চেক সমর্থন করে) ইত্যাদি ট্র্যাক করে রাখতে পারে, আপনার সম্ভবত এই রাজ্যের জন্য একটি ভিউমোডেল অবজেক্ট তৈরি করুন। আপনার ভিউ অবজেক্টটির ভিউমোডেলে সেটটারদের কল করা উচিত যদি ইউআইতে কিছু পরিবর্তন হয় (যেমন: ব্যবহারকারী একটি সারি পরীক্ষা করে); এবং এটি ইউআই আপডেট করে ভিউমোডেলের পরিবর্তিত ইভেন্টে সাড়া দেওয়া উচিত। পরিবর্তিত ইভেন্টটি ইউআই দ্বারা চালিত হলে সাধারণত আপনার ইউআই আপডেট করা এড়ানো উচিত।

আমার কিছু বিষয় বর্ণনা করার জন্য এখানে একটি ছোট কিন্তু তুচ্ছ-টি অ্যাপ্লিকেশন। আপনি কোডটি দেখতে এবং দেখতে / মডেল ইন্টারঅ্যাকশন ডায়াগ্রামটি এখানে পেতে পারেন: https://github.com/vanfrankie/pushpopbox


0

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

অনেকগুলি ইউআই ফ্রেমওয়ার্কের জন্য ডেটাবাইন্ডিং সমর্থন রয়েছে, উদাহরণস্বরূপ। নেট এবং এক্সলিপস / জেফিসি

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