|
@@ -218,12 +218,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|
|
</ul></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#上线">上线</a><ul>
|
|
|
-<li><a href="#运行环境">运行环境</a><ul>
|
|
|
+<li><a href="#隔离与运行环境">隔离与运行环境</a><ul>
|
|
|
<li><a href="#服务器虚拟化虚拟机">服务器虚拟化:虚拟机</a></li>
|
|
|
<li><a href="#容器虚拟化docker">容器虚拟化:Docker</a></li>
|
|
|
<li><a href="#servlet容器">Servlet容器</a></li>
|
|
|
<li><a href="#语言运行环境">语言运行环境</a></li>
|
|
|
<li><a href="#语言虚拟机">语言虚拟机</a></li>
|
|
|
+<li><a href="#dsl">DSL</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#lnmp架构">LNMP架构</a><ul>
|
|
|
<li><a href="#linux">Linux</a></li>
|
|
@@ -2540,7 +2541,7 @@ System.<span class="fu">out</span>.<span class="fu">println</span>(<span class="
|
|
|
<p>作为一个在敏捷团队里工作的开发人员,初次意识到在国内大部分的开发人员是不写测试的时候,我还是有点诧异。</p>
|
|
|
<p>尽管没有写测试可以在初期走得很快,但是在后期就会遇到一堆麻烦事。传统的思维下,我们会认为一个人会在一家公司工作很久。而这件事在最近几年里变化得特别快,特别是在信息技术高速发展的今天。人们可以从不同的地方得到哪里缺人,从一个地方到另外一个地方也变得异常的快,这就意味着人员流动是常态。</p>
|
|
|
<p>而代码尽管还在,但是却会随着人员流动而出现更多的问题。这时如果代码是有有效的测试,那么则可以帮助系统更好地被理解。</p>
|
|
|
-<h2 id="运行环境">运行环境</h2>
|
|
|
+<h2 id="隔离与运行环境">隔离与运行环境</h2>
|
|
|
<p>为了将我们的应用部署到服务器上,我们需要为其配置一个运行环境。从底层到顶层有这样的运行环境及容器:</p>
|
|
|
<ol type="1">
|
|
|
<li>虚拟机</li>
|
|
@@ -2624,6 +2625,13 @@ System.<span class="fu">out</span>.<span class="fu">println</span>(<span class="
|
|
|
<img src="chapters/chapter4/jython-arch.jpg" alt="Jython" /><figcaption>Jython</figcaption>
|
|
|
</figure>
|
|
|
<p>其底层是基于JVM,而编写时则是用Python语言,并且他可以使用Java的模块来编程。</p>
|
|
|
+<p>常见拥有同样架构的工具,还有MySQL,如下图是所示的是MySQL的架构图:</p>
|
|
|
+<figure>
|
|
|
+<img src="chapters/chapter4/mysql-architecture.png" alt="MySQL" /><figcaption>MySQL</figcaption>
|
|
|
+</figure>
|
|
|
+<p>MySQL在最顶层提供了一个名为SQL的查询语言,这个查询语言只能用于查询数据库,然而它却是一种更高级的用法 。它不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言,即领域特定语言。</p>
|
|
|
+<h3 id="dsl">DSL</h3>
|
|
|
+<p>作为讨论隔离环境的一部分,我们只看外部DSL。</p>
|
|
|
<h2 id="lnmp架构">LNMP架构</h2>
|
|
|
<blockquote>
|
|
|
<p>LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。</p>
|