自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西代零零发

既然选择远方,便只顾风雨兼程

原创 程序员修炼之路

0.前言:在路上,再上路在前言《程序员修炼之路-(0)前言:在路上, 再上路》中已经对知识体系进行了梳理,主要分为问题定义、算法与数据结构、系统平台API、编程语言实现、代码设计、测试验证等等。目前集中精力编写算法与数据结构部分,这可能也是最艰难的一部分。其他部分之前零零散散有所涉及,之后再慢慢补...

2016-02-10 11:02:35

阅读数 6196

评论数 6

原创 内存计算技术资料整理

先来看一下一张技术的全景图,其中涉及内存计算的技术标成红色。 1)事务处理:主要分为Cache(Memcached, Redis, GemFire)、RDBMS、NewSQL(以VoltDB为首的)三部分,缓存和NewSQL数据库是关注的重点。2)流式处理:Storm本身只是计算的框架,而Spar...

2014-12-13 14:22:32

阅读数 14323

评论数 2

原创 迟来的2019年总结

2018年的个人总结内容很丰富,2019年也已经过去两周了,想提笔写点什么却好像素材不多。 这一年最大的收获应该就是,一直在做的主项目3月份在GitHub上开源了。以前对GitHub上如何开发和协作一点都不了解,没想到在Amazon竟然有机会参与到开源软件的开发。于是在接下来的大半年时间,如果管理...

2020-01-20 09:54:05

阅读数 24

评论数 1

原创 GitHub Action开启自动化

这周突然发现公司项目的GitHub代码库多了一个Tab页,叫做GitHub Action。于是了解了一下,发现这就是大家期待已久的自动化功能。自动化不只是我们常说的CICD(持续集成和持续部署),通过定义一个yml文件我们可以实现更多的动作。这个yml配置文件会保存在代码库的.github文件夹,...

2019-11-16 14:24:17

阅读数 375

评论数 0

原创 Grammarinator:基于ANTLR4语法自动生成语句

Grammarinator是一个基于ANTLR 4的grammar文件,自动生成语句的开源项目:https://github.com/renatahodovan/grammarinator。从语言的grammar生成语句或者所谓的Fuzzy Testing,对软件测试很帮助。就像Grammarin...

2019-10-28 03:53:15

阅读数 69

评论数 0

原创 深入学习关系理论

周末阴雨连绵,在家闲来无事,抽空读了《Database In Depth: Relational Theory for Practitioners》这本评价不错的关系理论书的开篇。作者C.J.Date是关系理论之父Codd的好友,所以对关系理论的理解是足够深入的。甚至在开篇不久,作者就提到了与Co...

2019-10-24 14:02:00

阅读数 61

评论数 0

原创 疯狂的罗素

原书《Logicomix》,中文名《罗素的故事》或《疯狂的罗素》。讲述的是逻辑学家、哲学家罗素追寻真理的故事。以罗素的回忆为主线,穿插了许多史实和一些虚构的情节,比如罗素与一些人物的会面和对话。主要内容上与《逻辑的引擎》类似,毕竟如罗素悖论、哥德尔不完备性等大事件是一定会提及的。不同的是轻松有趣的...

2019-10-13 07:25:27

阅读数 122

评论数 0

原创 超越离散数学

早些时候曾写过一篇程序员的数学修养,介绍了一些程序员可以学习的数学分支。虽然与编程有一定的相关,但自学起来也不是一件容易的事。所以本文再推荐一些专门为程序员写的数学书,可以用作入门。有了一定基础知识,可以再根据需要去学习和选读一些更偏向数学的书。说到程序员数学,可能第一反应就是离散数学,再就是算法...

2019-10-13 06:34:48

阅读数 138

评论数 0

原创 如何实现语义分析中的类型检查

之前曾写过一篇语义分析的概念性介绍:https://daichen.blog.csdn.net/article/details/100097850。最近,终于开发完了一套基于SQL的语义分析器,算是对之前学习到的理论的一次工程实践。本文只是点出一下实践时的一些关键点和经验,具体细节还请看这里的设计...

2019-10-12 13:48:20

阅读数 134

评论数 0

原创 编译器中的语义分析

最近一直在看编译原理方面的书,之前着重研究过词法解析和语法解析,这一次因为工作原因比较侧重语义分析。简单来说,语义分析是发生在词法和语法解析之后,输入是Concrete Syntax Tree又名Parse Tree。语义分析器对Parse Tree进行分析,同时可以产生Abstract Synt...

2019-08-27 13:34:35

阅读数 190

