<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SecondKo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SecondKo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SecondKo]]></copyright><item><title><![CDATA[其实我们都是“歌手”]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/136712299</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/136712299</guid><author>SecondKo</author><pubDate>Thu, 14 Mar 2024 15:29:20 +0800</pubDate><description><![CDATA[哭发出的声音一般都是低音，也就是说低音可以表达心情低落或伤心，当然还可表达其它情感，比如力量雄厚感等等。笑发出的声音一般都是高音，也就是说高音可以表达高兴，当然也可以表达其它情感。比如一个女人在山上突然看到一条蛇，发出尖叫，这也是高音，表示受到了惊吓。而歌手，可以通过组合不同音调，表达出更加细腻的情感。每每听到这首歌时，心中的对侵略者的愤恨油然而起，满脑都是“打倒日本军国主义”。有人说音乐真是一种奇妙的艺术，它能陶冶人们的情趣，也能激发深藏不漏的情感。所以，从音乐的本质上来讲，我们都是“歌手”]]></description><category></category></item><item><title><![CDATA[这大概是三十岁左右的状态吧]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/136401664</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/136401664</guid><author>SecondKo</author><pubDate>Fri, 01 Mar 2024 17:22:18 +0800</pubDate><description><![CDATA[早上起床就拿手机体现的是对信息的欲望，囤积物品体现的是对物质的欲望，应酬太多体现的是对社交的欲望，吃得太多体现的是对美食的欲望……事实上，我做事的诀窍恰恰和大家想的相反，就是少做事，甚至不做事。为了在压力环境中尽可能保持较大的格局和远见，我们就需要运用高级元认知能力保持对环境的觉知，因为在无觉知状态下，心智带宽会受到挤压，但在主动觉知状态下，人们就可以承受压力，集中心力做出理性的决定。适当的闲余是我们应对压力和意外的宝贵资源，但是过多的闲余可不是什么好事，如果有大量的金钱，就容易萌生无谓的欲望。]]></description><category></category></item><item><title><![CDATA[c++服务性能优化]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/121079623</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/121079623</guid><author>SecondKo</author><pubDate>Mon, 01 Nov 2021 14:31:07 +0800</pubDate><description><![CDATA[C++ 性能分析

1.系统级性能分析工具perf的介绍与使用 - ArnoldLu - 博客园

系统级性能分析工具perf的介绍与使用

2.专题：性能调优之工具---perf_中年润的博客-优快云博客_perf

性能调优之工具---perf

3.Linux下用火焰图进行性能分析_OSKernelLAB(gatieme)-优快云博客

Linux下用火焰图进行性能分析

4.perf + 火焰图分析程序性能 - 刘志鹏的Blog - 博客园

perf命令简要介绍



什么是火焰图 ...]]></description><category></category></item><item><title><![CDATA[系统架构-基于卫星的导航]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115599858</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115599858</guid><author>SecondKo</author><pubDate>Sun, 11 Apr 2021 16:55:14 +0800</pubDate><description><![CDATA[系统架构-基于卫星的导航

系统架构关注的是裂解系统需求，并利用这些只是来划分较大的系统。但是，我们必须记住这个层次的关注点通常十分抽象、宏观、影响巨大，且不涉及实现或技术细节。在设计架构时，如果我们理解这一点并采取正确的步骤，将更有坑能创建一个寿命很长的系统--更加可操作、可维护和可扩展。

本章将展示如何在逻辑上对所需功能进行划分，来开发假象的卫星导航系统的系统架构。为了让这个问题可管理，我们从简化的视角开发第一和第二层次的架构，分别定义组成部分和子雄。我们将展示一个有代表性的过程步骤和开发工件子集，而]]></description><category></category></item><item><title><![CDATA[面向对象设计-过程]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115599494</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115599494</guid><author>SecondKo</author><pubDate>Sun, 11 Apr 2021 15:09:32 +0800</pubDate><description><![CDATA[过程

成功项目的特征

存在很强的架构愿景；
	应用了管理良好的迭代、增量式开发生命周期；
1.很强的架构愿景

好的软件架构通常具有以下一些共性：

它们由定义良好的抽象层构成，每层代表了一种内聚的抽象，提供了定义良好的、受控的接口，并且简历在同样定义良好的、受控的底层抽象设施之上。
	每一层的接口和实现之间有清晰地关注点分离，让我们能够改变一个层的实现而不会破会它的客户对它的假定。
	架构很简单：共同的行为是通过共同的抽象和共同的机制来实现的。
2.迭代和增量式的开发声明周期

追求理性的开发过程
.]]></description><category></category></item><item><title><![CDATA[面向对象-表示法]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115583073</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115583073</guid><author>SecondKo</author><pubDate>Sat, 10 Apr 2021 23:49:39 +0800</pubDate><description><![CDATA[表示法

画图的动作并不是分析或设计的要点。一张图示只是记录了系统行为的一种说明或一种架构的愿景与细节。如果遵循任何一种工程师的工作方式（软件、土木、机械、化工、建筑或其他），你很快就会意识到系统构想形成的唯一场所就是设计者的头脑。当这种设计随时间展开时，它常常被记录在一些高科技的媒质上，如同被记录在白板、餐巾纸或信封的背面一样的。

1.统一建模语言

拥有一种定义良好的、富有 表现力的表示法，对于软件开发过程是很重要的。首先标准的表示法让分析师或开发者能够描述一个场景，阐明一种架构，然后无二义地将这些决]]></description><category></category></item><item><title><![CDATA[面向对象-分类]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115575100</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115575100</guid><author>SecondKo</author><pubDate>Sat, 10 Apr 2021 16:50:26 +0800</pubDate><description><![CDATA[↵

分类

分类是组织只是的手段。在面向对象设计中，认识到十五件的相似性让我们能够将共性放在关键抽象和机制中，最终导致更小的应用和更简单的架构。不幸的是，没有实现分类的金光大道。对于那些习惯寻找菜谱答案的读者，我们明确地指出，确定类和对象没有简单的诀窍。没有所谓的“完美”类结构，也没有一组”正确“的对象。像所有工程学科一样，我们的设计选择是对许多竞争因素的折中。

幸运的是，在其他学科中存在着大量有关的分类的历史经验、从一些更为经典的方法中，面向对象分析技术出现了，它提出了一些有用的、值得推荐的实践和..]]></description><category></category></item><item><title><![CDATA[类与对象]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115564428</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115564428</guid><author>SecondKo</author><pubDate>Sat, 10 Apr 2021 12:03:53 +0800</pubDate><description><![CDATA[“对象是一个具有状态、行为和标识符的实体。结构和行为累死的对象定义在它们共同的类中。‘实例’和‘对象’这两个术语可以互换使用。”

状态

考虑一个分发医疗的自动售货机。这类对象的一般行为是当某人在投币口塞进钱，并按下选择按钮时，机器就会提供一种饮料。如果用户先选择饮料再向投币口塞钱会怎样？大部分自动售货机什么也不会干，因为用户违反了它们基本的操作假定。换言之，用户没有注意到自动售货机处于一种状态（等待塞钱）。

从这个例子中，我们可以得到下面的基本定义：

“对象的状态包括这个对象的所有属性（通常是静态的]]></description><category></category></item><item><title><![CDATA[面向对象编程]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115561191</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115561191</guid><author>SecondKo</author><pubDate>Sat, 10 Apr 2021 00:30:24 +0800</pubDate><description><![CDATA[面向对象编程

那么，究竟什么是面向对象编程？我们这样定义：

“面向对象编程是一种实现的方法，在这种方法中，程序被组织称许多组相互协作的对象，每个对象代表某个类的实例，而类则属于一个通过继承关系形成的层次结构。”

这个定义有三个要点：（1）利用对象作为面向对象编程的基本逻辑构建块（第一章中介绍的“组成部分”层次结构），而不是算法；（2）每个对象都是某个类实例，（3）类与类之间可以通过继承关系联系在一起（第一章介绍的“是一个”层次机构）。一个程序可能看起来像是面向对象的，但是如果不满足这三点它就不是面向对]]></description><category></category></item><item><title><![CDATA[面向对象设计-复杂性]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/115560138</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/115560138</guid><author>SecondKo</author><pubDate>Fri, 09 Apr 2021 22:29:18 +0800</pubDate><description><![CDATA[为什么软件的本质是复杂的

正如Brooks所指出的：“软件的复杂性是一个基本特征，而不是偶然。这种固有的复杂性有四个原因：问题域的复杂性、管理开发过程的困难性、能实现的灵活性，以及刻画离散系统行为的问题。

1.我们在然健中视图解决的问题常常涉及不可避免的复杂性，在其中我们可以发现数不清的竞争性需求，甚至是相反的需求。请考虑一下一家多引擎飞机的电子系统和一个蜂窝式移动电话交换系统或一个自动化机器人的需求。这些系统的基本功能已经很难理解了，现在还要加上所有的（常常是隐含的）非功能需求，如可用性、性能、成本、]]></description><category></category></item><item><title><![CDATA[2021-03-02 软件设计]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/114275973</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/114275973</guid><author>SecondKo</author><pubDate>Tue, 02 Mar 2021 13:02:45 +0800</pubDate><description><![CDATA[软件设计原则：

原因：

    1.适应变化

    2.提高代码复用度

    3.可维护性

    4.可扩展性

图形学opengl、工程学、算法。

原则：

单一职责：

开闭原则：

依赖倒置原则：

   指的是抽象不应该依赖与细节，细节应该依赖于抽象，也就是面向接口编程，而不是面向实现编程，

接口隔离原则：

  指的是使用多个专门的接口比使用一个接口要好。

合成复用原则：

  就是在一个新对象里面使用已有的对象，使之成...]]></description><category></category></item><item><title><![CDATA[vscode go tools 手动安装]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/108672806</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/108672806</guid><author>SecondKo</author><pubDate>Fri, 18 Sep 2020 20:51:20 +0800</pubDate><description><![CDATA[go tools

1. 手动创建目录$GOPATH/src/golang.org/x/tools

2. 手动下载 go tools




git clone https://github.com/golang/tools.git ./


golang tools

3. 安装 go tools




go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install golan..]]></description><category></category></item><item><title><![CDATA[解决go包管理代理网址无法访问：proxy.golang.org]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/108641285</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/108641285</guid><author>SecondKo</author><pubDate>Thu, 17 Sep 2020 14:05:18 +0800</pubDate><description><![CDATA[解决方法：

换一个国内能访问的代理地址：https://goproxy.cn

执行命令：


go env -w GOPROXY=https://goproxy.cn


重新执行命令，完美通过！


]]></description><category></category></item><item><title><![CDATA[线程锁、进程所以及分布式锁]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/108455199</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/108455199</guid><author>SecondKo</author><pubDate>Tue, 08 Sep 2020 19:25:43 +0800</pubDate><description><![CDATA[一、线程锁

互斥锁
	自旋锁
	读写锁
	条件变量
	信号量
	原子锁
什么时候使用互斥锁？什么时候获取自旋锁？

互斥锁：首先它是睡眠锁，会进行线程的切换

自旋锁：循环等待锁一般用原子锁实现的，会一直占用我们的cpu

lock(mutex);

执行

unlock(mutex);

1、时间上的考虑，时间少就用自旋锁，时间长就用互斥锁

2、设计上，充分利用CPU时候，自旋锁。代表是nginx。（锁的力度要足够小）

互斥锁和自旋锁是可以同时使用的

1、自旋锁+时间2、时间超时后改用互斥锁

.]]></description><category></category></item><item><title><![CDATA[utf-8与gbk编码转换]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/108320947</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/108320947</guid><author>SecondKo</author><pubDate>Mon, 31 Aug 2020 14:42:55 +0800</pubDate><description><![CDATA[#include&lt;iconv.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;stdio.h&gt;
#include&lt;unistd.h&gt;
#include&lt;fcntl.h&gt;
#include&lt;string.h&gt;
#include&lt;sys/stat.h&gt;
intcode_convert(char*from_charset,char*to_charset,char*inbuf,size_t...]]></description><category></category></item><item><title><![CDATA[innodb隔离性问题解决]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/108156819</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/108156819</guid><author>SecondKo</author><pubDate>Fri, 21 Aug 2020 22:47:44 +0800</pubDate><description><![CDATA[1LBCC

事务开始操作数据前，对其加锁，组织

MVCC多版本控制

快照到

快照读：

sql读取到数据是快照版本，也就是历史版本。如select

当前读

sql读取的是最新本版，通过锁机制保证读取的数据无法通过其它事务进行修改。DML是当前读。

Inondb中的锁（是行锁）

共享锁：多个事务对于数据可以共享访问，不能操作修改

使用方式：select * from table whiere id=1 lock in share mode  ---加锁

      ...]]></description><category></category></item><item><title><![CDATA[brpc环境部署]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/107778886</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/107778886</guid><author>SecondKo</author><pubDate>Tue, 04 Aug 2020 22:02:03 +0800</pubDate><description><![CDATA[一、安装gflags


git clone https://github.com/gflags/gflags.git
cd gflags
git checkout v2.0
sh autogen.sh
./configure
make
make install

二、安装gtest

下载gtest，release-1.8.0

 git clone https://github.com/google/googletest

gtest编译

　　cd googletest

生成Makefi...]]></description><category></category></item><item><title><![CDATA[C++ Rest SDK]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/79395878</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/79395878</guid><author>SecondKo</author><pubDate>Wed, 28 Feb 2018 09:33:20 +0800</pubDate><description><![CDATA[﻿﻿http://microsoft.github.io/cpprestsdk/index.html]]></description><category></category></item><item><title><![CDATA[Apache Ignite C++  API使用]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/79395834</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/79395834</guid><author>SecondKo</author><pubDate>Wed, 28 Feb 2018 09:30:46 +0800</pubDate><description><![CDATA[﻿﻿https://ignite.apache.org/releases/latest/cppdoc/index.html]]></description><category></category></item><item><title><![CDATA[Apache Ignite（V2.3.0）中文开发手册]]></title><link>https://blog.youkuaiyun.com/SecondKo/article/details/79395812</link><guid>https://blog.youkuaiyun.com/SecondKo/article/details/79395812</guid><author>SecondKo</author><pubDate>Wed, 28 Feb 2018 09:29:31 +0800</pubDate><description><![CDATA[﻿﻿https://www.zybuluo.com/liyuj/note/230739]]></description><category></category></item></channel></rss>