This document discusses code quality measurement and the goals of the Sonar tool. It begins by asking how code quality is measured and mentions measuring technical debt. It then lists the seven worst coding practices as duplicated code, complexity maldistribution, bad design, potential bugs, lack of unit tests, non-compliance with standards, and no/too many comments. The goals of Sonar are to help developers find problems and help managers monitor codebase health and trends. It concludes with a demonstration link to Sonar.
Java is evolving rapidly: Maven helps you staying on trackArnaud Héritier
Java evolution is getting faster these days, and that's a great thing. Nowadays, one jave version is deprecated every 2 years:
- Java 5:october 2009
- Java 6: february 2013
- Java 7: march 2015 (really? already?)
- Java 8: march 2017 (with that one, you'll discover new types of incompatibilities...)
And you, or your applications, how do you manage upgrades?
Come and see how Apache Maven and its tooling (Animal Sniffer, Toolchains, ...) help you upgrade with confidence, at your own pace and without headaches.
Java is evolving rapidly: Maven helps you staying on trackArnaud Héritier
Java evolution is getting faster these days, and that's a great thing. Nowadays, one jave version is deprecated every 2 years:
- Java 5:october 2009
- Java 6: february 2013
- Java 7: march 2015 (really? already?)
- Java 8: march 2017 (with that one, you'll discover new types of incompatibilities...)
And you, or your applications, how do you manage upgrades?
Come and see how Apache Maven and its tooling (Animal Sniffer, Toolchains, ...) help you upgrade with confidence, at your own pace and without headaches.
Quand java prend de la vitesse, apache maven vous garde sur les railsArnaud Héritier
Le rythme d’évolution (et donc de support) de Java s’accélère ces dernières années (et nous n’allons pas nous plaindre). Désormais une nouvelle version de Java est dépréciée tous les deux ans!
* Java 5 : Octobre 2009
* Java 6 : Février 2013
* Java 7 : Avril 2015 (QUOI ? DEJA ? MAINTENANT ?)
* Java 8 : Mars 2017 (incompatibilité source vs binaire, vous allez découvrir...)
Mais vous, ou plutôt vos applications, comment gérez vous leurs transitions d’une version de Java à une autre ?
Découvrez dans cette session comment Apache Maven, et son outillage (toolchain, animal-sniffer, …) vous aident à jongler entre différentes versions de Java sans douleur pour vos projets.
http://joind.in/talk/view/11245
Dans notre économie numérique, ce n’est pas les gros qui mangent les petits, c’est les rapides qui mangent les lents. Les méthodes de gestion de projets informatiques traditionnelles ont mené à des échecs spectaculaires en termes de délais et de gestion de risque. En parallèle, des leaders du web tels qu’Amazon, Netflix ou Google ont atteint une vélocité incroyable grâce à une implémentation audacieuse des principes d’agilité. Parmi ces différents mouvements agiles, DevOps rassemble des experts du développement et de l’opérationnel sur la manière dont doit être implémentée l’agilité, de la conception technique jusqu’à la mise en production, pour atteindre une vélocité maximale. Dans cette conférence, je partagerai l’expérience de Theodo sur plusieurs projets de grande envergure (jusqu’à 15 développeurs). Je présenterai ce que DevOps signifie pour nous et comment il nous aide à livrer nos projets de manière plus rapide et plus fiable. Nous passerons en revue les challenges auxquels nous avons été confrontée, tant d’un point de vue management, technique ou culturel et présenterons les solutions que nous avons trouvées, basées sur des technologies puissantes : Symfony2, OpenStack, Puppet, Vagrant, Capifony, Jenkins, Behat et d’autres…
[devops REX 2016] Retour d’expérience de la transformation DevOps de Microsoftdevops REX
Samuel Métias, Microsoft @ devops REX 2016
Samuel partage avec les participants de devops REX la transformation du fonctionnement des équipes Microsoft, et notamment des équipes produits (Office, Windows, Visual Studio) qui ont adopté une démarche DevOps. Cette (r)évolution, un vrai challenge pour une entreprise de la taille de Microsoft, constitue une démarche clé dans le processus de transformation digitale des organisations.
Finding interesting patterns in data can lead to uncovering new knowledge. New patterns that haven’t occurred before can signify events of interest. Depending on context, these can be called novelties, anomalies, outliers or events. Whatever they are called, they are interesting because they tell a story different from the norm. In this talk, we will call them anomalies. Two diverse applications of anomaly detection are detecting fraudulent credit card transactions and identifying astronomical anomalies such as solar flares.
However, there are many challenges in anomaly detection including high false positive rates and low predictive accuracy. Ensemble learning is a way of combining many algorithms or models to obtain better predictive performance. Anomaly detection is generally an unsupervised task, that is, we do not train models using labelled data. Constructing an unsupervised anomaly detection ensemble is challenging because we do not know the labels. In this talk we discuss two topics in anomaly detection. First, we introduce an anomaly detection ensemble using Item Response Theory (IRT) – a class of models used in educational psychometrics. Using IRT we construct an ensemble that can downplay noisy, non-discriminatory methods and accentuate sharper methods.
Then we explore anomaly detection in computer network security. With cyber incidents and data breaches becoming increasingly common, we have seen a massive increase in computer network attacks over the years. Anomaly detection methods, even though used to detect suspicious behaviour, are criticized for high false positive rates. In addition, computer networks produce a large amount of complex data. We go through the end-to-end process of detecting anomalies in this scenario and show how we can minimize false positives and visualise anomalies developing over time.
Why are anomalies important? Because they tell us a different story from the norm. An anomaly or an event might signify a failing heart rate of a patient, a fraudulent credit card activity, or an early indication of a tsunami. As such, it is extremely important to detect anomalies or anomalous events.
In this talk, we will give an introduction to anomaly detection. Anomalies are rare events. As a result, standard accuracy measures do not apply. But then, how do we evaluate an Anomaly Detection (AD) method? If we want to compare two or more AD methods, what kind of simple tests can we do? What are the data repositories that are available for AD?
We will also discuss an ensemble method for AD. Constructing an AD ensemble is challenging because the class labels are not known. We will look at an unusual ally from psychometrics – Item Response Theory – to help us in this construction.
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
We are all seeking for good advices, recipes and rules of thumbs to make our designs better, our requirements strong and accurate, our user interfaces outstanding and more and more...
But there are as many set of rules our advices as there are gurus. And as smart as they are, their rules are only good advices, not final weapons usable in each and every situation. It's because there is no final weapon. Human mind can't be replaced and will not be.
Then I crossed Scott Meyer advice. Amazingly it help me to challenge my ideas in programming, design, user interfaces, even in the way I can mitigate user stories or make iteration priorities !
Agile teams are targeting excellence. Code, design and functionalities are not here forever : they are reused, refactored, improved or changed. We want functionalities delighting our customers and be handled without questions. This sessions will help you make a step in this direction by illustrating what it means to build things easy to use correctly and hard to use incorrectly. We will see that successively with code, design structures, requirements, user interfaces and even agile practices !
You will be invited to judge the examples against Scott Meyer's principle and sometime to improve them and make them better.
Quand java prend de la vitesse, apache maven vous garde sur les railsArnaud Héritier
Le rythme d’évolution (et donc de support) de Java s’accélère ces dernières années (et nous n’allons pas nous plaindre). Désormais une nouvelle version de Java est dépréciée tous les deux ans!
* Java 5 : Octobre 2009
* Java 6 : Février 2013
* Java 7 : Avril 2015 (QUOI ? DEJA ? MAINTENANT ?)
* Java 8 : Mars 2017 (incompatibilité source vs binaire, vous allez découvrir...)
Mais vous, ou plutôt vos applications, comment gérez vous leurs transitions d’une version de Java à une autre ?
Découvrez dans cette session comment Apache Maven, et son outillage (toolchain, animal-sniffer, …) vous aident à jongler entre différentes versions de Java sans douleur pour vos projets.
http://joind.in/talk/view/11245
Dans notre économie numérique, ce n’est pas les gros qui mangent les petits, c’est les rapides qui mangent les lents. Les méthodes de gestion de projets informatiques traditionnelles ont mené à des échecs spectaculaires en termes de délais et de gestion de risque. En parallèle, des leaders du web tels qu’Amazon, Netflix ou Google ont atteint une vélocité incroyable grâce à une implémentation audacieuse des principes d’agilité. Parmi ces différents mouvements agiles, DevOps rassemble des experts du développement et de l’opérationnel sur la manière dont doit être implémentée l’agilité, de la conception technique jusqu’à la mise en production, pour atteindre une vélocité maximale. Dans cette conférence, je partagerai l’expérience de Theodo sur plusieurs projets de grande envergure (jusqu’à 15 développeurs). Je présenterai ce que DevOps signifie pour nous et comment il nous aide à livrer nos projets de manière plus rapide et plus fiable. Nous passerons en revue les challenges auxquels nous avons été confrontée, tant d’un point de vue management, technique ou culturel et présenterons les solutions que nous avons trouvées, basées sur des technologies puissantes : Symfony2, OpenStack, Puppet, Vagrant, Capifony, Jenkins, Behat et d’autres…
[devops REX 2016] Retour d’expérience de la transformation DevOps de Microsoftdevops REX
Samuel Métias, Microsoft @ devops REX 2016
Samuel partage avec les participants de devops REX la transformation du fonctionnement des équipes Microsoft, et notamment des équipes produits (Office, Windows, Visual Studio) qui ont adopté une démarche DevOps. Cette (r)évolution, un vrai challenge pour une entreprise de la taille de Microsoft, constitue une démarche clé dans le processus de transformation digitale des organisations.
Finding interesting patterns in data can lead to uncovering new knowledge. New patterns that haven’t occurred before can signify events of interest. Depending on context, these can be called novelties, anomalies, outliers or events. Whatever they are called, they are interesting because they tell a story different from the norm. In this talk, we will call them anomalies. Two diverse applications of anomaly detection are detecting fraudulent credit card transactions and identifying astronomical anomalies such as solar flares.
However, there are many challenges in anomaly detection including high false positive rates and low predictive accuracy. Ensemble learning is a way of combining many algorithms or models to obtain better predictive performance. Anomaly detection is generally an unsupervised task, that is, we do not train models using labelled data. Constructing an unsupervised anomaly detection ensemble is challenging because we do not know the labels. In this talk we discuss two topics in anomaly detection. First, we introduce an anomaly detection ensemble using Item Response Theory (IRT) – a class of models used in educational psychometrics. Using IRT we construct an ensemble that can downplay noisy, non-discriminatory methods and accentuate sharper methods.
Then we explore anomaly detection in computer network security. With cyber incidents and data breaches becoming increasingly common, we have seen a massive increase in computer network attacks over the years. Anomaly detection methods, even though used to detect suspicious behaviour, are criticized for high false positive rates. In addition, computer networks produce a large amount of complex data. We go through the end-to-end process of detecting anomalies in this scenario and show how we can minimize false positives and visualise anomalies developing over time.
Why are anomalies important? Because they tell us a different story from the norm. An anomaly or an event might signify a failing heart rate of a patient, a fraudulent credit card activity, or an early indication of a tsunami. As such, it is extremely important to detect anomalies or anomalous events.
In this talk, we will give an introduction to anomaly detection. Anomalies are rare events. As a result, standard accuracy measures do not apply. But then, how do we evaluate an Anomaly Detection (AD) method? If we want to compare two or more AD methods, what kind of simple tests can we do? What are the data repositories that are available for AD?
We will also discuss an ensemble method for AD. Constructing an AD ensemble is challenging because the class labels are not known. We will look at an unusual ally from psychometrics – Item Response Theory – to help us in this construction.
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
We are all seeking for good advices, recipes and rules of thumbs to make our designs better, our requirements strong and accurate, our user interfaces outstanding and more and more...
But there are as many set of rules our advices as there are gurus. And as smart as they are, their rules are only good advices, not final weapons usable in each and every situation. It's because there is no final weapon. Human mind can't be replaced and will not be.
Then I crossed Scott Meyer advice. Amazingly it help me to challenge my ideas in programming, design, user interfaces, even in the way I can mitigate user stories or make iteration priorities !
Agile teams are targeting excellence. Code, design and functionalities are not here forever : they are reused, refactored, improved or changed. We want functionalities delighting our customers and be handled without questions. This sessions will help you make a step in this direction by illustrating what it means to build things easy to use correctly and hard to use incorrectly. We will see that successively with code, design structures, requirements, user interfaces and even agile practices !
You will be invited to judge the examples against Scott Meyer's principle and sometime to improve them and make them better.
Caveon Webinar Series - Discrete Option Multiple Choice April 2014 Caveon Test Security
It's not news that those of us in the testing world struggle with a variety of challenges. What's one of the largest? Test security - which is not likely to go away anytime soon. But, we also have measurement issues as our tests sometimes measure more than we want them to, and may not be as fair to certain subgroups in the population. In addition, costs to develop and administer tests have gone up with the use of technology, a fact opposite to how technology use has generally affected other industries. Finally, testing critics seem to be getting bolder in their claims, some of which are uncomfortably close to accurate.
This webinar looks at how, through technology, changing the traditional multiple choice question can help substantially with these challenges and others. You won't want to miss this webinar, hosted by Caveon CEO David Foster. Dr. Foster will present information from his recently published white paper Compelling Test Design Technology: Discrete Option Multiple Choice.
Don’t Let Missed Bugs Cause Mayhem in your Organization!Qualitest
How did I miss that bug? As a tester, how many times have you asked yourself, or has your test lead or test manager asked you, that question? How many bugs have you missed that were clearly easy to spot? Find out!
To learn more visit www.QualiTestGroup.com
Unleashing the power of Unit Testing - Franck Ninsabira.pdfGDG Bujumbura
I will be talking about the power of unit and integration testing, what they bring onto the table for the developer and how test containers can change the game for better.
Tom DeMarco states that “You can’t control what you can’t measure”, but how much can we change and control (with) what we measure? This talk investigates the opportunities and limits of data-driven software engineering, shows which opportunities lie ahead of us when we engage in mining and analyzing software engineering process data, but also highlights important factors that influence the success and adaptability of data-based improvement approaches.
Tools and processes used at eXo to develop our mobile applications (iOS & Android) including continuous integration and deployment.
Tips and tricks to setup all the infrastructure involved in them.
Overview of Maven and its concepts
Maven and its ecosystem
Good and bad practices
Usecases
Maven, and the future of Maven 3.x
---
Delta prez @GenevaJug :
New slides : 64,65,90,95
Updated slides : 49-51;66;91;92;118
Thx @fcamblor
9. 9
The 7 worst practices
1- Duplicated code
» Which one do you prefer ?
10. 10
The 7 worst practices
2- Maldistribution of the complexity
» What is the best ?
» 1 method with a complexity of 30
» 10 methods with a complexity of 3
11. 11
The 7 worst practices
3- Bad design
» Which package / class
is responsible of what ?
13. 13
The 7 worst practices
5- Little or no use of unit tests
» Please add a new case
BUT
without any regression of course
14. 14
The 7 worst practices
6- Non-compliance with standards
» We have opened a dedicated Wiki Space for Development Standards for eXo
» https://wiki-int.exoplatform.org/display/DEVSTD
15. 15
The 7 worst practices
7- No comment or too many comments