Список материалов и данных необходимых для того чтобы стать полноценным Fullstack программистом. Навык помеченный !!! в начале - обязателен к изучению
- !!! Shell scripts and basic linux commands
- Basic commands
- Operator chaining
- !!! Brew
- !!! Tmux
- !!! Vim
- Your OWN github repository with .tmux.conf, .vimrc, etc.
- OSI Model (https://en.wikipedia.org/wiki/OSI_model)
- Layer 7: Application layer
- !!! HTTP
- HTTP Spec
- HTTP status codes
- !!! HTTP/2
- !!! SMTP
- !!! NTP (network time protocol)
- !!! HTTP
- Layer 6: Presentation layer
- Layer 5: Session layer
- Layer 4: Transport layer
- !!! TCP, Transmission Control Protocol
- !!! UDP, User Datagram Protocol
- Layer 3: Network layer
- IPv4/IPv6, Internet Protocol
- Layer 2: Data link layer
- Layer 1: Physical layer
- Bluetooth physical layer
- Ethernet physical layer
- USB physical layer
- Layer 7: Application layer
- !!! Web Server vs Application Server vs Web Sites & Services
- !!! Web Servers
- !!! Nginx
- !!! Apache
- IIS (Microsoft Windows only)
- Application Server
- Web Sites & Services
- РHP, Node.js, Java, .Net, Go.. etc.
- !!! Web Servers
- Methodoligies of development
- Waterflow
- V Model
- !!! Agile
- !!! Head First - Agile book (must read!!!)
- Scrum
- Kanban
- Lean
- Terms of reference / Техническое задание (ТЗ)
- Expected Load
- Ожидаемая нагрузка на сервер (10 RPS - 10 Reqest Per Second)
- Service quality requirements
- Uptime
- Backups
- Hardware Requirements
- Запрос нужного железа (серверов или cloud)
- Заказываем исходя из Expected Load
- User Stories (Agile)
- Persormance Budget
- Frontend
- Maximun Bundle Size
- TTI, TTFB, FMP, TTFI
- Backend
- Minimum Response Time
- Minumum RPS
- Frontend
- MVP
- Estimation
- Server deployment
- Low level deployment strategies
- FTP/SFTP
- rsync
- Github
- Позволякет деплоить с помощью Git Push
- https://gist.github.com/oodavid/1809044
- Debianization
- Позволяет деполоить с помощью apt-get install в Lunux
- https://wiki.debian.org/HowToPackageForDebian
- Types of servers (by time)
- Development server
- Testing server
- Staging server
- Production server
- Types of servers (by location)
- !!! Localserver (localhost - 127.0.0.1)
- !!! LAN (hostname - 0.0.0.1:80)
- Web hosting service (https://en.wikipedia.org/wiki/Web_hosting_service)
- One Click Install
- !!! Shared web hosting service
- Старнадртные мини сервера для PHP
- https://infobox.ru/hosting/linux/
- !!! Virtual Dedicated Server / Virtual Private Server (VPS)
- !!! Dedicated hosting service
- Colocation web hosting service
- Почти как Dedicated только вмес
- Cloud hosting
- Infrastructure as a service (IaaS)
- Platform as a service (PaaS)
- Software as a service (SaaS)
- Mobile "backend" as a service (MBaaS)
- Serverless computing
- Function as a service (FaaS) / Serverless Apps
- Clustered hosting
- Grid hosting
- Home server
- Low level deployment strategies
- DBA (data base architecture)
- !!! Normalization Forms
- !!! CAP theorem
- Types
- !!! SQL (relational model)
- !!! NoSQL
- NewSQL
- Database Migration
- Arhetecture Styles
- Default Styles
- !!! REST
- !!! RPC
- GraphQL
- https://graphql.org/
- https://www.apollographql.com/ (поддерживает подписки)
- Push styles
- Default Styles
- Communication with Frontend
- Same-origin policy problem
- Description of problem
- !!! CORS
- !!! Cors In Action book (must read!)
- https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
- JSONP (устарело)
- Iframe Comunication
- PostMessage
- Iframe hack (устраело - use CORS)
- Same-origin policy problem
- Approaches
- Monolit (архитектура 1 сервера)
- Miscroservices
- !!! Policy Review & Licence Review
- !!! Check that framework & Library have good licence (never use GPL!!!)
- !!! Apache v2 is dangeraous (Trademark use)
- Web Arhitecture
- Example
- Load Balancers
- Database Servers / Database Clusters
- CDN
- Caching Servers
- Job Queue Servers
- Full test search Servers
- Services
- Storage Server / Cloud Storage
- Risks
- Scalability
- Horizontal and vertical scaling
- UML
- Types
- Class Diagrams
- Sequence Diagrams
- Activity Diagrams
- State diagram
- Tools
- PlantUML
- StarUML
- StarUML -> JSweet -> Typescript
- Types
- Design Patters
- Gang of 4 book
- https://sourcemaking.com/design_patterns
- HeadFirst - Design patterns
- CI (Continuos Integration)
- Development Stage (разработка)
- VCS (Version Control Systems)
- !!! Git
- !!! git-flow
- Commit Message Styleguide
- Auto CHANGELOG generation
- Subservion (SVN)
- Mercurial
- Concurrent Versions System (CVS)
- !!! Git
- Text Editors
- VIM
- Emacs
- Visual Studio Code
- WebStorm / PHPStorm / PyCharm
- Eclipse
- Linters
- ESLint
- TSLint
- Code formatters
- Prettier
- CSSComb
- Bootstraping
- Example Github repository
- Angular CLI
- Vue CLI
- Create React App
- yeoman
- slush
- Scaffolding
- Angular CLI Schematics
- Vue CLI plugins (Generator)
- Redux CLI
- Plop
- Testing
- Frameworks
- Mocha/Chai
- Jasmine
- Jest
- Tests Runners
- Karma
- Jest
- Frameworks
- Reactoring
- Code Smeels
- Refactoring techniques
- VCS (Version Control Systems)
- Test Stage (тестирование)
- E2E test
- Cypress.io
- Protractor
- Nightwatch
- Puppetear
- Selenium
- Regression Testing
- Acceptence Tests
- E2E test
- Staging Stage (подготовка к релизу, выкатка в окружение похожее на production)
- Load testing (нагрузочное тестирование)
- About correct load testing
- Tool: artilery (мой любимый)
- Tool: ab
- Tool: Apache JMeter
- Tool: Gatling
- OWASP Security Test
- Load testing (нагрузочное тестирование)
- Deployment Stage (выкатка в production окружение)
- Highlevel deployment strategeis
- Backup (https://en.wikipedia.org/wiki/Backup)
- Data repository models
- Unstructured
- Full only / System imaging
- Incremental
- Differential
- Reverse delta
- Continuous data protection
- Storage Media
- Magnetic tape
- Hard disk
- Optical storage
- SSD/Solid state storage
- Remote backup service AKA cloud backup
- Floppy disk and its derivatives
- Data repository models
- Rollback Strategies
- Database Migration
- Maintainance Stage
- Loggin
- !!! Log rotation (можно делать как внешними иструментами так и средствами самого Web приложения)
- Logstash, Kibana, ElasticSearch
- Monitoring
- Graphana
- Emails
- Debugging
- Profiling
- Core dump
- Reports
- Web Analitics
- SEO
- Loggin