自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 项目-商城首页

#注意本博客博文只是供自己参考之用,无需评论Nav-Header组件创建scss文件config.scss 样式规范表/* 样式规范表*/$min-width:1226px; //容器安全区域宽度// 常规字体大小设置$fontA: 80px; //产品站大标题$fontB: 38px; //产品站标题$fontC: 28px; //导航标题$fontD: 26px; //产品站副标题$fontE: 24px;

2021-02-22 23:07:41 197

原创 项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7kMEOSPe-1613950628409)(img/1.png)]目录结构设置引入基本插件cnpm i vue-lazyload element-ui node-sass sass-loader vue-awesome-swiper vue-axios vue-cookie --save-dev封装路由TipsCtrl+D 可以不停的定位下一个Storage的封装面试题Cookie 、localSto

2021-02-22 07:38:30 155

原创 内功系列-工厂模式(待更新)

Ctrl+Alt+B 查看接口的实现类Ctrl+Shift+Alt+U 查看类图简单工厂模式工厂方法模式抽象工厂模式(不符合开闭原则)

2021-02-02 07:29:20 162

原创 前端基础知识与命令

名词解释Node.js:简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。npm:Nodejs下的包管理器。命令流关于NPM先安装node.js,安装完成后在cmd中输入:node -v 查看版本npm的本地仓库跑在系统盘c盘的用户目录了

2021-01-27 08:19:54 306

原创 26丨 搜索引擎架构:如何瞬间完成海量数据检索?

我们在使用搜索引擎的时候,搜索结果页面会展示搜索到的结果数目以及花费时间。比如用Google 搜索中文“后端技术”这个词,会显示找到约 6.7 亿条结果,用时 0.45 秒。我们知道 Google 收录了全世界几乎所有的公开网页,这是一个非常庞大的数目,那么Google 是如何做到在如此短的时间内完成了如此庞大的数据搜索呢?搜索引擎倒排索引数据的搜索与查找技术是计算机软件的核心算法,这方面已有非常多的技术和实践。而对于搜索引擎来说,要对海量文档进行快速内容检索,主要使用的是倒排索引技术。像 Goo

2021-01-21 08:32:45 1650

原创 25丨 数据存储架构:如何改善系统的数据存储能力?

在整个互联网系统架构中,承受着最大处理压力,最难以被伸缩的,就是数据存储部分。原因主要有两方面。一方面,数据存储需要使用硬盘,而硬盘的处理速度要比其他几种计算资源,比如 CPU、内存、网卡都要慢一些;另一方面,数据是公司最重要的资产,公司需要保证数据的高可用以及一致性,非功能性约束更多一些。因此数据存储通常都是互联网应用的瓶颈。在高并发的情况下,最容易出现性能问题的就是数据存储。目前用来改善数据存储能力的主要手段包括:数据库主从复制、数据库分片和NoSQL 数据库。数据库主从复制我们以 MySQL 为

2021-01-21 08:31:17 964

原创 24丨 负载均衡架构:如何用10行代码实现一个负载均衡服务?

负载均衡是互联网系统架构中必不可少的一个技术。通过负载均衡,可以将高并发的用户请求分发到多台应用服务器组成的一个服务器集群上,利用更多的服务器资源处理高并发下的计算压力。那么负载均衡是如何实现的,如何将不同的请求分发到不同的服务器上呢?早期,实现负载均衡需要使用专门的负载均衡硬件设备,这些硬件通常比较昂贵。随着互联网的普及,越来越多的企业需要部署自己的互联网应用系统,而这些专用的负载均衡硬件对他们来说成本太高,于是出现了各种通过软件实现负载均衡的技术方案。HTTP 重定向负载均衡HTTP 重定向负载

2021-01-21 08:28:27 452

原创 23丨 异步架构:如何避免互相依赖的系统间耦合?

上一篇文章中我们讨论过,使用缓存架构可以减少不必要的计算,快速响应用户请求。但是缓存只能改善系统的读操作性能,也就是在读取数据的时候,可以不从数据源中读取,而是通过缓存读取,以加速数据读取速度。但是对于写操作,缓存是无能为力的。虽然缓存的写入速度也很快,但是通常情况下,我们不能把用户提交的数据直接写入缓存中,因为缓存通常被认为是一种不可靠的存储。缓存通常无法保证数据的持久性和一致性等这些数据存储的基本要求,因此数据写操作还是需要写入到 RDBMS 或者 NoSQL 数据库中,但是数据库操作通常都比较慢。

2021-01-20 07:50:54 734 1

原创 22丨缓存架构:如何减少不必要的计算?