评论数 0

原创 逻辑的引擎

最近利用通勤时间又读完了一本好书,《Engines of Logic——Mathematicians and the Origin of the Computer》。可能由于作者本身也是数学和计算方面的牛人,所以这本书并不那么容易读。一是字里行间可以立即感受到的不舒服,即句式有些太复杂,随便翻开一...

2019-07-20 13:14:19

阅读数 156

评论数 1

原创 如何高效地做设计评审

设计评审(Design Review),即在真正开始开发之前,组织一次或多次会议,先评审设计,以降低日后返工甚至项目失败的风险。相信工作过一段时间,开始主导一个功能模块甚至整个系统的同学,都对设计评审不会陌生。今天偶然看到了一篇亚马逊VP及Distinguished工程师Brad Porter的一...

2019-07-17 13:46:46

阅读数 94

评论数 0

原创 Linux Mint从HDD升级到SSD

Linux Mint从HDD升级到SSD 两年前的黑五,几乎不到五折入手了Thinkpad P50,一款非常不错的个人工作站。可因为当时预算有限,所以买的是“乞丐版”配置,处理器、内存、屏幕、背光键盘都还是次要的,最主要的是没有固态硬盘。之后便一直嫌麻烦没有升级。最近恰逢打折,于是直接买了三星的9...

2019-07-16 13:52:42

阅读数 109

评论数 2

原创 有品位的程序员

本文主要是一本老书《黑客与画家》部分章节的读后感,包括了我个人最最喜欢的两章《Hackers and Painters》和《Taste for Makers》。两个观点深入我心: 不管做什么行业,一定要做一个Maker,方式不重要,重要的是你想不想表达自己的思想。 能站在别人角度写出好代码是一种...

2019-07-01 04:36:44

阅读数 186

评论数 0

原创 ElasticSearch近实时搜索的实现

ElasticSearch近实时搜索的实现 1.近实时搜索 1.1 实时与近实时 实时搜索(Real-time Search)很好理解,对于一个数据库系统,执行插入以后立刻就能搜索到刚刚插入到数据。而近实时(Near Real-time),所谓“近”也就是说比实时要慢一点点。 1.2 近实时的挑...

2019-06-30 03:38:15

阅读数 806

评论数 0

原创 AWS开源Elasticsearch插件

今天Amazon Web Service发布了Elasticsearch的开源分发包,项目名为Open Distribution for Elasticsearch。其中包括了Security,Alerting,SQL,performance工具等一组套件。因为有幸参与了其中SQL插件的开发,所以...

2019-03-12 07:16:24

阅读数 747

评论数 0

原创 2019想要完善的几点

最近发现了自己学习时的一些不足,先简单地列在这里。以后发现了好的解决方法,或者更多可以改善的地方,再继续补充。 1.勤做读书笔记 读书笔记是这个博客的主要组成部分,但如何能做好却不是一件简单的事。主要原因就在做笔记的频率。过频则会不断打断阅读思路,纯粹成了为了做笔记而做笔记。而过晚则会导致当时的短...

2019-02-25 14:08:00

阅读数 292

评论数 0

原创 启发式面向对象设计(上)

前一阵子断断续续读完了一本老书《Object-Oriented Design Heuristics》,中文名被译作《面向对象沉思录》。虽然是一本老书,但里面的一些观点对我真的是很新奇,比如对象的动态语义、类之间的关系、关系的拓扑结构、对象树与编译器中抽象语法树的相似等,总而言之非常值得一读。 1...

2019-01-02 15:13:12

阅读数 229

评论数 0

原创 我的2018年总结

转眼又是一年,2018年也要离我们远去。最近半年没有怎么更新博客,落笔有些生疏,但其实一直都零星地写一些。只不过写作时间碎片化,导致好多文章半途而废。趁着这年底最后的几天,赶紧好好总结一下这充实的一年。以下是前几年的总结,记录着自己成长的轨迹: 我的2015技术学习流水账:https://blo...

2018-12-31 04:05:39

阅读数 1175

评论数 0

原创 那些年我错过的Java

最近在看面向对象设计的书,有了一些新的感悟。于是周末闲来无事,想写个小东西练练手。最近一直用Python,所以想回归一下更面向对象、更“静态”一些的Java。正研究怎么升级到Java 9尝尝鲜,结果发现再有80天Java 11都要发布了!真是山中方一日,世上已千年。才不关注Java没多久,已经快成...

2018-08-26 06:34:20

阅读数 478

评论数 0

原创 当我通勤时我该读什么

