SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Websites & 
Frameworks: 
Web at Evernote 
Ryan Burgess 
Lead Front End Engineer, Evernote 
@burgessdryan
How we structure web teams at Evernote 
#ec2014 
• Evernote.com 
• Evernote Market 
• Web Client
Evernote.com 
#ec2014 
• Introducing Evernote 
• Acquisition / sign ups 
• Upgrading accounts 
• Marketing 
• Support
Evernote Web Client 
#ec2014 
• Evernote application in the browser 
• Create and edit notes 
• Upgrading account 
• Update settings
Evernote Market 
#ec2014 
• E-commerce site 
• Showcase our physical products
Websites & Frameworks: Web at Evernote 
#ec2014 
• Overview of web development at Evernote 
• Example projects 
• CSS Pre-processors at Evernote 
• Our Sass build 
• Tools we use for automation 
• Keeping code consistent 
• Future development at Evernote
Overview of web development at Evernote 
#ec2014
Multiple websites 
#ec2014
Responsive web design 
#ec2014
Browser support 
#ec2014
25 languages 
#ec2014
Leveraging the latest and greatest 
#ec2014
Optimization 
#ec2014
#ec2014 
Evernote homepage project
The creative team 
#ec2014 
• Writers 
• Designers 
• Photographers 
• Production designers 
• Translators 
• Developers
Device specific screenshots 
We load device specific images for Mac 
and PC. 
#ec2014
Evernote homepage assets 
#ec2014 
• 1,336 total images 
• 1,082 hero images 
• 50 CSS files
#ec2014 
CSS pre-processors
CSS pre-processors we use at Evernote 
#ec2014
Benefits of CSS pre-processors 
#ec2014 
• Joining of multiple files 
• Ability to define variables 
• Ability to create mixins 
• Mathematical functions
Homepage hero Sass module 
#ec2014
#ec2014 
Evernote Sass build
SMACSS 
#ec2014 
Our Sass structure is based off of the 
SMACSS methodology.
Sass build 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
Our Sass build structure 
• Base 
• Layout 
• Modules 
• Themes
Base 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
• Vendor dependancies (Compass, Foundation) 
• Authored dependancies (Mixins, variables, Extends) 
• Fonts 
• Reset
Layout 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
• Responsive Grid 
• Page specific layouts
Modules 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
Broken up into code blocks 
• Header 
• Footer 
• Navigation 
• Hero image
Example module 
#ec2014
Themes 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
The themes directory contains any specific styles that a page may 
need to change from the generic layout or modules.
Page specific Sass file 
#ec2014
Benefits of our Sass build 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re 
• Cleaner code 
• More agile development 
• More consistency 
• Modular reusable code 
• Better quality
#ec2014 
Tools that help
JavaScript task managers 
#ec2014
Grunt running in terminal 
#ec2014
Benefits of task managers 
#ec2014 
• Automates tasks while we’re developing 
• Saves time 
• Watch for changes in the code 
• Helps keep files consistent 
• Optimizes our code base 
• Compiles our CSS 
• Minifies CSS and JavaScript
Grunt and Gulp tasks we use 
#ec2014 
• Compile Sass/Less to CSS 
• JShint for JavaScript linting 
• Browserify to compile JavaScript 
• Uglify to minify JavaScript
Browserify 
#ec2014 
Browserify with Grunt and Gulp in our 
build allows us to make our front end 
JavaScript code in modules and share 
them as dependencies and compile 
into one file.
Benefits of Browserify 
#ec2014 
• Allows us to have modular reusable JavaScript 
• Less HTTP calls from the browser 
• Better quality control
JavaScript Browserify modules 
#ec2014
Pootle translation 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /p o o t l e 
Pootle is an online tool that makes the 
process of translating so much simpler.
#ec2014 
Code consistency
Evernote CSS style guide 
An online CSS style guide to help keep 
our CSS more consistent. 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /c s s - s t y l e - g u i d e
Items in our CSS style guide 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te /c s s - s t y l e - g u i d e 
• Basic code formatting 
• Property order 
• Commenting 
• Color values
Evernote JavaScript style guide 
An online JavaScript style guide to 
help keep our JavaScript more 
consistent in our builds. 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te / j ava s c r i p t - s t y l e - g u i d e
Items in our JavaScript style guide 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te / j ava s c r i p t - s t y l e - g u i d e 
• Strings 
• Variables 
• Semicolons 
• Commas 
• Naming conventions 
• Tab spacing
Naming conventions 
#ec2014 
• File names are in lowercase 
• Words are spaced with a dash 
• Retina images have “@2x” appended 
• Language specific files have language code appended
Future of Front End Development at Evernote 
#ec2014
Sharing more of our code on Github 
#ec2014 
h t t p s : //g i t h u b .com/eve r n o te
Updates to the Evernote API 
#ec2014
Using more Node.js 
#ec2014
Benefits of Node.js 
#ec2014 
• Rapid-innovation and delivery 
• High-performance 
• Developer happiness 
• JavaScript for the backend
#ec2014 
Questions? 
Ryan Burgess 
Lead Front End Engineer, Evernote 
@burgessdryan

