SlideShare a Scribd company logo
1 of 14
Don’t let
your
code
to be illiterate
● happy father
● SA in EPAM Systems
● Java is a primary language
● hands-on-coding with Groovy, Ruby
● exploring FP with Erlang/Elixir
● passionate about agile, clean code and devops
● The Pain
● Solution
● Demo
● Takeaways
● Q&A
Agenda
The Pain
Spelling
Solution
SonarQube
Plugin
Demo
Takeaways
- Code is more for reading
- Track your code quality
- Professional = educated
- Professional code = correct in many axes
References
- SonarQube http://www.sonarqube.org/
- SpellCheck Plugin https://goo.gl/JlPYAT
Q&A
http://epam.com/careers
Izzet_Mustafayev@EPAM.com
@webdizz webdizz
izzetmustafaiev
http://webdizz.name
Thanks

More Related Content

What's hot

Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
QA InfoTech
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanban
Andrii Shumada
 

What's hot (20)

Web performance
Web  performance Web  performance
Web performance
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
tpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybetpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybe
 
Specification by example
Specification by exampleSpecification by example
Specification by example
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?
 
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
 
Tdd final submission
Tdd final submissionTdd final submission
Tdd final submission
 
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web Analytics
 
Performance Testing with APM Workshop
Performance Testing with APM WorkshopPerformance Testing with APM Workshop
Performance Testing with APM Workshop
 
An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1
 
Next Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AINext Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AI
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanban
 
Insoft training day_1
Insoft training day_1Insoft training day_1
Insoft training day_1
 
Test Driven Development Part 1
Test Driven Development Part 1Test Driven Development Part 1
Test Driven Development Part 1
 
ITAKE Unconference - Holding down your technical debt with Sonarqube
ITAKE Unconference - Holding down your technical debt with SonarqubeITAKE Unconference - Holding down your technical debt with Sonarqube
ITAKE Unconference - Holding down your technical debt with Sonarqube
 
TDD for Testers Workshop
TDD for Testers WorkshopTDD for Testers Workshop
TDD for Testers Workshop
 

Viewers also liked (11)

5586 5590.output
5586 5590.output5586 5590.output
5586 5590.output
 
Amber lynne crapo graduation slideshow
Amber lynne crapo graduation slideshowAmber lynne crapo graduation slideshow
Amber lynne crapo graduation slideshow
 
780168
780168780168
780168
 
5611 5615.output
5611 5615.output5611 5615.output
5611 5615.output
 
Star Radio Cambridge New Branding 2015
Star Radio Cambridge New Branding 2015Star Radio Cambridge New Branding 2015
Star Radio Cambridge New Branding 2015
 
Lalit Campaign Report
Lalit Campaign ReportLalit Campaign Report
Lalit Campaign Report
 
from my heart
from my heartfrom my heart
from my heart
 
Deshkesaath2--.
Deshkesaath2--.Deshkesaath2--.
Deshkesaath2--.
 
Trabalho semm
Trabalho semmTrabalho semm
Trabalho semm
 
ResumeVarun
ResumeVarunResumeVarun
ResumeVarun
 
Skazki
SkazkiSkazki
Skazki
 

More from Izzet Mustafaiev

More from Izzet Mustafaiev (20)

Overcome a Frontier
Overcome a FrontierOvercome a Frontier
Overcome a Frontier
 
Web Security... Level Up
Web Security... Level UpWeb Security... Level Up
Web Security... Level Up
 
Kotlin strives for Deep Learning
Kotlin strives for Deep LearningKotlin strives for Deep Learning
Kotlin strives for Deep Learning
 
Can I do AI?
Can I do AI?Can I do AI?
Can I do AI?
 
Consumer-Driven Contracts to enable API evolution
Consumer-Driven Contracts to enable API evolutionConsumer-Driven Contracts to enable API evolution
Consumer-Driven Contracts to enable API evolution
 
Functional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixFunctional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenix
 
Fabric8 CI/CD
Fabric8 CI/CDFabric8 CI/CD
Fabric8 CI/CD
 