今年夏天房子到期后搬出了西雅图市区,从此开始了通勤上下班的生活。可能因为公交不太拥挤的缘故,在车上经常能看见捧着书读的人,有的还是厚厚的精装书。坐的每一趟车上平均都会有三到五个,甚至还有没有座位站着也要读书的。本以为亚马逊的Kindle会更为流行,结果好像很少见到,没想到实体书还如此顽强地生存着。...

2018-08-24 12:22:14

阅读数 590

评论数 6

原创 优雅的对象

最近一口气读完了二百多页的《Elegant Objects》。可能因为整理自博客所以排版一般,而且才二百多页定价却40多刀。但读过之后发现超值,甚至还想去买第二卷。作者观点大多比较激进,对自己的理念异常坚定,所以经常使用诸如“绝对不要使用XXX”、“记住XXX,就这样,句号”。但作者绝不故弄玄虚,...

2018-07-16 08:38:19

阅读数 549

评论数 3

原创 在GitHub上轻松搭建博客

从2011年开始正式定期地写文章,最开始在Google AppEngine搭建了Wordpress,几个月后又将文章都转移到了CSDN。时间飞逝,一看自己的历史文章列表发现都快七年整了。CSDN也在进步,美观方面加了各种皮肤,功能方面支持了Markdown。用得时间长了也觉得有很不方便的地方,可能...

2018-07-16 01:43:05

阅读数 597

评论数 3

原创 Haskell带你玩转函数

函数,再简单不过的概念。不管是什么范式的编程语言,都离不开用函数来表达逻辑。而函数式编程,当然核心就是函数。但函数式编程中的函数与其他语言有什么区别呢?本节都带着大家领略一下Haskell中强大的函数。这也是我们最应该从Haskell中学习,如果你觉得Haskell或其他函数式语言中的其他概念都太...

2018-07-01 03:15:10

阅读数 2616

评论数 4

原创 程序员的数学修养

1.什么是数学 按照维基百科上的解释,数学没有准确的概念,它可以笼统地分为纯数学和应用数学。纯数学研究数量(Quantity)、结构(Structure)、空间(Space)、变化(Change),使用各种符号找寻规律,将各种猜想形式化,并证明其真伪。数学的基础包括了:数理逻辑、集合论、...

2018-06-10 07:46:17

阅读数 1323

评论数 4

原创 程序员的理想桌面

最近搬家换了新公寓,地方大了一些,配了一个书桌,于是又开始折腾起了自己的开发环境。之前近一年的时间,连个书桌都没有,基本上处于晚上在床上看看书,白天工作时间有空就整理一下。但经常忙起来就搁浅了,所以写文章的时间也少了不少。现在准备重新弄好自己的环境,继续奋笔疾书:) 1.显示器 关于屏幕大...

2018-06-04 01:13:41

阅读数 9374

评论数 25

原创 X的奇幻之旅

顺应之前《程序员如何学数学》的指导思想,买了不少比较轻松的数学科普书,《The Joy of X》就是其中之一。闲来无事随手拿起,没想到却基本读完了。看似不起眼的一本小书,内容的编排、文笔的轻松令人叹为观止。有的章节让人觉得精妙无比,有的章节又扣人心悬。本文就简单地加以整理,稍微打乱了原书的顺序,...

2018-06-03 07:53:07

阅读数 948

评论数 0

原创 编程这件小事(续)

经常听人(大部分时候是领导:)说的一句话就是写代码简单,业务/设计才是最重要、最值钱的。个人一直不以为然,这种思想的存在当然肯定是有道理。本文的目的也不是要说代码才是最重要的,那无异于走入了另一个极端。这里只是想说:除非把设计做的非常细致,甚至达到了“能运行”的伪代码的级别,否则我们真的没有资格说...

2018-05-23 02:24:42

阅读数 1634

评论数 4

原创 软件开发复杂度分析

1.软件开发的本质 软件开发的首要难题是什么?需求的收集?技术的选型?项目管理?都没错,但用一个词来总结那就是:复杂度!《Code Complete》中引用了Brooks(没错,就是写出了著名的《人月神话》的那位)论文《No Silver Bullets: Essence and Acciden...

2018-02-01 05:00:58

阅读数 1911

评论数 2

原创 编程这件小事

大家都知道编程很复杂,工作流程包含需求分析、架构设计、代码实现、测试发布等。每一步又都包含了很多学问,比如架构设计要考虑正确性、扩展性、安全、性能等,如果是分布式系统则还要考虑伸缩性、健壮性等等。这样大的一个主题,那本文为什么说编程是一件小事呢?因为要想一下说清楚一个学科是不可能的,大的方面我们暂...