Más contenido relacionado

Similar a Websites & framworks: web at Everntoe

Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best PracticesBen Marks
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
APEX HROUG 2019 - Universal Theme: Tips and Tweaks
APEX HROUG 2019 - Universal Theme: Tips and TweaksAPEX HROUG 2019 - Universal Theme: Tips and Tweaks
APEX HROUG 2019 - Universal Theme: Tips and TweaksMarko Gorički
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?C4Media
 
Training presentation.pptx
Training presentation.pptxTraining presentation.pptx
Training presentation.pptxNishchaiyaBayla1
 
Web components the future is here
Web components   the future is hereWeb components   the future is here
Web components the future is hereGil Fink
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Conference
 
ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015Shahed Chowdhuri
 
Integrating Alfresco with Portals
Integrating Alfresco with PortalsIntegrating Alfresco with Portals
Integrating Alfresco with PortalsPiergiorgio Lucidi
 
ASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMShahed Chowdhuri
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsShahed Chowdhuri
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a ServiceAndrew Bauer
 
Professional tools and workflows for theme development
Professional tools and workflows for theme developmentProfessional tools and workflows for theme development
Professional tools and workflows for theme developmentMarius Cristea
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Bibby Chung
 

Similar a Websites & framworks: web at Everntoe (20)

Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best Practices
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
resume
resumeresume
resume
 
APEX HROUG 2019 - Universal Theme: Tips and Tweaks
APEX HROUG 2019 - Universal Theme: Tips and TweaksAPEX HROUG 2019 - Universal Theme: Tips and Tweaks
APEX HROUG 2019 - Universal Theme: Tips and Tweaks
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 
Training presentation.pptx
Training presentation.pptxTraining presentation.pptx
Training presentation.pptx
 
Web components the future is here
Web components   the future is hereWeb components   the future is here
Web components the future is here
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015
 
Integrating Alfresco with Portals
Integrating Alfresco with PortalsIntegrating Alfresco with Portals
Integrating Alfresco with Portals
 
ASP.NET 5 Overview
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 Overview
 
ASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTM
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
 
Style Is Cool
Style Is CoolStyle Is Cool
Style Is Cool
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Professional tools and workflows for theme development
Professional tools and workflows for theme developmentProfessional tools and workflows for theme development
Professional tools and workflows for theme development
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319
 
Java script
Java scriptJava script
Java script
 
Java script
Java scriptJava script
Java script
 