上一篇我们讲到,互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢?有,解决的核心就是缓存。所谓缓存,就是将需要多次读取的数据暂存起来,这样在后面,应用程序需要多次读取的时候,就不必从数据源

2021-01-20 07:49:25 152

原创 21丨分布式架构:如何应对高并发的用户请求

互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。以新浪微博为例,新浪微博最开始只有两个工程师,一个前端,一个后端,两个人开发了一个星期就把新浪微博开发出来了。现在许多年过去了,新浪微博的技术团队有上千人,这些人要应对的技术挑战,一方面来自于更多更复杂的功能,一方面来自于随着用户量的增加而带来的

2021-01-20 07:47:38 550

原创 20丨领域驱动设计:35岁的程序员应该写什么样的代码?

我在上一家公司工作的头一年,坐在我对面的同事负责开发一个公司统一的运维系统。他对这个系统经过谨慎的调研和认真的思考,花费了半年多的时间开发,终于开发完了。然后邀请各个部门的相关同事做发布评审,如果大家没什么意见就发布上线,全公司范围统一推广使用。结果在这个发布会上,几乎所有部门的同事都提出了不同的意见:虽然这个功能是我们需要的,但是那个特性却是不能接受的,我们以往不是这样的……最糟糕的是,不同部门的这个功能和那个特性又几乎不相同。最终讨论的结果是,这个系统不发布推广,需要重新设计。这个同事又花了几个月

2021-01-20 07:46:02 212

原创 19丨组件设计原则:组件的边界在哪里?

软件的复杂度和它的规模成指数关系,一个复杂度为 100 的软件系统,如果能拆分成两个互不相关、同等规模的子系统,那么每个子系统的复杂度应该是 25,而不是 50。软件开发这个行业很久之前就形成了一个共识,应该将复杂的软件系统进行拆分,拆成多个更低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。也就是说,软件需要进行模块化、组件化设计。事实上,早在打孔纸带编程时代,程序员们就开始尝试进行软件的组件化设计。那些相对独立,可以被复用的程序被打在纸带卡片上,放在一个盒子里。当某个程序需要复用这个程序组件的时

2021-01-20 07:43:53 751

原创 18丨反应式编程框架设计:如何使程序调用不阻塞等待,立即响应?

我们在之前就讨论了为什么在高并发的情况下,程序会崩溃。主要原因是,在高并发的情况下,有大量用户请求需要程序计算处理,而目前的处理方式是,为每个用户请求分配一个线程,当程序内部因为访问数据库等原因造成线程阻塞时,线程无法释放去处理其他请求,这样就会造成请求堆积,不断消耗资源,最终导致程序崩溃。这是传统的 Web 应用程序运行期的线程特性。对于一个高并发的应用系统来说,总是同时有很多个用户请求到达系统的 Web 容器。Web 容器为每个请求分配一个线程进行处理,线程在处理过程中,如果遇到访问数据库或者远程服

2021-01-18 23:25:15 177

原创 Vue总结

名词解释Vue.js:是目前最火的一个前端框架,React是最流行的一个前端框架。在Vue中,一个核心的概念,就是让用户不再操作DOM元素,解放了用户的双手,让程序员可以更多的时间去关注业务逻辑;框架和库框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。比如 node 中的 express;库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。Vue组件: 组件的出现,就是为了拆分Vue实例

2021-01-18 22:49:25 248

原创 ES6语法

Generator函数Generator 函数是 ES6 提供的 一种异步编程解决方案,语法行为与传统函数完全不同 。Generator函数有两个特征: 一是 function命令与函数名 之间有一个星号: 二是 函数体内部使用 yield语句定义不同的内部状态。用法:<script> function* hello () { yield "hello"; yield "world"; return "done"; }

2021-01-10 23:31:03 133

原创 ReactJS入门

前端开发的演变到目前为止,前端的开发经历了四个阶段,目前处于第四个阶段。这四个阶段分别是:阶段一:静态页面阶段在第一个阶段中前端页面都是静态的,所有前端代码和前端数据都是后端生成的。前端只是纯粹的展示功能,js脚本的作用只是增加一些特殊效果,比如那时很流行用脚本控制页面上飞来飞去的广告 。那时的网站开发,采用的是后端 MVC 模式。Model(模型层):提供/保存数据Controller(控制层):数据处理,实现业务逻辑View(视图层):展示数据,提供用户界面前端只是后端 MVC

2021-01-10 23:26:50 200

原创 17丨设计模式应用:编程框架中的设计模式