[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?
 
Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!
 
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development Pipeline
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
 
Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?Docker. Does it matter for Java developer ?
Docker. Does it matter for Java developer ?
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
“Bootify your app - from zero to hero
“Bootify  your app - from zero to hero“Bootify  your app - from zero to hero
“Bootify your app - from zero to hero
 
Metrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ healthMetrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ health
 
Buildr - build like you code
Buildr -  build like you codeBuildr -  build like you code
Buildr - build like you code
 
Groovy MOPping
Groovy MOPpingGroovy MOPping
Groovy MOPping
 
TDD with Spock @xpdays_ua
TDD with Spock @xpdays_uaTDD with Spock @xpdays_ua
TDD with Spock @xpdays_ua
 
Development environment agile way
Development environment agile wayDevelopment environment agile way
Development environment agile way
 

Recently uploaded

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 

Don’t let your code to be illiterate along with your colleagues

Editor's Notes

  1. Для начала давайте начнем с небольшого опроса. Кто знает как выйти из Vi(m)? поднимите руку. Ок, значит кто-то умеет пользоваться, что есть круто) Что по поводу Eclipse пользователей? ок, молодцы, счастливчики;) OK, Sublilme? Atom? ок. и наконец самые насчатсные, позже скажу почему, IntelliJ и другие редакторы производства JetBrains? ок, всем спасибо. Итак, продолжим. Все прекрасно знают, что профессиональный язык у программистов английский. И код в больгинстве случаев мы пишем на анлийском. Конечно современные языки программирования позволяют использовать различные символы для написания классов и методов. Как-то раз я даже видел названия функций написаные кириллицей, повторного желания уидить больше не возникало. Еще один момент - мы не native speaker-ы и с правописанием у нас так себе, да что про нас, даже те самы native speaker-ы грешат правописанием. В общем с проблемой мы как-то определяемся, профессиональный код должен быть не только протестированным, но и корректно написан с точки зрения правописания. Так вот, счастливые люди, не замечающие ошибки правописания пользователи различных редакторов, что сложно сказать про пользователей IntelliJ, именно им мозолят глаза все эти receiver-ы, listener-ы и тд. Многие из вас пользуются различными инструментами для статического анализа кода, PMD, FindBugs и тд. Да? попимо этого, многие пользуются SonarQube, да? Для тех кто не в курсе это инструмент кот, позволяет анализировать код на соответствие обзепринятым правилам и еще делать это на протяжении жизни вашего проекта. Вы можете наблюдать за ростом вашего технического долга и тд. И однажды, насмотревшись на receiver-ы, возникла мысль, почему бы не делать анализ исходного кода на правописание с помощью SonarQube? Ведь это то же ошибки. Так мы начали делать плагин для SonarQube. Теперь, каждый человек, который что-то комитит в репозиторий, попадает под анализ правописания и в случае проблем, создаются соотв issues в SonarQube. Давайте посмотрим как это все работает. Показать пример кода с ошибками. Открыть консоль SonarQube, показать что проектов нет. Показать странице настроек с возможностями, пока запускается анализ кода. Показать созданный проект и issues, кот относятся к правописанию. Показать возможность добавления словаря из issues табы. Всем спасибо.
  2. Ok. Let me say several words about myself. My name is Izzet, I’m working in EPAM relatively long time, the most part of my projects were related to Java language and closed technologies. Other than Java I have interests in Groovy, Ruby, trying to get in touch with Erlang/Elixir. As for non-tech I’m advocating agile approaches in software development and cultivating clean code and devops practices. That’s probably it about myself, let’s proceed with our agenda for today.
  3. Explain what problems we have today with our code from spelling point of view.
  4. There is a problem that is related not just to us, actually native speakers also not everytime know how to spell words. So if you look through the code you can find a lot of spelling issues if you have a tool for this. Well JetBrains customers are
  5. Explain a common solution that fit most of the teams and won’t force people to switch to another IDEs, dedicated tools
  6. We’re using SonarQube to track code quality and technical depth.
  7. Why not to create a plugin to spell our code and report an issues into SonarQube?
  8. Demo a solution, just brief introduction what it is, how to install and how to use it.
  9. Describe takeaways as a links to where to go and how to contribute
  10. Of course questions