软件知识

134 阅读2分钟

1. 开源软件

低风险、低成本、透明化

案例: Linux/Apache/MySql/Java、C等编程语言

2. 开源协议

  • GPL: linux
  • LGPL: 商业支持友好
  • BSD: 商业支持友好, 适用于商业软件
  • Apache: 类似于BSD
  • MIT: 限制最少,商业支持友好;Jquery、Node
  • ISC
  • Mozilla

开源协议选择:

开源许可证.png

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

不同浏览器对于换行符的定义

  1. CR(MacIntosh操作系统(即早期的Mac操作系统)):Carriage Return,对应ASCII中转义字符\r,表示回车

  2. LF(Unix/Linux/Mac OS X):Linefeed,对应ASCII中转义字符\n,表示换行

  3. 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

文章链接: 语义化版本