2018-01-18 06:14:50

阅读数 830

评论数 0

原创 Vim终极指南:所思即所得

关于开发工具方面的书,有两本获得了超高的评价,一本是《Pro Git》,另一本就是本文的主要参考《Practical Vim》,副标题Edit Text at the Speed of Thought更为形象生动——以思考的速度去编辑。这本书中包含了一百多个非常实用的Vim使用技巧,不管你是已经使...

2018-01-05 15:20:35

阅读数 1824

评论数 2

原创 对2018的展望

之前写过一篇《我的2015技术学习流水账》,最近两年因为读研的缘故导致职场的空白期,所以就不做总结(关于读研所学的总结可以参考之前的文章《北美CS求学找工指南》),而是展望一下即将到来的2018年。本文提到的资料书籍都可在《高分编程佳作推荐》中找到,都是高分好书。1.两条战线如果从实习的那年算起,...

2018-01-03 06:01:02

阅读数 1306

评论数 12

原创 Python+Vim:天作之合

1.与Vim的缘分7年的Java开发生涯,一年半Java和Python混合的研究生学习,到现在最近全职Python开发,不知不觉已经半年没碰Java了。从2013年开始从Eclipse转到Intellij,完全习惯了用JetBrain的产品做各种语言的IDE。现在Python开发也不例外,依旧沿用...

2017-12-29 03:33:48

阅读数 15547

评论数 2

原创 设计模式沉思录

最近在读一本超高分的编程语言书《Fluent Python》,网评的高分绝对实至名归。这本书引起了两方面的反思:其一是语言学习方面,Fluent用得非常恰当,流利二字反映出我们在学习任何一门新语言时(不管是编程语言还是自然语言),都试图用旧的(母语的)思维去“扭曲”它而没有做到真正的地道和流利,关...

2017-10-02 02:16:14

阅读数 1450

评论数 2

原创 高分编程佳作推荐

编程方面书籍的Top 10榜单大家可能都已经烂熟于心,TAOCP、GoF、CLRS、SICP、《The C Programming Language》、《Clean Code》、《Refactoring》、《Code Complete》、人月神话、龙书等等,这些都是经过了时间考验、需要反复阅读的经...

2017-09-25 09:09:32

阅读数 2070

评论数 2

原创 谈技术资料的阅读方法

作为一名程序员,有几种获取知识的渠道,比如本文将要讨论的技术书籍、开源代码、学术论文。这些可能都不是什么秘密,但每个人都有不同的方式和习惯,也就对应有不同的效果和效率。本文就分享下自己这些年来的一些经验,不一定适用每个人,但也许每个人能有些小的触动和收获。1.技术书籍可能程序员都很少读书,因为这个...

2017-09-06 07:59:11

阅读数 1593

评论数 4

原创 AWS核心服务概览

1.Amazon Web Service应该可以说,Amazon Web Service目前是云计算领域的领头羊,其业务规模、开发水平和盈利能力在业界内都是首屈一指的。从本科毕业离开学校就一直做Java后端,后来又接触到大型的SOA组件和中间件,现在读研毕业后有幸加入到了AWS开发团队,真是做梦都...

2017-09-02 06:56:52

阅读数 5863

评论数 3

翻译 程序员的八重境界

看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大部分人想成为一名优秀程序员的人,通过努力可以避免1,因为在编程上的追求避开了2,最终可能都停留在4...

2017-08-31 04:58:50

阅读数 31795

评论数 36

原创 当你编码时你在做什么:谈编程的本质(二)可爱的树

憋了好久的一篇,主题有点大一直没有写完,中间隔了很长时间现在已经有点捡不起来了,索性先发出来吧。至少个人觉得,完成的部分还是总结了一些有用的东西。关于Tree之上的属性、递归算法等,只能等状态回来了再补充了。 I think that I shall never see A poem ...

2017-08-26 06:22:55

阅读数 2054

评论数 0

翻译 程序员如何学数学

最近在找一些传统离散数学以外的数学书,想从其他角度补习一下计算机科学相关的数学知识,偶然间就看到一些人都推荐了这篇文章Math For Programmers,通读了一遍果然不错。但文章有点长,所以没逐字逐句地翻译,只是对每个部分做一下总结,并标注了一些写得很不错的地方。非常难能可贵地是,作者并没...

2017-08-22 04:22:22

阅读数 7770

评论数 6

提示
确定要删除当前文章?
取消 删除