Último

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Websites & framworks: web at Everntoe

  • 1. Websites & Frameworks: Web at Evernote Ryan Burgess Lead Front End Engineer, Evernote @burgessdryan
  • 2. How we structure web teams at Evernote #ec2014 • Evernote.com • Evernote Market • Web Client
  • 3. Evernote.com #ec2014 • Introducing Evernote • Acquisition / sign ups • Upgrading accounts • Marketing • Support
  • 4. Evernote Web Client #ec2014 • Evernote application in the browser • Create and edit notes • Upgrading account • Update settings
  • 5. Evernote Market #ec2014 • E-commerce site • Showcase our physical products
  • 6. Websites & Frameworks: Web at Evernote #ec2014 • Overview of web development at Evernote • Example projects • CSS Pre-processors at Evernote • Our Sass build • Tools we use for automation • Keeping code consistent • Future development at Evernote
  • 7. Overview of web development at Evernote #ec2014
  • 12. Leveraging the latest and greatest #ec2014
  • 15.
  • 16.
  • 17. The creative team #ec2014 • Writers • Designers • Photographers • Production designers • Translators • Developers
  • 18.
  • 19. Device specific screenshots We load device specific images for Mac and PC. #ec2014
  • 20. Evernote homepage assets #ec2014 • 1,336 total images • 1,082 hero images • 50 CSS files
  • 22. CSS pre-processors we use at Evernote #ec2014
  • 23. Benefits of CSS pre-processors #ec2014 • Joining of multiple files • Ability to define variables • Ability to create mixins • Mathematical functions
  • 24. Homepage hero Sass module #ec2014
  • 26. SMACSS #ec2014 Our Sass structure is based off of the SMACSS methodology.
  • 27. Sass build #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re Our Sass build structure • Base • Layout • Modules • Themes
  • 28. Base #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re • Vendor dependancies (Compass, Foundation) • Authored dependancies (Mixins, variables, Extends) • Fonts • Reset
  • 29. Layout #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re • Responsive Grid • Page specific layouts
  • 30. Modules #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re Broken up into code blocks • Header • Footer • Navigation • Hero image
  • 32. Themes #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re The themes directory contains any specific styles that a page may need to change from the generic layout or modules.
  • 33. Page specific Sass file #ec2014
  • 34. Benefits of our Sass build #ec2014 h t t p s : //g i t h u b .com/eve r n o te /s a s s - b u i l d - s t r u c t u re • Cleaner code • More agile development • More consistency • Modular reusable code • Better quality
  • 37. Grunt running in terminal #ec2014
  • 38. Benefits of task managers #ec2014 • Automates tasks while we’re developing • Saves time • Watch for changes in the code • Helps keep files consistent • Optimizes our code base • Compiles our CSS • Minifies CSS and JavaScript
  • 39. Grunt and Gulp tasks we use #ec2014 • Compile Sass/Less to CSS • JShint for JavaScript linting • Browserify to compile JavaScript • Uglify to minify JavaScript
  • 40. Browserify #ec2014 Browserify with Grunt and Gulp in our build allows us to make our front end JavaScript code in modules and share them as dependencies and compile into one file.
  • 41. Benefits of Browserify #ec2014 • Allows us to have modular reusable JavaScript • Less HTTP calls from the browser • Better quality control
  • 43. Pootle translation #ec2014 h t t p s : //g i t h u b .com/eve r n o te /p o o t l e Pootle is an online tool that makes the process of translating so much simpler.
  • 45. Evernote CSS style guide An online CSS style guide to help keep our CSS more consistent. #ec2014 h t t p s : //g i t h u b .com/eve r n o te /c s s - s t y l e - g u i d e
  • 46. Items in our CSS style guide #ec2014 h t t p s : //g i t h u b .com/eve r n o te /c s s - s t y l e - g u i d e • Basic code formatting • Property order • Commenting • Color values
  • 47. Evernote JavaScript style guide An online JavaScript style guide to help keep our JavaScript more consistent in our builds. #ec2014 h t t p s : //g i t h u b .com/eve r n o te / j ava s c r i p t - s t y l e - g u i d e
  • 48. Items in our JavaScript style guide #ec2014 h t t p s : //g i t h u b .com/eve r n o te / j ava s c r i p t - s t y l e - g u i d e • Strings • Variables • Semicolons • Commas • Naming conventions • Tab spacing
  • 49. Naming conventions #ec2014 • File names are in lowercase • Words are spaced with a dash • Retina images have “@2x” appended • Language specific files have language code appended
  • 50. Future of Front End Development at Evernote #ec2014
  • 51. Sharing more of our code on Github #ec2014 h t t p s : //g i t h u b .com/eve r n o te
  • 52. Updates to the Evernote API #ec2014
  • 54. Benefits of Node.js #ec2014 • Rapid-innovation and delivery • High-performance • Developer happiness • JavaScript for the backend
  • 55. #ec2014 Questions? Ryan Burgess Lead Front End Engineer, Evernote @burgessdryan