আমি যখন ভেরিয়েবল নামের উপর টাইপোর মতো বোকা কিছু করি তখন আমার সংকলকটির অভিযোগ করার অভ্যস্ত তবে জাভাস্ক্রিপ্টের এই পাসটি দেওয়ার অভ্যাস রয়েছে।
জাভাস্ক্রিপ্টের জন্য কোনও স্থির বিশ্লেষণ সরঞ্জাম আছে?
আমি যখন ভেরিয়েবল নামের উপর টাইপোর মতো বোকা কিছু করি তখন আমার সংকলকটির অভিযোগ করার অভ্যস্ত তবে জাভাস্ক্রিপ্টের এই পাসটি দেওয়ার অভ্যাস রয়েছে।
জাভাস্ক্রিপ্টের জন্য কোনও স্থির বিশ্লেষণ সরঞ্জাম আছে?
উত্তর:
আমি সম্মত হই যে জেএসলিন্টটি শুরু করার সেরা জায়গা। নোট করুন যে জাভাস্ক্রিপ্ট লিন্ট জেএসলিন্ট থেকে পৃথক । আমি জেএসুরেও যাচাই করার পরামর্শ দিয়েছিলাম , যা আমার সীমিত পরীক্ষায় এগুলির উভয়ের চেয়ে ভাল করেছে, যদিও বাস্তবায়নের কয়েকটি রুক্ষ প্রান্ত রয়েছে me আমার জন্য স্টার্টআপে ইন্টেল ম্যাক সংস্করণটি বিধ্বস্ত হয়েছিল, যদিও পাওয়ারপিসি সংস্করণটি ইন্টেলের উপরও দুর্দান্ত ছিল, এবং লিনাক্স সংস্করণটিও ভাল চলছিল। (বিকাশকারী, বার্কে দুরাক বলেছিলেন যে এটি ঠিক হওয়ার পরে তিনি আমার কাছে ফিরে আসবেন, তবে আমি তার কাছ থেকে শুনিনি।)
আপনি কোনও ভাল সি পরীক্ষক হিসাবে যতটা জাভাস্ক্রিপ্ট স্থিতিশীল বিশ্লেষণ পান তেমন আশা করবেন না। যেমনটি ডুরাক আমাকে বলেছিলেন, "জাভাস্ক্রিপ্টের গতিশীল প্রকৃতির কারণে কোনও তুচ্ছ-বিশ্লেষণ অত্যন্ত জটিল।"
(আর একটি, আরও অস্পষ্ট ম্যাক-কেবল বাগ, এবার জেএসলিন্টের কনফ্যাবুলেটর উইজেটের সাথে: উইজেটের উপরে একটি বিবিএডিট ডকুমেন্ট আইকনটি টানলে নথির ট্র্যাসে সরানো হয় The
10 আগস্ট ২০০৯: আজ স্ট্যাটিক অ্যানালাইসিস সিম্পোজিয়ামে সাইমন হলম জেনসেন আন্ডারস মুলার এবং পিটার থিম্যানের লেখা জাভা স্ক্রিপ্টের জন্য টাইজ এনালাইজার: টিএজেএস: টাইপ এনালাইজারের উপর একটি প্রবন্ধ উপস্থাপন করেছিলেন। কাগজটিতে উপরের সরঞ্জামগুলি উল্লেখ করা হয়নি, তবে জেনসেন আমাকে বলেছিলেন যে সে কিছুগুলির দিকে নজর রাখবে এবং প্রভাবিত হয় নি। টিএজেএসের কোডটি এই গ্রীষ্মের কিছু সময় পাওয়া উচিত।
আপডেট করা উত্তর, 2017: হ্যাঁ। ESLint ব্যবহার করুন। http://eslint.org
ছাড়াও JSLint (ইতিমধ্যে উল্লেখ ফ্ল্যাশ শেরীডন এর উত্তর ) এবং বন্ধ কম্পাইলার (আগের উল্লেখ awhyte এর উত্তর ) আমি আছে এছাড়াও চলমান থেকে সুবিধা অনেকটা অর্জিত হয়েছে JSHint এবং পিএইচপি CodeSniffer । ২০১২ পর্যন্ত, সমস্ত চারটি সরঞ্জামই বিনামূল্যে মুক্ত উত্স এবং তাদের পিছনে একটি বৃহত এবং সক্রিয় বিকাশকারী সম্প্রদায় রয়েছে community তারা যে ধরণের চেক সম্পাদন করে সেগুলি একে অপরকে আলাদা (এবং আমি মনে করি, পরিপূরক):
জেএসলিন্টটি ডিজাইন করা হয়েছিল এবং এখনও ডগলাস ক্রকফোর্ডের ব্যক্তিগত লিটিং সরঞ্জাম। এটি দুর্দান্ত ডিফল্ট রুলসেট সহ জাহাজগুলি - ক্রোকফোর্ডের নিজস্ব, তিনি জাভাস্ক্রিপ্ট এবং এর ক্ষতি সম্পর্কে শিখতে থাকায় ক্রমাগত আপডেট হয় । জেএসলিন্ট অত্যন্ত মতামতযুক্ত এবং এটি সাধারণত একটি ভাল জিনিস হিসাবে দেখা হয়। সুতরাং স্বতন্ত্র নিয়মগুলি কনফিগার করতে বা অক্ষম করতে আপনি করতে পারেন এমন একটি সীমিত পরিমাণ (ইচ্ছাকৃতভাবে) রয়েছে । তবে এটি জেএসলিন্টকে উত্তরাধিকারের কোডটিতে প্রয়োগ করা শক্ত করে তুলতে পারে।
জেএসিন্ট জেএসলিন্টের সাথে খুব মিল (বাস্তবে এটি জেএসলিন্ট কাঁটাচামচ হিসাবে জীবনের শুরু হয়েছিল ) তবে জেএসলিন্টের সমস্ত চেক কমান্ড লাইন অপশন বা ফাইলের মাধ্যমে কনফিগার করা বা অক্ষম করা সহজ / সম্ভব ।.jshintrc
আমি বিশেষত পছন্দ করি যে আমি জেএসহিন্টকে বলতে পারি যে কোনও ফাইলের সমস্ত ত্রুটিগুলি রিপোর্ট করতে , এমনকি শত শত ত্রুটি থাকলেও। বিপরীতে, যদিও জেএসলিন্টের একটি maxerr
কনফিগারেশন বিকল্প রয়েছে, বিপুল সংখ্যক ত্রুটিযুক্ত ফাইলগুলিকে প্রক্রিয়া করার চেষ্টা করার সময় এটি তুলনামূলকভাবে তাড়াতাড়ি আউট হয়ে যায়।
এতে ক্লোজার সংকলক অত্যন্ত কার্যকর, যদি কোডটি বন্ধের সাথে সংকলন না করে তবে আপনি খুব নিশ্চিত অনুভব করতে পারেন যে কোডটি কিছু মৌলিক উপায়ে গভীরভাবে হোসড is বন্ধ সংকলন সম্ভবত সর্বনিকটবর্তী বস্তু মত একটি "অনুবাদক" বাক্য গঠন যাচাই করুন জেএস বিশ্বের আছে যে php -l
বাruby -c
ক্লোজার সম্ভাব্য সমস্যা যেমন আপনাকে অনুপস্থিত প্যারামিটার এবং অঘোষিত বা পুনরায় সংজ্ঞায়িত ভেরিয়েবল সম্পর্কে সতর্ক করে । আপনি যে সতর্কতাগুলি প্রত্যাশা করছেন তা যদি আপনি না দেখেন তবে একটি বিকল্প দিয়ে ক্লোজারকে অনুরোধ করে সতর্কতা স্তরটি বাড়ানোর চেষ্টা করুন--warning_level VERBOSE
পিএইচপি কোডস্নিফার জাভাস্ক্রিপ্ট পাশাপাশি পিএইচপি এবং সিএসএস পার্স করতে পারে । কোডস্নিফার বিভিন্ন কোডিং স্ট্যান্ডার্ড সহ জাহাজগুলি, ( phpcs -i
এগুলি দেখতে বলুন ) যার মধ্যে জাভাস্ক্রিপ্ট কোডের জন্য অনেকগুলি দরকারী স্নিফ অন্তর্ভুক্ত রয়েছে যা ইনলাইন নিয়ন্ত্রণ কাঠামো এবং অতিরিক্ত অতিরিক্ত সাদা স্থানের বিপরীতে রয়েছে ।
এখানে সংস্করণ ১.৩..6 অনুসারে পিএইচপি কোডস্নিফারে জাভাস্ক্রিপ্ট স্নিফসের একটি তালিকা রয়েছে এবং এখানে একটি কাস্টম রুলসেট রয়েছে যা আপনাকে সেগুলি একবারে চালানোর অনুমতি দেয়। কাস্টম রুলসেটগুলি ব্যবহার করে, আপনি যে বিধি প্রয়োগ করতে চান তা চয়ন এবং চয়ন করা সহজ । এমনকি আপনি যদি কোনও নির্দিষ্ট "বাড়ির স্টাইল" প্রয়োগ করতে চান যা বাক্সের বাইরে সমর্থিত না হয় আপনি নিজের স্নিগ্ধগুলিও লিখতে পারেন । আফাইক কোডস্নিফার হ'ল এখানে বর্ণিত চারটির একমাত্র হাতিয়ার যা কাস্টমাইজেশন এবং নতুন স্থিতিশীল বিশ্লেষণের বিধি তৈরির পক্ষে সহায়তা করে। যদিও একটি সতর্কতামূলক: কোডস্নিফার হ'ল উল্লিখিত যে কোনও একটি সরঞ্জামের মধ্যে ধীরতম চলমান।
গুগলের "সমাপ্তি" জেএস সংকলক সংকলন সময়ে কনফিগারযোগ্য সতর্কতা এবং ত্রুটিগুলি উত্পাদন করে। এটি স্পষ্টতই ভুল বানানযুক্ত ভেরিয়েবল এবং পদ্ধতিগুলি এবং আরও ভাল ভুলগুলির সন্ধান করে। আপনি যদি জাসডোক বন্ধের উপায়ে লিখতে ইচ্ছুক হন তবে এটি টাইপ তথ্যের সাথেও অনেক কিছু করতে পারে।
YUI "সংক্ষেপক" সরঞ্জামটিও সতর্কতা তৈরি করতে পারে, তবে এখনও চেষ্টা করে নি।
অ্যাক্টিনা আইডিই-র সাথে আমি খুব একটা ভাগ্য পাইনি, যা এক্সিলিপসে নির্মিত, তবে অন্যান্য লোকেরা এটি পছন্দ করে। জেএস আইডিইগুলির স্ট্যাক ওভারফ্লো আলোচনা দেখুন।
ইন্টেলিজ আইডিই, যা আমি শেষবার যাচাই করেছিলাম তা নিখরচায় নয়, ফ্রিকিনের দুর্দান্ত জেএস সমর্থন রয়েছে। এটি টাইপ করার সাথে সাথে ভুল বানানযুক্ত ভার এবং পদ্ধতিগুলি সনাক্ত এবং হাইলাইট করবে। এটিও স্বতঃসম্পূর্ণ হয়েছে।
সংক্ষেপে, জেএসলিন্ট, জেএসহিন্ট, প্লেটো, ইএসলিন্ট, গুগল ক্লোজার-লিন্টার হ'ল উপলব্ধ সরঞ্জাম। উইন্ডোজের জন্য গুগল ক্লোজার-লিন্টার ব্যবহার করার সময় আমি ইনস্টলেশন সংক্রান্ত সমস্যার মুখোমুখি হয়েছি। তবে এটি ওয়েব পৃষ্ঠায় উল্লেখ করে যে উইন্ডোজের জন্য এর সমর্থনটি পরীক্ষামূলক। আমি খুঁজে পেয়েছি এবং আরও একটি সরঞ্জাম চেষ্টা করেছি যা ভালভাবে কাজ করে। এটির জন্য এখানে লিঙ্কটি দেওয়া হয়েছে: http://esprima.org/
এছাড়াও, এ্যাসপ্রিমার সরঞ্জামটির জন্য এটি গিথুব লিঙ্ক: https://github.com/ariya/esprima
আপনি এই উইকিতে জাভাস্ক্রিপ্ট স্ট্যাটিক কোড বিশ্লেষণের জন্য কয়েকটি সরঞ্জাম দেখতে পারেন ।
উইকের একটি সরঞ্জাম, তবে এই পোস্টে উল্লেখ করা হয়নি, ডিপস্ক্যান । এর ফোকাসটি লাইটারের কনভেনশনগুলিকে কোডিংয়ের পরিবর্তে রানটাইম ত্রুটি এবং মানের সমস্যাগুলি খুঁজে পাওয়া। এটি টাইপস্ক্রিপ্ট, প্রতিক্রিয়া এবং Vue.js. এও অন্তর্ভুক্ত
আপনি এটি আপনার গিটহাব প্রকল্পের জন্য ব্যবহার করে দেখতে পারেন।
আমি ইস্লিন্ট চেষ্টা করে দেখতে পেয়েছি এবং এটি ভালই পেয়েছে..আপনি সেখানে কাস্টম বিধিগুলি যুক্ত করতে পারেন..এখানেই গিথুব রেপো: https://github.com/nzakas/eslint এবং এখানে এটির পরিচিতি এখানে রয়েছে: http: // www। nczonline.net/blog/2013/07/16/introducing-eslint/
সিকিউরিটি / বি 2 জি / জাভাস্ক্রিপ্ট কোড বিশ্লেষণে মোজিলা উইকিতে সাধারণ উদ্দেশ্য তালিকার চেয়ে বেশি সুরক্ষিত সন্ধান করা যেতে পারে
এই নথির উদ্দেশ্য হ'ল মোজিলা প্রকল্পগুলি অন্তর্ভুক্ত করার জন্য বা অভ্যন্তরীণ ব্যবহারের জন্য উপযুক্ত জাভাস্ক্রিপ্ট কোড বিশ্লেষণ সরঞ্জামগুলি সংগ্রহ করা।
এছাড়াও কমপক্ষে একটি বাণিজ্যিক পণ্য রয়েছে যা সুরক্ষা বিশ্লেষণ করে: বার্প নতুন জাভাস্ক্রিপ্ট বিশ্লেষণ ক্ষমতা অর্জন করে
বার্পের সর্বশেষ প্রকাশে জাভাস্ক্রিপ্ট কোডের স্থির বিশ্লেষণের জন্য একটি নতুন ইঞ্জিন অন্তর্ভুক্ত রয়েছে। এটি বারপ স্ক্যানারকে বিভিন্ন নতুন দুর্বলতার প্রতিবেদন করতে সক্ষম করে, সহ:
- ডোম-ভিত্তিক এক্সএসএস
- জাভাস্ক্রিপ্ট ইনজেকশন
- ক্লায়েন্ট-সাইড এসকিউএল ইঞ্জেকশন
- ওয়েবসকেট হাইজ্যাকিং
- স্থানীয় ফাইল পাথ হেরফের
- ডোম-ভিত্তিক উন্মুক্ত পুনঃনির্দেশ
- কুকি কারসাজি
- Ajax অনুরোধ শিরোনাম ম্যানিপুলেশন
- ডোম-ভিত্তিক পরিষেবা অস্বীকার
- ওয়েব বার্তা হেরফের
- এইচটিএমএল 5 স্টোরেজ ম্যানিপুলেশন
বাণিজ্যিক ক্ষেত্রে, কভারিটি স্ট্যাটিক বিশ্লেষণ জাভাস্ক্রিপ্টের 7..7 সংস্করণ (২০১৫-এর মাঝামাঝি) বিশ্লেষণকে সমর্থন করে। টাইপস সম্পর্কে আপনার সুনির্দিষ্ট অনুসন্ধানের বিষয়ে, আমার পোষা প্রাণীর প্রজেক্টটি সর্বশেষ প্রকাশে প্রদর্শিত হবে (২০১.0 এর শুরুতে .0.০ , প্রোগ্রামের উপাদানগুলির নাম ) টাইপগুলি খুঁজে পায় ।
প্রকল্পের মূল বিকাশকারী হিসাবে, দয়া করে আমার নির্লজ্জ প্লাগটি গ্রহণ করুন: যদিও সম্মানিত সি / সি ++ বিশ্লেষণের মতো এখনও পরিপক্ক না কভারটির জাভাস্ক্রিপ্ট বিশ্লেষণ একই ইঞ্জিনের অনেকাংশে ভাগ করে, কম সহ উচ্চ-মান ত্রুটিগুলি সন্ধান করার ক্ষেত্রে একই ফোকাস দিয়ে মিথ্যা ইতিবাচক ত্রুটি প্রতিবেদনগুলির হার rate আমরা প্রোগ্রামিংয়ের সাধারণ ত্রুটিগুলি খুঁজে বের করার পাশাপাশি জাভাস্ক্রিপ্টে (এবং অন্যান্য ভাষাগুলি) সুরক্ষা ত্রুটিগুলি অনুসন্ধানে আমাদের ফোকাস বাড়িয়ে দিচ্ছি।
এখন, এটি পাওয়া যায় এমন কিছু টাইপস এখানে রয়েছে (পাঠকদের অনুশীলন হিসাবে সঠিক টাইপো রেখে দেওয়া হয়েছে, কীভাবে সহজে এগুলিকে উপেক্ষা করা যায় তা জোর দিয়ে):
মার্জ.জেএস: (স্থিতিশীল লিঙ্ক) (সর্বশেষ সংশোধন)
কমান্ড-প্যাকেজ-ক্যোয়ারী.জেএস: (স্থিতিশীল লিঙ্ক) (সর্বশেষ সংশোধন)
সিরিজ-পাই-টেস্ট.জেএস: (স্থিতিশীল লিঙ্ক) (সর্বশেষ সংশোধন)
আউটলাইন_কেস.জেএস: (স্থিতিশীল লিঙ্ক) (সর্বশেষ সংশোধন)
ফ্লো টীকাগুলি সহ এবং ছাড়াই স্থির বিশ্লেষণ করে।
আপনার যদি টীকাগুলির দরকার হয় তবে সিনট্যাক্সটি টাইপস্ক্রিপ্টের সাথে সামঞ্জস্যপূর্ণ ।
এর সাথে প্যাকেজটি ইনস্টল করুন :
npm install --global flow-bin
কিছু সরঞ্জামাদিও রয়েছে। কটাক্ষপাত আছে নি: শ্বাসে-flowtype এবং সম্ভবত SublimeLinter-প্রবাহ
জেএসএনালিজে সবেমাত্র কোডপ্লেক্সে প্রকাশিত হয়েছে। এটি এমন একটি সরঞ্জাম যা জাভাস্ক্রিপ্ট ফাইলগুলির মধ্যে নির্ভরতা বিশ্লেষণ করে। এমনকি আপনি অনুমোদিত নির্ভরতাগুলিও সংজ্ঞায়িত করতে পারেন এবং জেএসএনালাইসিস নির্ধারিত নিয়মগুলি পূরণ হয়েছে কিনা তা যাচাই করে। এটি এমনকি বড় প্রকল্পগুলিতেও জাভাস্ক্রিপ্ট নির্ভরতা সম্পর্কে নজর রাখতে এবং একটি পরিষ্কার আর্কিটেকচার রাখতে দেয়।
JSAnalyse কমান্ড লাইন সরঞ্জাম হিসাবে কার্যকর করা যেতে পারে বা ভিজ্যুয়াল স্টুডিও স্তর চিত্রের মাধ্যমে কনফিগার করা যেতে পারে। এটি বিল্ডের সাথে সংহত করাও সহজ। গেটেড চেক-ইনগুলির সাহায্যে আপনি নির্ভরতাগুলি নিয়ন্ত্রণে রাখতে পারেন।
আমাদের এসডি ইসমাস্ক্রিপ্ট ক্লোনডিআর হ'ল বড় জাভাস্ক্রিপ্ট উত্স কোড ঘাঁটিগুলিতে নকল কোডের সঠিক এবং কাছাকাছি মিস কপিগুলি সন্ধান করার জন্য একটি সরঞ্জাম।
এটি সনাক্তকরণের জন্য ভাষা সিনট্যাক্স ব্যবহার করে, সুতরাং এটি ফর্ম্যাট পরিবর্তন, সন্নিবেশ / মুছে ফেলা মন্তব্য, নাম পরিবর্তনশীল এবং কিছু সন্নিবেশিত / মুছে ফেলা বিবৃতি সত্ত্বেও ক্লোনগুলি সন্ধান করবে।
সাইটের গুগলের বন্ধ লাইব্রেরিতে একটি নমুনা ক্লোনডিআর রয়েছে।
সম্পূর্ণ প্রকাশ, আমি এর পেছনে আছি: http://www.toptensoftware.com/minime যা মাইনাইফিকেশন, অবলোকন এবং লিঙ্ক স্টাইল চেকগুলির একটি যুক্তিসঙ্গত সেট করে।