This document summarizes a presentation titled "Next Level Coding" given by two developers, Devin Olson and Mike McGarel. The presentation discusses how coding should be done in a way that communicates clearly to other people reading the code, such as teammates, reviewers, and future selves. It provides examples of how to format code, name variables and functions, structure classes and libraries, handle errors, and write comments to improve readability and maintainability for other humans rather than just machines. The presentation emphasizes that writing clear code takes more initial time but saves time in the long run by making the code easier to work with, test, and maintain.
Convert to study guideBETA
Transform any presentation into a summarized study guide, highlighting the most important points and key insights.
3. Presenter: Devin Olson
azlighthouse works, llc
Notes and Domino Developer since R3
Also, Java, COBOL, Delphi, Pascal,
MASM, TASM, etc.
Consultant, Educator, Mentor,
Curmudgeon
4. Presenter: Mike McGarel
Senior Application Developer for Celina
Insurance Group
Working with Notes/Domino since
version 4.6
Working on the web since 1996
CollabSphere site team member
15. Format to Communicate
First impressions
Language standards
Company standards
White space between functions
Indenting
Consistency!
16. Examples of Formatting Standards
Constants in ALL CAPS
Constants at beginning of a class or
library
Braces starting on same line or next line
Tabs or spaces? (You have to pick one)
18. Examples of Variable Names
quoteSubmittedDate
quoteApprovedDate
policyStartDate
policyEndDate
19. Another Variable Name Example
The variable result as an internal
return value of a function
String getSomeStringValue() {
String result = ;
// lots of way cool code here
return result;
}
20. Functions, Methods, and Subroutines
Accurate, detailed and descriptive
names
A function should either:
o One important thing
o Groups others together
21. Example of Function Naming
Meh:
convertCity(city)
Better:
convertCityName(city)
Better Still:
convertCityNameToCityCode(cityName)
22. Example of Modular Functions
getToNames()
getCCNames()
getBCCNames()
getSubject()
23. Classes and Script Libraries
Accurate and descriptive name
Part of a consistent name pattern
Related group of functions
Small
Single Responsibility Principle
Tools in an organized toolbox
Easy to describe (less than 3 lines)
24. Class Examples
InsurerPersonalInfoValidation
This class validates the insurers
personal information (name, address,
email, employer) etc. on the quote form.
InsurerVehicleInfoValidation
This class validates the insurers vehicle
information (make, model, VIN, etc.) for
each vehicle.
25. Error / Exception Handling
Informative log messages with specific
error and source
(example: method and full path of class)
Defensive coding
Never pass nulls
Tell the user what to do
26. Testing
Modular code is easier to test
Modular code is easier to troubleshoot
Test Fail early
Test often
28. Think and Plan
Versioning
Reducing Duplication
Reduce dependencies on outside libraries
List the dependencies you have up front
Need balance between duplication and
dependencies.
30. Keep up with Modern Programming
Time consuming but necessary
Get familiar with design patterns
Dont recreate code use free libraries
Java examples: StringUtils
JavaScript: jQuery, React, Vue
Standard practices
31. Keep up with Modern UI
Time consuming but necessary
Device independence and proliferation
Responsive layout frameworks
Bootstrap, Foundation
Icon Libraries
Font Awesome, Google Material Design
32. Costs of Leveling Up
Takes longer initially
Different way of thinking
33. Costs of Not Leveling Up
Wading through code takes more time
for everyone
Technical debt
34. Takeaways
Communicate intent with every name
Be consistent!
Plan your codes structure
Keep up with standards
Long and Winding Road