0

2039

程序员最核心的竞争力是什么?

进行社招面试时,有一个问题几乎是必问的:

你为什么要离开上一家公司?

其实这个问题主要是想试探一下求职者的核心诉求,并借此预估一下他在本公司工作的稳定性。常见的答案也无非就是这么几种:对薪酬不满意、干得不爽,或者是想换个环境。

然而,我遇到过好几个初次跳槽的求职者给出的答案是:「在原来的公司学不到技术」。

一听到这个,我就不由得叹口气:今天这一小时又算是交代了,这人基本上没戏。 程序员最核心的竞争力——「学习力」

如果有人问我:你在面试程序员时,最看中的是什么能力?那我的答案一定是:** 学习力 **。

互联网时代的技术来得快,去得更快。就像 Flash 这样曾经雄霸天下多年的技术,都有被人人唾弃的一天。如果没有足够强的学习能力,就无法跟上变化,被淘汰只是迟早的事。想想看,你苦心钻研多年引以为傲的技术,一夜之间就没有用武之地了,难免会有一种「身体被掏空」的感觉。

……

乐果   发表于   2017 年 06 月 07 日 标签:文摘 继续阅读

0

7361

Xapian构建索引说明

Xapian与开源

Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档,更别说中文API文档了。其实,Xapian的英文资料也不多,除了官方网站上的Docs和Wiki外,还有一些网站上的邮件列表,在这方面跟Lucene没得比。当然,Lucene现在已经发展到2.x版本了,而Xapian的最新版本才1.012,国外开源项目一般对版本号控制得比较严格,一个项目一般到了1.x才算稳定和成熟的。

Xapian可以运行在那些平台?

Xapian由C++编写,但可以绑定到Perl, Python, PHP, Java, Tcl, C# 和Ruby甚至更多的语言,Xapian可以说是STL编程的典范,在这里您可以找到熟悉的引用计数型智能指针、容器和迭代器,甚至连命名也跟STL相似,相信一定能引起喜好C++和STL的你的共鸣(实际上,很少C++程序员完全不使用STL)。由于Xapian使用的是STL和C运行时库,因此具有高度可移值性,官方说法是可以运行在Linux、 Mac OS X、 FreeBSD、 NetBSD、 OpenBSD、Solaris,、HP-UX,、Tru64和IRIX,,甚至其它的Unix平台,在Microsoft Windows上也跑得很好。当然,并不能像Java那样“一次编译,到处可以运行”,当移植到其它平台时,一般来说是需要重新编译的。至于如何在Windows32位系统下编译Xapian,请查阅我以前写的文章《nmake在windows平台下编译xapian》。

Xapian的特性

……

乐果   发表于   2017 年 05 月 11 日 标签:xapian 继续阅读

0

3267

mac编译安装php7.1.3

###1、依赖包准备###

可能会出现各种依赖库问题,需要用brew来安装,因此先按照好brew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如下:

==>This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
Press RETURN to continue or any other key to abort
==>Downloading and installing Homebrew...
remote: Counting objects: 3693, done.
remote: Compressing objects: 100% (3525/3525), done.
remote: Total 3693 (delta 38), reused 527 (delta 27), pack-reused 0
Receiving objects: 100% (3693/3693), 3.04 MiB | 79.00 KiB/s, done.
Resolving deltas: 100% (38/38), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at 9c41fb8 update man page
==>Installation successful!
==> Next steps
Run `brew help` to get started

###2、编译安装###

……

乐果   发表于   2017 年 05 月 06 日 标签:PHP 继续阅读

0

2809

优秀的golang开源项目

学习golang三年多了,golang社区不断涌现出优秀的项目,在此收集下。

docker

无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上。

https://github.com/docker/docker
38154 stars
11393 forks

gogs

一款基于git的代码托管系统,类似于github和gitlab,不过其小巧易用,功能强大,部署方便,也有不少用户在使用。

https://github.com/gogits/gogs
17004 stars
1887 forks

syncthing

开源的文件同步系统,它使用了其独有的对等自由块交换协议,速度很快,据说可以替换BitTorrent Sync。

https://github.com/syncthing/syncthing
14399 stars
1117 forks

……

乐果   发表于   2017 年 03 月 16 日 标签:golang 继续阅读

0

2461

分布式系统事务一致性解决方案

本文首发于InfoQ,版权所有,请勿转载!!!

http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency

开篇

在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

而大型互联网平台往往是由一系列分布式系统构成的,开发语言平台和技术栈也相对比较杂,尤其是在SOA和微服务架构盛行的今天,一个看起来简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,情况往往会复杂很多。单一的技术手段和解决方案,已经无法应对和满足这些复杂的场景了。 分布式系统的特性

对分布式系统有过研究的读者,可能听说过“CAP定律”、“Base理论”等,非常巧的是,化学理论中ACID是酸、Base恰好是碱。这里笔者不对这些概念做过多的解释,有兴趣的读者可以查看相关参考资料。CAP定律如下图:

在分布式系统中,同时满足“CAP定律”中的“一致性”、“可用性”和“分区容错性”三者是不可能的,这比现实中找对象需同时满足“高、富、帅”或“白、富、美”更加困难。在互联网领域的绝大多数的场景,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。

分布式事务

提到分布式系统,必然要提到分布式事务。要想理解分布式事务,不得不先介绍一下两阶段提交协议。先举个简单但不精准的例子来说明:

第一阶段,张老师作为“协调者”,给小强和小明(参与者、节点)发微信,组织他们俩明天8点在学校门口集合,一起去爬山,然后开始等待小强和小明答复。

第二阶段,如果小强和小明都回答没问题,那么大家如约而至。如果小强或者小明其中一人回答说“明天没空,不行”,那么张老师会立即通知小强和小明“爬山活动取消”。

……

乐果   发表于   2017 年 01 月 11 日 标签:MQ 继续阅读

较旧的文章 较新的文章
热评文章