编程语言
跳到导航
跳到搜索
规范
Ecma | W3C | RFC |
编程语言
语言类型的介绍可以查阅维基百科Type_system的简介。
伪代码
CouchBase | Redis | PostgreSQL | SQLite | elasticsearch |
静态语言(Static Language)
statically-typed language。
AML | Action! | Ada | Agda | AssemblyScript | Ateji PX | ||
Ballerina | Boo | ||||||
C | C++ | C++23 | C Sharp | Carbon | COBOL | Crystal | Cuneiform |
D | Dafny | ||||||
EC | Elm | Euclid | |||||
F Sharp | Fantom | Fortran | |||||
Genie | GNU Pascal | Go | |||||
Hack | Haskell | Haxe | Hope | ||||
JAVA | JS++ | Judoscript | |||||
Kotlin | |||||||
Mesa | ML | Modula-2 | |||||
Nim | |||||||
Oberon | OCaml | ||||||
PascalABC.NET | PEARL | Plus | PureScript | ||||
Reason | Rust | ||||||
Scala | Seed7 | SequenceL | Solidity | SPARK | StaDyn | Swift | |
Turing | TypeScript | ||||||
Umple | |||||||
Vala | Visual Prolog | ||||||
Zig |
动态语言(Dynamic Language)
脚本语言。可以参考 Dynamically Typed Languages[1] 一文。
ActiveVFP | AgentCubes | Apache Groovy | APL | AppleScript | Arc | ||
Ballerina | BBN LISP | BeanShell | |||||
Cecil | Ciao | Clipper | Clojure | Common Lisp | |||
Dart | |||||||
E | ECLiPSe | ECMAScript | Erlang | Euler | EuLisp | ||
F-Script | FL | FORTH | |||||
GDL(Geometric Description Language) | |||||||
Hack | Harbour | ||||||
Icon | Incr Tcl | Io | Itk | ||||
J | JavaScript | Joy | Jsish | Judoscript | Julia | ||
Keykit | |||||||
Lasso | Lisp | Little b | Little Smalltalk | Logo | Lua | ||
Magik | Mathcad | MATLAB | MDL | MexScript | MIIS | MultiLisp | MUMPS |
NekoVM | NewLISP | NewtonScript | NIL | ||||
Objective-C | Obliq | Oz | |||||
Parlog | Perl | Pharo | PHP | PicoLisp | Portable Standard Lisp | PostScript | PowerShell |
Prolog | Pure | Python | Python for S60 | ||||
Qore | |||||||
R | Rebol | Renjin | Revolution | Ring | Ruby | ||
Scheme | Scratch | Self | Smalltalk | Source | Squeak | StaDyn | *Lisp |
StepTalk | Strongtalk | SuperCollider | |||||
Tcl | |||||||
Urbiscript | |||||||
Wolfram Language | |||||||
ZPE Programming Environment |
关系型数据库
文档型数据库
数据类型
abstract data types (ADT)
抽象数据类型
AST(abstract syntax tree)
AST 规范
ESTree | 示例 | 示例 |
AST 组件参考
标题文字 | 标题文字 | 标题文字 | ||||||
---|---|---|---|---|---|---|---|---|
css | csstree | 示例 | ||||||
js | regexpp | hast-util-parse-selector | acorn | babel | esprima | recast | gogocode | terser |
html | parse5 | 示例 | ||||||
jsx | vue-ast |
参考
detective | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
实践
vue-walk-exporter | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
引擎
GUI 引擎
awtk
转换
编译
概念
锁 | 信号量(semaphore) | 原子性 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
数据通信
json | xml | 示例 |
类型
- 强类型
- 弱类型
文本编辑
markdown | 示例 |
脚本
sh | bat |
查看解释器
➜ /home
ls -al /bin/sh
-rwxr-xr-x 1 root wheel 31440 10 31 2020 /bin/sh
查看当前解析器。
➜ /home
echo $0
-zsh
➜ /home
echo $SHELL
/bin/zsh
➜ /home
env | grep SHELL
SHELL=/bin/zsh
➜ /home
ps -p $$
PID TTY TIME CMD
27069 ttys005 0:00.39 -zsh
查看系统支持的解析器
➜ /home
cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
修改默认解析器
➜ /home
chsh -s /bin/sh
➜ /home
chsh
ubuntu系统默认使用dash。
[jian@kang /home/kangkk]$
sudo dpkg-reconfigure dash
图
Mekko(市场矩阵细分图) | 瀑布图 | 甘特图 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
资源处理
图片压缩 |
打包
nsis | packages | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
混淆加密
JShaman | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
数据结构
数组 | ||||
栈 | ||||
队列 | ||||
链表 | 单链表 | 双端链表 | 双向链表 | 循环链表 |
树 | 二叉树 | 红黑树 | ||
散列表 | ||||
堆 | ||||
图 |
算法
二分法 | 动态规划 | 单指针 |
双指针 | 示例 | |
示例 | 示例 | 示例 |
尾递归 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
运算
取模运算 Modulo Operation | 取余运算 Remainder Operation | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
错误
捕获 | ErrorEvent与Error | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
设计模式
设计模式原则
SRP | LKP | OCP |
模式
单例模式 | 代理模式 | 策略模式 |
状态模式 | 享元模式 | 职责链模式 |
发布订阅模式 | 装饰者模式 |
数据库
Gemfire | 最左前缀原则 | 关系型数据库 | 磁盘寻道 | 冗余 | 竞态条件 |
物理模型(NDM) | 逻辑模型(NDML) | 概念模型(NDMC) |
数据传输格式
安全
JWT |
存储
块存储
文件存储
对象存储
语言
DSL(Domain Specific Language 领域特定语言) | GPL(General Purpose Language 通用编程语言) |
编码
中文编码 | 示例 | 示例 |
注释
JavaScript 注释规则 - jsdoc |
命名
命名 |
认证
JSON Web Token(JWT) | 示例 | 示例 |
其他
前哨值(也称为标志值,跳闸值,流氓值,信号值或伪数据
百分号编码
加密
pem
生成 PEM 密钥。
[jian@kang /home/kangkk]$
openssl genrsa -out ryans-key.pem 2048
Generating RSA private key, 2048 bit long modulus
.......................................+++
...................................................................+++
e is 65537 (0x10001)
创建私钥
[jian@kang /home/kangkk]$
openssl genrsa -out rsa_private.key 1024
Generating RSA private key, 1024 bit long modulus
............................++++++
................................++++++
e is 65537 (0x10001)
创建公钥
[jian@kang /home/kangkk]$
openssl rsa -in rsa_private.key -pubout -out rsa_public.key
writing RSA key
加密解密
bcrypt | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
密码生成器
阿里云数据库密码生成器 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
坐标
getBoundingClientRect | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
特定属性
范式
第一范式(1NF) | 2NF | 3NF | BNCF | 巴克斯范式(Backus Regular) |
约束 linter
JSLint | JSHint | ESLint |
约定
命名约定 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
神奇
数字0 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
插件
photoshop | sketch | figma |
编程风格
函数式 | 尤达标记法 | 面向对象 |
策略
Backpressure | Flow Control | 时间复杂度 | 时间频度 |
示例 | 示例 | 示例 | |
示例 | 示例 | 示例 |
运行环境
REPL(Read-Eval-Print-Loop 可交互运行环境) |
development | 生产环境 | 回归环境 | 预发布环境 | 示例 |
项目版本
alpha | 内测版本、预览版 | bug 多、不稳定、内部版本、不断迭代 |
beta [n] | 测试版、公测版本 | 同上 |
RC | 侯选版本、最终测试版本 | 经过测试和迭代,相对稳定 |
GA | 正式版本 | 示例 |
RELEASE | 示例 | 示例 |
STABLE | 稳定版 | 来自预览版本释出使用与改善而修正完成 |
FINAL | 示例 | 示例 |
gray | 灰度测试、灰度发布 | 某项产品或应用正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题 |
项目阶段
α | 第一阶段,一般只供内部测试使用,基本处于开发测试阶段 | 示例 |
β | 第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用 | 示例 |
λ | 第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行 | 示例 |
优化的抉择
性能优化分为两种,一种是开发者认知的程序性能优化,另一种是用户感知的优化,用户感知到的优化要考虑用户的心理活动等多重因素。
性能指标
编辑器
sublime | vscode | webstorm |
测试工具
Lighthouse | 示例 | 示例 |
测试服务器
weinre | 移动端开发调试工具 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
CI
Jenkins | Drone | 示例 |
证书
keystore | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
表达式
波兰表达式 | 逆波兰表达式 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
其他
时间戳 | Lambda 表达式 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
设计软件
压缩混淆加密
uglify | babel-minify | terser |
面试题
2020 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
编辑器
在线编辑
链接器
概念
D2C(Design To Code) | C2D(Code To Design) |
场景
登录 | 示例 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
缓存
本地缓存 | 分布缓存 | 示例 |
分布一致性的问题。
备份
完全备份
完全备份是指对有效数据进行备份。
增量备份
自上一次备份(包含完全备份、增量备份)之后有变化的数据。
差异备份
上一次完全备份之后变化的数据。
按需备份 =
版本
标题文字 | 标题文字 | 标题文字 |
---|---|---|
Release Candidate | 候选发布版本 | 示例 |
Alpha | 示例 | 功能为主 |
Beta | 示例 | UI |
Release | 终版,Release不会以单词形式出现 | 示例 |
示例 | 示例 | 示例 |
示例 | 示例 | 示例 |
发布脚本
扩展
Formal language | Chomsky hierarchy | Code Conventions | Javadoc | Icons |
微服务,应用于使用浏览器插件检查本地文件
npm i http-server
- ↑ Poole, Dorset. Dynamically Typed Languages[ol]. https://tratt.net/laurie/research/pubs/html/tratt__dynamically_typed_languages/.