设计模式 模式golang

10 10|法则四:架构设计中怎么判断和利用技术趋势?

你好,我是郭东白。 上节课我们讲了为什么要顺应技术的生命周期。但是“往者不可谏,来者犹可追”,我们就不能抓住一个技术萌芽和发展的机会吗?今天我们就来探讨一下这个问题。 技术未来的趋势,谁主沉浮? 你有没有想过,到底是谁决定技术的未来呢?其实大多数人都不决定技术的未来,哪怕是雷军,他也在思考该怎么顺势 ......
架构 法则 趋势 技术 10

12 12|法则五:如何提升一个架构设计的外部适应性?

你好,我是郭东白。 上节课我们讲了外部适应性这个概念,也强调了架构师的职责是通过架构活动为企业不断注入外部适应性,从而帮助企业更好地实现它的战略意图。 那么该怎么注入呢? 上节课在讲影响技术体系外部适应性的因素这部分,我们提到了挑战主要来自三个方面:企业的内部压力、企业的外部环境和企业的组织结构。这 ......
适应性 架构 法则 12

工厂方法模式(Factory Method)

工厂方法模式 模式动机 与简单工厂模式相比新加了抽象工厂接口 模式定义 工厂方法模式(Factory Method Pattern)简称工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。 在工厂方法模 ......
工厂 Factory 模式 方法 Method

7 07|法则三:架构师如何找到自己的商业模式?

你好,我是郭东白,今天我们来聊聊架构活动中对商业价值的考量。 今天我们要讲的是架构师的第三个生存法则:作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等等,都是非常有限的。但架构活动就是要在这些 ......
架构 法则 模式 商业

golang推荐的命名规范

二 golang推荐的命名规范 很少见人总结一些命名规范,也可能是笔者孤陋寡闻, 作为一个两年的golang 开发者, 我根据很多知名的项目,如 moby, kubernetess 等总结了一些常见的命名规范。 命名规范可以使得代码更容易与阅读, 更少的出现错误。 文件命名规范 由于文件跟包无任何关 ......
golang

23 21 | 网约车系统重构:如何用 DDD 重构网约车系统设计?

你好,我是李智慧。 软件开发是一个过程,这个过程中相关方对软件系统的认知会不断改变。当系统现状和大家的认知有严重冲突的时候,不重构系统就难以继续开发下去。此外,在持续的需求迭代过程中,代码本身会逐渐腐坏,变得僵硬、脆弱、难以维护,需求开发周期越来越长,bug却越来越多,系统也必须要进行重构。 我们在 ......
车系 DDD 23 21

【SpringCloud】 Eureka 单机模式

#系统配置信息 springboot版本:2.1.6.RELEASE jdk:1.8 系统:Windows10 ##工程结构 父工程 halo-cloud-parent 子工程<注册中心> halo-cloud-server 子工程<服务消费者> halo-cloud-consumer 子工程<服务 ......
SpringCloud 单机 模式 Eureka

22 20 | 网约车系统设计:怎样设计一个日赚 5 亿的网约车系统?

你好,我是李智慧。 网约车的官方定义是:“以互联网技术为依托,构建服务平台,整合供需信息,使用符合条件的车辆和驾驶员,提供非巡游的预约出租汽车服务的经营活动。”通俗地说就是:利用互联网技术平台,将乘客的乘车信息发送给合适的司机,由司机完成接送乘客的服务。网约车包含专车、快车、拼车等多种形式。 中国目 ......
车系 22 20

24 22 | 大数据平台设计:如何用数据为用户创造价值?

特别说明:本文相关技术仅用于技术展示,具体实践中,数据收集和算法应用需要遵循国家个人信息保护法与信息安全法等有关法律制度。 你好,我是李智慧。 现在,业界普遍认为互联网创新已经进入下半场,依靠技术创新或者商业模式创新取得爆发性发展的机会越来越少。于是大家把目光转向精细化运营,主要手段就是依靠大数据技 ......
数据 价值 用户 平台 24

23-2期中测试获奖用户名单及参考答案:通达系统架构设计

你好,我是李智慧。今天我们来公布一下期中测试的获奖用户名单和对应的答案。 我们期中测试的要求是写一个同城快送业务的系统架构设计文档,这个测试主要考察的目标包括:使用UML进行系统建模的能力,用文档表达设计思路的能力,完整思考一个系统整体架构的能力,以及识别设计落地关键技术问题及对策的能力。 在这里, ......
架构 答案 名单 用户 系统

