一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Backend

Naming cheatsheet

Naming things is hard. This sheet attempts to make it easier. Although these suggestions can be applied to any programming language, I will use JavaScript to illustrate them in practice. English language Use English language when naming your variables and functions.

  Like it or not, English is the dominant language in programming: the syntax of all programming languages is written in English, as well as countless documentations and educational materials. By writing your code in English you dramatically increase its cohesiveness. Naming convention Pick one naming convention and […]

龙生   26 Jan 2021
View Details

阻止IIS应用程序池自动回收

在IIS中找到这个站点所用的程序池,点击“高级设置…” 在打开的列表中更改以下设置: 回收 固定时间间隔(分钟) 改为 0 虚拟/专用内存限制(KB) 改为 0 进程模型 闲置超时(分钟) 改为 0 from:bubuko.com/infodetail-1708029.html

龙生   25 Jan 2021
View Details

Web 防爬指南

(或至少让其更难抓取) 这篇文章我翻译自:https://github.com/JonasCz/How-To-Prevent-Scraping,因为最近在看一些反爬的资料,无意间在 Github 发现这篇文章,我觉得写的很全面,所以想要翻译一下,顺便进行吸收。另外让我觉得非常赞的是这个文章从服务端和前端的角度都做了分析,我们应该从哪些点去做优化,而且每个点都举了例子,有些还给出了注意点。虽然文中有些提到的一些点很基础,也有很多我们目前在业务中也在使用,但是我还是从中吸收到了一些新东西,里面文中外部链接有很多,但是公众号这里不允许外链,所以大家可以点击文末最后的"阅读原文"到 Github 去查看,Github Markdown 的排版可能也比这里更好 : )。 (最后,有些仓促,可能有些注意不到的措别字,还请多多包涵) 提示:这篇文章是我 Stack Overflow 这个问题回答的扩展,我把它整理在 Github 因为它实在是太长了,超过了 Stack Overflow 的字数限制(最多 3 万个字,这文章已经超过 4 万字) 欢迎大家修改、完善还有分享,本文使用 CC-BY-SA 3.0 许可。 本质上说,防抓的目的在于增加脚本或机器获取你网站内容的难度,而不要影响真实用户的使用或搜索引擎的收录 不幸的是这挺难的,你需要在防抓和降低真实用户以及搜索引擎的可访问性之间做一下权衡。 为了防爬(也称为网页抓取、屏幕抓取、网站数据挖掘、网站收割或者网站数据获取),了解他们的工作原理很重要,这能防止他们能高效爬取,这个就是这篇文章的主要内容。 通常情况下,抓取程序的目的是为了获取你网站特定的信息,比如文章内容、搜索结果、产品详情还有网站上艺术家或者相册信息。他们爬取这些内容用于维护他们自己的网站(甚至通过你的内容赚钱!),或者制作和你网站不一样的前端界面(比如去做移动 APP),还有一些可能作为个人研究或分析使用。 实际上,有特别多的爬虫类型,而且他们的爬取方式都不太相同: 蜘蛛,比如 Google’s bot 或者网站复制工具 HTtrack,他们访问你的网站,而且在页面中寻找链接后递归的去爬取以获取页面的数据。有时候他们只用于获取特定数据,而不会全部爬取,通常结合 HTML 分析器在页面中获取想要的数据。 Shell 脚本,有时候,通用的 Unix 工具也被用来爬取:wget 或者 curl 用于下载页面,用 Grep (Regex) 去分析获取想要的数据,一般都会写一个 Shell 脚本。这些都是最简单的爬虫,也是最脆弱的一类爬虫(Don’t ever try parse HTML with regex !),所以是最早发现和防范的爬虫。 HTML 爬取器和分析器,会基于 Jsoup、Scrapy 还有其他一些工具。和 shell 脚本基于正则类似,他们呢基于特定模式(pattern)分析你的 HTML 结构从而获取想要的数据。 举个例子:如果你的网站有搜索功能,那这个爬虫可能会模拟提交一个搜索的 HTTP 请求,然后从搜索结果页中获取所有的链接和标题,有时候会构造有成千上百不同的请求,只是为了获取标题和链接而已。这是最常见的一类爬虫。 屏幕爬取,比如会基于 Selenium 或者 PhantomJS,他们实际上会通过真实浏览器打开你的网站,因此也会运行你网站的 JavaScript、AJAX 或者其他的,然后他们从你的页面获取自己想要的文本内容,通常: 基于浏览器的爬取很难处理,他们运行脚本,渲染 HTML,就像真实用户一样访问你的网站。 等页面加载完毕, JavaScript 也执行之后,从浏览器获取 HTML 结构,然后用 HTML 分析器去获取想要的数据或者文本。这是常见做法,所以有很多方法可以防止这类 HTML 分析器或爬虫。 […]

龙生   25 Jan 2021
View Details

2021最新版阿里巴巴Java性能调优速成手册强烈推荐

为什么要做性能调优? 一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。 所以,要不要做性能调优,这个问题其实很好回答。所有的系统在开发完之后,多多少少都会有性能问题,我们首先要做的就是想办法把问题暴露出来,例如进行压力测试、模拟可能的操作场景等等,再通过性能调优去解决这些问题。 好的系统性能调优不仅仅可以提高系统的性能,还能为公司节省资源。这也是我们做性能调优的最直接的目的!所以,接下来我就给大家带来了一份“阿里巴巴lava性能调优实战(2021华山版)”想要学习的朋友们,我们就先来看看文章大概内容:(同时在文末会有笔记领取方式!大家自行解决) 主要内容 模块一 概述 为你建立两个标准。-个是性能调优标准,告诉你可以通过哪些参数去衡量系统性能;另-一个是调优过程标准,带你了解通过哪些严格的调优策略,我们可以排查性能问题,从而解决问题。 模块二 Java 编程性能调优 JDK是Java语言的基础库,熟悉JDK中各个包中的工具类,可以帮助你编写出高性能代码。这里我会从基础的数据类型讲起,涉及容器在实际应用场景中的调优,还有现在互联网系统架构中比较重要的网络通信调优。 03.字符串性能优化不容小觑,百M内存轻松存储几十G数据 05.ArrayList还是LinkedList?使用不当性能差千倍 06.Stream如何提高遍历集合效率? 10.网络通信优化之通信协议:如何优化RPC网络通信? 11.推荐几款常用的性能测试工具 模块三 多线程性能调优 目前大部分服务器都是多核处理器,多线程编程的应用广泛。为了保证线程的安全性,通常会用到同步锁,这会为系统埋下很多隐患;除此之外,还有多线程高并发带来的性能问题,这些都会在这个模块重点讲解。 12.多线程之锁优化(上):深入了解Synchronized同步锁的优化方法 13.多线程之锁优化(中):深入了解Lock 同步锁的优化方法 15.多线程调优(上):哪些操作导致了上下文切换? 17.并发容器的使用:识别不同场景下最优容器 模块四 JVM性能监测及调优 Java 应用程序是运行在JVM之上的,对JVM进行调优可以提升系统性能。这里重点讲解Java对象的创建和回收、内存分配等。 20. 磨刀不误砍柴工:欲知JVM调优先了解JVM内存模型 21.深入JVM即时编译器JIT,优化Java编译 22.如何优化垃圾回收机制? 模块五 设计模式调优 在架构设计中,我们经常会用到-一些设计模式来优化架构设计。这里我将结合一-些复 杂的应用场景,分享设计优化案例。 29.生产者消费者模式:电商库存设计优化 30. 装饰器模式:如何优化电商系统中复杂的商品价格策略? 模块六 数据库性能调优 数据库最容易成为整个系统的性能瓶颈,这里我会重点解析-一些数据库的常用调优方法。 33.MySQL调优之事务:高并发场景下的数据库事务调优 35.记一次线上SQL死锁事故:如何避免死锁? 38.数据库参数设置优化,失之毫厘差之千里 模块七 实战演练场 以上六个模块的内容,都是基于某个点的调优,现在是时候把你前面所学都调动起来了,这里我将带你进入综合性能问题高频出现的应用场景,学习整体调优方法。 41.如何设计更优的分布式锁? 43.如何使用缓存优化系统性能? 最后 作者:努力向上的小芷 链接:https://juejin.cn/post/6920124384027885581 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   25 Jan 2021
View Details

RGB颜色参考

