自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 怎么设计一个高并发高性能高负载的系统

总之,设计高并发高性能高负载的系统需要综合考虑架构、数据库、缓存、异步处理、安全性等多个方面。这需要团队合作和持续的优化工作,确保系统能够稳定、高效地运行,满足用户的需求。设计一个高并发、高性能、高负载的系统是一个复杂而挑战性的任务。以下是一些关键的设计原则和步骤,可以帮助你构建一个稳定且能够应对大量用户请求的系统。

2023-08-19 12:54:50 160

原创 如何提高编程技术

在这个数字化时代,编程技术的重要性愈发凸显,它不仅仅是一项技能,更是一种创造力和解决问题的能力。在编程领域,持续的努力和学习是取得进步的关键。通过建立扎实的基础、持续实践、学习新知识、培养问题解决能力以及与他人合作,你将能够不断提高自己的编程技术。最重要的是,保持对编程的热爱和好奇心,不断探索和创新,你一定能够在这个领域取得优异的成就。同时,也要学会从他人的经验中汲取营养,了解行业趋势,不断更新自己的知识库。学会与他人合作、交流和分享,能够帮助你更好地理解不同的观点和方法,提高自己的编程水平。

2023-08-19 12:22:05 141

原创 vue前端下载阿里oss超大文件的问题

最近在开发一个大文件压缩下载需求,由于附件都是从阿里oss上下载,且一次下载多个文件,然后进行打包压缩,前期使用了axios+jszip+file-saver 来进行处理,但是当文件超过3个G的时候会出现out of memory和RangeError: Array buffer allocation failed错误。

2023-06-08 16:02:22 2728 1

原创 调试技术:现代开发人员的基本技能

调试技术是程序员用来检查和纠正程序中错误的方法。调试不仅解决了当前的问题,而且有助于防止潜在的错误。在软件开发的历程中,调试是必不可少的一站。

2023-06-05 11:24:43 257

原创 什么是Webhook及其工作原理

当您选择一种方法来处理来自外部来源的实时数据时,也会出现类似的情况,例如您无法控制的应用程序,您可以在给定的时间间隔多次调用它(池),或者等待事件从源代码发送到应用程序(webhook)。这就是webhook的工作方式,只需向应用程序添加一个侦听POST调用的端点,并将其地址报告给事件发生的应用程序即可。这样一来,服务员去厨房的时间就会减少,就可以花更多的时间做重要的事情。让我们想象一下,在一个拥挤的餐厅里,服务员的任务是把顾客点的菜送到厨房,当食物准备好后,把它带给他们。

2023-06-05 11:08:53 299

原创 如何在vim中使用文件模板

在现代世界中,样板是我们作为开发人员刚刚习惯的东西,作为工作的一部分,也是当今使用的所有主流框架的一部分,但是手动管理所有这些是很痛苦的,特别是当你不想继续运行生成器命令时(有些框架甚至没有这些生成器命令😥)让我们的编辑器处理这部分会很棒。当您使用:e main.c创建新文件时,将自动插入警告,我们将为一个简单的React组件定义一个模板,该模板遵循componentName/index.tsx模式,其想法是在文件夹中插入一个具有正确名称的新组件。提示:您可以通过:help阅读更多关于替换模式的信息\=

2023-06-05 10:54:00 201

原创 能快速读懂别人代码的重要性

精通解释代码可以让开发人员快速适应,使他们在这个快节奏的行业中成为宝贵的资产。因此,你阅读和理解代码的速度越快,你就越有可能留在游戏中。因为破译和理解预先编写的代码的能力打开了无限的可能性。这里有一个提醒——这项技能在未来将变得更有价值,尤其是当每个人都开始使用像ChatGPT这样的人工智能助手来获得编码帮助时!”嗯,在我们快速发展的科技世界里,工作节奏只会越来越快。公司不断推动更快的开发周期和更短的上市时间。如今真正的挑战是,作为一名软件开发人员,你能以多快的速度掌握和理解你的任务。

2023-06-02 11:43:57 60

原创 使用IndexedDB的完整指南