23-1 期中测试 | 动手写一篇你自己的设计文档吧!

你好,我是李智慧。 现在课程已经过半,我们已经学习了8个典型应用的架构设计,不知你对软件建模和设计文档掌握了多少,又对架构设计有了哪些思路呢? 回到我们这个专栏的目的:一个是了解典型的高并发系统架构是如何设计的;另一个就是熟悉架构设计文档的写法和设计建模的方法。 所以,我期望你学习每一节课,不是在复 ......
设计文档 文档 23

17 15 | 限流器设计:如何避免超预期的高并发压力压垮系统?

你好,我是李智慧。 在互联网高可用架构设计中,限流是一种经典的高可用架构模式。因为某些原因,大量用户突然访问我们的系统时,或者有黑客恶意用DoS(Denial of Service,拒绝服务)方式攻击我们的系统时,这种未曾预期的高并发访问对系统产生的负载压力可能会导致系统崩溃。 解决这种问题的一个主 ......
压力 系统 17 15

10 09 | 交友系统设计:哪种地理空间邻近算法更快?

你好,我是李智慧。 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展,移动社交软件已经成为了人们生活中必不可少的一部分。然而,熟人社交并不能完全满足年轻人的社交与情感需求,于是陌生人交友平台悄然兴起。 我们决定开发一款基于地理位置服务(LBS)的应用,为用户匹配邻近的、互相感兴趣的好友,应 ......
交友系统 算法 更快 系统 空间

11 10 | 搜索引擎设计:信息搜索怎么避免大海捞针?

你好,我是李智慧。 在04讲中,我们讨论了大型分布式网络爬虫的架构设计,但是网络爬虫只是从互联网获取信息,海量的互联网信息如何呈现给用户,还需要使用搜索引擎完成。因此,我们准备开发一个针对全网内容的搜索引擎,产品名称为“Bingoo”。 Bingoo的主要技术挑战包括: 针对爬虫获取的海量数据,如何 ......

12 11 | 反应式编程框架设计:如何使方法调用无阻塞等待?

你好,我是李智慧。 反应式编程本质上是一种异步编程方案,在多线程(协程)、异步方法调用、异步I/O访问等技术基础之上,提供了一整套与异步调用相匹配的编程模型,从而实现程序调用非阻塞、即时响应等特性,即开发出一个反应式的系统,以应对编程领域越来越高的并发处理需求。 反应式系统应该具备如下的4个特质。 ......
反应式 框架 方法 12 11

9 08 | 秒杀系统设计:你的系统可以应对万人抢购盛况吗?

