Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Your Code Sucks: Best Practices for Enterprise ...
Search
Arthur Kay
August 15, 2012
Programming
8
2.7k
Your Code Sucks: Best Practices for Enterprise JavaScript Development
From ThatConference 2012
Arthur Kay
August 15, 2012
Tweet
Share
More Decks by Arthur Kay
See All by Arthur Kay
Analyzing the ROI of JavaScript in Enterprise Software Development
arthurakay
0
160
Debugging your Apps with Google Chrome and Sencha
arthurakay
1
270
Announcing Ext JS 5
arthurakay
0
140
Conquering the Command Line
arthurakay
0
320
The Future of Enterprise App Development
arthurakay
0
130
Best Practices for Enterprise JavaScript Applications
arthurakay
7
2.5k
Bringing the Mobile Web to the Cloud
arthurakay
2
560
Building Native Windows 8 Apps with Sencha
arthurakay
0
250
Creating Windows 8 Apps with Ext JS
arthurakay
1
290
Other Decks in Programming
See All in Programming
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
160
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
4
230
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 1
philipschwarz
PRO
0
110
[SF Ruby Conf 2025] Rails X
palkan
0
390
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
500
しっかり学ぶ java.lang.*
nagise
1
470
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
230
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.8k
20 years of Symfony, what's next?
fabpot
2
220
React Native New Architecture 移行実践報告
taminif
1
120
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
2.1k
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
140
Featured
See All Featured
It's Worth the Effort
3n
187
29k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Git: the NoSQL Database
bkeepers
PRO
432
66k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Raft: Consensus for Rubyists
vanstee
140
7.2k
KATA
mclloyd
PRO
32
15k
Six Lessons from altMBA
skipperchong
29
4.1k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Transcript
Best Practices for Enterprise JavaScript Applications YOUR CODE SUCKS
WHO AM I? • Arthur Kay • Solutions Engineer @
Sencha, Inc. • Web Development ~15 years • www.akawebdesign.com • @arthurakay
AGENDA • Improving application performance • Increasing code stability •
Scaling applications for enterprise • Tools • Advice
None
IMPROVING APPLICATION PERFORMANCE Part 1
CACHING
THIS CODE SUCKS
DO THIS INSTEAD • Cache values (references) • Avoid using
document.getElementById() and other global queries
DO THIS INSTEAD
OVER NESTING
THIS CODE SUCKS
DO THIS INSTEAD • Use lightweight containers (reduce DOM) •
Lazy Rendering
DO THIS INSTEAD
MEMORY LEAKS
THIS CODE SUCKS
DO THIS INSTEAD
INCREASING CODE STABILITY Part 2
SYNTAX ERRORS
THIS CODE SUCKS
DO THIS INSTEAD • Use JSLint (or something else) •
AUTOMATE SYNTAX CHECKING
ONE CLASS PER FILE
THIS CODE SUCKS
DO THIS INSTEAD • Organize your file system • Files
and folders should match namespacing • MVC (or something) • Development loader / Production builder
NAMES HAVE MEANING
THIS CODE SUCKS
DO THIS INSTEAD • Descriptive names on everything (except iterators)
• Common naming conventions (camelCase vs TitleCase vs nocase) • Exceptions for • constants ( SOME_CONSTANT ) • constructors ( MyClass ) • sub-namespaces ( Foo.bar.Class )_
COMMENTS / DOCUMENTATION
THIS CODE SUCKS
DO THIS INSTEAD • Comment top-level structures • Add notes
whenever logic is not obvious • Build your docs into a searchable tool
SCALING APPLICATIONS FOR ENTERPRISE Part 3
AVOID DUPLICATION
THIS CODE SUCKS
DO THIS INSTEAD • Abstraction! • Use mixins when possible
• Apply stuff to prototypes • Have similar classes/methods? • call() and apply()
DO THIS INSTEAD
SMALLER FILES. WHITE SPACE.
THIS CODE SUCKS
DO THIS INSTEAD • Keep methods under 50 lines •
Keep files under 500 lines • Use as much whitespace as possible.
UNIT TESTS
THIS CODE SUCKS
DO THIS INSTEAD • Write “testable” code • Focus on
important / trouble areas • AUTOMATE UNIT TESTING • Don’t insist on UI (integration/iteraction) tests * Test Driven JavaScript Development by Christian Johansen
TOOLS Stuff You Should Know About
IDE
INSPECT ELEMENT
YSLOW
JS DUCK
PHANTOM.JS
ADVICE Things I’ve Learned
SPECIFICATION – NOT TDD
NEVER STOP LEARNING
BREAK (SOME) RULES
None
ADDITIONAL RESOURCES • “Maintainable JavaScript” by Nicholas Zakas • http://www.slideshare.net/nzakas/maintainable-javascript-2012
• “Code Conventions for JS” by Douglass Crockford • http://javascript.crockford.com/code.html • “JavaScript Performance Tips & Tricks” by Grgur Grisogono • http://moduscreate.com/javascript-performance-tips-tricks/
THANKS! Arthur Kay | @arthurakay
SPEAKERDECK.COM/U/ARTHURAKAY Share this presentation: