<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[脚踏实地]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linkingfei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linkingfei]]></copyright><item><title><![CDATA[低代码平台飞书apaas]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/140771400</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/140771400</guid><author>linkingfei</author><pubDate>Mon, 29 Jul 2024 15:22:24 +0800</pubDate><description><![CDATA[优点：1.数据聚合能力 和 流程编排能力是亮点2.功能强大，页面组件完善3.扩展能力强，易于二次开发4.与飞书深度集成，可以使用飞书的一些开发能力缺点：1.使用门槛稍高，需要有研发背景更容易上手2.与平台绑定，无法独立下载部署。]]></description><category></category></item><item><title><![CDATA[CID引流-拼多多案例]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/140692552</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/140692552</guid><author>linkingfei</author><pubDate>Thu, 25 Jul 2024 16:29:21 +0800</pubDate><description><![CDATA[目前已实现拼多多等CID链路，本文以拼多多链路为例，说明具体实施过程。]]></description><category></category></item><item><title><![CDATA[CID引流剖析]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/140675116</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/140675116</guid><author>linkingfei</author><pubDate>Wed, 24 Jul 2024 22:55:24 +0800</pubDate><description><![CDATA[CID本身是用来追踪电商平台（比如淘宝、天猫、京东和拼多多）的交易订单的流量源的。简单讲，它就是个电商平台内自己店铺销售转化的归因工具。追踪到订单的流量源之后，可以把这些数据反过来提供给媒体投放平台，从而优化电商的引流投放。举个例子。我在抖音上投放广告，广告链接链到我的淘宝的电商商品页。我想知道我这个抖音广告给我这个商品带来了多少的销量，CID可以帮助我们回答这个问题。]]></description><category></category></item><item><title><![CDATA[RPA软件-影刀使用]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/140669800</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/140669800</guid><author>linkingfei</author><pubDate>Wed, 24 Jul 2024 18:14:07 +0800</pubDate><description><![CDATA[读取Excel内容，默认情况下，整数会被读成小数，如：1读成1.0,日期格式值会被读成日期对象，若要保持内容不变，高级选项勾选读取单元格内容，读取为字符串类型。（2） 网页操作：基础操作-指令操作，智能操作-关联元素，特殊操作-元素编辑。a. 网页对象对应一个网页标签，每打开一个新的网页标签，即一个新的网页对象。b. 窗口对象对应一个软件窗口，每打开一个新的弹窗，即一个新的窗口对象。【获取窗口对象列表】：一次获取多个窗口对象，并返回一个列表。【获取窗口对象】：一次获取一个窗口对象。]]></description><category></category></item><item><title><![CDATA[RPA入门]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/140669313</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/140669313</guid><author>linkingfei</author><pubDate>Wed, 24 Jul 2024 17:53:44 +0800</pubDate><description><![CDATA[RPA, Robotic Process Automation,机器人流程自动化。它是一种软件或平台，根据预先设定的程序，通过模拟并增强人类与计算机的交互过程，执行基于一定规则的大批量、可重复性任务，实现工作流程中的自动化。]]></description><category></category></item><item><title><![CDATA[登录等第三方认证-outh2原理与分析]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/121483022</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/121483022</guid><author>linkingfei</author><pubDate>Tue, 23 Nov 2021 12:51:21 +0800</pubDate><description><![CDATA[看了很多关于outh2应用文章，介绍都比较晦涩难懂，同时没有一个实际案例说明，
下面，我将使用security+outh2简单案例讲解，并通过微信认证流程解释为什么这种实现方式是最佳的。

1. Security实现Outh2登录
1.1 项目环境搭建及说明

搭建springboot项目引入依赖

 		&lt;!-- for Spring Security --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springfr.]]></description><category></category></item><item><title><![CDATA[设计模式-如何提高代码质量]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/120901756</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/120901756</guid><author>linkingfei</author><pubDate>Fri, 22 Oct 2021 11:10:57 +0800</pubDate><description><![CDATA[最近看到一段话，对设计模式总结不错：

《设计模式：可复用面向对象软件的基础》，在书中作者提到了一句话：
“找到变化，封装变化”，这才是设计模式的底层逻辑。
-  什么在变化
-  如何封装变化

下面我以一个简单单号生成的案例，说明一个提高代码质量步骤。
1、单号生成逻辑
 public static String generateOrderNo() {
        String id = "";
        try {
        	// ip生成与转换
            String]]></description><category></category></item><item><title><![CDATA[k8s入门学习-采坑记录]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/119396081</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/119396081</guid><author>linkingfei</author><pubDate>Thu, 05 Aug 2021 00:32:51 +0800</pubDate><description><![CDATA[1、flannel安装配置
flannel-io/flannel
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

2、在安装完flannel，coredns一直不能正常启动：

master不允许部署


查看原因：

即主节点master默认不予许部署work pod，解除限制方法：
允许master]]></description><category></category></item><item><title><![CDATA[docker容器管理平台—portainer]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/119155319</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/119155319</guid><author>linkingfei</author><pubDate>Tue, 27 Jul 2021 23:15:57 +0800</pubDate><description><![CDATA[portainer容器管理平台

比较流行有以下三种
DOCKER UI
shipyard
portainer

这里我安装portainer，先下载汉化包并解压
wget https://labx.me/dl/4nat/public.zip

 unzip public.zip -d public

docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/]]></description><category></category></item><item><title><![CDATA[docker容器化基础]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/118946414</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/118946414</guid><author>linkingfei</author><pubDate>Tue, 20 Jul 2021 22:45:09 +0800</pubDate><description><![CDATA[1. namespace隔离

安装busybox镜像测试：


2.   cgroup限制

查询管控限制的资源：mount -t cgroup
以cpu为例：ls /sys/fs/cgroup/cpu， 其中cfs是重点关注的。



创建独立限制文件：mkdir container
默认生成一下文件：



设置cpu限制:
每 100 ms 的时间里，被该控制组限制的进程只能使用 20 ms 的 CPU 时间，也就是说这个进程只能使用到 20% 的CPU 带宽:  echo 20000 &gt; /]]></description><category></category></item><item><title><![CDATA[ShardingSphere-JDBC 实现分库分表]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/118257668</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/118257668</guid><author>linkingfei</author><pubDate>Sun, 27 Jun 2021 00:59:16 +0800</pubDate><description><![CDATA[— 进行中

]]></description><category></category></item><item><title><![CDATA[Mybatis动态数据源-分库分表简单版实现]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/118256387</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/118256387</guid><author>linkingfei</author><pubDate>Sun, 27 Jun 2021 00:55:56 +0800</pubDate><description><![CDATA[1、动态数据源【分库】
分库有两种选择方案：

用dao接口注解+切面实现动态数据源
利用表字段分库策略实现

此处采用第一种方案，第二种方案我将在分表是实现；
1.1 环境搭建

引入以下依赖

     &lt;dependency&gt;
            &lt;groupId&gt;org.mybatis.spring.boot&lt;/groupId&gt;
            &lt;artifactId&gt;mybatis-spring-boot-starter&lt;/arti]]></description><category></category></item><item><title><![CDATA[自定义Mybatis分页插件]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/118252270</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/118252270</guid><author>linkingfei</author><pubDate>Sat, 26 Jun 2021 18:43:59 +0800</pubDate><description><![CDATA[1、通过ThreadLocal封装分页

线程分页参数：

public class PageThreadLocalUtil {

    private static final ThreadLocal&lt;BasePage&gt; PAGE_THREAD_LOCAL = new ThreadLocal();

    public static void setPageThreadLocal(BasePage basePage) {
        PAGE_THREAD_LOCAL.set(base]]></description><category></category></item><item><title><![CDATA[多线程中活锁与死锁]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/118060146</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/118060146</guid><author>linkingfei</author><pubDate>Sat, 19 Jun 2021 22:32:17 +0800</pubDate><description><![CDATA[1、死锁
有这样的情况：多个线程占有资源同时抢占资源时，互相等待，产生死锁;
例如： t1 线程 获得 A对象 锁，接下来想获取 B对象 的锁 t2 线程 获得 B对象 锁，接下来想获取 A对象 的锁
   Object A = new Object();
        Object B = new Object();
        Thread t1 = new Thread(() -&gt; {
            synchronized (A) {
                log.i]]></description><category></category></item><item><title><![CDATA[Arrays.asList转换集合的坑]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/117961333</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/117961333</guid><author>linkingfei</author><pubDate>Wed, 16 Jun 2021 16:57:57 +0800</pubDate><description><![CDATA[1、Arrays.asList可以转换为集合吗？
可以看到ArrayList是Arrays内部类，并不是常用的ArrayList类
public class Arrays {

	...
	private static class ArrayList&lt;E&gt; extends AbstractList&lt;E&gt;
        implements RandomAccess, java.io.Serializable
    {
        private static final lo]]></description><category></category></item><item><title><![CDATA[Java中如何正确进行浮点数运算]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/117856829</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/117856829</guid><author>linkingfei</author><pubDate>Sat, 12 Jun 2021 23:22:44 +0800</pubDate><description><![CDATA[1、浮点数不是精确存储
参考： 关于浮点数存储

  		System.out.println(0.1+0.2);
        System.out.println(1.0-0.8);
        System.out.println(4.015*100);
        System.out.println(123.3/100);
        double amount1 = 2.15;
        double amount2 = 1.10;
        System.out.pr]]></description><category></category></item><item><title><![CDATA[服务监控与健康检查]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/117597277</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/117597277</guid><author>linkingfei</author><pubDate>Sat, 05 Jun 2021 16:59:12 +0800</pubDate><description><![CDATA[监控维度

第一，提供健康检测接口。传统采用 ping 的方式对应用进行探活检测并不准确。有的时候，应用的关键内部或外部依赖已经离线，导致其根本无法正常工作，但其对外的 Web 端口或管理端口是可以 ping 通的。我们应该提供一个专有的监控检测接口，并尽可能触达一些内部组件。
第二，暴露应用内部信息。应用内部诸如线程池、内存队列等组件，往往在应用内部扮演了重要的角色，如果应用或应用框架可以对外暴露这些重要信息，并加以监控，那么就有可能在诸如 OOM 等重大问题暴露之前发现蛛丝马迹，避免出现更大的问题。
第]]></description><category></category></item><item><title><![CDATA[关于技术学习思考]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/117537464</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/117537464</guid><author>linkingfei</author><pubDate>Thu, 03 Jun 2021 23:50:08 +0800</pubDate><description><![CDATA[技术是分级:
具体说，是分短命和长寿的，也是分表面和本质的。我们要学习各种技术，但是我们要把足够的精力放到长寿的技术以及技术本质上。

比如说，稳定性上，从左到右逐渐降低，越靠右往往寿命越短。
比如说，学习难度上，不一定，但是总体来说从左到右逐渐降低。
比如说，针对性上，往往从左到右逐渐增加，即越往右就越是针对具体的问题。



过于关注配置使用，忽略原理和场景分析。
过于关注编程语言的语法和语言技巧，忽略语言思考和书写时的思维模式。
过于关注具体实现逻辑，忽略了对于设计的思考和权衡。

基础知识和能力
数]]></description><category></category></item><item><title><![CDATA[vue 与springboot项目混合部署]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/116834604</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/116834604</guid><author>linkingfei</author><pubDate>Sat, 15 May 2021 09:56:42 +0800</pubDate><description><![CDATA[rewrite  ^/$ /index.html  last;

rewrite  ^/$ /index.html  permanent;


用户到达默认域http://www.luckymock.com或http://www.luckymock.com/
将其重定向到http://www.luckymock.com/index.html

Nginx 重定向伪静态:
rewrite ^/$ /luckymock/index.html;


...]]></description><category></category></item><item><title><![CDATA[常见安全问题与处理方法]]></title><link>https://blog.youkuaiyun.com/linkingfei/article/details/116398468</link><guid>https://blog.youkuaiyun.com/linkingfei/article/details/116398468</guid><author>linkingfei</author><pubDate>Tue, 04 May 2021 10:56:05 +0800</pubDate><description><![CDATA[常见的 Web 攻击方式

XSS

跨站脚本攻击攻击者在服务器返回的普通页面中嵌入特殊的脚本代码，那么在普通用户浏览这个网页的时候，这个特殊的脚本代码就得到了执行，于是用户的 Cookie 通过请求的方式发送给了这个攻击者指定的地址，这样攻击者就劫持了用户的会话，利用 Cookie 中标识身份的字符串，就可以伪装成实际的用户，来做各种坏事了。

针对 XSS 的特点来进行防御，比如有这样两个思路：
	第一个，做好字符转义和过滤，让用户上传的文本在展示的时候永远只是文本，而不可能变成 HTML 和脚本。
	]]></description><category></category></item></channel></rss>