![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后台开发
文章平均质量分 74
青玉白露
字节跳动工程师|AI 让我成为全栈工程师~
公众号,【二进制的耳语】,欢迎关注~
展开
-
Mysql 和 PostgreSQL 到底选啥?
在选择数据库时,最重要的是根据应用的特定需求、团队的技术栈偏好以及未来的发展规划来决定。MySQL和PostgreSQL都是优秀的数据库管理系统,但它们在设计理念、功能特性和优化方向上有所不同。如果你的应用需要高性能的读写操作,且相对较少复杂的数据处理需求,MySQL可能更适合你。如果你的项目需要复杂的数据处理,高度的事务完整性,或者计划使用数据库的高级特性,PostgreSQL可能是更好的选择。最后,无论选择哪一个,都应该充分利用所选数据库的特点,为你的项目构建一个稳定、高效、可扩展的数据管理基础。原创 2024-04-21 08:15:00 · 921 阅读 · 1 评论 -
面试官:为什么忘记密码需要重置,而不是告诉我原来的密码?
在安全性至关重要的今天,正确地处理用户密码遗忘的情况是任何系统设计的基本要求。通过使用哈希算法保护密码,确保其不可逆,并在用户忘记密码时引导他们重置密码,我们能够在账户安全上提供一道额外的保障。这不仅仅是一项技术措施,更是一种对用户负责的态度。原创 2024-04-11 22:16:52 · 493 阅读 · 0 评论 -
PlanUML和Mermaid哪个好?
PlantUML是一款开源工具,它允许用户使用简单的文本语言来创建多种类型的图表。这个工具特别适合绘制UML图(统一建模语言图),包括序列图、用例图、类图等。Mermaid是另一种流行的、基于文本的图表工具,它的目标是减少绘图的复杂性,并提供一种快速方便的方式来可视化数据流和架构。PlantUML和Mermaid各有优势,适用于不同的场景和需求。PlantUML在UML和复杂图表的支持上占优,而Mermaid在易用性和Markdown集成上表现更佳。最终,选择哪个工具应基于你的具体需求和个人喜好。原创 2024-04-11 21:52:50 · 1561 阅读 · 1 评论 -
软件添加到右键菜单是怎么实现的?
通过以上步骤,我们成功地将软件添加到了右键菜单中,这样可以大大提高我们的工作效率。需要注意的是,有些软件在安装的时候,会自动添加自己到右键菜单,如Git和VSCode等。如果你想要从右键菜单中移除软件,你可以重复上述步骤,但在第三步时选择删除项而不是新建项。希望这篇文章能对你有所帮助,如果你有任何问题或建议,欢迎在下方留言。原创 2024-04-07 00:30:00 · 771 阅读 · 0 评论 -
DDOS攻击原理
DDoS(分布式拒绝服务)攻击是一种常见的网络攻击方式,其目的是使目标服务或资源无法正常提供服务给合法用户。DDoS攻击的基本原理是通过大量的恶意流量或请求,耗尽目标系统的资源(如带宽、处理能力等),导致正常的服务请求无法得到处理。DDoS攻击的防御和缓解措施包括使用专业的DDoS防御服务、进行安全评估以查找和解决相关漏洞、使用网络安全控制措施等。由于DDoS攻击的复杂性和多变性,防御DDoS攻击需要持续的努力和多层次的安全措施。原创 2024-04-06 00:00:00 · 497 阅读 · 0 评论 -
Svelte Web 框架介绍
Svelte 是一个用于构建网络应用程序的现代框架,它与其他用户界面框架(如React和Vue)有着本质的不同。Svelte 的核心理念是在构建应用程序时,将大部分工作转移到编译步骤中,而不是在用户的浏览器中运行时处理。这种方法的结果是生成高度优化的纯JavaScript代码,从而减少了应用程序包的大小,提高了性能,并且提供了更加接近原生开发体验的开发者体验。原创 2024-04-05 08:44:08 · 517 阅读 · 0 评论 -
git 如何删除本地和远程分支
如果分支上有未合并的更改,Git会阻止删除。:如果你在要删除的分支上,需要先切换到另一个分支。这个命令会将删除操作推送到远程仓库,从而删除远程分支。:首先,确保你没有在要删除的分支上。选项,后面跟远程仓库的名称(通常是。:删除远程分支,需要使用。命令来查看当前的分支。)和要删除的分支名称。原创 2024-04-05 08:43:11 · 1159 阅读 · 0 评论 -
什么是中间人攻击?
中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种常见的网络安全威胁,攻击者在通信双方之间秘密拦截和转发消息,使双方误以为他们正在直接通信。这种攻击方式可以让攻击者监听、篡改通信内容,甚至伪装成通信一方与另一方交互。原创 2024-04-04 07:29:32 · 337 阅读 · 0 评论 -
Client sent an HTTP request to an HTTPS server
最近踩坑了我发现域名:8000可以访问我的服务但是域名:443却不行,这很反常结果发现是nginx配置的问题,需要把http改成https!原创 2024-04-02 23:00:37 · 1346 阅读 · 0 评论 -
前端全栈必学的Dockerfile-ABC!
Dockerfile的魔力在于它的简单性和强大功能。通过一系列简洁的指令,你可以创建一个可复制、可靠的环境,让应用的部署变得前所未有的轻松。举个很简单的例子,我有一个Centos7的服务器,但是由于系统限制,我无法安装nodejs18…但是!我在Docker里就可以!Emmm…最近在学Docker、Github Action的自动化部署,下一期将会进一步讲述 Dockerfile的使用!原创 2024-03-22 09:21:23 · 324 阅读 · 0 评论 -
如何实现Git Push之后自动部署到服务器?
在平时个人开发的过程中是不是有这样的烦恼:项目开发完成,Push之后登录服务器,手动git pull,然后运行部署命令这真的很烦诶!那么能不能Git push之后,远端服务器自动 Git pull 然后运行部署命令呢?答案当然是可以的!这就要请出我们的秘密武器啦!原创 2024-03-13 08:38:04 · 756 阅读 · 0 评论 -
老板: 你把微信公众号实现抽奖功能
最近为了提高公众号的用户粘性,需要增加一个功能,那就是用户可以点击公众【每日礼包】的按钮,实现抽奖,有可能获得免费的会员天数!原创 2024-03-07 07:56:22 · 399 阅读 · 0 评论 -
【问题解决】ERROR: Could not install packages due to an OSError: [WinError 2] 系统找不到指定的文件。: ‘C:\\Python311\
(Windows环境)在使用pip安装包的时候报错:ERROR: Could not install packages due to an OSError: [WinError 2] 系统找不到指定的文件。原创 2024-03-03 21:49:19 · 1337 阅读 · 0 评论 -
深入Socket网络编程与I/O多路复用
进一步学习select、poll、epoll。全文目录Socket网络编程I/O分类select/pollepoll读写就绪条件参考资料Socket网络编程学过计算机网络的同学应该都看得懂这幅图:一个进程进行网络传输的过程可以分为两个阶段:第一阶段:在用户态下,将需要用到的数据封装,调用相应的系统函数如write/read,陷入内核态;第二阶段:在内核态下,内核根据拷贝至内核空间的数据依次运行TCP/IP协议栈,对应用数据进行封装(TCP/IP、IP、帧),而后将数据帧传给网卡,由网卡完.原创 2021-10-07 21:35:40 · 464 阅读 · 0 评论 -
Linux的epoll用法与数据结构data、event
epoll_create:创建一个指示epoll内核事件表的文件描述符,返回一个epfd。//该描述符将用作其他epoll系统调用的第一个参数,其实size不起作用。int epoll_create(int size)epoll_ctl:操作内核事件表监控的文件描述符上的事件:注册、修改、删除。int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)其中,各个参数如下。epfd:为epoll_creat的句柄;op原创 2021-09-29 00:21:50 · 964 阅读 · 0 评论 -
Spring新手教程
基于《Spring实战》第五版进行学习让我们来一起学习Java Spring吧!Spring基础介绍Spring 的核心是一个容器,通常称为 Spring 应用程序上下文,用于创建和管理应用程序组件。**这些组件(或 bean)**在 Spring 应用程序上下文中连接在一起以构成一个完整的应用程序。将 bean 连接在一起的行为是基于一种称为 依赖注入(DI)的模式。依赖项注入的应用程序不是由组件自身创建和维护它们依赖的其他 bean 的生命周期,而是依赖于单独的实体(容器)来创建和维护所有.原创 2021-05-22 10:36:34 · 590 阅读 · 0 评论 -
Java从0开始
让我们来一起学习Java吧!前置环境配置工欲善其事必先利其器,先老老实实地把环境配置好吧。环境配置参见:https://www.runoob.com/java/java-environment-setup.html,至于ide安装的是:https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC。之后就是具有仪式性的一件事了——helloworld!新建一个project,取.原创 2021-05-17 22:31:40 · 121 阅读 · 0 评论 -
从0到服务器开发——TinyWebServer
从0到服务器开发——TinyWebServer文章目录**从0到服务器开发——TinyWebServer****前言:****基础知识****什么是web sever?****什么是socket?****IO复用是什么?****什么是多线程?****二、项目学习****代码架构****编译运行****功能细究****三、拔萝带泥****HTTP****HTTP介绍****HTTP处理流程****连接处理****请求报文处理****返回响应报文****Epoll****常用函数****例子****参考资料*原创 2021-04-13 21:30:09 · 2010 阅读 · 4 评论 -
【后台开发】TinyWebser学习笔记(4)定时器、日志系统(单例模式)、封装互斥锁信号量
下面这个部分来介绍一下定时器及封装互斥锁信号量的相关知识。一、定时器相关关于定时器部分,核心就在于信号处理机制(信号处理函数、信号响应函数等)。(关于信号处理这个部分的流程我还有些不明白,还需要再看一次)本项目中,服务器主循环为每一个连接创建一个定时器,并对每个连接进行定时。另外,利用升序时间链表容器将所有定时器串联起来,若主循环接收到定时通知,则在链表中依次执行定时任务。Linux下提供了三种定时的方法:·socket选项SO_RECVTIMEO和SO_SNDTIMEO·SIGALRM信号.原创 2021-03-17 09:02:07 · 350 阅读 · 0 评论 -
百度Cyber框架面试总结
最近面试的过程中,发现不少面试官喜欢问Cyber框架的实现原理和特点,并且会结合操作系统的进程、线程和协程的概念,特此总结一下。Cyber介绍Cyber RT是一个runtime framework,可以理解为百度针对ROS 1在自动驾驶环境下的一些天生缺陷做的一套自己的框架(很多缺陷在ROS 2中得到了解决但ROS 2迟迟不见稳定版本)。Cyber RT的目标是做到高并发,低延迟以及高吞吐,这些特性都是自动驾驶任务所必须的。简单来说,cyber是一个分布式收发消息,和调度框架。其架构,如下图所.原创 2021-03-15 21:15:34 · 2042 阅读 · 4 评论 -
【环境配置】tensorflow11.1.0编译
一、配置opencv1、安装依赖sudo apt-get install cmakesudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libavresample-dev libgphoto2-devsudo apt-get install libgtk2.0-devsudo apt-get install原创 2020-09-24 15:48:07 · 477 阅读 · 0 评论 -
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
之前学习了有关线程池、数据库连接池的相关知识,接下来进行重头戏——HTTP连接的相关知识。这段时间在准备暑期实习的面试,参加了腾讯、阿里、CVTE、深信服等公司的面试发现自己对之前的这个开源项目还有很多细节不够了解,特此回来学习一波,如果有什么纰漏还请大家谅解、指正。一、http的详细连接过程http需要结合epoll/select/poll来理解,所以可以点此跳转回学习笔记2,复习相关知识。1.1 Http报文有关HTTP报文格式,HTTP报文分为请求报文和响应报文两种,每种报文必须按照.原创 2021-03-15 17:15:16 · 423 阅读 · 0 评论 -
【后台开发】TinyWebser学习笔记(2)线程池、数据库连接池
前面讲到了服务器的基本架构,接下来讲讲支持服务器得以高并发的线程池和数据库连接池的构建。一、线程池的实现线程池就是首先创建一些线程,它们的集合称为线程池。线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。为什么需要线程池?从上面对线程池的描述可知,线程池是预先创建的,负责执行服务器分配的任务,任务完成之后,线程空闲,以待执行另外的任务。这就体现了线程池的两.原创 2021-03-13 10:35:03 · 567 阅读 · 8 评论 -
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
TinywebServer学习记录LL 基础教学楼B5192020/12/18目录一、基本介绍 31.1 服务器的基本知识 31.1.1 什么是web server? 31.1.2 I/O复用技术:select以及poll 41.1.3 select函数 51.1.4 poll函数 61.1.5 epoll函数 61.2数据库连接池是用来做什么? 71.3 什么是C/S、B/S模型? 81.4 服务器编程的基本框架如何? 8二、线程池的实现 9三、数据库连接池的实现 12四、原创 2021-03-07 23:50:32 · 929 阅读 · 0 评论