在绝大多数情况下,我们开发应用程序的时候,并不是从头开发的。比如,我们用 Java 开发一个 Web 应用,并不需要自己写代码监听 HTTP 80 端口;不需要处理网络传输的二进制 HTTP 数据包;不需要亲自为每个用户请求分配一个处理线程,而是直接编写一个 Servlet,得到一个HttpRequest 对象进行处理就可以了。我们甚至不需要从这个 HttpRequest 对象中获取请求参数,通过 Controller 就可以直接得到一个由请求参数构造的对象。我们写代码的时候,只需要关注自己的业务逻辑就可

2021-01-06 21:12:47 153

原创 16丨设计模式基础:不会灵活应用设计模式,你就没有掌握面向对象编程

我在面试的时候,喜欢问一个问题:“你比较熟悉哪些设计模式?”得到的回答很多时候是“单例”和“工厂”。老实说,这个回答不能让人满意。因为在我看来,单例和工厂固然是两种经典的设计模式,但是,这些创建类的设计模式并不能代表设计模式的精髓。设计模式的精髓在于对面向对象编程特性之一,即多态的灵活应用,而多态正是面向对象编程的本质所在面向对象编程的本质是多态我在面试时,有时候会问“什么是对象”,得到的回答各种各样:“对象是数据与方法的组合。”“对象是领域的抽象。”“一切都是对象。”“对象的特性就是封装、继

2021-01-06 08:37:05 299

原创 15丨软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法?

我在阿里巴巴工作期间,曾经负责开发一个统一缓存服务。这个服务要求能够根据远程配置中心的配置信息,在运行期动态更改缓存的配置,可能是将本地缓存更改为远程缓存,也可能是更改远程缓存服务器集群的 IP 地址列表,进而改变应用程序使用的缓存服务。这就要求缓存服务的客户端 SDK 必须支持运行期配置更新,而配置更新又会直接影响缓存数据的操作,于是就设计出这样一个缓存服务 Client 类。这个缓存服务 Client 类的方法主要包含两个部分:一部分是缓存服务方法,get()、put()、delete()

2021-01-05 07:32:16 214

原创 08丨软件设计的方法论:软件为什么要建模?

我们开发的绝大多数软件都是用来解决现实问题的。通过计算机软件,可以用高效、自动化的方式去解决现实中低效的、手工的业务过程。因此软件开发的本质就是在计算机的虚拟空间中根据现实需求创建一个新世界。阿里的工程师在创造一个“500 平方公里”的交易市场,百度的工程师在创造一个“一万层楼”的图书馆,新浪微博的工程师在创造“两亿份报纸”,腾讯的工程师在创造“数 10 亿个聊天茶室和棋牌室”。现实世界纷繁复杂,庞大的软件系统也需要很多人合作,开发出众多的模块和代码。如何使软件系统准确反映现实世界的业务逻辑和

2021-01-04 07:36:53 2032 3

转载 2020-11-24

软件可维护性理论简介1.基本定义和说明我们将一个软件系统可被修改的难易程度称为它的可维护性。一个软件系统的可维护性由其源代码的多个属性决定。可维护性(一个软件系统可被修改的难易程度)与性能(一个软件系统执行的时空开销,这里往往指得到输出的快慢)是软件质量的两个重要特征。(根据国际标准,软件质量可以划分为八个特征:可维护性、功能可适性、性能效率、兼容性、可使用性、可靠性、安全性、可移植性。)2.软件维护的四种方式纠正性维护:发现并修复Bug。适应性维护:系统需要去适应操作环境的改变——例如,操作

2020-11-24 23:42:18 357

原创 浅薄-1

“人的大脑是高度可塑的” , 当然, 这种可塑性, 人自身是察觉不到的。 不过今天, 你终于“察觉” 到了: 你时常会觉得耳鸣、 目涩, 注意力无法集中; 你懒于记忆, 习惯于张口就问; 你不喜欢冗长的陈述和表白, 喜欢直奔主题和搜寻答案。加州大学洛杉矶分校医学院心理学教授杰弗里·施瓦茨把这种状态称为“忙者生存” 。正如经济学家泰勒·考恩所说: “在能够轻易获得信息的情况下, 我们通常喜欢简短、 支离破碎而又令人愉快的内容。 ”我变成了机器人: 失去了以前的大脑互联网所做的似乎就是把我们的专

2020-10-18 23:07:24 150

原创 一些配置文件

体检中心项目web.xmlbacken的web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

2020-09-03 07:29:55 90

