mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-09-26 21:26:41 +08:00
342 lines
29 KiB
HTML
342 lines
29 KiB
HTML
<!DOCTYPE html>
|
||
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
|
||
<link rel="icon" href="/static/favicon.png">
|
||
<title>40 商业操作系统:电商操作系统是不是一个噱头?.md.html</title>
|
||
<!-- Spectre.css framework -->
|
||
<link rel="stylesheet" href="/static/index.css">
|
||
<!-- theme css & js -->
|
||
<meta name="generator" content="Hexo 4.2.0">
|
||
</head>
|
||
<body>
|
||
<div class="book-container">
|
||
<div class="book-sidebar">
|
||
<div class="book-brand">
|
||
<a href="/">
|
||
<img src="/static/favicon.png">
|
||
<span>技术文章摘抄</span>
|
||
</a>
|
||
</div>
|
||
<div class="book-menu uncollapsible">
|
||
<ul class="uncollapsible">
|
||
<li><a href="/" class="current-tab">首页</a></li>
|
||
</ul>
|
||
<ul class="uncollapsible">
|
||
<li><a href="../">上一级</a></li>
|
||
</ul>
|
||
<ul class="uncollapsible">
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/00 开篇词 为什么大厂面试必考操作系统?.md.html">00 开篇词 为什么大厂面试必考操作系统?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/00 课前必读 构建知识体系,可以这样做!.md.html">00 课前必读 构建知识体系,可以这样做!</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/01 计算机是什么:“如何把程序写好”这个问题是可计算的吗?.md.html">01 计算机是什么:“如何把程序写好”这个问题是可计算的吗?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/02 程序的执行:相比 32 位,64 位的优势是什么?(上).md.html">02 程序的执行:相比 32 位,64 位的优势是什么?(上)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/03 程序的执行:相比 32 位,64 位的优势是什么?(下).md.html">03 程序的执行:相比 32 位,64 位的优势是什么?(下)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/04 构造复杂的程序:将一个递归函数转成非递归函数的通用方法.md.html">04 构造复杂的程序:将一个递归函数转成非递归函数的通用方法</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/05 存储器分级:L1 Cache 比内存和 SSD 快多少倍?.md.html">05 存储器分级:L1 Cache 比内存和 SSD 快多少倍?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/05 (1) 加餐 练习题详解(一).md.html">05 (1) 加餐 练习题详解(一)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/06 目录结构和文件管理指令:rm -rf 指令的作用是?.md.html">06 目录结构和文件管理指令:rm -rf 指令的作用是?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/07 进程、重定向和管道指令:xargs 指令的作用是?.md.html">07 进程、重定向和管道指令:xargs 指令的作用是?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/08 用户和权限管理指令: 请简述 Linux 权限划分的原则?.md.html">08 用户和权限管理指令: 请简述 Linux 权限划分的原则?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/09 Linux 中的网络指令:如何查看一个域名有哪些 NS 记录?.md.html">09 Linux 中的网络指令:如何查看一个域名有哪些 NS 记录?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/10 软件的安装: 编译安装和包管理器安装有什么优势和劣势?.md.html">10 软件的安装: 编译安装和包管理器安装有什么优势和劣势?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/11 高级技巧之日志分析:利用 Linux 指令分析 Web 日志.md.html">11 高级技巧之日志分析:利用 Linux 指令分析 Web 日志</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/12 高级技巧之集群部署:利用 Linux 指令同时在多台机器部署程序.md.html">12 高级技巧之集群部署:利用 Linux 指令同时在多台机器部署程序</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/12 (1)加餐 练习题详解(二).md.html">12 (1)加餐 练习题详解(二)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/13 操作系统内核:Linux 内核和 Windows 内核有什么区别?.md.html">13 操作系统内核:Linux 内核和 Windows 内核有什么区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/14 用户态和内核态:用户态线程和内核态线程有什么区别?.md.html">14 用户态和内核态:用户态线程和内核态线程有什么区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/15 中断和中断向量:Javajs 等语言为什么可以捕获到键盘输入?.md.html">15 中断和中断向量:Javajs 等语言为什么可以捕获到键盘输入?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/16 WinMacUnixLinux 的区别和联系:为什么 Debian 漏洞排名第一还这么多人用?.md.html">16 WinMacUnixLinux 的区别和联系:为什么 Debian 漏洞排名第一还这么多人用?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/16 (1)加餐 练习题详解(三).md.html">16 (1)加餐 练习题详解(三)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/17 进程和线程:进程的开销比线程大在了哪里?.md.html">17 进程和线程:进程的开销比线程大在了哪里?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/18 锁、信号量和分布式锁:如何控制同一时间只有 2 个线程运行?.md.html">18 锁、信号量和分布式锁:如何控制同一时间只有 2 个线程运行?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/19 乐观锁、区块链:除了上锁还有哪些并发控制方法?.md.html">19 乐观锁、区块链:除了上锁还有哪些并发控制方法?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/20 线程的调度:线程调度都有哪些方法?.md.html">20 线程的调度:线程调度都有哪些方法?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/21 哲学家就餐问题:什么情况下会触发饥饿和死锁?.md.html">21 哲学家就餐问题:什么情况下会触发饥饿和死锁?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/22 进程间通信: 进程间通信都有哪些方法?.md.html">22 进程间通信: 进程间通信都有哪些方法?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/23 分析服务的特性:我的服务应该开多少个进程、多少个线程?.md.html">23 分析服务的特性:我的服务应该开多少个进程、多少个线程?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/23 (1)加餐 练习题详解(四).md.html">23 (1)加餐 练习题详解(四)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/24 虚拟内存 :一个程序最多能使用多少内存?.md.html">24 虚拟内存 :一个程序最多能使用多少内存?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/25 内存管理单元: 什么情况下使用大内存分页?.md.html">25 内存管理单元: 什么情况下使用大内存分页?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/26 缓存置换算法: LRU 用什么数据结构实现更合理?.md.html">26 缓存置换算法: LRU 用什么数据结构实现更合理?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/27 内存回收上篇:如何解决内存的循环引用问题?.md.html">27 内存回收上篇:如何解决内存的循环引用问题?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/28 内存回收下篇:三色标记-清除算法是怎么回事?.md.html">28 内存回收下篇:三色标记-清除算法是怎么回事?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/28 (1)加餐 练习题详解(五).md.html">28 (1)加餐 练习题详解(五)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/29 Linux 下的各个目录有什么作用?.md.html">29 Linux 下的各个目录有什么作用?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/30 文件系统的底层实现:FAT、NTFS 和 Ext3 有什么区别?.md.html">30 文件系统的底层实现:FAT、NTFS 和 Ext3 有什么区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/31 数据库文件系统实例:MySQL 中 B 树和 B+ 树有什么区别?.md.html">31 数据库文件系统实例:MySQL 中 B 树和 B+ 树有什么区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/32 HDFS 介绍:分布式文件系统是怎么回事?.md.html">32 HDFS 介绍:分布式文件系统是怎么回事?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/32 (1)加餐 练习题详解(六).md.html">32 (1)加餐 练习题详解(六)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/33 互联网协议群(TCPIP):多路复用是怎么回事?.md.html">33 互联网协议群(TCPIP):多路复用是怎么回事?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/34 UDP 协议:UDP 和 TCP 相比快在哪里?.md.html">34 UDP 协议:UDP 和 TCP 相比快在哪里?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/35 Linux 的 IO 模式:selectpollepoll 有什么区别?.md.html">35 Linux 的 IO 模式:selectpollepoll 有什么区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/36 公私钥体系和网络安全:什么是中间人攻击?.md.html">36 公私钥体系和网络安全:什么是中间人攻击?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/36 (1)加餐 练习题详解(七).md.html">36 (1)加餐 练习题详解(七)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/37 虚拟化技术介绍:VMware 和 Docker 的区别?.md.html">37 虚拟化技术介绍:VMware 和 Docker 的区别?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/38 容器编排技术:如何利用 K8s 和 Docker Swarm 管理微服务?.md.html">38 容器编排技术:如何利用 K8s 和 Docker Swarm 管理微服务?</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/39 Linux 架构优秀在哪里.md.html">39 Linux 架构优秀在哪里</a>
|
||
</li>
|
||
<li>
|
||
<a class="current-tab" href="/专栏/重学操作系统-完/40 商业操作系统:电商操作系统是不是一个噱头?.md.html">40 商业操作系统:电商操作系统是不是一个噱头?</a>
|
||
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/40 (1)加餐 练习题详解(八).md.html">40 (1)加餐 练习题详解(八)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/专栏/重学操作系统-完/41 结束语 论程序员的发展——信仰、选择和博弈.md.html">41 结束语 论程序员的发展——信仰、选择和博弈</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
|
||
<div class="sidebar-toggle-inner"></div>
|
||
</div>
|
||
<script>
|
||
function add_inner() {
|
||
let inner = document.querySelector('.sidebar-toggle-inner')
|
||
inner.classList.add('show')
|
||
}
|
||
function remove_inner() {
|
||
let inner = document.querySelector('.sidebar-toggle-inner')
|
||
inner.classList.remove('show')
|
||
}
|
||
function sidebar_toggle() {
|
||
let sidebar_toggle = document.querySelector('.sidebar-toggle')
|
||
let sidebar = document.querySelector('.book-sidebar')
|
||
let content = document.querySelector('.off-canvas-content')
|
||
if (sidebar_toggle.classList.contains('extend')) { // show
|
||
sidebar_toggle.classList.remove('extend')
|
||
sidebar.classList.remove('hide')
|
||
content.classList.remove('extend')
|
||
} else { // hide
|
||
sidebar_toggle.classList.add('extend')
|
||
sidebar.classList.add('hide')
|
||
content.classList.add('extend')
|
||
}
|
||
}
|
||
function open_sidebar() {
|
||
let sidebar = document.querySelector('.book-sidebar')
|
||
let overlay = document.querySelector('.off-canvas-overlay')
|
||
sidebar.classList.add('show')
|
||
overlay.classList.add('show')
|
||
}
|
||
function hide_canvas() {
|
||
let sidebar = document.querySelector('.book-sidebar')
|
||
let overlay = document.querySelector('.off-canvas-overlay')
|
||
sidebar.classList.remove('show')
|
||
overlay.classList.remove('show')
|
||
}
|
||
</script>
|
||
<div class="off-canvas-content">
|
||
<div class="columns">
|
||
<div class="column col-12 col-lg-12">
|
||
<div class="book-navbar">
|
||
<!-- For Responsive Layout -->
|
||
<header class="navbar">
|
||
<section class="navbar-section">
|
||
<a onclick="open_sidebar()">
|
||
<i class="icon icon-menu"></i>
|
||
</a>
|
||
</section>
|
||
</header>
|
||
</div>
|
||
<div class="book-content" style="max-width: 960px; margin: 0 auto;
|
||
overflow-x: auto;
|
||
overflow-y: hidden;">
|
||
<div class="book-post">
|
||
<p id="tip" align="center"></p>
|
||
<div><h1>40 商业操作系统:电商操作系统是不是一个噱头?</h1>
|
||
<p>关于电商操作系统是不是一个噱头?我觉得对于想要哄抬股价、营造风口的资本来说,这无疑是一场盛宴。但是对于从事多年业务架构,为了这件事情努力的架构师们而言,这似乎不是一个遥远的梦想,而是可以通过手中的键盘、白板上的图纸去付诸实践的目标。</p>
|
||
<p>我们暂且不为这个问题是不是噱头定性,不如先来聊一聊<strong>什么是商业操作系统</strong>,聊一聊它的设计思路和基本理念。</p>
|
||
<h3>进程的抽象</h3>
|
||
<p>你可以把一个大型的电商公司想象成一个商业操作系统,它的目标是为其中的每个参与者分配资源。这些资源不仅仅是计算资源,还会有市场资源、渠道资源、公关资源、用户资源,等等。</p>
|
||
<p>这样操作系统上的进程也被分成了几种类别,比如说内核程序,其实就是电商公司。应用程序就包括商家、供应商、品牌方、第三方支付、大数据分析公司等一系列组织的策略。</p>
|
||
<p>接下来,我们以<strong>商家</strong>为例讨论进程。在操作系统中进程是应用程序的执行副本。它不仅仅是在内核的进程表中留下一条记录,<strong>它更像拥有独立思考能力的人</strong>,它需要什么资源就会自己去操作系统申请。它会遵循操作系统的规则,为自己的用户服务,完成自己的商业目的。</p>
|
||
<p>所以如果上升到操作系统的高度来设计电商系统。我们不仅要考虑如何在数据库表中记录这个商家、如何实现跟这个商家相关的业务逻辑,还要让商家的行为是定制化的,可以自发地组织营业。同时,也要服从平台制定的规则,共同维护商业秩序,比如定价策略、物流标准、服务水平,等等。</p>
|
||
<p>你可能会说,要达到这点其实很容易。实现一个开放平台,将所有的平台能力做成 API。让商家可以自己开发程序,去调用这些 API 来完成自己的服务。商家可以利用这些接口自定义自己的办公自动化软件。</p>
|
||
<p>事实上很多电商公司也确实是这样去做的,但我认为这样做没有抓住问题的核心。一方面是系统的开发、对接成本会难住很多中小型商家。但最重要的并不是研发成本,而是开放的 API 平台通常只能提供基础能力——比如说订单查询、商品创建、活动创建,等等。这些能力是电商平台已有能力的一种投影,超不过商家本身能在后台中配置和使用的范畴,基于这样的 API 架构出来的应用程序,可以节省商家的时间,但是不能称为进程。因为独立性不够,且不够智能。</p>
|
||
<p>所以真正的发展方向和目标是商业的<strong>智能化</strong>。这里有一个在游戏领域常见的设计模式,可以实现智能化,叫作<strong>代理人</strong>(<strong>Agent</strong>)<strong>模式</strong>。就是为每一个商家提供一个或者多个代理(Agent)程序。这些代理人像机器人一样,会帮助商家运营自己的网店、客服、物流体系,等等。</p>
|
||
<p>代理人知道什么时候应该做什么,比如说:</p>
|
||
<ul>
|
||
<li>帮商家预约物流、为新老用户提供不同的服务;</li>
|
||
<li>通过分析数据决定是否需要花钱做活动;</li>
|
||
<li>当品牌方有活动的时候,帮助商家联系;</li>
|
||
<li>当线上商店经营出现问题的时候,主动帮商家分析;</li>
|
||
<li>……</li>
|
||
</ul>
|
||
<p>你可以把代理人理解成一个游戏的 AI,它们会根据一些配置选项自发地完成任务。而代理人的提供者,也就是<strong>程序员</strong>,只需要证明在某些方面,代理人比人更优秀即可。而在这些优秀的方面,就可以交给代理人处理。</p>
|
||
<p>这样,商家放弃了一部分的管理权限,也减轻了很大的负担,成了代理人决策中的某个节点——比如有时候需要邮件确认一些内容、有时候需要支付运营费用、有时候会遵循代理人的建议对商店进行装修等。</p>
|
||
<h3>资源和权限</h3>
|
||
<p>对于一个计算机上的操作系统而言,我们对进程使用了什么样的资源并不是非常的敏感。而对于一个商业操作系统来说,我们就需要设计严格的权限控制。因为权限从某种意义上就代表着收入,代表着金钱。</p>
|
||
<p>资源是一个宽泛的概念。广告位是资源,可以带来直接的流量。基于用户的历史行为,每个用户看到的广告位是不同的,这个也叫作“千人千面”,所以一个广告位可以卖给很多个代理人。站内信、用户召回的权限也可以看作资源。 有权利建立自己的会员体系,可以看作资源。数据分析的权限可以看作资源。<strong>如果将商业系统看作一个操作系统,资源就是所有在这个系统中流通的有价值的东西</strong>。</p>
|
||
<p>有同学可能会认为,一切资源都可以用数据描述,那么<strong>权限控制</strong>也应该会比较简单。比如说某一个推广位到底给哪个商家、到底推广多长时间……</p>
|
||
<p>其实并不是这样,虽然有很多权限可以用数据描述但是并不好控制。比如一个商品,“商家最低可以设置多少价格”就是一件非常不好判断的事情。商品有标品也有非标品,标品的价格好控制,非标品的价格缺少参照。如果平台方不希望花费太多精力在价格治理上,就要想办法让这些不守规则的商家无法盈利。比如说一旦发现恶性价格竞争,或者虚报价格骗钱的情况,需要及时给予商家打击和处罚。</p>
|
||
<p><strong>和权限对应的就是资源</strong>。如果让商家以代理人的身份在操作系统中运行,那么这个代理人可以使用多少资源,就需要有一个访问权限控制列表(Access Control List,,ACL)。这里有一个核心的问题,在传统的 ACL 设计中,是基于权限的管控,而不是权限、内容的发现。而对于设计得优秀的代理人 (Agent),应该是订阅所有的可能性,知道如何获取、申请所有的权限,然后不断思考怎样做更好。对代理人而言,这不是一个权限申请的问题,而是一个最优化策略——思考如何盈利。</p>
|
||
<h3>策略</h3>
|
||
<p>商家、组织在操作系统上化身成为代理人,也就是进程。商业操作系统的调度不仅仅体现在给这些代理人足够的计算、存储资源,更重要的是为这些代理人的决策提供上下文以及资源。</p>
|
||
<p>就好像真实的人一样:听到、看到、触摸到,然后做决策。做决策需要策略,一个好的策略可能是赚钱的,而一个坏的策略可能是灾难性的。从人做决策到机器做决策,有一个中间的过程。一开始的目标可以设立在让机器做少量的决策,比如说,机器通过观察近期来到商店用户的行为,决定哪些商品出现在店铺的首页上。但是在做这个决策之前,机器需要先咨询人的意愿。这样就把人当成了决策节点,机器变成了<strong>工具人</strong>。这样做一方面为人节省了时间,一方面也避免了错误。</p>
|
||
<p>再比如说机器可以通过数据预估一个广告位的收益,通过用户集群的画像得知在某个广告位投放店铺广告是否划算。如果机器得到一个正向的结果,可能会通知商家来完成付费和签约。那么问题来了,商家是否可以放心将付费和签约都交给机器呢?</p>
|
||
<p>当然不可以。如果家里急着用钱,可能就无法完成这笔看上去是划算的交易。另外,如果有其他的商家也看上了这个广告位。可能就需要竞价排名,所以需要人和机器的混合决策。</p>
|
||
<p>上述的模式会长期存在,例如设置价格是一个复杂的模型——疫情来了,口罩的销量会上升。机器可以理解这个口罩销量上升的过程,但是机器很难在疫情刚刚开始、口罩销量还没有上升的时候就预判到这个趋势。如果逻辑是确定的,那机器可以帮人做到极致,但如果逻辑不确定呢?如果很多判断是预判,是基于复杂的现实世界产生的思考,那么这就不是机器擅长的领域了。</p>
|
||
<p><strong>所以智能的目标并不是替代人,而是让人更像人、机器更像机器</strong>。</p>
|
||
<p>另外再和你聊一下我自己的观点,以自动驾驶为例。如果一个完全自动驾驶的汽车发生车祸,那么应该由汽车制造商、算法的提供方、自动驾驶设备的提供方、保险公司来共同来承担责任。类比下,如果策略可以售卖,那么提供策略的人就要承担相应的责任。比如说策略出现故障,导致营销券被大量套现,那提供策略方就需要承担相应的赔偿。</p>
|
||
<p>在可预见到的未来,策略也会成为一种可交易的资源。维护一个网上商店,从原材料到生产加工、渠道、物流体系、获客、销售环节,再到售后——以目前的技术水平,可以实现到一种半人工参与的状态。但这样也产生了很多非常现实的问题,比如说,既然开店变得如此容易,那资本为什么不自己开店。这样去培养合格、服务态度更好的店员不是更加容易吗?</p>
|
||
<p>这也是互联网让人深深担忧的原因之一。所有的东西被自动化之后,代表着一种时代的变迁,剩下不能够自动化的,都变成了“节点”。很多过程不需要人参与之后,人就变成了在某些机器无法完成工作的节点上不断重复劳动的工具——这也是近年来小朋友们经常说自己是“工具人”的原因了。</p>
|
||
<p>而且,我们程序员是在推动这样的潮流。因此你可以想象,未来对程序员的需求是很大的。一个普通的商店可能会雇佣一名程序员,花上半年匠心打造某个策略,收费标准可能会像现在的住房装修一样贵。这个策略成功之后还会进行微调,这就是后期的服务费用。完全做到配置化的策略,会因为不够差异化,无法永久盈利。最终在商业市场上竞争的,会是大量将人作为决策节点的 AI。</p>
|
||
<h3>总结</h3>
|
||
<p>商业是人类繁荣后的产物,电商是信息时代商业早期形式,未来的发展方向一定是像一个操作系统那样,让每个实体,都可以有自己的策略。用户可以写策略订餐,比如说我每天中午让 AI 帮助我挑选、并订一份午餐。商家写策略运营,比如运营网店。</p>
|
||
<p>至于商业操作系统到底是不是一个噱头?我觉得这是商业的发展方向。操作系统上的进程应该是策略,或者说是机器人。这样的未来也让我深深的焦虑过:它可能让人失去工作,让连接变得扁平,焦虑散播在加速——这些问题都需要解决,而解决需要时间、需要探索。</p>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div style="float: left">
|
||
<a href="/专栏/重学操作系统-完/39 Linux 架构优秀在哪里.md.html">上一页</a>
|
||
</div>
|
||
<div style="float: right">
|
||
<a href="/专栏/重学操作系统-完/40 (1)加餐 练习题详解(八).md.html">下一页</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
|
||
</div>
|
||
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"70997db43d983cfa","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
|
||
</body>
|
||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag() {
|
||
dataLayer.push(arguments);
|
||
}
|
||
gtag('js', new Date());
|
||
gtag('config', 'G-NPSEEVD756');
|
||
var path = window.location.pathname
|
||
var cookie = getCookie("lastPath");
|
||
console.log(path)
|
||
if (path.replace("/", "") === "") {
|
||
if (cookie.replace("/", "") !== "") {
|
||
console.log(cookie)
|
||
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
|
||
}
|
||
} else {
|
||
setCookie("lastPath", path)
|
||
}
|
||
function setCookie(cname, cvalue) {
|
||
var d = new Date();
|
||
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
|
||
var expires = "expires=" + d.toGMTString();
|
||
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
|
||
}
|
||
function getCookie(cname) {
|
||
var name = cname + "=";
|
||
var ca = document.cookie.split(';');
|
||
for (var i = 0; i < ca.length; i++) {
|
||
var c = ca[i].trim();
|
||
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
|
||
}
|
||
return "";
|
||
}
|
||
</script>
|
||
</html>
|