1. 开源软件
低风险、低成本、透明化
案例: Linux/Apache/MySql/Java、C等编程语言
2. 开源协议
- GPL: linux
- LGPL: 商业支持友好
- BSD: 商业支持友好, 适用于商业软件
- Apache: 类似于BSD
- MIT: 限制最少,商业支持友好;Jquery、Node
- ISC
- Mozilla
开源协议选择:
3. 语义化版本控制
semantic version
1.1.0 (主版本.次版本.补丁版本(修订号))
// 初始版本 1.0.0
补丁版本 // 向下兼容的问题修正; 1.0.x (1.0.0 <= v <= 1.1.0)
次要版本(小版本) // 向下兼容的功能性新增; 1.x (1.0.0 <= v <= 2.0.0)
主要版本(大版本)// 不兼容的 API 修改
^1.0.4(脱字符) // 1.0.4 <= version <= 2.0.0, 等价于`1` or `1.x`
~1.0.4 // 1.0.4 <= version <= 1.1.0, 等价于 `1.0` or `1.0.x`
// 先行版本/预发布版本(进行集成/稳定性测试)
eg: 1.0.0-alpha、1.0.0-alpha.1
4. 软件生命周期
- Alpha: 内测版,不向外发布,很多bug, 一般只有测试人员使用
- Beta: 公测版,主要给忠实用户测试使用,比Alpha版本稳定一些,该阶段版本还会不断增加新的功能
- RC(Release Candidate): 发行候选版本,不会再加入新功能,主要工作修复bug
- GA(General Availability): 正式发布版本
5. CRLF、CR、LF
不同浏览器对于换行符的定义
-
CR(MacIntosh操作系统(即早期的Mac操作系统)):Carriage Return,对应ASCII中转义字符\r,表示回车
-
LF(Unix/Linux/Mac OS X):Linefeed,对应ASCII中转义字符\n,表示换行
-
CRLF(windows):Carriage Return & Linefeed,\r\n,表示回车并换行
6. URL、URI、URN
- URL 资源定位符
- URI 资源唯一标识
- URN 资源名
类似于一个人的(地址,身份证号,姓名)
URI的格式如下:[协议名]: //服务器地址:服务器端口号/路径?查询字符串#片段ID
7. 软件产品 && it技术系统分类
A端
开发端使用工具,如idea、vscode等
产品特性:创造;面向群体:开发人员
B端
为工作或商业目的使用的系统性软件、工具、平台;弱依赖运营
产品特性:协同工作,专注业务功能、兼顾用户体验;面向群体:企业/商家/组织
C端
客户端app, 强依赖运营,流量变现、规模经济, 社交、娱乐等个性化需求
产品特性:分享,围绕核心功能设计,注重用户体验;面向群体:消费者/个人用户
R端
产品特性:数字货币/供应链金融;面向群体:外卖骑手
多端产品
B2C、B2B、O2O
SAAS
在线软件服务,按需租用(费用含技术支持、软件维护、许可证等),降低企业运营成本
数据存放:软件服务商云服务器
服务关系:软件供应商 -> 客户
- 面向个人:在线邮箱、在线文档编辑、搜索引擎
- 面向企业:ERP, CRM(Salesforce..), 企业OA,在线会议
Saas + ai赋能;saas集成化
中台 数据中台、业务中台
8. 跨端 && 跨平台
(1) 跨平台:操作系统
优点:高效,节省成本; 缺点:性能相比直接调用系统api有所下降;难以提供统一的api
<方案>
- 浏览器:借助浏览器引擎
- docker:虚拟化技术,软硬件分离,动态分配硬件资源
- java:借助jvm
- electron
- node/deno
- web-container
(2) 跨端:跨客户端
<方案>
- uni-app
- react native
- weex
- flutter
- kraken
文章链接: 语义化版本