<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[拎小壶冲]]></title><description><![CDATA[系统架构，领域驱动设计，Java编程]]></description><link>https://blog.youkuaiyun.com/8665048</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; 8665048]]></copyright><item><title><![CDATA[Golang后端学习笔记 — 7. Golang如何处理数据库事务锁]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/124093496</link><guid>https://blog.youkuaiyun.com/8665048/article/details/124093496</guid><author>8665048</author><pubDate>Mon, 18 Apr 2022 08:46:40 +0800</pubDate><description><![CDATA[上一节，学习了如何实现一个简单的转账事务，但是，我们还没做更新账户余额的操作，因为，它稍复杂一些，需要小心处理并发事务以避免死锁。
本节，将实现这个功能，顺便学习一下数据库锁，以及如何调试死锁的情况。
测试驱动开发(TDD)
这次，将使用一种不同的实现方式，即测试驱动开发(TDD)。
思路是：首先编写测试，然后逐渐改进功能代码直到测试通过。
接着上一节的store_test.go，需要TODO的地方，检查更新后的账户余额
		// 3. 为`ToAccount`创建一个账目记录，金额为`+10`
		res]]></description><category></category></item><item><title><![CDATA[Golang后端学习笔记 — 6. Golang操作数据库事务的方法]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/124073567</link><guid>https://blog.youkuaiyun.com/8665048/article/details/124073567</guid><author>8665048</author><pubDate>Tue, 12 Apr 2022 08:54:33 +0800</pubDate><description><![CDATA[之前，学习了对数据库的每个表执行CRUD操作。真实的场景中，我们经常需要执行一个事务，它组合了多个表的相关操作。本节学习如何在Golang中实现它。
在开始之前，先聊一下事务。
什么是数据库事务？
它是一个单一的工作单元，通常由多个表操作组成。
比如：在我们的小银行项目中，我们要从张三的账户中向李四的账户中转账10元。该交易就包括5个操作，涉及到accounts表、entries表和transfers表：

创建一个金额等于10的转账记录(transfers表)
为张三创建一个账目记录，金额为-10(ent]]></description><category></category></item><item><title><![CDATA[Golang后端学习笔记 — 5. 使用Golang为数据库CRUD写单元测试]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/124042722</link><guid>https://blog.youkuaiyun.com/8665048/article/details/124042722</guid><author>8665048</author><pubDate>Mon, 11 Apr 2022 08:09:02 +0800</pubDate><description><![CDATA[在上一节中，学习了如何生成自动Golang CRUD代码，本节将学习如何为这些CRUD操作编写单元测试。
1. 测试 CreateAccount
从account.sql.go里面的CreateAccount开始，在项目的db/sqlc目录下新建一个文件account_test.go


在 Golang 中有个约定，就是把测试文件和代码放在同一个文件夹内，并且测试文件的命名要以 test 后缀结尾。

这个测试文件的包名是 db, 在文件里定义个函数 TestCreateAccount。

Go中的每个单]]></description><category></category></item><item><title><![CDATA[Golang后端大师班学习笔记 — 4.从SQL中生成Golang CRUD代码]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/124015572</link><guid>https://blog.youkuaiyun.com/8665048/article/details/124015572</guid><author>8665048</author><pubDate>Fri, 08 Apr 2022 10:19:17 +0800</pubDate><description><![CDATA[本节将学习使用Golang来做CRUD操作。
这里的CRUD指的是什么？

C 是 Create，代表新建或向数据库插入新记录
R 是 Read, 从数据库中检索记录
U 是 Update，改变数据库中记录的内容
D 是 Delete，从数据库中删除记录。

在Golang中，有几种实现 CRUD 操作的方法。
1. 使用 low-level 标准库 database/sql
在官方文档 https://pkg.go.dev/database/sql#DB.QueryContext 中，可以看到如下代码示例]]></description><category></category></item><item><title><![CDATA[3、如何使用Golang编写和执行数据库迁移]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/124006088</link><guid>https://blog.youkuaiyun.com/8665048/article/details/124006088</guid><author>8665048</author><pubDate>Thu, 07 Apr 2022 12:13:00 +0800</pubDate><description><![CDATA[在我们使用数据库的时候，迁移模式是我们在整个应用程序生命周期中经常必须完成的一项重要任务，以适应新的业务需求，在本章中，将学习如何使用Golang编写和运行数据库迁移(DB Migration)。
所以，这里需要使用一个Golang库,https://github.com/golang-migrate/migrate,这个库适用于许多不同的数据库引擎，包括：PostgreSQL、SQLite、MySQL/ MariaDB、MongoDB等等，具体可以参考官方文档。
1、安装migrate库
打开文档，htt]]></description><category></category></item><item><title><![CDATA[2、安装Docker和Postgres]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/123982842</link><guid>https://blog.youkuaiyun.com/8665048/article/details/123982842</guid><author>8665048</author><pubDate>Wed, 06 Apr 2022 15:41:44 +0800</pubDate><description><![CDATA[本章将学习

如何安装 Docker Desktop
下载并启动一个 Postgres 容器
使用Navicat连接并管理 Postgres 数据库
使用上一章生成的SQL脚本，创建 Database Schema

1、安装 Docker Desktop
打开Docker的官方网站，下载对应操作系统的版本，安装并启动它。

打开终端，查看正在运行的Docker容器，输入 docker ps 命令

目前是个空列表，因为我们还没运行任何容器。
输入 docker images,可以看到镜像列表也是空的，我们]]></description><category></category></item><item><title><![CDATA[1. 设计数据库结构]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/123913861</link><guid>https://blog.youkuaiyun.com/8665048/article/details/123913861</guid><author>8665048</author><pubDate>Wed, 06 Apr 2022 15:28:17 +0800</pubDate><description><![CDATA[这个Golang后端大师班中，我们将学习如何使用Golang、PostgreSQL和Docker从头开始设计、开发和部署一个完整的后端。
原版的课程包括：

设计数据库模式并从中自动生成 SQL 代码
深入了解数据库隔离级别、事务以及如何避免死锁
自动生成 Golang 代码与数据库交互
使用 Gin 框架开发 RESTful 后端 Web 服务
使用用户身份验证、JWT 和 PASETO 保护 API
使用接口和模拟编写具有高覆盖率的更强大的测试集
构建用于部署的最小 Docker 映像并使用 Docke]]></description><category></category></item><item><title><![CDATA[React17+Hook+TS4+VSCode开发环境搭建(2021)]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/117825511</link><guid>https://blog.youkuaiyun.com/8665048/article/details/117825511</guid><author>8665048</author><pubDate>Sat, 12 Jun 2021 19:12:52 +0800</pubDate><description><![CDATA[@TOC
用 Create React App 初始化项目
二级目录
三级目录
由于微信小程序原生并不支持动态的底部TabBar，但是我们有些场景需要这个功能。那么可以采用变通的方式实现。
1、首先需要知道uniapp或者说微信小程序有什么样的限制
性能问题，在uni-app的vue版本上，自定义tabbar让您不得不在一个webview内模拟出多个页面，这存在严重的性能问题
要使用原生tabbar,在pages.json文件里面必须有tabBar节点，节点里面的pagePath必须在pages节点里面存在]]></description><category></category></item><item><title><![CDATA[uniapp如何实现小程序的动态底部TabBar]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/116421688</link><guid>https://blog.youkuaiyun.com/8665048/article/details/116421688</guid><author>8665048</author><pubDate>Wed, 05 May 2021 10:12:32 +0800</pubDate><description><![CDATA[由于微信小程序原生并不支持动态的底部TabBar，但是我们有些场景需要这个功能。那么可以采用变通的方式实现。

1、首先需要知道uniapp或者说微信小程序有什么样的限制

性能问题，在uni-app的vue版本上，自定义tabbar让您不得不在一个webview内模拟出多个页面，这存在严重的性能问题
要使用原生tabbar,在pages.json文件里面必须有tabBar节点，节点里面的pagePath必须在pages节点里面存在，并且路径上不能有参数。

2、针对这些限制做什么样的变通
这里我使用了uV]]></description><category></category></item><item><title><![CDATA[WordPress REST API中增加自定义字段的显示]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/113526594</link><guid>https://blog.youkuaiyun.com/8665048/article/details/113526594</guid><author>8665048</author><pubDate>Mon, 01 Feb 2021 18:42:15 +0800</pubDate><description><![CDATA[在做WordPress小程序编辑器的时候，遇到了需要自定义一些文章的字段，但是通过REST接口访问，发现meta里面的值时空的，



不应该啊，既然wordpress有这个字段，为什么没有值出来呢，去找找文档吧，果然找到:https://developer.wordpress.org/rest-api/extending-the-rest-api/modifying-responses/

需要写个小插件，把字段的show_in_rest设置为true，经过设置，完美呈现。


&lt;?php
// .]]></description><category></category></item><item><title><![CDATA[解决uView中uSticky和uTabs组合使用吸上去下不来的问题]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/113374109</link><guid>https://blog.youkuaiyun.com/8665048/article/details/113374109</guid><author>8665048</author><pubDate>Fri, 29 Jan 2021 11:27:14 +0800</pubDate><description><![CDATA[在uni-app的使用中，使用到了uView界面套件，在uSticky和uTabs组合使用中，发现吸上去下不来了。通过调试uSticky源码，发现了问题所在。

因为，我的uTabs是从后台动态获取的数据，初始值是空的，如下：


categoryList: []

这时候，uSticky是获取不到位置的，所以导致吸上去了下不来。

解决方法是，先初始化个空值上去，就好了。


categoryList: [{
                name: ''
            }]



这个界面的]]></description><category></category></item><item><title><![CDATA[wordpress小程序在线生成器DEMO]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/113182936</link><guid>https://blog.youkuaiyun.com/8665048/article/details/113182936</guid><author>8665048</author><pubDate>Tue, 26 Jan 2021 16:19:58 +0800</pubDate><description><![CDATA[目前，后端主要功能都以基本实现，可以在线的进行界面的布局托拉拽，剩下的就是细节的完善和组件的补充。

只需要有个wordpress链接，即可绑定使用，无需安装额外的插件，只调用了wordpress自带的REST API，除非站点关闭了这个功能，否则都是可以正常使用的。

所用到的图片素材也是从源站点直接调用。下面的截图以优设网为例。



接下来的工作是，把小程序端的Demo完善，渲染出来编辑器做好的界面，恩，就这样。

生菜DEMO的URL：https://miniapp.fuyeshengcai.com]]></description><category></category></item><item><title><![CDATA[wordpress小程序图片广告组件实现]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/112603647</link><guid>https://blog.youkuaiyun.com/8665048/article/details/112603647</guid><author>8665048</author><pubDate>Thu, 14 Jan 2021 18:01:47 +0800</pubDate><description><![CDATA[小程序的图片广告组件，需要读取wordpress的图片资源
]]></description><category></category></item><item><title><![CDATA[一个想法关于Wordpress小程序快速发布工具]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/112544644</link><guid>https://blog.youkuaiyun.com/8665048/article/details/112544644</guid><author>8665048</author><pubDate>Wed, 13 Jan 2021 09:49:28 +0800</pubDate><description><![CDATA[最近接的一个项目用到了一些开发技术，并结合自己的一个想法，有了这么一个生成wordpress小程序思路。大概如下：

拥有wordpress网站的用户，可以利用这个工具，快速的生成小程序，包括不同平台的，微信小程序、头条小程序、支付宝小程序、百度小程序等。

这里用到了一些技术点：

1、第三方开发平台的接口，比如：微信的第三方平台开发。代小程序创建。

2、uniapp，一次开发多端覆盖。

3、wordpress的rest api,https://developer.wordpress.org/res.]]></description><category></category></item><item><title><![CDATA[SpringBoot中整合使用jFinal的ActiveRecord并支持多数据源和事务]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/106220788</link><guid>https://blog.youkuaiyun.com/8665048/article/details/106220788</guid><author>8665048</author><pubDate>Thu, 21 May 2020 16:25:00 +0800</pubDate><description><![CDATA[在一些特殊场景，我们用到了Spring Boot，数据ORM层并没有使用流行的hibernate或mybatis，而采用了国内开源的jFinal中的ActiveRecord。不要问为什么不直接使用jFinal，就是这么个特殊需求。

在我们的需求中，需要使用多个数据源，并支持事务，下面是配置的详细过程。

依赖包的版本：

一、spring boot 整合jFinal的ActiveRecord

二、多数据源支持

三、数据库的事务支持

（注意：只支持同一数据源的事务）

四、源码下载
...]]></description><category></category></item><item><title><![CDATA[Instagram社会化营销从入门到精通（二）内容规划-前20个帖子应该发什么]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/100123173</link><guid>https://blog.youkuaiyun.com/8665048/article/details/100123173</guid><author>8665048</author><pubDate>Wed, 28 Aug 2019 17:18:00 +0800</pubDate><description><![CDATA[在这一章中，我们将从一个高质量、专一性、美观性出发。我们将了解到创作高品质内容的重要性，这些内容不仅与你的目标受众相关，而且能够提高你在所属领域的知名度。

本章中将讨论的主题是：

你的前20个Instagram帖子应该发什么
	创建高质量内容的准则
	如何找高品质的图片
	用户创建内容的力量
	如何保持一个健康的参与度
	在Instagram上设置产品推送
	视频的独特效果
我们将从学习你的第...]]></description><category></category></item><item><title><![CDATA[Instagram社会化营销从入门到精通（一）防止账号被禁用（9）]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/100081095</link><guid>https://blog.youkuaiyun.com/8665048/article/details/100081095</guid><author>8665048</author><pubDate>Mon, 26 Aug 2019 16:47:34 +0800</pubDate><description><![CDATA[前些年，创建一个新账号，然后就可以不停关注其他用户，每天最多关注1500次，没什么问题。但是，现在Instagram变的非常严格，经常在没有警告的情况下封你的账号。他们这么做是为了防止垃圾账号。所以，你必须小心你的动作，正常人是不会这么疯狂操作的。你在做某些事的时候，必须要知道会发生什么，以及如何避免和解决它，这就是本节要分享的内容。

目录

封停某个操作：

账号禁用

Email或电话验证
...]]></description><category></category></item><item><title><![CDATA[Instagram社会化营销从入门到精通（一）着陆页（8）]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/100062068</link><guid>https://blog.youkuaiyun.com/8665048/article/details/100062068</guid><author>8665048</author><pubDate>Sun, 25 Aug 2019 12:40:29 +0800</pubDate><description><![CDATA[着陆页，这是很多人都回避的话题，他们认为这样做太麻烦了，不值得。

如果，你是在认真的对待Instagram营销，这是值得的。至于说麻烦，想做好一件事没那么简单。可以先做个简单的，解决有的问题，再解决好的问题。

什么是着陆页？其实就是一个简单的网页，设定好目标，引导用户做你想要做的事。只在这个页面上，给用户一个选择。比如：订阅邮件，购买产品，这些都可以。不过，再重申一下，这个页面只有一个目标，永...]]></description><category></category></item><item><title><![CDATA[Instagram社会化营销从入门到精通（一）分析链接点击数据（7）]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/100053645</link><guid>https://blog.youkuaiyun.com/8665048/article/details/100053645</guid><author>8665048</author><pubDate>Sat, 24 Aug 2019 15:53:29 +0800</pubDate><description><![CDATA[如果你在Instagram上做营销推广，那么流量分析是你需要做的重点之一。这将让你知道你的策略是否正确，并做出调整，让它更好的发挥作用。

跟踪流量有以下几个方法，你可以选择你喜欢的其中一个：

1、使用Google分析工具

通过个人简介里面的链接进入你的网站，可以使用Google分析工具，它是免费的。上面可以看到各种分析报告。使用Google分析工具的好处是，你可以使用它的UTM参数。关于UT...]]></description><category></category></item><item><title><![CDATA[Instagram社会化营销从入门到精通（一）个人简介里的链接策略（6）]]></title><link>https://blog.youkuaiyun.com/8665048/article/details/100041374</link><guid>https://blog.youkuaiyun.com/8665048/article/details/100041374</guid><author>8665048</author><pubDate>Fri, 23 Aug 2019 16:27:34 +0800</pubDate><description><![CDATA[现在你可能已经留意到，在你的Instagram个人简介里，添加一个链接，点击它，就可以跳转到这个链接指向的页面。

那么，如何才能最大化的利用好这个链接，才能不会浪费这些宝贵的流量呢？

让它看起来有意思并切中要害。如果有网站，大多数人只是链接到他们的首页，并认为访客会找到他们想要的东西。这就是巨大的流量浪费，因为，当你的首页对他们没有吸引力时，访客很可能离开。用户需要在上面找东西，但大多数情况用...]]></description><category></category></item></channel></rss>