你好,我是李智慧。 秒杀是电子商务应用常见的一种营销手段:将少量商品(常常只有一件)以极低的价格,在特定的时间点出售。比如,周日晚上8点整,开售1部1元钱的手机。 因为商品价格诱人,而且数量有限,所以用户趋之若鹜,在秒杀活动开始前涌入系统, 等到秒杀活动开始的一瞬间,点下购买按钮(在此之前购买按钮为 ......
系统 盛况 08

16 14 | 百科应用系统设计:机房被火烧了系统还能访问吗?

你好,我是李智慧。 百科知识应用网站是互联网应用中一个重要的类别。很多人上网是为了获取知识,而互联网上的信息良莠并存,相对说来,百科知识应用网站能为普通人提供较为可信的信息。因此,百科知识网站虽然功能单一、设计简单,但是依然撑起了互联网的一片天空:维基百科是全球访问量TOP10的网站,百度百科是百度 ......
系统 应用系统 机房 百科 16

7 06 | 短视频系统设计:如何支持三千万用户同时在线看视频?

你好,我是李智慧。 短视频(short video)通常时长在15分钟以内,主要是在移动智能终端上进行拍摄、美化编辑或加特效,并可以在网络社交平台上进行实时分享的一种新型视频形式。短视频具有时间短、信息承载量高等特点,更符合当下网民手机使用行为习惯,短视频的用户流量创造了巨大的商机。 我们准备开发一 ......
视频系统 视频 同时 用户 系统

6 05 | 网盘系统设计:万亿 GB 网盘如何实现秒传与限速

你好,我是李智慧。 网盘,又称云盘,是提供文件托管和文件上传、下载服务的网站(File hosting service)。人们通过网盘保管自己拍摄的照片、视频,通过网盘和他人共享文件,已经成为了一种习惯。我们准备开发一个自己的网盘应用系统,应用名称为“DBox”。 十几年前曾经有个段子,技术人员对老 ......
限速 系统 05 GB

5 04 | 网页爬虫设计:如何下载千亿级网页?

你好,我是李智慧。 在互联网早期,网络爬虫仅仅应用在搜索引擎中。随着大数据时代的到来,数据存储和计算越来越廉价和高效,越来越多的企业开始利用网络爬虫来获取外部数据。例如:获取政府公开数据以进行统计分析;获取公开资讯以进行舆情和热点追踪;获取竞争对手数据以进行产品和营销优化等等。 网络爬虫有时候也被称 ......
网页 爬虫 04

3 02 | 高并发架构设计方法:面对高并发,怎么对症下药?

你好,我是李智慧。 我们知道,“高并发”是现在系统架构设计的核心关键词。一个架构师如果设计、开发的系统不支持高并发,那简直不好意思跟同行讨论。但事实上,在架构设计领域,高并发的历史非常短暂,这一架构特性是随着互联网,特别是移动互联网的发展才逐渐变得重要起来的。 现在有很多大型互联网应用系统,其用户是 ......
对症下药 架构 方法 02

1 开篇词 | “附身”大厂架构师,身临其境设计高并发系统

你好,我是李智慧,目前担任同程旅行交通首席架构师。我曾在阿里巴巴和英特尔担任架构师,主要从事高并发系统架构和大数据相关产品的开发。我参与过alibaba.com和Apache Spark的架构设计与开发,也曾作为CTO领导团队经历了日订单从零到一百万的高并发技术挑战。 说来我也是你的老朋友了,因为我 ......
身临其境 开篇 架构 系统

我设计了个【方案】:比redis好10倍的kv库【一统kv】

基于ssd磁盘,此我设计了比redis更好的缓存方案。此方案:没有缓存击穿问题。没有缓存雪崩问题。没有缓存污染问题。没有热key问题。 不需要snap和aof。支持任何sql库,sql库不需要带有任何分布式功能。 ......
方案 redis

golang基础知识

一 golang基础知识 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种计算机编程语言语言。 设计初衷 Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程 ......
基础知识 基础 知识 golang

信息安全保护设计与实现

方案需求与目标 本方案包含病毒保护、VPN连接、防火墙搭建、身份验证系统实现和漏洞验证五个模块。其中病毒保护模块可以为系统提供实时保护,以防止计算机被安装上安装恶意软件。 该方案主要工作流程是首先扫描系统可能存在的安全风险,再通过黑白名单校验、病毒库特征码校验、云安全校验三种方式杀毒。VPN连接的建 ......
信息

医疗行业中台设计-前言

这几年一直从事医疗行业数据治理相关工作。深入了解了这个行业的现状,未来并不知道是啥样。虽然医疗行业教其他行业起步很晚,各种新技术近几年来在该行业应用场景层次不穷,医疗行业确实有很大的挖掘价值,专攻专精的精神在最近几年各种概念伴随这PPT影响下,开始飘了起来。 本人偏业务和实施,最近在整理之前做过的项 ......
前言 医疗 行业

工厂模式-抽象工厂模式

定义 抽象工厂是工厂方法的升级版,为相关或者相互依赖的对象提供一个统一的接口,而且无需指定他们的具体实现类。 UML类图 优缺点 优点 对产品族进行约束,封装性好 缺点 产品族扩展困难,添加一个产品需要修改抽象和具体工厂类,违背开闭原则。 代码: 1.Program.cs public class ......
工厂 模式

golang 解析处理word文档扩展包

github.com/unidoc/unioffice 该扩展包对word操作功能比较全,但为商业使用,注册后有100次的试用,具体使用就不详细说明了,具体可以看 https://github.com/unidoc/unioffice-examples github.com/carmel/gooxm ......
文档 golang word

Avalonia使用d:DataContext实现设计时预览

​ 在我们使用MVVM开发项目时,免不了要用到绑定,但是数据通过绑定获取的时候,就不能再预览器里看到效果了,只能调试起来才能看到,这样就很麻烦。 ​ 我们可以通过 d.DataContext 来解决,这个属性仅在设计时应用 DataContext。官网建议将此属性与 {x:Static} 指令结合使 ......
DataContext Avalonia

matlab程序设计,承接研究范围:综合能源系统优化调度,主从博弈,综合需求响应,碳交易机制,阶梯型碳交易

matlab程序设计,承接研究范围:综合能源系统优化调度,主从博弈,综合需求响应,碳交易机制,阶梯型碳交易机制,多时间尺度优化。ID:41100678701976813 ......
主从 阶梯 程序设计 机制 范围