实色效果 英文名称 R.G.B 16色 实色效果 英文名称 R.G.B 16色 Snow 255 250 250 #FFFAFA PaleTurquoise1 187 255 255 #BBFFFF GhostWhite 248 248 255 #F8F8FF PaleTurquoise2 174 238 238 #AEEEEE WhiteSmoke 245 245 245 #F5F5F5 PaleTurquoise3 150 205 205 #96CDCD Gainsboro 220 220 220 #DCDCDC PaleTurquoise4 102 139 139 #668B8B FloralWhite 255 250 240 #FFFAF0 CadetBlue1 152 245 255 #98F5FF OldLace 253 245 230 #FDF5E6 CadetBlue2 142 229 238 #8EE5EE Linen 250 240 230 #FAF0E6 CadetBlue3 122 197 205 #7AC5CD AntiqueWhite 250 235 215 #FAEBD7 CadetBlue4 83 134 139 #53868B […]

龙生   21 Jan 2021
View Details

c# base64转字符串

转成 Base64 形式的 System.String:

  转回到原来的 System.String:

  from:https://www.cnblogs.com/daimaxuejia/p/12893207.html

龙生   20 Jan 2021
View Details

c# 确定dynamic类型的数据对象是否存在某个属性

  https://www.cnblogs.com/94cool/p/8135579.html

龙生   19 Jan 2021
View Details

docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

1、从容器里面拷文件到宿主机? 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js,  现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢? 答案:在宿主机上面执行命令

2、从宿主机拷文件到容器里面 答:在宿主机里面执行如下命令 docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径 示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢? 答案:在宿主机上面执行如下命令

3、在这里在记录一个问题,怎么看容器名称? 执行命令:docker ps,出现如图所示,其中NAMES就是容器名了。 4.需要注意的是,不管容器有没有启动,拷贝命令都会生效。   from:https://www.cnblogs.com/areyouready/p/8973495.html

龙生   15 Jan 2021
View Details

IIS上部署Asp.Net Core 3.1应用

前置条件 官网下载页面:https://dotnet.microsoft.com/en-us/download/dotnet/3.1 安装ASP.NET Core Runtime 3.1.31 安装 Hosting Bundle 3.1.31 执行以下命令 net stop was /y net start w3svc   发布应用     部署到IIS   1.应用程序池:选择无托管模式。我电脑是64位,选择“启用32位应用程序”为“false”。   2.网站设置 为你的网站创建windows用户,把网站目录设置对该用户全部权限。 IIS管理器选择你的网站:基本设置 -> 连接为 -> 特定用户。     参考资料: https://blog.csdn.net/weixin_33757609/article/details/93693395 https://blog.csdn.net/xulong5000/article/details/106072771 https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio  

龙生   15 Jan 2021
View Details

window server 2012 R2 Standard 部署.netcore 3.1 踩坑

服务器版本:window server 2012 R2 Standard SDK 版本: dotnet-sdk-3.1.302-win-x64.exe 部署步骤: 1. 官网下载sdk( https://download.visualstudio.microsoft.com/download/pr/56b00a71-686f-4f27-9ad1-9b30308688ed/1fa023326e475813783a240532c9f2c8/dotnet-sdk-3.1.302-win-x64.exe ) 2.安装部署: 拷贝到服务器,双击安装,安装完毕后,打开cmd名称,输入 dotnet命令查看。。。。结果如下     这是个啥??? 某度查询说是缺少补丁,需要打补丁,服务器又不能联网只能手动上网单独下载了。 其中:https://www.microsoft.com/en-us/download/details.aspx?id=42334 这里面包含KB2919355,KB2932046,KB2934018,KB2937592,KB2938439,KB2959977,chearcompressionflag.exe,可以一次下载。       但是在安装这些补丁之前需要先安装KB2999226 地址 https://www.microsoft.com/en-us/download/confirmation.aspx?id=49063 和 KB2919442,地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=42135   补丁安装顺序: KB2999226 KB2919442, clearcompressionflag.exe、 KB2919355、 KB2932046、 KB2959977、 KB2937592、 KB2938439、 KB2934018。 严格按照补丁顺序安装,否则不确保是否能安装成功。   最后在安装 Visual C++ Redistributable for Visual Studio 2015 地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145   安装时提示重启,可以都安装完毕后重启,也可以每次重启,我是都安装完了再重启的,也可以成功。   安装重启后,在cmd命令下输入 dotnet --version  如果出现一下内容,就说明安装成功 光子:我按以上教程实际操作时不行,要安装:https://www.microsoft.com/en-us/download/confirmation.aspx?id=42162   from:https://www.cnblogs.com/jone_sun/p/13403269.html

龙生   15 Jan 2021
View Details
1 70 71 72 280