Skip to content

Instantly share code, notes, and snippets.

@yuanoook
Created February 28, 2021 08:25
Show Gist options
  • Save yuanoook/279e1eee6b2ca38bf362bddb0c05b6c4 to your computer and use it in GitHub Desktop.
Save yuanoook/279e1eee6b2ca38bf362bddb0c05b6c4 to your computer and use it in GitHub Desktop.
JavaScript.md

Core: Full Name & Definition

What, Why, How, When, Example

3 Dimensions

Vertical: Parent, Children

Horizontal: Alternatives

  • Similarities / Diffs, Pros / Cons

Time: History, Status, Future

  • Upstream, Problem, Downstream

Analogy

Simplified Diagram, Code, Story

Experience

Past, Current, New Project

Philosophy

Principles, Practices, Situations, Vision

==========================================

Tech Expertise

Javascript: Data Types; Hoisting; Scope; Closure; Sync, Async;

Prototype; Inheritance; Strict Mode; == vs. ===;

Arrow function; Typescript/Flow; Modularization.

Computer Science: Basic Operations: Sort, Map, Filter, Reduce;

Algorithms: Complexities: Constant, Log, Linear, Exponential, Big O, Space, Time;

Data Structures; Array/List, Stack, Queue, Linked-list, Tree, Hash-table (Map), Set;

Browser APIs: Console, History, Storage, Fetch, Navigator;

Performance; Time*; Object Models (BOM, DOM, CSSOM).

CSS: Units; Colors; Fonts; Box Model; Position; Media Queries;

Pre/Post Processors: LESS, SASS/SCSS, Stylus, PostCSS, CSS in JS;

Layout - Float/Table/Flex/Grid; Transform; Animation: Transition, @Keyframes vs JS* (Repaint/Reflow impact);

Responsive vs Adaptive - Mobile vs Desktop first - Progressive Enhancement vs Graceful Degradation;

Methodologies: BEM, OOCSS, SMACSS, ITCSS, Atomic CSS; Frameworks: Tailwind, Bootstrap, Bulma, PureCSS.

Tools: NPM, Yarn, Package(-lock).json, Version; Build tools: ESBuild, Vite, Webpack, Rollup, Parcel, Gulp, Grunt; DevTools: Debug (Mobile), Profiling, Performance, Lighthouse; Module system: Require; Import; JS modules; Performance & Security automated tools; Headless: Puppeteer, Selenium; Proxy: Charles / Fiddler.

Frameworks: React, RN, Vue, Weex, Angular, Ionic, jQuery; Modular Programming;

State management: Flux, Redux, Vuex, Rxjs, MobX.

Programming Paradigms: OOP: Encapsulation, Abstraction, Inheritance, Polymorphism, Dependency Injection; FP/FOP: Pure, Immutability, First-class entities, Composition, High order, Recursion, Currying/Memorization; POP, FRP, RP;

Protocols: OSI Model: 7 layers; HTTP(1,S,2,3), WS(S), Polling; RESTful; GraphQL, RPC, JSON-RPC.

Methods: GET, POST, PUT, DELETE, HEAD, OPTION; Codes: 20X, 30X, 40X, 50X

Security: OWASP Top 10: (SQL) Injection, Authentication, Data Exposure, XXE, Access Control, Misconfiguration, XSS, Deserialization, Vulnerable Components, Insufficient Logging & Monitoring. CSP; CORS; XSRF; Auth: JWT, OAuth, Basic Access Authentication; Browser security & Http Headers (Package Helmet): Http-only Cookies; Strict-transport-security; x-frame-options; x-xss-protection; HPKP; Attacks: DoS, Password Attack, Man-in-the-Middle; Eavesdropping; Insider Threats; Drive-By download; Theft of credentials; Escalation of permissions; Phishing; Malicious redirects. Firewalls.

Performance: Profiling & Debugging; Obfuscation & Minification; Optimization; Network; Memory Leaks: causes, detect, solution, GC; Long computations; Framework optimization techniques (Vue, React, Angular). Critical Rendering Path & Lazy load; Repaint/Reflow; RAIL: Response, Animation, Idle, Load; Service Worker / Web Worker. SVG vs Canvas. CSS vs JS animation.

SPA, MPA, SSR. Accessibility A11y, Semantic Tags, Privacy.

Quality, ENGX: Test Pyramid; CI/CD/CD; Code Review; Code Standards; Release strategies; Git branching workflows; Code Quality Measurements; Tech Debt & Refactoring;

Patterns and Best Practices: Principles: DRY; KISS; YAGNI; High Cohesion, low coupling; SOLID 5 Principles; GoF design patterns; Practices: MVC; Flux/Redux; Micro-frontends

Software Development Process: Methodologies: SDLC Phases: Planning, Analysis, Design, Implementation, Testing, Evaluation/Maintenance; Models: Waterfall, Agile: Scrum (Events?), Kanban, ScrumBut, Practices: Extreme Programming; Estimation: Techniques; New, Risk, Unknown; WBS.

Non-functional requirements (NFRs); Definition of Done/Ready (DoD/DoR); Conflicts, Escalation solving

T-Shape: Backend, Clouds(AWS, GCP, Azure...) Automated Testing; DevOps, Databases; Message queues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment