সোনারকিউব প্রতিস্থাপন কি চেকস্টাইল, পিএমডি, ফাইন্ডব্যাগগুলির জন্য?


105

আমরা স্ক্র্যাচ থেকে একটি ওয়েব প্রকল্পে কাজ করছি এবং নিম্নলিখিত স্থিতিশীল কোড বিশ্লেষণ সরঞ্জামগুলি খুঁজছি।

  • সম্মেলন (চেকস্টাইল)
  • খারাপ অভ্যাস (পিএমডি)
  • সম্ভাব্য বাগ (ফাইন্ডব্যাগ)

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

এটা কি সত্য যে আমরা সোনারকিউবের সাথে চেকস্টাইল, পিএমডি এবং ফাইন্ডব্যাগগুলি থেকে ফলাফলগুলি অর্জন করতে পারি?

উত্তর:


99

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

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

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


আমি বাদামী ক্ষেত্রের প্রকল্পগুলির প্রসঙ্গে এই সুবিধাগুলির সাথে একমত। শূন্য-ত্রুটিযুক্ত নীতিগুলি সহ গ্রিনফিল্ড প্রকল্পগুলির সেই মেমরির প্রয়োজন নেই। আপনার কোড বেসটি সর্বদা 100% পরিষ্কার রাখুন।
ক্রিশ্চিয়ান হুজার

48

সোনার এই 3 টি সরঞ্জামগুলিকে প্লাগইন হিসাবে ব্যবহার করে এবং এই সরঞ্জামগুলি থেকে গ্রাফগুলি দেখিয়ে সংযোজন মান প্রদান করে এমন তিনটি থেকে ডেটা একত্রিত করে। সুতরাং তারা সোনার পরিপূরক।


1
ইয়ুপ সোনার তিনটিই ব্যবহার করে
ফ্রেপপুচিনো

27
সংস্করণ ৩.x পর্যন্ত এটি সঠিক ছিল, সোনার x.x তার নিজস্ব অভ্যন্তরীণ স্কুইড বিশ্লেষকের পক্ষে কমপক্ষে পিএমডি এবং চেকস্টাইল ব্যবহার করা থেকে দূরে সরে যাচ্ছে, কারণ এটি তাদেরকে নিয়মটি প্রসারিত করার এবং সমস্যাগুলি সমাধান করার আরও স্বাধীনতা দেয় gives কিছু সময়ের জন্য এই প্রকল্পগুলি জর্জরিত। উদাহরণস্বরূপ, তারা ইতিমধ্যে ১৫০ টিরও বেশি পিএমডি নিয়মকে অবজ্ঞা করেছে এবং শেষ পর্যন্ত এটি পুরোপুরি সরিয়ে ফেলবে।
হাইলেম

1
তারা যে নিয়মগুলিকে অবমূল্যায়ন করেছে সে সম্পর্কে আকর্ষণীয় পোস্ট: sonarqube.org/…
ঝাক

33

হ্যা এবং না. অন্যান্য উত্তর ছাড়াও।

সোনারকিউব বর্তমানে পিএমডি, চেকস্টাইল এবং ফাইন্ডব্যাগগুলি হ্রাস করার পথে এবং জাভা কোড ( সোনারজভা নামে পরিচিত ) বিশ্লেষণ করতে নিজস্ব প্রযুক্তি ব্যবহার করার পথে । তারা এটি করে, কারণ তারা তাদের সময় নির্ধারণ, আপগ্রেড (বা এটির জন্য) libra গ্রন্থাগারগুলি ব্যয় করতে চায় না (যেমন জাভা 8 এর জন্য), উদাহরণস্বরূপ পুরানো লাইব্রেরি ব্যবহার করে।

তারা আপনার ব্যক্তিগত আইডিই জন্য সোনারলিন্ট নামে একটি নতুন সেট প্লাগইন পেয়েছে


8

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


5

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

এখানে আপনি ভাল চেহারা নিতে পারেন: http://nemo.sonarsource.org/


3

আমি এখনও সোনার ছাড়াও এই সরঞ্জামগুলি ব্যবহার করব কারণ কেউ যখন কোনও নিয়ম লঙ্ঘন করে তারা মাইভেন বিল্ডটি ব্যর্থ করতে পারে। যেখানে সোনার হিসাবে আরও প্রত্যাবর্তনশীল।


3

... কয়েক বছর পরে: না, এটা না! সোনারকিউব মনে করেন যে এটি সমস্ত বিধি তার নিজস্ব বিশ্লেষক দিয়ে কভার করতে সক্ষম হয়েছে, কিন্তু এখনও পিএমডি বা চেকস্টাইলের বিধি রয়েছে সোনারকিউব দ্বারা আচ্ছাদিত নয়। উদাহরণস্বরূপ দেখুন: পিএমডি রিটার্নফ্রমফিনালি ব্লক।


মনে হচ্ছে এটি পিএমডি লঙ্ঘন: ডিফল্ট প্যাকেজ বেসরকারী স্তরের পরিবর্তে সুস্পষ্ট স্কোপিং ব্যবহার করবেন?
user7294900


2

তবে অন্তত সোনারকিউব 6.3+ থেকে মনে হচ্ছে যে ফাইন্ডব্যাগগুলি (এই মুহুর্তে) প্লাগইন হিসাবে আর সমর্থিত নেই। সোনারসোর্স নিজস্ব জাভা-প্লাগইন দিয়ে ফাইন্ডব্যাগস-বিধিগুলির প্রতিস্থাপনে কাজ করছে।

এমনকি তাদের এখানে প্রতিটি নিয়মের প্রতিস্থাপনের স্থিতির জন্য একটি তালিকা রয়েছে: http://dist.sonarsource.com/report/coverage/findbugs.html

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