摘要: 数据库的选择 所有的关系数据库都有一个模式(schema),模式是指数据库的逻辑设计,通俗地说,就是数据库表的定义。SQL在对数据库进行操作时,整个过程被称为一个事务。 关系数据库在完成数据操作时始终保持一致,而不会因为一些操作的错误或者先后顺序问题让某些请求读到一些过时或者不正确的数据。这一般也被 阅读全文
posted @ 2023-07-30 15:56 wtzhang 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 假如没有使用独立的数据库系统或者云数据库,而是将数据作为文件保存在服务器上活着直接暂存在内存中,那么当这个网站流量增长时,增加再多的服务器也没有用,因为关键数据只能来源于这一台本来的服务器,其他增加的服务器无法提供这个网站所需的服务。 网站的扩展性: 添加这个新功能,是否需要对已有代码或者架构进行大 阅读全文
posted @ 2023-07-30 15:27 wtzhang 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 我们也可以在试图阻止不可避免的故障上少花一点时间,而花更多时间去优雅地处理它。许多组织使用流程和控制来试图阻止故障的发生,但实际上很少花费心思想想如何更加容易地在第一时间从故障中恢复过来。 假设一切都会失败,会让你从不同的角度去思考如何解决问题。 通过让软件拥抱和引发故障,并构建系统来应对,这只是N 阅读全文
posted @ 2023-07-22 11:31 wtzhang 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 如果构建系统的组织更加松耦合(例如,由异地的团队组成),其所构建的系统则倾向于更加模块化,因此耦合度也越低。一个拥有许多服务的单个团队,对其管理的服务会倾向于更紧密地集成,而这种方式在分布式组织中是很难维护的。 所有权程度的增加会提高自治和交付速度。团队需要自己负责部署和维护应用程序,这会激励团队创 阅读全文
posted @ 2023-07-09 12:46 wtzhang 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 当谈到与我们系统交互的人和事时,身份验证和授权是核心概念。在安全领域中,身份验证是确认他是谁的过程。对于一个人,通常通过用户输入的用户名和密码来验证。我们认为只有用户本人才能够知道这些信息,因此输入这些信息的人一定是他。通常来说,当我们抽象地讨论进行身份验证的人或事时,我们称之为主体。 通过授权机制 阅读全文
posted @ 2023-07-09 11:09 wtzhang 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 首先,我们希望监控主机本身。CPU、内存等所有这些主机的数据都有用。我们想知道,系统健康的时候它们应该是什么样子的,这样当它们超出边界值时,就可以发出警告。 接下来,我们要查看服务器本身的日志。如果用户报告了一个错误,这些日志应该可以告诉我们,在何时何地发生了这个错误。 最后,我们可能还想要监控应用 阅读全文
posted @ 2023-07-06 22:30 wtzhang 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 单元测试通常只测试一个函数和方法调用。 单元测试对于代码重构非常重要,因为我们知道,如果不小心犯了错误,这些小范围的测试能很快做出提醒,这样我们就可以放心地随时调整代码。 运行端到端测试需要部署多个服务。显然,这种测试可以覆盖更大的范围,也让我们对系统的正常工作更有信心。另一方面,这种测试运行起来比 阅读全文
posted @ 2023-07-06 21:24 wtzhang 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1、现在大多数应用开发都采用面向对象的编程语言,由于兼容性问题,普遍对SQL数据模型存在抱怨:如果数据存储在关系表中,那么应用层代码中的对象与表、行和列的数据库模型之间需要一个笨拙的转换层。模型之间的脱离有时被称为阻抗失谐。 2、拥有地理区域和行业的标准化列表,并让用户从下拉列表或自动填充器中进行选 阅读全文
posted @ 2023-07-06 15:14 wtzhang 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 虽然可以把Java的JAR包做成可执行文件,并在其中运行一个嵌入式的HTTP进程,但对于类似于Ruby和Python这样的应用程序来说,你需要使用一个运行在Apache或者Nginx中的进程管理器。 基于容器的虚拟化,好处不仅仅是避免了hypervisor的使用,还可以加快反馈的速度,因为相比完整的 阅读全文
posted @ 2023-07-02 14:42 wtzhang 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 限界上下文就是一个非常好的接缝,因为它的定义就是组织内高内聚和低耦合的边界。 数据库是所有杂乱依赖的源头 打破外键关系,把外键约束从数据库转移到代码中实现。这也就意味着,我们可能需要实现跨服务的一致性检查,或者周期性触发清理数据的任务。 表结构分离后,对于原先的某个动作而言,对数据库的访问次数可能会 阅读全文
posted @ 2023-07-01 18:37 wtzhang 阅读(8) 评论(0) 推荐(0) 编辑