左耳听风ARTS——第 7 周

每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)

Algorithm

归并排序

归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为 O ( n l o g 2 n ) O(nlog_2n) O(nlog2n)1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。

使用归并排序为一列数字进行排序的过程
左耳听风ARTS——第 7 周_第1张图片
——维基百科

python代码实现

def merge_sort(collention):
    def merge(left,right):
        result = []
        while left and right:
            result.append(left.pop(0) if left[0] <= right[0] else right.pop(0))
        return result + left + right
    if len(collention) <= 1:
        return collention
    mid = len(collention) // 2
    return merge(merge_sort(collention[:mid]), merge_sort(collention[mid:]))

在我部署到服务器上的 code-server 进行了编码测试
左耳听风ARTS——第 7 周_第2张图片

Review

《讨论Docker的优点和缺点》
Discussing Docker. Pros and Cons.
文章讨论了 Docker 的优点和缺点。
优点:

  1. 对于开发团队:可以完全控制应用程序的执行环境;降低风险。
  2. 对于运营团队:减少维护应用程序环境的工作量;减少在多台服务器上维护一致环境的出错率;轻松更新现有的应用程序和环境。
  3. 与其它工具 (如Chef或Puppet等工具) 相比:
    3.1 当我们想要实现持续交付时,我们需要为交付管道的每个阶段设置多个环境实例。为此目的使用物理机器是不切实际的。
    3.2 应用程序的安装和必要的环境变得简单,因为我们总是从空VM开始(实际上Docker不会启动真正的VM,见下文)。可以完全删除旧VM,并设置新VM。
  4. 轻量级虚拟化。启动Docker容器比启动VM要快得多,因为不必启动客户机操作系统。这减少了开销。

缺点:

  1. 由于附加层而增加了复杂性。这不仅影响部署,还影响开发和构建。
  2. 管理大量容器具有挑战性 - 特别是在集群容器方面。
  3. 容器共享相同的内核,因此与真实的VM相比不那么孤立。内核中的错误会影响每个容器。
  4. Docker基于Linux Containers(LXC),这是一种Linux技术。因此,我们无法在其他系统上运行Docker,而我们的容器始终是Linux系统。
  5. 引入Docker可能是一项艰巨而耗时的任务。

Tip

最近了解了 RESTful API 接口设计规范,找了一篇比较详细的文章,转到我的博客记录了下来。
详见RESTful API接口设计规范

Share

这里向大家分享一款 VS code 在线编辑工具,为此我写了一篇博客VS code在线编辑工具——code-serve 在云服务器上的安装和使用, 大家可以点击进行浏览。

你可能感兴趣的:(左耳听风)