IndexedDB是用于客户端存储的低级API。它是一个全面、持久的NoSQL存储系统,可在浏览器中使用,允许存储不同类型的数据,例如:文件或Blob图像和视频结构化数据,如对象、列表和数组IndexedDB可以用于各种场景,如缓存、PWA和游戏,还支持事务。它的开发是为了有效地满足web应用程序的多种需求。建立我们的项目我们不会做任何花哨的设置,因为IndexedDB是在网络上本地运行的。

2023-06-02 11:35:53 1628

原创 理解关系数据库管理系统(RDBMS)

关系数据库管理系统(RDBMS)是一种设计用于管理关系数据库的软件系统。它基于关系模型,该模型将数据组织成具有行和列的表。RDBMS提供了一组操作和工具来创建、修改和查询这些数据库。

2023-06-02 11:20:38 370

原创 网站性能分析:服务器端和前端

网站性能对于任何想要提供良好用户体验的企业来说都是至关重要的。一个缓慢的网站可能会让用户感到沮丧,并导致他们完全放弃你的网站。前端性能指的是用户浏览器呈现网站HTML、CSS和JavaScript的速度。这可能受到许多因素的影响,包括用户的设备、互联网连接和浏览器设置。这可能受到许多因素的影响,包括服务器的硬件、软件和配置。Google PageSpeed Insights:该工具提供网站性能的评分,以及提高性能的建议。如果你有一个缓慢的网站,确定问题的根本原因是很重要的。用于分析网站性能的工具。

2023-06-02 11:15:45 138

原创 探索Web3中的P2P网络

嘿!当你踏入一个新的、革命性的领域时,你有没有感受到那种激动与恐惧交织在一起的冲动?当我第一次在Web3中偶然发现令人难以置信的对等(P2P)网络世界时,我就是这样想的。我忍不住想和大家分享我的旅程,从最初的怀疑到对P2P网络的潜力和优势的深刻理解。

2023-06-01 12:25:46 165

原创 每个开发者都应该知道的5个被低估的GitHub功能

Github是一个受欢迎的地方,开发者可以在这里一起工作和协作。在这里,我们可以主持大量的开源项目。你一定在你的科技生涯中使用过Github。但在整洁的用户界面下隐藏着一些被低估的Github功能,因此被许多人忽视了。因此,我们将在本文中了解这一点。

2023-05-31 14:24:34 325

原创 这5个人工智能工具将让你成为超人!!

人工智能(AI)彻底改变了我们与技术互动的方式。人工智能工具改变了我们生活的许多方面,从我们的工作方式到我们如何保持联系。人工智能工具可以帮助我们更高效地完成任务,保持组织,甚至保护我们的安全。人工智能还使我们能够更好地了解我们的环境,分析数据以获得见解,并自动化流程以提高效率。

2023-05-31 12:20:17 225

原创 什么是Github Copilot?这会夺走你的工作吗!?

简单地说,它是一个vs代码扩展,您可以通过它将注释转换为代码。GitHub Copilot比大多数代码助手理解更多的上下文。因此,无论是在文档字符串、注释、函数名还是代码本身中,GitHub Copilot都会使用您提供的上下文并合成匹配的代码。gpt3提供的一个工具能够自动编写代码,你所要做的就是写一个描述性的函数名或一些注释,它会自动为你填写实现细节,这不仅仅是插入一个片段,这是以前从未见过的真正新颖的代码。

2023-05-31 11:43:34 584

原创 Facebook开源其Horizon人工智能平台

Horizon是一个旨在解决大规模应用RL问题的端到端平台。Horizon基于流行的深度学习库PyTorch构建,利用分布式计算的强大功能来训练模型。这意味着它可以处理大量的数据和复杂的计算,使其成为解决RL问题的强大工具。但Horizon真正独特的地方在于它专注于现实世界中的应用RL问题。这不仅仅是一个理论工具;这是一个实用的解决方案,旨在解决人工智能领域的真正挑战。

2023-05-31 11:30:36 267

原创 Java中的解耦