原创 PinPoint的学习

Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,适用于用Java / PHP编写的大型分布式系统。受Dapper的启发,Pinpoint提供了一种解决方案,通过跟踪分布式应用程序之间的事务,帮助分析系统的整体结构以及它们中的组件如何相互连接。Pinpoint的特性:一目了然地了解您的应用程序拓扑实时监控您的应用程序获得每个事务的代码级可见性使用字节码增强技术,添加新功能无需修改代码对性能的影响最小(资源使用量

2020-07-30 07:24:38 605

原创 mysql优化-基础篇-1

/*​ 本系列是根据《千金良方-mysql性能优化金字塔法则》总结学习粗略产出之物,仅供参考*/背景使用MySQL 5.6.35 二进制版本安装单实例 。操作系统使用CentOS 6.5 x64 。需要用到的网址(下载mysql)https://downloads.mysql.com/archives/community/ https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar

2020-07-21 07:29:04 165

原创 linux-2

rpm -qf /usr/bin/vim文件的基本管理和XFS文件系统备份恢复使用tree命令查看linux目录结构,这个命令默认没有安装,自己手动安装一下mount /dev/sr0 /media/rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpmtree /tmp/ #查看tmp下目录跟下目录作用说明目 录说 明/处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件

2020-07-20 06:59:19 80

原创 linux-0

安装VMware不要选择立即分配磁盘空间软件选择时选 带GUI的服务器—》点击选择 开发工具磁盘分区–》我要选择分区进入手动分区–》第一个选择 标准分区 /boot 200M再次点击左下方+ swap 2G再次点击左下方+ / 10Gsda表示第一块磁盘网络和主机名 --》打开以太网–》改下主机名(比如跟公司相关xxx.cn)–》IPv4设置–》方法选手动—》add – 地址写:192.168.xx.xx --子网掩码写:24 --网关写:..

2020-07-20 06:57:53 307

原创 需求文档写法

第一章引言1.1项目概述、背景第二章业务说明2.1总体说明2.2业务流程2.2.1交易业务流程图会员批量开户及绑卡/换卡商户平台进行批量注册绑卡,通过资金账户管理系统进行账户验证,建立相应的会员信息账户及子账户。通过4要素验证绑卡则用户允许投资及提现,只通过实名认证的用户仅允许融资,充值;若批量换卡,通过资金账户管理系统账户验证进行登记并解绑,通过短验绑卡重新绑定。具体业务流程图如下:第三章开发规范3.1通讯规范3.2安全规范3.3注意事项接口中各项参数当标识是M时参数必

2020-07-12 21:41:56 3688 1

原创 linux-1

linux基本命令tty 查看当前所属的终端shift + ctrl + n 快速打开一个终端,shift + ctrl + 加号 终端字体放大echo hello > /dev/pts/1 不同虚拟终端之间通讯,其中/dev/pts/1通过tty查出来shutdowm +10 对所有终端广播消息:系统10分钟后关机shutdown -c 取消关机wall "The system will be shutdown in 10 minutes" 广播,所有终端都能收到typ

2020-07-12 10:53:02 197

原创 项目系列-2

甬乐云商/* 前面是通用mapper的CRUD,接着canal与mq的运用在广告更新,商品上下架 再接着就是商品的es搜索 在接着就是单点登录,用户认证的问题 后面就是购物车,订单,添加订单的时候很多步骤,很多细节 最后就是分布式事务和微信支付*/第一天//在启动eureka的时候报错StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[] failed to start//解决办法进入Proje

2020-06-29 21:02:45 434

原创 项目系列-1

体检中心/* 体检中心小结: 前面就是检查项,检查组,套餐的CRUD,图片上传,后面是预约,spring security的权限认证,再就是报表相关和百度地图*/该项目在做的时候在数据库操作上有两种选择,一种是dao接口搭配xml映射文件,一种是纯注解方式,本人使用的是纯注解方式,所以以下代码关于dao部分都是注解代码,一般情况下,只需要在引号中写sql语句就可以了,但如果涉及到动态sql的话,简单方式是在引号中加,然后将原本的sql语句写到中间去就可以了,至于一些其它的标签比如Sel

2020-06-29 21:01:39 474

原创 入门系列-1

开发环境搭建需要环境变量的技术ROCKETMQ_HOMEMAVEN_HOMEJAVA_HOMEERLANG_HOMED:\Develop\Java\jdk-9.0.1\binD:\Develop\tools\MySQL\MySQL Server 5.5\bin%MAVEN_HOME%\BinC:\Program Files\Git\cmdD:\Develop\tools\nodejs\%ERLANG_HOME%\binD:\Develo

2020-06-29 15:56:11 124

Java超级经典书籍第二部分

Java超级经典书籍第二部分

2022-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除