Fortsätt till huvudinnehåll

Some links to look more at

This post is a "note to self" to look more into these links:

https://blog.idrsolutions.com/2013/09/5-tools-to-help-you-write-better-java-code/
https://blog.idrsolutions.com/2014/06/java-performance-tuning-tools/

I am looking for tools for static code- and performance analysis on Java code.

Kommentarer

  1. Har du kollat in http://www.sonarqube.org/?

    SvaraRadera
    Svar
    1. Tjena Petter! Nja, har kollat hemsidan och vet att det körs någonstans på jobbet. Har du egen erfarenhet av SonarQube? Vad tycker du om det?

      Radera
    2. Jag satte upp ett konto på prov på en tidigare arbetsplats för ett Java projekt. Jag tyckte att det funkade rätt bra då. Har säkert blivit bättre sedan dess. Den kunde visa KPIer på hur koden mådde, och så kunde man se hur det förändrats över tid. Man kunde även se hur unittester gått och kodtäckning (har jag för mig), men det behövde komma från externt verktyg har jag för mig.
      Det gjorde det roligare att refaktorera koden och se att man avhjälpte möjliga problem :)

      Radera
    3. Får titta närmare på det. Blir lite avskräckt när jag kollar statistiken på https://nemo.sonarqube.org/. Det ser ut som att det gått inflation i allvarlighetsgraden, se t.ex. https://nemo.sonarqube.org/dashboard/index?id=bash%3Aassoc.c. Är det verkligen ett "major issue" att typdefinitionen skrivs på ett sätt som de flesta inte använder men som har stöd i C-standarden?

      Radera
    4. Håller med, men man kan skapa sina egna regler och justera graden på alvarlighet i sin installation. Fast det är klart att det är lättare att använda färdiga regler. Men är det någon regel du inte gillar så är det ju bra att man kan tra bort den :)
      Om det är en major issue eller inte är ju upp till den egna organisationen. Har man kommit överrens om att man inte får anväda det här sättet, så kan det ju ses som en major issue att någon bryter mot konventionerna. Fast det finns ju annat som kan vara värre... :)

      Radera
    5. Kan bli så när man lägger till en ny regel eller lägger till en befintlig kodbas i ett sådant verktyg också. Jag tittar närmare. Tack för tipset!

      Radera

Skicka en kommentar

Populära inlägg i den här bloggen

C# Enum as bit field

Bit field enum Whenever you wish to express combinations of properties of an object, bit fields are a good way to accomplish this. As a simple example, consider a file in the file system. It can be Readable , Writable , Hidden or a combination these. The different attributes can be defined as an enum : [Flags] public enum FileAttribute {   None      = 0b0000;   Readable  = 0b0001;   Writeable = 0b0010;   Hidden    = 0b0100; } To indicate that this enum is expected to be used as a bit field I have defined it with the FlagsAttribute . It is important to understand that the FlagsAttribute does nothing more than making some changes to how the ToString method of the enum works, making it possible to print out all flags. It does not introduce any validation or special treatment of the enum in any other way. I have defined the values of the different fields of the enum using binary representation, this should make it even more clear that this is a bit field and which bi

Codility tasks - Part I

I was recently faced with two codility tasks when applying for a job as an Embedded Software Engineer. For those of you who arn't familiar with Codility you can check out their website here:  www.codility.com Task one - Dominator The first task was called Dominator. The goal was to, given a std::vector of integers, find an integer that occurs in more than half of the positions in the vector. If no dominator was found -1 should be returned. My approach was to loop through the vector from the first to the last element, using a std::map to count the number of occurences of each integer. If the count ever reached above half the size of the vector I stopped and returned that integer and if I reached the end without finding a dominator I returned -1. So was that a good approach? Well, the reviewer at the company rated the solution as 'pretty ok'. His preferred solution was store the first integer in the array and set a counter to 1. Then loop through the remaining i