然而,通过解耦UI和数据库,可以相互独立地修改每个UI,因此我们可以在不影响数据库的情况下更改UI,或者在不更改UI的情况下交换数据库。这一切都是关于创建独立的组件,这些组件可以在其他地方使用,只需最少的更改,并且可以独立测试和维护。我们看到,完全解耦可能并不总是可能的或实用的,它仍然在使系统更加灵活和可维护方面提供了好处。在这种情况下,即使解耦不能完全消除对每个层的更改需求,但它仍然是有益的,因为更改可以在各自的层中独立进行,这使系统更加灵活。我们将通过将对象的使用与其创建脱钩,使类独立于其依赖项。

2023-05-30 18:01:20 937 1

原创 不要重复自己-代码上的实用提示

我必须指出,DRY(不要重复你自己)原则更广泛,它是关于处理知识的,我们不想重复知识或意图,我们也不想在两个不同的地方表达同一件事,尤其是以完全不同的方式。抽象意味着隐藏不相关的代码,以创建可在各种上下文中使用的通用、可重用的代码,而不是为每个特定上下文重复类似的代码。DRY的前提是,通过不在整个系统中重复相同的代码,开发人员可以提高代码的质量,并随着时间的推移使其更易于管理。当一个方法接受函数接口作为参数时,我们可以定义不同的行为,并将它们传递给一个方法来对数据执行不同的操作,而无需多次重复相同的逻辑。

2023-05-30 17:30:18 98

原创 系统架构

本篇文章是在我看完《从零开始学架构》之后,以架构演变为主线,梳理了一下演变过程中出现的问题以及解决方案,文章中引用了这本书的一些内容和图片分布式和集群的概念经常被搞混,现在一句话让你明白两者的区别。分布式:一个业务拆分成多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上例如:电商系统可以拆分成商品,订单,用户等子系统。这就是分布式,而为了应对并发,同时部署好几个用户系统,这就是集群1单应用架构2应用服务器和数据服务器分离单机负载越来越来,所以要将应用服务器和数据库服务器分

2021-07-11 19:20:49 90

原创 saas化改造

最近公司让我将之前的同事开发的系统进行saas化改造,并且重新架构我看了几天代码,着重分析了代码存在的问题,首先这是一个单机单数据库单代码库的系统,而且已经有几家客户在使用后端脚本 php (框架yii2)前端ui框架bootstrap存在的问题:没有进行前后端分离,有些地方代码有点乱,没有做到尽可能的抽象与分层,sql没有优化,该缓存的地方没有缓存,无效查询有点多,大循环个别地方仍然存在,容易导致内存溢出,前端资源引入问题(如图片较大无文件服务器,js,css无压缩,没有启用CDN),无法

2021-07-11 13:59:44 907 4

原创 关于强制开启https,关闭之后缓存导致的用户访问失败

最近有个人问我一个问题他在开启了面板强制https以后,而后取消https,公众号端由于缓存了https,导致访问的时候出现页面无法访问的情况是因为面板开启强制https,则在nginx会添加一行配置add_header Strict-Transport-Security "max-age=31536000",起初他没有关注到这些,有一个解决方案是在手机上清理微信内置浏览器缓存,在安卓版微信内打开链接https://debugx5.qq.com拉到调试页面的最底端,勾选上所有的缓存项目,..

2021-07-11 13:16:27 845

原创 缓存问题记录

正文缓存穿透描述:访问一个缓存和数据库都不存在的 key,此时会直接打到数据库上,并且查不到数据,没法写缓存,所以下一次同样会打到数据库上。此时,缓存起不到作用,请求每次都会走到数据库,流量大时数据库可能会被打挂。此时缓存就好像被“穿透”了一样,起不到任何作用。解决方案:1、接口校验。在正常业务流程中可能会存在少量访问不存在 key 的情况,但是一般不会出现大量的情况,所以这种场景最大的可能性是遭受了非法攻击。可以在最外层先做一层校验:用户鉴权、数据合法性校验等,例如商品查询中,商品

2021-07-11 12:56:23 82

mui-kidApp-master.zip

mui-kidApp-master.zip 小程序源码

2019-09-21

linuxtcpipsocket

这是我们老师做的课件,关于Linux网络编程用的

2014-05-28

空空如也

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

TA关注的人

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