去哪儿网领域驱动设计(DDD)实践之路
众所周知,领域驱动设计(DDD)的概念出自EvicEvans的《领域驱动设计:软件核心复杂性应对之道》。它是指通过统一语言、业务抽象、领域划分和领域建模等一系列手段来控制软件复杂度的方法论。伴随着微服务的兴起,领域驱动设计(DDD)正在焕发青春,其价值被越来越多的业内人士重新发掘。那么,DDD在国内
面试官:三年工作经验,你连序列化都说不明白?
什么是序列化、反序列化序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。序列化的作用1、可以把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;(持久化对象)2、也可以在网络上传输对象的字节序
explain | 索引优化的这把绝世好剑,你真的会用吗?
前言对于互联网公司来说,随着用户量和数据量的不断增加,慢查询是无法避免的问题。一般情况下如果出现慢查询,意味着接口响应慢、接口超时等问题。如果是高并发的场景,可能会出现数据库连接被占满的情况,直接导致服务不可用。慢查询的确会导致很多问题,我们要如何优化慢查询呢?主要解决办法有:监控sql执行情况,发
两个线程,两个互斥锁,怎么形成一个死循环?
关注+星标公众号,不错过精彩内容转自|一口Linux两个线程,两个互斥锁如何形成死锁?程序流程图如下:程序流程图如上图所示:t0时刻,主线程创建子线程,并初始化互斥锁mutex1、mutex2;t1时刻,主线程申请到了mutex1、子线程申请到了mutex2;t2时刻,主线程和子线程都sleep1秒
Linux命令学习手册-zip
zip 可用来压缩文件,如果我们有许多文件需要做压缩,甚至可以将它们一并处理并压缩成一个文件。
Vim实践与学习-09其他
Vim实践与学习-09其他查看vim的简易教程输入:!vimtutor.这里实际vimtutor是shell终端下的一个命令,这里实际是执行的shell命令,可以在终端直接输入vimtutor。保存与恢复上次的编辑状态保存会话与状态,步骤如下输入:cdsrc,这将切换到./src目录输入:mkses
Vim实践与学习-09其他
Vim实践与学习-09其他查看vim的简易教程输入:!vimtutor.这里实际vimtutor是shell终端下的一个命令,这里实际是执行的shell命令,可以在终端直接输入vimtutor。保存与恢复上次的编辑状态保存会话与状态,步骤如下输入:cdsrc,这将切换到./src目录输入:mkses
APUE读书笔记-00预备知识(05)-预留
APUE读书笔记-00预备知识(05)-预留这里以及前面的预备知识,属于可选的内容,其实是在本人阅读并制作本书的期间,以及工作学习过程中的一些总结。添加这些内容,只是希望能够更容易地阅读并理解原书中叙述的内容;但是在添加这一部分内容的过程中,却逐渐发现,需要整理并添加到这里的预备知识变得越来越多,以
APUE读书笔记-00预备知识(04)-Linux系统中程序库文件简介
简介库文件一般就是编译好的二进制文件,用于在链接阶段同目标代码一起生成可执行文件,或者运行可执行文件的时候被加载,以便调用库文件中的某段代码。它与可执行文件相比:相同之处是:两者都是编译好的二进制文件(本节中我们讨论的二进制文件,假设都是Linux上面最常见的ELF格式);不同的是:库文件无法直接执
Linux命令学习手册-wc
wc[-c|-m][-l][-w][File...]功能统计一个文件中的行数、字数、字节数或字符数.描述缺省情况下,wc命令对File参数指定的文件中的行数、字数和字节数进行计数。这个命令将换行符数、字数和字节数写到标准输出并为所有指定的文件保留一个总数。当使用File参数时,wc命令显示文件名以及
Linux命令学习手册-tar
tar[-cxtzjvfpPN]文件与目录....功能打包,压缩的工具。举例将整个/etc目录下的文件全部打包成为/tmp/etc.tar$tar-cvf/tmp/etc.tar/etc或者$tar-zcvf/tmp/etc.tar.gz/etc或者$tar-jcvf/tmp/etc.tar.bz2
Linux命令学习手册-sed
sed[-nefr][动作]功能sed可以分析处理标准输入的数据,然后将它们输出到标准输出。可进行的处理包括取代、删除、新增、撷取特定行等等。举例例1:将/etc/passwd的内容列出,并且需要打印行号,同时,将第3~28行删除$nl/etc/passwd|sed'3,28d'输入之后,产生如下输
Linux命令学习手册-printf
printfFORMAT[ARGUMENT]...printfOPTION功能格式化并打印数据.举例打印整数和字符串$printf'theintegeris:%d\nthestringis:%s\n'3"test"输入之后,输出如下:theintegeris:3thestringis:test这里,
Linux命令学习手册-install
-installinstall[OPTION]...SOURCE...DIRECTORYinstall[OPTION]...-tDIRECTORYSOURCE...install[OPTION]...-dDIRECTORY...功能拷贝文件并设置属性,install可以安装或升级软件或备份数据,它的
Vim实践与学习-08配置相关
Vim实践与学习-08配置相关查看vim的版本及功能输入:version.这样会显示当前vim的版本,编译选项,vim配置路径等信息。查看所有set选项输入:setall.或输入:seall.这样可以查看所有可以设置的选项。显示当前set设置输入:set.或输入:se这样,可以显示当前set设置。显
Vim实践与学习-07显示相关
Vim实践与学习-07显示相关vi有时候可以用特殊的方式来显示你编辑的文件,例如多个窗口等。这里就将这类相关的命令集中了。让vi显示多个窗口(多缓冲区)水平分割当前窗口输入:split。或输入:sp。这样窗口会分为上下两部份,可以继续分割;之后在某一个窗口下,可以用:nfilename或者:efil
Vim实践与学习-06编程
Vim实践与学习-06编程这里的内容是针对编程序或者阅读源代码时候使用的,本来它的有些内容可以属于其它类的,但是这里单独用"编程相关"将这类命令集中起来了。编译并自动定位第一个错误输入:makefilename。注意:在vi中编译test.c,直接用:maketest就可以了,注意是不带后缀的哟。如
APUE读书笔记-00预备知识(03)-Linux下C语言编程简介
本节来源本节来源于我进入公司以来整理的第一篇文档中的Linux下C语言编程入门-0前言部分。而其中的Linux下C语言编程入门-20后序部分也提到过会将APUE这本书整理,正如现在所做,其具体内容应该可以在网上搜索到。本节所在的文档,本来是对一本《Linux操作系统C语言编程入门》的整理。那本书看起
APUE读书笔记-00预备知识(02)-Linux命令简介
APUE读书笔记-00预备知识(02)-Linux命令简介本节来源本节是对之前总结的一系列文章中的Linux命令学习手册-0前言的摘抄。这里的每个命令都经过我亲身的实践,linux多数命令使用起来并不难,关键是读懂命令的输出信息,以及如何使用命令帮助。我的愿望是大家能够花费尽可能短的时间,熟悉Lin
Linux命令学习手册-grep
grep[OPTIONS]PATTERN[FILE...]grep[OPTIONS][-ePATTERN|-fFILE][FILE...]功能grep是一种强大的文本搜索工具,它能使用正则表达式搜索(指定文件中的)文本,并把匹配的行打印出来。举例显示测试文件testFile的内容$cattestFi