|
@@ -246,7 +246,12 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|
|
<li><a href="#运行机制">运行机制</a></li>
|
|
|
<li><a href="#功能开关">功能开关</a></li>
|
|
|
</ul></li>
|
|
|
-<li><a href="#自动化部署">自动化部署</a></li>
|
|
|
+<li><a href="#自动化部署">自动化部署</a><ul>
|
|
|
+<li><a href="#获取源码依赖">获取源码、依赖</a></li>
|
|
|
+<li><a href="#构建软件包">构建软件包</a></li>
|
|
|
+<li><a href="#生成上传安装包">生成、上传安装包</a></li>
|
|
|
+<li><a href="#目标平台安装配置">目标平台安装/配置</a></li>
|
|
|
+</ul></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#数据分析">数据分析</a><ul>
|
|
|
<li><a href="#数据分析-1">数据分析</a><ul>
|
|
@@ -2795,16 +2800,23 @@ System.<span class="fu">out</span>.<span class="fu">println</span>(<span class="
|
|
|
<p>这是一种很实用,而且很有趣的技术。</p>
|
|
|
<p>参考书籍:<strong>《配置管理最佳实践》</strong></p>
|
|
|
<h2 id="自动化部署">自动化部署</h2>
|
|
|
+<p>优化我们开发流程有一个很重要的步骤就是:让部署自动化。通过部署自动化,我们可以大大缩减我们的开发周期,加快软件交付流程。下图是一个自动化部署的流程图:</p>
|
|
|
<figure>
|
|
|
<img src="chapters/chapter4/auto-deployment.png" alt="自动化部署" /><figcaption>自动化部署</figcaption>
|
|
|
</figure>
|
|
|
+<p>从下图中我们可以得到下面的五个步骤:</p>
|
|
|
<ul>
|
|
|
<li>获取源码</li>
|
|
|
<li>获取依赖</li>
|
|
|
<li>构建软件包</li>
|
|
|
-<li>生成/上传RPM包</li>
|
|
|
+<li>生成/上传安装包</li>
|
|
|
<li>目标平台安装/配置</li>
|
|
|
</ul>
|
|
|
+<p>这个过程可能和之前的Web项目构建过程差不多,然而却多了好几步。</p>
|
|
|
+<h3 id="获取源码依赖">获取源码、依赖</h3>
|
|
|
+<h3 id="构建软件包">构建软件包</h3>
|
|
|
+<h3 id="生成上传安装包">生成、上传安装包</h3>
|
|
|
+<h3 id="目标平台安装配置">目标平台安装/配置</h3>
|
|
|
<h1 id="数据分析">数据分析</h1>
|
|
|
<p>有时候,对于我们的决定只要有一点点的数据支持就够了。也就是一点点的变化,可能就决定了我们产品的好坏。我们可能会因此而作出一些些改变,这些改变可能会让我们打败巨头。</p>
|
|
|
<p>这一点和Growth的构建过程也很相像,在最开始的时候我只是想制定一个成长路线。而后,我发现这好像是一个不错的idea,我就开始去构建这个idea。于是它变成了Growth,这时候我需要依靠什么去分析用户喜欢的功能呢?我没有那么多的精力去和那么多的人沟通,也不能去和那么多的人沟通。</p>
|