আমি এই প্রশ্নের উত্তর যুক্ত করতে চাই যেহেতু আমি ইদানীং কিছু ভাল, খারাপ তবে বেশিরভাগ কুরুচিপূর্ণ জাভা দিয়ে ট্র্যাডিং করছি এবং আমার কাছে জাভা এবং জাভা ডেভস বনাম জেএস সম্পর্কে গ্রোস ওভার-জেনারালাইজেশনের সম্পূর্ণ নতুন ফড়িং-লোড রয়েছে and জেএস ডেভস যা সম্ভবত অস্পষ্টভাবে দরকারী সত্যের সাথে সাদৃশ্যপূর্ণ কোনও কিছুর উপর ভিত্তি করে থাকতে পারে।
আইডিই রয়েছে তবে এটি কেন বুঝতে পারছে না কেন এটি অনেক বেশি হয়েছে
আমি এখন ওয়েবস্টর্মটি চেষ্টা করে দেখছি যে আমি নিজেকে নোডের বিকাশের দিকে টানতে পেরেছি এবং এটি যথেষ্ট-যথেষ্ট নয় যে আমি আসলে এটি কিনেছিলাম তবে আমি এখনও ডাব্লুএস এর চেয়ে স্কাইটিতে জেএস ফাইলগুলি খোলার প্রবণতা অর্জন করি। এর কারণ হ'ল আপনি জেএসে অনেক কম দিয়ে আরও অনেক কিছু করতে পারেন তবে এটির কারণও যে ইউআই কাজটি তাত্ক্ষণিক প্রতিক্রিয়া দেয়, ব্রাউজার ডে সরঞ্জামগুলি (বিশেষত ক্রোমের এবং ফায়ারব্যাগ) আসলে বেশ দুর্দান্ত, এবং (ব্রাউজারবিহীন প্রসঙ্গের জন্য অ্যাকাউন্টিং) ) পুনরায় চলমান পরিবর্তিত কোড কোনও সংকলন পদক্ষেপ ছাড়াই দ্রুত এবং সহজ।
অন্য একটি বিষয় সম্পর্কে আমি মোটামুটি নিশ্চিত যে আইডিইগুলি মূলত স্লোপি কোড সক্ষম করে তাদের নিজস্ব চাহিদা তৈরি করে যা আপনি জাভাস্ক্রিপ্টে সত্যিই কিনতে পারবেন না। আমরা কীভাবে জেএসে পরিচালনা করব তা শিখতে চান? এটি আইডিই ছাড়াই জাভাতে অ-তুচ্ছ কিছু লেখার চেষ্টা করে এবং আপনাকে যে কাজটি শুরু করতে হবে এবং যে আইডিই না সরানো ছাড়া সেই কোডটি বজায় রাখতে / সংশোধন করতে সক্ষম হতে পারে সেই বিষয়ে ভেবেচিন্তে মনোযোগ দেওয়া উচিত হতে পারে ফরোয়ার্ড। আইএমও, সেই একই জিনিসগুলি আপনার আইডিই আছে কিনা তা রক্ষণাবেক্ষণযোগ্য কোড লেখার জন্য এখনও সমালোচিত। যদি আমাকে 4 বছরের প্রোগ্রামিং পাঠ্যক্রম লিখতে হয় তবে এটি আপনাকে সরঞ্জাম এবং নির্ভরতা বাঁক না পাওয়ার স্বার্থে প্রথম দুই বছর কোনও আইডিই ছুঁতে দেয় না।
গঠন
জটিল অ্যাপ্লিকেশনগুলি নিয়ে অভিজ্ঞ অভিজ্ঞ জেএস ডেভসগুলি তাদের কোড গঠন করতে এবং করতে পারে can প্রকৃতপক্ষে এটি এমন একটি বিষয় যা আমাদের কাছে প্রারম্ভিক ইতিহাসের সাথে আরও ভাল হওয়ার ঝোঁক ছিল যা আমাদের জন্য কোড পড়ার জন্য আইডিইর অভাব ছিল তবে শক্তিশালীভাবে অভিব্যক্তিপূর্ণ ভাষাগুলি খুব দ্রুতই অনাকাঙ্ক্ষিত বিপর্যয় কোডবেসগুলি খুব দ্রুত প্রকাশ করতে পারে যদি আপনি চিন্তাভাবনা করে কোড না করেন।
আমার জাভা কোডবেসটি সম্প্রতি বুঝতে পারা পর্যন্ত আমি আসলে মোটামুটি খাড়া শেখার বক্ররেখা পেয়েছিলাম যতক্ষণ না অবশেষে বুঝতে পারি যে এর কোনওটিই যথাযথ ওওপি নয়। ক্লাসগুলি শিম বা ডিটিও বা স্ট্যাটিক গেটার / সেটারে বসে বিশ্বব্যাপী উপলভ্য ডেটা পরিবর্তন করে শিথিলভাবে সম্পর্কিত পদ্ধতিগুলির বান্ডিল ছাড়া আর কিছুই ছিল না। এটি মূলত একই পুরাতন জন্তুটি যা ওওপি প্রতিস্থাপনের কথা ছিল। সুতরাং আমি কোডটি মূলত সন্ধান করা এবং চিন্তা করা বন্ধ করে দিয়েছি। আমি সবেমাত্র শর্টকাট কীগুলি শিখেছি এবং মেসগুলির মাধ্যমে সনাক্ত করেছি এবং সবকিছু আরও সহজেই চলেছে। সুতরাং আপনি যদি ইতিমধ্যে অভ্যাসে না থাকেন তবে ওওডি সম্পর্কে আরও কঠোর চিন্তা করুন।
উচ্চ স্তরের একটি সু-কাঠামোগত জেএস অ্যাপ্লিকেশন জটিল ফাংশনগুলি (যেমন jQuery) এবং একে অপরের সাথে ইন্টারঅ্যাক্ট করার বিষয়গুলি সমন্বিত করে। আমি যুক্তি দিয়ে বলব যে যে কোনও ভাষায় একটি সুগঠিত, সহজে বজায় রাখা অ্যাপ্লিকেশনটির চিহ্ন হ'ল আপনি এটি কোনও আইডিই বা নোটপ্যাড ++ দিয়ে দেখছেন কিনা তা পুরোপুরি সুস্পষ্ট। আমি নির্ভরতা ইনজেকশন এবং টেস্ট-প্রথম টিডিডিকে চূড়ান্তভাবে নিয়ে যাওয়া নিয়ে অত্যন্ত সমালোচিত এটির একটি প্রধান কারণ।
এবং সবশেষে, ক্লাস করা যাক। প্রোটোটাইপাল উত্তরাধিকার শিখুন। আপনার বাস্তব উত্তরাধিকারের প্রয়োজন হলে এটি বাস্তবায়ন করা বেশ মার্জিত সহজ। আমি মিশ্রিত পদ্ধতিগুলি জেএসে আরও ভালভাবে কাজ করার প্রবণতা খুঁজে পাই, তবে আমি ব্যক্তিগতভাবে অসুস্থ হয়ে পড়তে শুরু করি এবং যে কোনও সময় কোনও ভাষাতে এক বা দুই স্তরের উত্তরাধিকার চলতে দেখি যে কোনও সময় এক্সটজেএস নাইট-ভীতি দেখা দেয়।
প্রথম মূল নীতি
আমি মূল বিষয়গুলি সম্পর্কে কথা বলছি যা অন্যান্য সমস্ত ভাল অনুশীলনগুলি থেকে নেওয়া উচিত: ডিআরওয়াই, ইয়াজিএনআই, ন্যূনতম বিস্ময়ের নীতি, সমস্যা ডোমেনগুলির পরিষ্কার বিচ্ছিন্নতা, একটি ইন্টারফেসে লিখন, এবং মানুষের লেগেইবল কোড লেখাই আমার ব্যক্তিগত মূল বিষয়। কিছুটা জটিল বিষয় যা এই অনুশীলনগুলি পরিত্যাগের পক্ষে, যে কোনও ভাষায় কুল এইড হিসাবে বিবেচিত হওয়া উচিত, তবে বিশেষত জাভাস্ক্রিপ্টের মতো একটি ভাষা যেখানে পরবর্তী লোকের জন্য খুব বিভ্রান্তিকর কোডের উত্তরাধিকার রেখে যাওয়া শক্তিশালী। উদাহরণস্বরূপ, আলগা কাপলিং হ'ল দুর্দান্ত স্টাফ যতক্ষণ না আপনি এটিকে এতক্ষণ নিয়ে যান যে অবজেক্টগুলির মধ্যে ইন্টারঅ্যাকশনটি কোথায় ঘটছে তা আপনি এমনকি বলতে পারবেন না।
ডায়নামিক টাইপিং থেকে ভয় পাবেন না
জাভাস্ক্রিপ্টে মূল ধরণের অনেকগুলি নেই। বেশিরভাগ ক্ষেত্রে, গতিশীল কাস্টিং বিধিগুলি ব্যবহারিক এবং সোজা-এগিয়ে রয়েছে তবে এটি শেখার জন্য অর্থ প্রদান করা হয় যাতে আপনি অকারণে ক্যাসেট এবং অর্থহীন বৈধতার রুটিন ছাড়াই ডেটা প্রবাহ পরিচালনা করতে আরও ভাল শিখতে পারেন। আমাকে বিশ্বাস কর. সংকলনের ক্ষেত্রে পারফরম্যান্স এবং সমস্যা দেখা দেওয়ার জন্য কঠোর প্রকারগুলি দুর্দান্ত তবে তারা আপনাকে কোনও কিছুই থেকে সুরক্ষা দেয় না don't
জেএস ফাংশন এবং ক্লোজার থেকে ক্র্যাপ শিখুন
জেএসের প্রথম শ্রেণির ক্রিয়াকলাপগুলি তত্ক্ষণাত মূল কারণ জেএস "ক্লায়েন্ট-সাইড ওয়েবের সাথে পুরষ্কারের সাথে একমাত্র ভাষা মূল্যবান স্পর্শ পেয়েছে" won এবং হ্যাঁ, আসলে প্রতিযোগিতা ছিল। এগুলি জেএসের একটি কেন্দ্রীয় বৈশিষ্ট্যও। আমরা তাদের সাথে অবজেক্ট তৈরি করি। সবকিছু ফাংশন থেকে সরিয়ে দেওয়া হয়। এবং তাদের হ্যান্ডি বৈশিষ্ট্য রয়েছে। আমরা আর্গুমেন্ট কীওয়ার্ডের মাধ্যমে প্যারামগুলি পরীক্ষা করতে পারি। অন্যান্য বস্তুর পদ্ধতি হওয়ার প্রসঙ্গে আমরা সাময়িকভাবে এগুলি সংযুক্ত এবং ফায়ার করতে পারি। এবং এগুলি বাস্তবায়িত করার জন্য অশ্লীলতার সাথে ইভেন্টগুলিতে চালিত দৃষ্টিভঙ্গি তৈরি করে। সংক্ষেপে, তারা জেএসকে উত্সটিতে জেএস নিজেই (তবে বেশিরভাগই ডম এপিআই) এর বিভিন্ন বাস্তবায়ন মানিয়ে জটিলতা হ্রাস করতে এবং একে একে একে একে একে পরম জানোয়ার বানিয়েছে।
দত্তক নেওয়ার আগে প্যাটার্নগুলি / অভ্যাসগুলি পুনরায় মূল্যায়ন করুন
প্রথম শ্রেণির ফাংশন এবং গতিশীল ধরণেরগুলি জেএস-তে অনেক জটিল নকশার নিদর্শনগুলি সম্পূর্ণ অর্থহীন এবং জটিল c কিছু সাধারণ নিদর্শনগুলি, জেএসের অত্যন্ত নমনীয় প্রকৃতি প্রদত্ত অবিশ্বাস্যরূপে কার্যকর এবং কার্যকর করা সহজ। অ্যাডাপ্টার এবং সজ্জাকারক বিশেষভাবে দরকারী এবং আমি জটিল ইউআই উইজেট কারখানার জন্য সিঙ্গলেটগুলি সহায়ক বলে মনে করেছি যা তারা তৈরি ইউআই উপাদানগুলির জন্য ইভেন্ট ম্যানেজার হিসাবেও কাজ করে।
ভাষার নেতৃত্ব অনুসরণ করুন এবং আরও কম কিছু করুন
আমি বিশ্বাস করি জাভা প্রধান হঞ্চোসের একজন যুক্তিটি কোথাও কোথাও তৈরি করেছেন যে ভারবোসিটি আসলে একটি ইতিবাচক বৈশিষ্ট্য যা কোডকে সমস্ত পক্ষের পক্ষে বোঝা সহজ করে তোলে। Hogwash। যদি এটি সত্য হয় তবে লেগালিজ পড়তে সহজ হত। কেবল লেখক তারা যা লিখেছেন তা সহজেই বুঝতে পারবেন এবং আপনি মাঝে মাঝে অন্য লোকের জুতোয় নিজেকে জুড়ে দিয়ে তা করতে পারেন। সুতরাং এই দুটি নিয়ম আলিঙ্গন করুন। 1. যতটা সম্ভব প্রত্যক্ষ এবং স্পষ্ট হন। 2. ইতিমধ্যে জঘন্য বিন্দু পেতে। জয়টি হ'ল পরিষ্কার, সংক্ষিপ্ত কোডটি ট্রিগার থেকে আসল কাঙ্ক্ষিত ক্রিয়ায় যাওয়ার জন্য পঁচিশটি স্তরকে অতিক্রম করতে হবে এমন কিছুের চেয়ে বুঝতে ও বজায় রাখা সহজতর মাত্রার অর্ডার। বেশিরভাগ নিদর্শন যে কঠোর ভাষায় এই ধরণের জিনিসকে সমর্থন করে তা আসলে জাভাস্ক্রিপ্টের সীমাবদ্ধতার জন্য কার্যকর নয়।
সবকিছু হ'ল ম্যালেবল এবং এটি ঠিক আছে
জেএস সম্ভবত জনপ্রিয় ব্যবহারের মধ্যে ন্যূনতম সুরক্ষাবাদী ভাষাগুলির একটি। যে আলিঙ্গন। এটা ভাল কাজ করে। উদাহরণস্বরূপ আপনি কেবল কনস্ট্রাক্টর ফাংশনে নিয়মিত যুদ্ধ ঘোষণা করে অ্যাক্সেসেবল অবিচ্ছিন্ন "প্রাইভেট" ওয়ার্স সহ অবজেক্ট লিখতে পারেন এবং আমি প্রায়শই এটি করি। তবে এটি আমার কোড বা এর ব্যবহারকারীদের "নিজের থেকে" রক্ষা করার জন্য নয় (তারা যেভাবে রান-টাইমের সময় তাদের নিজস্ব সংস্করণ দিয়ে এটি প্রতিস্থাপন করতে পারে)। তবে এটি অভিপ্রায়ের ইঙ্গিত দেয় কারণ ধারণাটি হ'ল অন্য লোকটি কোনও নির্ভরতা জাগাতে চায় না এমন যথেষ্ট সক্ষম এবং এটি দেখতে পাবে যে আপনি কোনও ভাল কারণে সরাসরি এটি পেতে চাইছেন না।
কোনও আকারের সীমা নেই, কেবলমাত্র সমস্যা ডোমেন
আমি যে সমস্ত জাভা কোডবেস দেখেছি তার সাথে আমার সবচেয়ে বড় সমস্যাটি হ'ল ক্লাস ফাইলগুলির অত্যধিক পরিমাণ। সবার আগে সলিড হ'ল একটি বিভ্রান্তিকর পুনরাবৃত্তি যা আপনার ইতিমধ্যে OOP সম্পর্কে জেনে রাখা উচিত। একটি শ্রেণীর সম্পর্কিত সমস্যার একটি নির্দিষ্ট সেট পরিচালনা করা উচিত। একটি পদ্ধতিতে একটি সমস্যা নয়। এটি কেবল বুট করতে সমস্ত অর্থহীন শ্রেণির বাক্য গঠন যুক্ত করে খারাপ পুরানো চেইনিং ফানক-স্প্যাগেটি সি কোড নিচ্ছে। কোনও আকার বা পদ্ধতির সীমা নেই। যদি ইতিমধ্যে কোনও দীর্ঘ ক্রিয়াকলাপ বা শ্রেণি বা নির্মাতার সাথে কিছু যুক্ত করা বুদ্ধিমান হয়ে থাকে তবে তা বোধগম্য হয়। JQuery নিন। এটি একটি ফাংশনে একটি সম্পূর্ণ লাইব্রেরি-দৈর্ঘ্যের সরঞ্জামসেট এবং এতে কোনও ভুল নেই। আমাদের এখনও jQuery প্রয়োজন তা যুক্তিসঙ্গত বিতর্ক অবধি কিন্তু ডিজাইনের ক্ষেত্রে,
জাভা যদি আপনার সমস্ত জানা থাকে তবে একটি নন-সি-ভিত্তিক সিনট্যাক্স সহ কিছুতে ডাবল করুন
আমি যখন পাইথনের সাথে জগাখিচুড়ি শুরু করলাম কারণ জ্যাঙ্গোর বিষয়ে আমি যা শুনছিলাম তা আমার পছন্দ হয়েছিল, তখন আমি ভাষা নকশা থেকে বাক্য গঠন আলাদা করতে শুরু করতে শিখেছিলাম। ফলস্বরূপ, জাভা এবং সি তাদের ভাষা নকশা অংশের যোগফল হিসাবে একই সিনট্যাক্সের সাথে পৃথকভাবে করা বিভিন্ন জিনিসগুলির চেয়ে যোগ করা সহজ হয়ে ওঠে। একটি দুর্দান্ত পার্শ্ব-প্রতিক্রিয়া হ'ল ডিজাইনের দিক থেকে আপনি অন্যান্য ভাষাগুলি যত বেশি বুঝতে পারবেন, তার বিপরীতে আপনি যেটির পক্ষে সবচেয়ে ভাল জানেন তার শক্তি এবং দুর্বলতাগুলি তত ভাল আপনি বুঝতে পারবেন।
উপসংহার
এখন, এই সমস্ত বিবেচনা করে, আপনার সমস্ত সমস্যা-পয়েন্টগুলিকে আঘাত করতে দাও:
- কোনও কার্যের প্রবেশ বিন্দু খুঁজে পাওয়ার কোনও তাত্ক্ষণিক উপায় নেই (একটি সরল পাঠ্য অনুসন্ধান ব্যতীত, এরপরে পরবর্তী পদ্ধতিগুলির জন্য পরবর্তী ক্রিয়াকলাপ অনুসন্ধানের ফলাফল হতে পারে, যার মধ্যে দুটি বা তিনটি আপনি ভুলে গিয়েছিলেন যেখানে আপনি শুরু করেছিলেন)
ক্রোম এবং ফায়ারব্যাগের আসলে কল-ট্রেসিং রয়েছে। তবে কাঠামো এবং বিষয়গুলি সংক্ষিপ্ত এবং সরাসরি রাখার বিষয়ে আমার পয়েন্টগুলিও দেখুন। একে অপরের সাথে ইন্টারঅ্যাক্ট করার জন্য বৃহত্তর ভাল-এনক্যাপসুলেটেড কনস্ট্রাক্টগুলি যত বেশি আপনি আপনার অ্যাপ্লিকেশনটির কথা ভাবতে পারেন, জিনিসগুলি ভুল হয়ে গেলে এর দোষটি সহজেই চিহ্নিত করা সহজ easier আমি বলব জাভা সম্পর্কেও এটি সত্য। আমাদের ক্লাসের মতো ফাংশন কনস্ট্রাক্টর রয়েছে যা traditionalতিহ্যবাহী ওওপি উদ্বেগের জন্য নিখুঁতভাবে পরিষেবাযোগ্য।
function ObjectConstructor(){
//No need for an init method.
//Just pass in params and do stuff inside for instantiation behavior
var privateAndPersistent = true;
//I like to take advantage of function hoisting for a nice concise interface listing
this.publicAndPointlessEncapsulationMurderingGetterSetter
= publicAndPointlessEncapsulationMurderingGetterSetter;
//Seriously though Java/C# folks, stop with the pointless getter/setters already
function publicAndPointlessEncapsulationMurderingGetterSetter(arg){
if(arg === undefined){
return privateAndPersistent;
}
privateAndPersistent = arg;
}
}
ObjectConstructor.staticLikeNonInstanceProperty = true;
var instance = new ObjectConstructor();//Convention is to capitalize constructors
আমার কোডে আমি কখনই অবজেক্ট লিটারালগুলিকে {}
স্ট্রাকচারাল অ্যাপ উপাদান হিসাবে ব্যবহার করি না কারণ তাদের অভ্যন্তরীণ (প্রাইভেট) vars থাকতে পারে না এবং তাদেরকে ডেটা স্ট্রাকচার হিসাবে ব্যবহারের জন্য সংরক্ষণের পরিবর্তে পছন্দ করি। এটি একটি প্রত্যাশা সেট করতে সহায়তা করে যা অভিপ্রায়টির স্পষ্টতা বজায় রাখে। (আপনি যদি কোঁকড়া দেখতে পান তবে এটি ডেটা, অ্যাপ স্থাপত্যের কোনও উপাদান নয়)।
- প্যারামিটারগুলি সেই পরামিতিতে কী কী বৈশিষ্ট্য এবং ফাংশন উপলব্ধ রয়েছে তা জানার কোনও উপায় ছাড়াই ফাংশনগুলিতে প্রেরণ করা হয় (প্রোগ্রামটি চালানো ব্যতীত ফাংশনটি যে বিন্দুতে ডাকা হয় সেটিতে নেভিগেট করে, এবং সমস্ত বৈশিষ্ট্য আউটপুটে কনসোল.লগগুলি ব্যবহার করে) উপলব্ধ)
আবার, আধুনিক ব্রাউজারের সরঞ্জামগুলি দেখুন। তবে এছাড়াও, কেন প্রোগ্রামটি আবার চালানোর জন্য এতো বাম্পার? পুনরায়লোড হ'ল এমন কিছু যা ক্লায়েন্ট-সাইড ওয়েব ডেভ সাধারণত প্রতি কয়েক মিনিটে হিট করে কারণ এটি করার জন্য আপনার একেবারেই কিছুই ব্যয় হয় না। এটি আবার, অ্যাপের কাঠামোটি সহায়ক হতে পারে তবে এটি জেএসের এক-পাশের ট্রেড অফ যা চুক্তি প্রয়োগ করা সমালোচনা করার সময় আপনার নিজের বৈধতা চালাতে হবে (আমার কোডবেস না করায় এমন কিছু আমি কেবলমাত্র অন্য বিষয়গুলির সামনে প্রকাশ করি something 'টি নিয়ন্ত্রণ)। আইএমও, ট্রেডঅফ সুবিধাগুলি ভাল।
- কলব্যাক হিসাবে অজ্ঞাতনামা ফাংশনগুলির সাধারণ ব্যবহার, যা ঘন ঘন বিভ্রান্তিকর কোডের পাথের স্প্যাগেটি বাড়ে, আপনি দ্রুত চলাচল করতে পারবেন না।
হ্যাঁ এটি তুচ্ছ-তুচ্ছ কিছুতেই খারাপ। এটা করবেন না। আপনার ফাংশন বাচ্চাদের নাম দিন। জিনিসগুলি পাশাপাশি সনাক্ত করাও সহজ। আপনি সংজ্ঞায়িত করতে পারেন, মূল্যায়ন করতে (নির্ধারিত প্রয়োজন) এবং এর সাথে লাইনটিতে একটি সাধারণ তুচ্ছ ফাংশন নির্ধারণ করতে পারেন:
doSomethingWithCallback( (function callBack(){}) );
আপনি যখন কলগুলির মাধ্যমে ট্রেস করছেন তখন Chrome এর জন্য আপনার একটি নাম থাকবে। অ-তুচ্ছ ফানক জন্য আমি কলটির বাইরে এটি সংজ্ঞায়িত করব। আরও মনে রাখবেন যে কোনও ভেরিয়েবলের জন্য নির্ধারিত অ্যানোয়াইমাস ফাংশনগুলি এখনও বেনামে থাকে।
- এবং নিশ্চিত, জেএসলিন্ট রানটাইমের আগে কিছু ত্রুটি ধরেছে, তবে এটি ব্রাউজারে সরাসরি আপনার কোডের নীচে লাল avyেউয়ের লাইন থাকার মতো সহজ নয়।
আমি কখনও জিনিসটি স্পর্শ করি না। ক্রোকফোর্ডের সম্প্রদায়কে কিছু ভাল জিনিস দেওয়া হয়েছে তবে জেএসলিন্ট লাইনটি স্টাইলিস্টিক পছন্দগুলিতে অতিক্রম করে এবং জাভাস্ক্রিপ্টের নির্দিষ্ট উপাদানগুলির বিশেষত কোনও ভাল কারণ, আইএমওর জন্য খারাপ অংশ বলে পরামর্শ দেয়। অবশ্যই রেজিএক্স এবং নেগেশন ক্লাস সম্পর্কে একটি জিনিস অনুসরণ করুন * বা + এর পরে। ওয়াইল্ডকার্ডগুলি আরও খারাপভাবে পারফর্ম করে এবং আপনি সহজেই পুনরাবৃত্তিটি {} এর সাথে সীমাবদ্ধ করতে পারেন} এছাড়াও, ফাংশন কনস্ট্রাক্টর সম্পর্কে তিনি যা কিছু বলেন তা উপেক্ষা করুন। নতুন কীওয়ার্ডটি আপনাকে বিরক্ত করলে আপনি সহজেই এগুলিকে একটি কারখানার ফ্যাঙ্কে মুড়িয়ে দিতে পারেন। সিএসএসলিন্ট (ক্রকফোর্ডের নয়) খারাপ পরামর্শের ক্ষেত্রে আরও খারাপ। সর্বদা লোকেদের দানের সাথে প্রচুর কথা বলার মতো ব্যস্ততা রাখুন। কখনও কখনও আমি শপথ করি তারা কেবল কর্তৃপক্ষ প্রতিষ্ঠা করতে বা নতুন উপাদান তৈরি করার জন্য খুঁজছেন।
এবং আবারও, আপনার অবশ্যই এই রান-টাইম উদ্বেগটি নিয়ে কী শিখেছে তা শিখতে হবে। (এটি একটি সাধারণ যা আমি প্রচুর জাভা / সি # ডেভাসের সাথে দেখেছি) যদি রান-টাইমে ত্রুটিগুলি দেখতে 2 বছর পরেও আপনাকে বিরক্ত করে, আমি চাই যে আপনি কোনও ব্রাউজারে ডুবে না যেতে বসে বসে স্প্যাম পুনরায় লোড করুন There কোনও সংকলন-সময় / রান-টাইম বিভাজন নয় (যাইহোক ভালভাবে দৃশ্যমান হয় না - এখন কোনও জেআইটিতে জেএস চালানো হয়)। রান-টাইমে বাগগুলি আবিষ্কার করা ঠিক নয়, এটি এতটা সস্তা এবং সহজেই স্প্যাম পুনরায় লোড করা এবং আপনার প্রতিটি স্টপিং পয়েন্টে বাগগুলি আবিষ্কার করার পক্ষে অত্যন্ত উপকারী।
এবং সেই ক্রোম দেব সরঞ্জামগুলিতে ক্র্যাকিন পান। এগুলি সরাসরি ওয়েবকিটে অন্তর্নির্মিত। ক্রোমে ডান-ক্লিক করুন। উপাদানটি পরীক্ষা করুন। ট্যাবগুলি অন্বেষণ করুন। রান-টাইম চলাকালীন সর্বাধিক শক্তিশালী তবে কম স্পষ্ট বিকল্পগুলির মধ্যে একটিতে কনসোলে কোড পরিবর্তন করার ক্ষমতা সহ প্রচুর ডিবাগ শক্তি। পরীক্ষার জন্যও দুর্দান্ত।
সম্পর্কিত নোটে, ত্রুটিগুলি আপনার বন্ধু। কখনও খালি ক্যাচ স্টেটমেন্ট লিখবেন না। জেএসে আমরা ত্রুটিগুলি লুকিয়ে রাখি না বা কবর দিই না (বা কমপক্ষে আমাদের YUI / কাশি কাশি করা উচিত নয় )। আমরা তাদের কাছে উপস্থিত থাকি। যে কোনও কিছুই কমলে ডিবাগ বেদনার ফলস্বরূপ। আপনি যদি উত্পাদনের সম্ভাব্য ত্রুটিগুলি আড়াল করতে একটি ক্যাচ স্টেটমেন্ট লিখে থাকেন তবে কমপক্ষে নিঃশব্দে ত্রুটিটি লগ করুন এবং লগটি কীভাবে অ্যাক্সেস করবেন ডকুমেন্ট করুন।