摘要:
为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别 利用Docker搭建主从服务器 首先拉取docker镜像,我们这里使 阅读全文
摘要:
集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C 代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,给我们撸码提供了极大的便利。正是因为这种与生俱来的便利性,使得我们对集合既熟悉又陌生。很多同学可能一直还是停留在使用的层面上,那么今天我们一 阅读全文
摘要:
我们都知道,ASP.Net运行时环境中处理请求是通过一系列对象来完成的,包含HttpApplication,HttpModule, HttpHandler。之所以将这三个对象称之为ASP.NET三剑客是因为它们简直不要太重要,完全是ASP.NET界的中流砥柱,责任担当啊。了解它们之前我们得先知道AS 阅读全文
摘要:
缓存是现在系统中必不可少的模块,并且已经成为了高并发高性能架构的一个关键组件。这篇博客我们来分析一下使用缓存的正确姿势。 缓存能解决的问题 提升性能 绝大多数情况下,select 是出现性能问题最大的地方。一方面,select 会有很多像 join、group、order、like 等这样丰富的语义 阅读全文
摘要:
模块化原则倡导利用集中和分解等手法创建高内聚、低耦合的抽象。 为了理解模块化的含义及其很重要的原因,来看看一本书的极端情况。假设一本书像讲一个长故事一样阐述其中的内容,中间没有任何停顿,也没有章节。试问面对这样的图书,读者将作何反应呢?我估计心中一定有千万只草泥马在崩腾吧。如果这本书根据内容分为不同 阅读全文
摘要:
大家在使用网盘的时候,一定忍受不了限速下载的速度。今天给大家分享一个开源的网盘下载项目BaiduPCS Go。Go语言编写,仿 Linux shell 文件处理命令的百度网盘命令行客户端。多平台支持, 支持 Windows, macOS, linux, 移动设备等。 项目下载地址,根据自己的操作系统 阅读全文
摘要:
不必要的抽象 在软件设计中引入实际上不需要的抽象时,将导致这种坏味。 为什么不可以有不必要的抽象? 抽象实体应该具有 单一而重要 的职责。如果创建的没必要或是只是为了方便,它们承担的职责微不足道,甚至没有承担任何职责,这违反了抽象原则。 不必要的抽象的潜在原因 使用的是面向对象语言,思维却是过程型编 阅读全文
摘要:
半个月之前,和大学篮球队的兄弟们约定一起回一次母校。大家毕业之后各奔东西,天南海北,想要再聚一次真的很不容易。昨天终于实现了。看着曾经并肩作战了四年的兄弟们,心中思绪万千,努力回忆着大学里的那些人和事。晚上和大家伙吃了饭道别已经快0点了,打车回高新。雨后的空气格外清新,景色也别有一番风味。我借着酒劲 阅读全文
摘要:
不完整的抽象 抽象未支持所有互补或相关的方法时,将导致这种坏味。 为什么要有完整的抽象? 一种重要的抽象实现手法是创建内聚而完整的抽象。抽象未支持相关的方法时,可能会影响抽象的内聚性和完整性。如果抽象只支持部分相关的方法,其使用者就可能不得不自己去实现其他的功能。客户程序可能尝试直接访问抽象的内部实 阅读全文
摘要:
命令式抽象 这种坏味是由操作转换为类引起的,表现为类中只定义了一个方法,有时候类名和方法名相同。这种坏味还常常表现为方法操作的数据位于另一个类中。 为什么不能命令式抽象? 面向对象的基本原则是,识别真实世界中的事物,并使用抽象来表示它们。在解决方案域中,必须将问题域的对象表示出来,为此可采用 映射域 阅读全文