ডলার সাইন ব্লুজ: জাভাস্ক্রিপ্ট এবং পিএইচপি


18

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

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

আপনি যদি এই প্রশ্নটিকে হাস্যকর মনে করেন তবে আমি মনে করি আপনি ঠিক বলেছেন। তবে আমরা এমন এক পৃথিবীতে বাস করি যেখানে ভেরিয়েবলের সামনে ডলারের সাইন থাকে। এ জাতীয় পৃথিবীতে কিছুই হাস্যকর নয়।


2
আবেগে? আপনার সহকর্মীদের দিকে কেবল আঘাত করা।
ক্রিস শিফহাউয়ার

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

উত্তর:


11

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

আপনি যদি কোডটি লিখতে ভয় পান তবে:

var demo = function demo() {
    var a = 123;
    ...
    $a = 456; // A new variable is created in global scope.
}

তারপরে আপনাকে স্টাইলের পরীক্ষক যেমন jsLint , jsHint বা গুগল ক্লোজার লিন্টার ব্যবহার করতে হবে । এর মধ্যে কোনটি? এটি একটি পছন্দ করা আপনার উপর নির্ভর করে। এটিতে আপনাকে সহায়তা করতে এখানে কয়েকটি নোট দেওয়া হল:

শৈলী

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

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

JsHint হিসাবে, আমি কী কনভেনশন ব্যবহার করা হয় তা সত্যিই খুঁজে পাচ্ছি না এবং ওয়েবসাইটটি নিজেই এই বিষয়ে কথা বলা এড়াতে বলে মনে হচ্ছে। আমি কিছু মিস করেছি

আইডিই দ্বারা সমর্থন

JsLint এবং jsHint উভয়ই PhpStorm দ্বারা সমর্থিত । এই এছাড়াও কেস গুগল বন্ধ Linter করুন।

পরিবেশ

গুগল বন্ধ Linter একটি অন্যতম টুলস সিরিজ । আপনি যদি ইতিমধ্যে গুগল ক্লোজার কম্পাইলার বা গুগল ক্লোজার লাইব্রেরি ব্যবহার করে থাকেন তবে অন্যান্য সরঞ্জামগুলির চেয়ে ক্লোজার লিন্টার বেছে নেওয়া ভাল।

কষাকষি

jsLint কঠোর হিসাবে পরিচিত। jsHint আরও অনুমোদনযোগ্য, যা সর্বদা ভাল জিনিস নয়। উদাহরণস্বরূপ, jsLint এর জন্য কাঁটাচামচ করার একটি কারণ একটি নিবন্ধে ব্যাখ্যা করা হয়েছে যা খারাপ কোড দেখায় যা jsLint এ ত্রুটি তৈরি করবে, তবে jsHint এ নয়:

/*global jQuery */

// Example taken from jQuery 1.4.2 source
jQuery.extend({
    /* ... */

    isEmptyObject: function( obj ) {
        for ( var name in obj ) {
            return false;
        }
        return true;
    }

    /* ... */
});

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

গুগল ক্লোজার লিন্টার হিসাবে, আমি বিশ্বাস করি যে এটি jsLint এবং jsHint এর মাঝখানে কোথাও আছে, তবে সেটিকে সমর্থন করার মতো পর্যাপ্ত তথ্য আমার কাছে নেই।

উপসংহার

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

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


+1: আমাকে এতে মারধর করুন। আমি যখন F # থেকে C # তে ভাষা পরিবর্তন করি তখন আমি আমার সেমিকোলনগুলি বাদ দিতে শুরু করি, তাই আমি কী আপনার ব্যথা ভাগ করে নিতে পারি;)
scrwtp

2
কেবল একটি নোট, যেহেতু ওপি পিএইচপিস্টর্ম ব্যবহার করছে: জেএসলিন্ট এবং জেএসহিন্ট উভয়ই সংহত হয়েছে এবং তাদের কোড চাহিদা অনুযায়ী বা এমনকি ফ্লাইতেও পরিদর্শন করার জন্য সেট আপ করা যেতে পারে। আপনার উদাহরণের মতো ত্রুটিগুলি ধরা খুব সহজ।
ইয়ানিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.