ARTS 打卡 第 7 周
ARTS简介
Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。
Algorithm
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
输入:
给定 1->2->3->4, 你应该返回 2->1->4->3.
解题思路:
这到题中有几点需要注意,链表是单链表,而且交换的是节点,而不是值。
对于单链表,需要注意的是,记录节点的前一个节点的位置
Review
学习-微服务架构模式系列,网站地址是:https://microservices.io
微服务架构-Pattern: Database per service
这篇文章的主要介绍了微服务架构下如何进行持久化:一个服务一个数据库
强制要求:
松耦合
某些业务跨多个服务
某些业务查询涉及的数据跨多个服务
某些查询需要聚合多个服务的数据
数据系统能够很容易复制和共享,以扩大规模
不同的服务有不同的数据存储要求
解决方法:
每个服务拥有自己私有的数据,每个模块都拥有自己的数据边界,服务之间的数据交互使用API。
具体实现:
Private-tables-per-service
Schema-per-service
Database-server-per-service
好处
松耦合
使用适合每个服务的数据库
缺点
实现跨服务事物比较复杂,比如Saga
跨服务查询比较复杂
解决不足的方式
API聚合 在直接聚合书库之前,通过调用不同服务的API,聚合结果
CQRS 视图订阅其他服务,当服务有数据改变时,将其分发数据
Tips
记录我对于Linux的学习,文件相关的命令:
ps:”~” 表示为 home 目录,”.” 则是表示目前所在的目录,”..” 则表示当前目录的上一层目录
-h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数
创建文件的相关方法
touch 常用于将每个文件的访问和修改时间更新为当前时间,不过当直接跟一个不存在的文件名时,会创建一个空文件,大小为0
>
通常用于重定向一个命令的输出到一个新文件中,如果之前没有命令,则会创建一个新文件,大小为0,比如可以用echo,print等命令结合>
将输出重定向到一个新文件
ps:如果你不是想创建新的,而是想追加内容到已有的文件,那么可以使用
>>
vi/vim Vi是Unix及Linux系统下标准的编辑器,Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。可以使用vi/vim创建新文件。
Share
分享最近对计算机基础的复习,这次分享的是程序的机器级表示 - 程序的编码,可能会有不足之处,之后会根据理解继续修改。
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/e8322d9c834437804e29e1165】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论