CodeGym /课程 /Python SELF ZH /产品创建

产品创建

Python SELF ZH
第 64 级 , 课程 0
可用

1.1 「人已经不是天生的,他们是被培育出来的」

那么,你还在这里的话,我们就继续吧。「我会带你看看兔子洞有多深」 ©

我来讲讲产品开发的过程吧——我们会从最高的全局视角深入到最底层——写代码。我想,你会有一些有趣的发现……

现代 IT 产品已经不再是从头写起的了,它们是被创造出来的。它们是由库、框架、第三方程序和产品的各个部分组合而成的,有时还会使用远程的付费或免费的网络服务。

现代产品——就是一个技术、服务、解决方案和过程的动物园。一部分工作由人完成,一部分实现自动化,剩下的 90% 都是由数据中心的云服务完成的。世界已经不同以往了。

但你首先会注意到的是持续的变化。你不再写程序,你是在对它们进行改动

1.2 持续的变化

你会上班,加入一个由 20 人组成的团队,他们已经为这个产品工作了 5 年。现在用户可以使用第 7 版。而你的任务就是对这个产品进行改动。改动不能太大,以免吓跑现有的活跃用户。

这并不容易,因为产品已经在运行。它有用户,他们在付费。所以,你绝不能弄坏任何东西。对已运行产品的更改要比新产品的更改困难好几倍。为此,有专门的标准、迁移协议和工具。想起一个笑话:

两个老朋友见面:一个成为了机械师,另一个成了外科医生……每个人都有自己的生活、烦恼、快乐……他们互相谈论一切,然后谈到工资。机械师说:「我每月赚 30k,很满意,你呢?」心脏外科医生说:「我每次手术大约 100k……」。机械师感兴趣地问:「奇怪,为什么差距这么大?我们做的事情差不多嘛——更换零件」。外科医生对他说:「好吧,去车里,发动引擎……」机械师发动了汽车,外科医生打开引擎盖,对机械师说:「你看,发动机在工作吧?换一个试试!:)」

即便发生奇迹,你的团队整整一年从零开始写产品,只有在这之后才发布产品,你知道接下来会发生什么吗?

如果你的产品成功了,产品拥有者会想要进行开发。发布新版本,添加一些功能。或者至少做几个实验。你知道这之后会发生什么吗?改动。

1.3 产品的价值

从现代开发的角度来看,只有已经发布的代码和用户正在使用的功能才有价值。如果你写了代码,它存储在某处,运行着,但没人用,那它的价值几乎为零。因此,所有代码都应尽早发布到 production。

你的代码应该经过以下阶段:

  • 你写了它并确保它可以运行。
  • 你的 TeamLead 审查了它并合并到 Git 的主分支。
  • 构建测试表明你没有弄坏任何重要的东西。
  • 集成测试表明产品按需工作。
  • 测试员检查了代码并同意发布。
  • 然后需要构建产品的新版本并在服务器上发布。
  • 需要将新版本的产品打包到 Docker Images 中并发布。
  • 可能需要运行迁移脚本并更改数据库和/或其他第三方解决方案。
  • 然后需要收集服务器上的日志,以确保一切正常运行。
  • 若出现意外情况,你弄坏了什么,需要回滚构建,恢复数据库的先前状态,且不失去用户在与不稳定版本产品互动时所做的操作。

在大多数公司,这些任务已经解决:建立了新的流程,聘请了专门人员,制定了特殊的安全协议和质量控制标准。

公司越大,从编写代码到代码上线 production 并成为价值——开始对人们有用的时间就越少。

在大多数公司,代码需两周才能完成这个过程。但是也有公司每周甚至每天都在发布。特别的高手们——一天发布几次。

已写的代码并不值钱。只有在生产环境中运行的代码才有价值。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION