This document contains information about Le Ngoc Viet, including private contact information, work history as an Android developer, and information about his current employer SETA International Vietnam. It also discusses Android coding conventions such as using "m" for member variables and "s" for static fields. Finally, it provides an example of how to handle exceptions in code.
Our world is full of endless distractions: videos, special offers, articles, the list goes on. So, how do you make sure your content reaches your audience and grabs their attention?
During this webinar, content marketing expert Steve Rayson will share insights gained from analyzing a million headlines, across a range of publications, to discover what phrases amplify content and drive conversions.
And if that's not enough, advertising fanatic Larry Kim will show you how to use this data to craft click-worthy ad copy to use across paid search and social to increase click-through rates and significantly decrease cost-per-click.
Register now to hear this marketing dynamic duo crack the code on engagement.
You'll learn:
-What type of copy performs best on Facebook, Twitter, and Search
-How to curate attention-grabbing, engaging content
-What components make up a powerful headline
A broad introduction to Java.
What is Java and where is it used
Programming Languages in the web development
What is Java and where is it used
OOP PRINCIPLES
JAVA SE, JRE, JDK
IDE’s
Where Java used in the “Real World”
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1 securityxploded
This presentation is part of our Advanced Malware Analysis Training Series program.
For more details refer our Security Training page
http://securityxploded.com/security-training.php
Our world is full of endless distractions: videos, special offers, articles, the list goes on. So, how do you make sure your content reaches your audience and grabs their attention?
During this webinar, content marketing expert Steve Rayson will share insights gained from analyzing a million headlines, across a range of publications, to discover what phrases amplify content and drive conversions.
And if that's not enough, advertising fanatic Larry Kim will show you how to use this data to craft click-worthy ad copy to use across paid search and social to increase click-through rates and significantly decrease cost-per-click.
Register now to hear this marketing dynamic duo crack the code on engagement.
You'll learn:
-What type of copy performs best on Facebook, Twitter, and Search
-How to curate attention-grabbing, engaging content
-What components make up a powerful headline
A broad introduction to Java.
What is Java and where is it used
Programming Languages in the web development
What is Java and where is it used
OOP PRINCIPLES
JAVA SE, JRE, JDK
IDE’s
Where Java used in the “Real World”
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1 securityxploded
This presentation is part of our Advanced Malware Analysis Training Series program.
For more details refer our Security Training page
http://securityxploded.com/security-training.php
The sole purpose of sharing these slides are to educate the beginners of IT and Computer Science/Engineering. Credits should go to the referred material and also CICRA campus, Colombo 4, Sri Lanka where I taught these in 2017.
TEE - kernel support is now upstream. What this means for open source securityLinaro
TEE security infrastructure is now upstream in the Linux kernel, thanks to the hard work of many people in the ARM open source ecosystem. In this upcoming webinar, Joakim Bech and Jens Wiklander of the Linaro Security Working Group explain:
‣ Why upstream Linux kernel driver support is an important milestone.
‣ The relationship with specifications such as GlobalPlatform.
‣ A recap of the design principles for the TEE driver.
‣ How to get involved with TEE development.
This webinar is based on the work of the Linaro Security Working Group. Their work helps Linaro achieve its mission of providing upstream open source support for the ARM ecosystem. The webinar will be of interest to developers and engineering managers who would like the latest status on TEE support in Linux, particularly those looking to develop secure applications with e.g. OP-TEE. It’s also a great case study for those interested in the challenges of Linux kernel upstreaming. There will be the opportunity to ask questions before, during and after the webinar.
🎙 Speakers:
Joakim Bech, Security Working Group Tech Lead, Linaro
Jens Wiklander, Security Working Group Engineer & Upstream Driver Author, Linaro
🎯 Moderator:
Bill Fletcher, EMEA Field Engineering, Linaro
✨ Register here
http://linaro.co/webinar01
For more information on...
On Linaro - Leading Collaboration in the ARM Ecosystem - linaro.org
On OP-TEE - the TEE in Linux using the ARM® TrustZone® technology op-tee.org
----------------------------------------------
Videos & Presentation
--
Introduction to OP-TEE
--
A great introduction to OP-TEE security written from the standpoint of Automotive Grade Linux. It's only 13 slides with some great diagrams explaining trusted execution, secure boot and isolation.
#Automotive #AGL #OP-TEE #Linux
https://www.slideshare.net/YannickGicquel/introduction-to-optee-26-may-2016
--
OP-TEE for Beginners and Porting Review
--
Explains the building blocks involved in Security including TrustZone, OP-TEE, Trusted Firmware etc. Goes into detail on how Secure Boot Works.. and Why. Explains how a simple secure Trusted Application interacts with OP-TEE and works. Brief overview on how to port OP-TEE to an ARM platform. Opens discussions for Potential Challenges and Hardware limitations and how they can be overcome.
#TrustedApplication #Trustzone
http://connect.linaro.org/resource/hkg15/hkg15-311-op-tee-for-beginners-and-porting-review/
So You Just Inherited a $Legacy Application… NomadPHP July 2016Joe Ferguson
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful “LEGACY” word to ring in your head. HAVE NO FEAR! I’ll share the techniques I’ve learned after working on several legacy codebases to help update that old code to the current PHP generation. We’ll cover triaging the old code base, writing tests to make sure you don’t break anything, and how to modernize your old code base!
Does Java Have a Future After Version 8? (Belfast JUG April 2014)Garth Gilmour
Presented to the Belfast Java User Group in April 2014 this talk explores if the changes made to Java in version 8 are enough to keep it the dominant programming platform.
These are the slides we presented at the 2009 Montreal CodeCamp for our FluentSelenium test DSL. FluentSelenium demonstrates how it is possible to make test code cleaner by introducing appropriate test abstractions.
see http://fluentselenium.codeplex.com/
So You Just Inherited a $Legacy Application...Joe Ferguson
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful "LEGACY" word to ring in your head. HAVE NO FEAR! I'll share the techniques I've learned after working on several legacy codebases to help update that old code to the current PHP generation. We'll cover triaging the old code base, writing tests to make sure you don't break anything, and how to modernize your old code base!
The sole purpose of sharing these slides are to educate the beginners of IT and Computer Science/Engineering. Credits should go to the referred material and also CICRA campus, Colombo 4, Sri Lanka where I taught these in 2017.
TEE - kernel support is now upstream. What this means for open source securityLinaro
TEE security infrastructure is now upstream in the Linux kernel, thanks to the hard work of many people in the ARM open source ecosystem. In this upcoming webinar, Joakim Bech and Jens Wiklander of the Linaro Security Working Group explain:
‣ Why upstream Linux kernel driver support is an important milestone.
‣ The relationship with specifications such as GlobalPlatform.
‣ A recap of the design principles for the TEE driver.
‣ How to get involved with TEE development.
This webinar is based on the work of the Linaro Security Working Group. Their work helps Linaro achieve its mission of providing upstream open source support for the ARM ecosystem. The webinar will be of interest to developers and engineering managers who would like the latest status on TEE support in Linux, particularly those looking to develop secure applications with e.g. OP-TEE. It’s also a great case study for those interested in the challenges of Linux kernel upstreaming. There will be the opportunity to ask questions before, during and after the webinar.
🎙 Speakers:
Joakim Bech, Security Working Group Tech Lead, Linaro
Jens Wiklander, Security Working Group Engineer & Upstream Driver Author, Linaro
🎯 Moderator:
Bill Fletcher, EMEA Field Engineering, Linaro
✨ Register here
http://linaro.co/webinar01
For more information on...
On Linaro - Leading Collaboration in the ARM Ecosystem - linaro.org
On OP-TEE - the TEE in Linux using the ARM® TrustZone® technology op-tee.org
----------------------------------------------
Videos & Presentation
--
Introduction to OP-TEE
--
A great introduction to OP-TEE security written from the standpoint of Automotive Grade Linux. It's only 13 slides with some great diagrams explaining trusted execution, secure boot and isolation.
#Automotive #AGL #OP-TEE #Linux
https://www.slideshare.net/YannickGicquel/introduction-to-optee-26-may-2016
--
OP-TEE for Beginners and Porting Review
--
Explains the building blocks involved in Security including TrustZone, OP-TEE, Trusted Firmware etc. Goes into detail on how Secure Boot Works.. and Why. Explains how a simple secure Trusted Application interacts with OP-TEE and works. Brief overview on how to port OP-TEE to an ARM platform. Opens discussions for Potential Challenges and Hardware limitations and how they can be overcome.
#TrustedApplication #Trustzone
http://connect.linaro.org/resource/hkg15/hkg15-311-op-tee-for-beginners-and-porting-review/
So You Just Inherited a $Legacy Application… NomadPHP July 2016Joe Ferguson
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful “LEGACY” word to ring in your head. HAVE NO FEAR! I’ll share the techniques I’ve learned after working on several legacy codebases to help update that old code to the current PHP generation. We’ll cover triaging the old code base, writing tests to make sure you don’t break anything, and how to modernize your old code base!
Does Java Have a Future After Version 8? (Belfast JUG April 2014)Garth Gilmour
Presented to the Belfast Java User Group in April 2014 this talk explores if the changes made to Java in version 8 are enough to keep it the dominant programming platform.
These are the slides we presented at the 2009 Montreal CodeCamp for our FluentSelenium test DSL. FluentSelenium demonstrates how it is possible to make test code cleaner by introducing appropriate test abstractions.
see http://fluentselenium.codeplex.com/
So You Just Inherited a $Legacy Application...Joe Ferguson
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful "LEGACY" word to ring in your head. HAVE NO FEAR! I'll share the techniques I've learned after working on several legacy codebases to help update that old code to the current PHP generation. We'll cover triaging the old code base, writing tests to make sure you don't break anything, and how to modernize your old code base!
Similar to Aandroid coding convention and quality assurance plugin (20)
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Empowering Growth with Best Software Development Company in Noida - Deuglo
Aandroid coding convention and quality assurance plugin
1. We
Know
Business,
We
Know
Technology,
We
Are
Global
About
me
Private
Informa>on
Name:
Le
Ngoc
Viet
Phone:
0168.948.9579
Email:
vietln6223@setacinq.com.vn,
vietln811@gmail.com
Skype:
lengocviet
Facebook:
hIp://facebook.com/viet.lengoc
Work
History
2010/08~2012/04:
AnLab
Company/
Android
Senior
Developer
2012/05~Now:
SETA
InternaUonal
Vietnam/
Android
Tech-‐Leader
&
IOS
Senior
Developer
2. We
Know
Business,
We
Know
Technology,
We
Are
Global
SETA Group Company
Informa>on
Global
IdenUty:
SETA
InternaUonal (HQ)
Headquarters:
Newport
Beach,
CA
Founded:
2008
2
ü Hanoi,
Vietnam(230)
ü Dublin,
Ireland(20)
ü Los
Angeles,
USA(15)
ü Tokyo,Japan(30)
*w/Terras
ü Los
Angeles(HQ)
ü Dublin(Branch)
ü Sydney(Partner)
ü Singapore(Partner)
ü Tokyo(Branch)
Fulfillment
Centers:
Sales
LocaUons:
SETA
Interna>onal
Vietnam
Headquarters:
Hanoi,
Vietnam
Founded:
2009
Employees:
230
+
Website:
www.seta-‐internaUonal.com
Address:
4th
floor,
3D
Building,
Duy
Tan
Str,
Cau
Giay,
HN
Tel/
Phone:
(84)
37-‐950-‐983
3. We
Know
Business,
We
Know
Technology,
We
Are
Global
Android coding convention
and Quality assurance plugin
2013.
12
4. We
Know
Business,
We
Know
Technology,
We
Are
Global
Topics
§ Android
Coding
ConvenUon
§ Quality
Assurance
Code
Plugins
(Eclipse)
§ Q&A
5. We
Know
Business,
We
Know
Technology,
We
Are
Global
Why
Need
Coding
ConvenUon?
6. We
Know
Business,
We
Know
Technology,
We
Are
Global
Why
Need
Coding
ConvenUon?
Code
convenUons
are
important
to
programmers
for
a
number
of
reasons:
– 40%-‐80%
of
the
lifeUme
cost
of
a
piece
of
soiware
goes
to
maintenance.
– Hardly
any
soiware
is
maintained
for
its
whole
life
by
the
original
author.
– Code
convenUons
improve
the
readability
of
the
soiware,
allowing
engineers
to
understand
new
code
more
quickly
and
thoroughly.
– If
you
ship
your
source
code
as
a
product,
you
need
to
make
sure
it
is
as
well
packaged
and
clean
as
any
other
product
you
create.
7. We
Know
Business,
We
Know
Technology,
We
Are
Global
Coding
ConvenUon
Coding
ConvenUon
?
– Coding
convenUons
are
a
set
of
guidelines
for
a
specific
programming
language
that
recommend
programming
style,
pracUces
and
methods
for
each
aspect
of
a
piece
program
wriIen
in
this
language.
8. We
Know
Business,
We
Know
Technology,
We
Are
Global
Android
Coding
ConvenUon
• Standard
Java
coding
convenUons
• Android
coding
convenUons
9. We
Know
Business,
We
Know
Technology,
We
Are
Global
Android
Coding
ConvenUons
10. We
Know
Business,
We
Know
Technology,
We
Are
Global
Name
ConvenUons
Use
“m”
for
non-‐public,
non
sta>c
fields
–
“m”
for
“member
variable”
or
“data
member”
•
Yes
–
private
String
mFirstName;
–
private
boolean
mIsMarried;
•
No
–
private
String
firstName;
–
private
boolean
isMarried;
•
Use
“s”
for
sta>c
(non-‐final)
fields
•
Yes
–
private
staUc
double
sBiggestRadius;
•
No
–
private
staUc
double
biggestRadius;
For
example:
public
class
MyClass
{
public
staUc
final
int
SOME_CONSTANT
=
42;
public
int
publicField;
private
staUc
MyClass
sSingleton;
int
mPackagePrivate;
private
int
mPrivate;
protected
int
mProtected;
}
11. We
Know
Business,
We
Know
Technology,
We
Are
Global
Impact
of
Naming
ConvenUon
on
Constructors
Standard
Style
public
class
Person
{
private
String
firstName,
lastName;
public
Person(String
firstName,
String
lastName)
{
this.firstName
=
firstName;
this.lastName
=
lastName;
}
…
}
Android
Style
public
class
Person
{
private
String
mFirstName,
mLastName;
public
Person(String
firstName,
String
lastName)
{
mFirstName
=
firstName;
mLastName
=
lastName;
}
…
}
12. We
Know
Business,
We
Know
Technology,
We
Are
Global
Never
Ignore
ExcepUons
void
setServerPort(String
value)
{
try
{
serverPort
=
Integer.parseInt(value);
}
catch
(NumberFormatExcepUon
e)
{
}
}
13. We
Know
Business,
We
Know
Technology,
We
Are
Global
Don't
Catch
Generic
ExcepUon
try
{
someComplicatedIOFuncUon();
//
may
throw
IOExcepUon
someComplicatedParsingFuncUon();
//
may
throw
ParsingExcepUon
someComplicatedSecurityFuncUon();
//
may
throw
SecurityExcepUon
//
phew,
made
it
all
the
way
}
catch
(ExcepUon
e)
{
//
I'll
just
catch
all
excepUons
handleError();
//
with
one
generic
handler!
}
14. We
Know
Business,
We
Know
Technology,
We
Are
Global
Use
Spaces
for
IndentaUon
We
use
8
space
indents
for
line
wraps,
including
funcUon
calls
and
assignments.
For
example,
this
is
correct:
Instrument
i
=
someLongExpression(that,
wouldNotFit,
on,
one,
line);
and
this
is
not
correct:
Instrument
i
=
someLongExpression(that,
wouldNotFit,
on,
one,
line);
15. We
Know
Business,
We
Know
Technology,
We
Are
Global
Coding
ConvenUons
• Write
Short
Methods
–
No
official
limit,
but
try
to
keep
methods
short
and
focused.
Think
oien
about
how
to
refractor
your
code
to
break
it
into
smaller
and
more
reusable
pieces.
–
Max
line
of
method
is
40
lines.
• Keep
lines
short
–
They
have
a
strict
rule
of
100
characters
except
for
imports
or
comments
that
contain
URLs
or
commands
that
cannot
be
broken
up.
16. We
Know
Business,
We
Know
Technology,
We
Are
Global
Treat
Acronyms
as
Words
Treat
acronyms
and
abbreviaUons
as
words
in
naming
variables,
methods,
and
classes.
The
names
are
much
more
readable:
Good
Bad
XmlHIpRequest
XMLHTTPRequest
getCustomerId
getCustomerID
class
Html
class
HTML
String
url
String
URL
long
id
long
ID
17. We
Know
Business,
We
Know
Technology,
We
Are
Global
Order
Import
Statements
First
–
Android
packages
•
import
android.foo.Bar;
•
Second
–
Third
party
packages
•
import
com.coreservlets.uUls.RandomUUls;
•
Third
–
Standard
java
or
javax
packages
•
import
java.uUl.*;
•
Within
each
group
–
AlphabeUcal
(uppercase
Z
before
lowercase
a)
•
Separa>ng
groups
–
Blank
line
between
each
major
grouping
18. We
Know
Business,
We
Know
Technology,
We
Are
Global
Quality
Assurance
Code
• Why
need
quality
assurance
code.
• Aims
of
quality
assurance
code.
• Tool
support.
19. We
Know
Business,
We
Know
Technology,
We
Are
Global
Why
need
quality
assurance
code?
20. We
Know
Business,
We
Know
Technology,
We
Are
Global
Aims
of
quality
assurance
code
-‐ Developing
the
code
quality
-‐ Decreasing
bugs
in
the
development
phase
and
cost
to
repair
defect
aier
release.
21. We
Know
Business,
We
Know
Technology,
We
Are
Global
QA
code
plugin
(eclipse)
• Checkstyle
• PMD
• Findbugs
22. We
Know
Business,
We
Know
Technology,
We
Are
Global
Checkstyle
Checkstyle
is
a
development
tool
to
help
programmers
write
Java
code
that
adheres
to
a
coding
standard.
It
automates
the
process
of
checking
Java
code
to
spare
humans
of
this
boring
(but
important)
task.
This
makes
it
ideal
for
projects
that
want
to
enforce
a
coding
standard.
24. We
Know
Business,
We
Know
Technology,
We
Are
Global
PMD
PMD
is
a
source
code
analyzer.
It
finds
common
programming
flaws
like
unused
variables,
empty
catch
blocks,
unnecessary
object
creaUon,
and
so
forth.
It
supports
Java,
JavaScript,
XML,
XSL.
AddiUonally
it
includes
CPD,
the
copy-‐paste-‐detector.
CPD
finds
duplicated
code
in
Java,
C,
C++,
C#,
PHP,
Ruby,
Fortran,
JavaScript.
25. We
Know
Business,
We
Know
Technology,
We
Are
Global
What
is
PMD?
PMD
scans
Java
source
code
and
looks
for
poten>al
problems
like:
– Possible
bugs
-‐
empty
try/catch/finally/switch
statements
– Dead
code
-‐
unused
local
variables,
parameters
and
private
methods
– SubopUmal
code
-‐
wasteful
String/StringBuffer
usage
– Overcomplicated
expressions
-‐
unnecessary
if
statements,
for
loops
that
could
be
while
loops
– Duplicate
code
-‐
copied/pasted
code
means
copied/pasted
bugs
27. We
Know
Business,
We
Know
Technology,
We
Are
Global
FindBugs
– Findbugs
is
an
Open
Source
project
for
staUc
analysis
of
the
Java
bytecode
to
idenUfy
potenUal
soiware
bugs.
The
Findbugs
analysis
can
be
integrated
into
the
Eclipse
IDE
via
an
addiUonal
soiware
component.
– Findbugs
provides
early
feedback
about
potenUal
errors
in
the
code.
This
helps
the
developer
to
access
these
problems
early
in
the
development
phase.
28. We
Know
Business,
We
Know
Technology,
We
Are
Global
Findbugs
Correctness
bug
-‐
Probable
bug
-‐
an
apparent
coding
mistake
resulUng
in
code
that
was
probably
not
what
the
developer
intended.
We
strive
for
a
low
false
posiUve
rate.
Bad
PracUce
-‐
ViolaUons
of
recommended
and
essenUal
coding
pracUce.
Examples
include
hash
code
and
equals
problems,
cloneable
idiom,
dropped
excepUons,
serializable
problems,
and
misuse
of
finalize.
We
strive
to
make
this
analysis
accurate,
although
some
groups
may
not
care
about
some
of
the
bad
pracUces.
Dodgy
-‐
Code
that
is
confusing,
anomalous,
or
wriIen
in
a
way
that
leads
itself
to
errors.
Examples
include
dead
local
stores,
switch
fall
through,
unconfirmed
casts,
and
redundant
null
check
of
value
known
to
be
null.
More
false
posiUves
accepted.
In
previous
versions
of
FindBugs,
this
category
was
known
as
Style.
30. We
Know
Business,
We
Know
Technology,
We
Are
Global
Report
Checkstyle
PMD
Findbugs
31. We
Know
Business,
We
Know
Technology,
We
Are
Global
References
• hIp://source.android.com/source/code-‐
style.html
• hIp://www.oracle.com/technetwork/java/
codeconv-‐138413.html
• hIp://findbugs.sourceforge.net
• hIp://pmd.sourceforge.net/
• hIp://eclipse-‐cs.sourceforge.net/