总结一下 Web 开发的环节,知识模块和技能点,这里想罗列的其实是给我自己一个学习的方向,相当于提供一个 roadMap,对于从业的我们来说也可以对全局有一个较好的把握,利于看到自己的薄弱环节,这里就先不对软技能和业务技能进行总结,只关注工程技能
- 本文其实是做英文强字眼翻译,中英文相对应方便查找对应的知识
-
Backend(后端)
-
authentication, oauth(鉴权)
-
Api Design(api 接口设计) RESTFUL, GraphQL
-
Payment intergration (支付集成)
-
social intergration (社交服务集成)
-
Session/cookie management (会话/时域管理)
-
user management (用户管理)
-
server(服务器), e.g. nginx, connection, model, conf, rewrite
-
CRM(Custom Relationship Management 客户关系管理系统)
-
-
Deployment, Env management, Container(部署,环境管理,容器)
-
rollback/rollforward (回滚/前滚)
-
No-downtime, non-disruptive deployment (无宕机时间,无破坏性变更部署)
-
Deploy to downStreams, e.g. npm, chrome extension store (下游部署, npm,插件存储)
-
artefact management, e.g. gzips, OS specific builds (手动管理, gzips, 操作系统特定环境构建)
-
container technology e.g Docker, k8s, AWS ami(容器技术)
-
-
DataBase (数据库)
- schema design(模式设计)
- ORM (Object Relational Mapping) 对象关系映射
- language /env specific driver (语言,特定环境驱动)
- test/ seed data (测试,源数据)
- backup (备份)
- batching, DB perfgomancs (批量查询,数据库性能)
- Query syntax, e.g SQL, mongo query syntax (查询语法)
- connection pool/ concurrent connection management (连接池, 持久化管理工具)
- Connection restriction e.g. localhost only (远程连接限制)
-
messagingQueue / MiddleWare (消息队列,中间件)
-
Testing(测试)
- parallel execution (并行执行)
- UI automated testing (界面自动化测试)
- browser / OS compatibility, e.g. headless browser, cloud solutions (浏览器/操作系统适配,如 无头浏览器,云解决方案)
- screenshot diff regression (快照对比、回归测试)
- unit test, isolation (单元测试,模块隔离)
- mocking (数据模拟)
- intergation test techniques (集成测试)
- Coverage (line Coverage, path Coverage etc.), permutaions (覆盖测试,链路覆盖、路径覆盖等等)(排列组合)
-
Security(安全)
-
CSRF, XSS, SQL injection,DDos, brute force etc. (跨站点伪造请求攻击,跨站点脚本攻击,SQL 注入,分布式拒绝服务攻击,穷举爆破攻击)
-
automated tools (自动化工具)
-
-
OS (操作系统)
-
OS differences, e.g. fileSystem, path separator (操作系统差异: 例:文件系统,路径分割名)
-
run daemon, startup job, process manager (运行进程,初始化工作,进程管理)
-
ssh (secure shell) 安全壳协议
-
everything bash, zsh, powershell, e.g wildcard, expansion syntax (终端工具,命令行工具)
-
Everything *nix, du, filesystem, ps , process model ,netstat, pipes (系统指令)
-
-
Network (计算机网络)
-
HTTP, and everything it entails e.g. CORS, MIME types, chunked (协议层)
-
websocket (套接层协议)
-
webworker, service worker(线程执行)
-
Proxy (代理)
-
-
Web visualization technologies and principles (web 可视化技术和准则)
-
webgl
-
2D/ 3D systems and calculations (二维三维系统和计算)
-
-
Web standards, e.g. webassembly (web 标准)
-
performance tuning (性能优化)
-
frontend: lighthouse 8
-
backend: load balancing, pref monitoring and profiling
-
-
Source control (版本控制)
-
work flow (工作流)
-
tagging, release, branching (打点标签,发布版本,分支)
-
PR, collaboration (多人协作)
-
commit message conventions (提交信息约定)
-
-
Project management, Production management (项目管理,产品管理)
-
main success scenario (成功构想)
-
PRD doc, sketch (出图工具, 产品原型文档)
-
milestone, timeline, estimate (里程碑,时间线,估期)
-
daily report,weekly report (日报,周报)
-
-
software Monitoring (监控)
-
performance monitor (性能监控)
-
exception monitor (异常监控)
-
alert and alarm rule (报警和报警规则)
-
logging (日志)
-
-
Engineering (工程化)
-
lint, prettier, custom rules, autofix (代码风格规范)
-
editor, IDE,plugins,e.g. intellisense
-
debugging,remote debug,debug mobile (调试, 远程调试, 移动端调试)
-
-
Analytics (分析)
-
heatmap(热力图, chrome dev tools performance)
-
Conversion
-
bounce rate (跳出率 [https://support.google.com/analytics/answer/1009409?hl=en](Google 文档))
-
-
Frontend (前端)
-
data flow (数据流)
-
state management (状态管理)
-
componentization (组件化)
-
Transpile, packing tools, e.g. webpack gulp coffeeScript typeScript (编译,打包工具)
-
tamplating, e.g. handlebar (模板)
-
ajax, jsonp etc.
-
-
Design pattern (设计模式)
-
Design / styling (设计,css)
- cascading rules (选择器嵌套规则) nesting rules
- preprocessor, e.g. scss less (预处理器)
- box model (盒模型)
- Z-index (层叠样式)
- flexbox (弹性盒模型)
- design principles, layout , color , theme (设计准则,布局,背景)