1秒50万字的关键词匹配(js实现)

在论坛和聊天室这样的场景里,为了保证用户体验,我们经常需要屏蔽很多不良词语。对于单个关键词查找,自然是indexOf、正则那样的方式效率比较高。但对于关键词较多的情况下,多次重复调用indexOf、正则的话去匹配全文的话,性能消耗非常大。由于目标字符串通常来说体积都比较大,所以必须要保证一次遍历就得到结果。根据这样的需求,很容易就想到对全文每个字符依次匹配的方式。比如对于这段文字:“Mike Jordan had said "Just do IT", so Mark has [...]

By |2019-08-12T14:09:08+08:00七月 29th, 2016|教程指南|0 条评论

传统的程序员真的将会被淘汰么?

要成为当今软件开发中受人尊敬的专业人士,你需要掌握各种技能,而且达到高水平的专业级别。最起码,你需要能够把你的英语解决方案翻译成软件实现。 不仅技术上要正确,在业务上也得可行。因此,对业务有一个深刻的理解总是没有坏处的。这使得你可以有效地收集和谈判客户的需求,并确保软件能够经过时间的 考验。企业希望软件是一个长期的投资,能够在几年甚至几十年之后依然物尽其用。很少有希望软件只存活几个星期的。如果真的有,那可真是一个糟糕的投资。 遗传编程 你可能会觉得自动化的软件开发是一个奇思妙想,甚至觉得这是不可能的。但是遗传编程告诉我们nothing is impossible。软件会产生变异,改变它们的指令,努力顺利发展以变得更适合。在每个突变后,它们将自行评估它们是否正趋向于期望的输出。这里对于 合适的评估是由测试提供的。而且是大量的测试。这些测试都封装了经过时间、空间和功能性制约的业务逻辑。突变越合适,通过的测试越多。这是值得重申的是, 我们不应该关心生成实现的细节。事实上,生成多个符合要求的解决方案是完全合理的。要减少解决方案只需要增加更多限制问题就可以了。 软件开发人员的传统角色将会被淘汰。他们很快会被重新定位到设计、开发和维护测试。即,计算机的程序设计将变得不必要,因为它们自己就能编程。这种 [...]

By |2019-08-12T14:09:08+08:00七月 26th, 2016|技术资讯|0 条评论

程序员,你能从bug中学习什么?

益处 Nassim Nicholas Taleb 在《Antifragile》中写到:“错误包含丰富的信息”。我完全同意这个观点。Bug 帮助我们更好地理解系统,告诉我们怎样提高编码、测试和调试技巧。所以我认为尽可能从 bug 中学习经验,是再正常不过的事了。 我发现为每个有趣的bug记录下来,让我轻易学习到很多。在记录的行为中我会对发生的事情思考得更深刻。同样,一旦记录下来,我可以在之后检查发生的事情。偶尔,我也会浏览文件,只阅读教训部分,对我认为是从 bug [...]

By |2019-08-12T14:09:08+08:00七月 26th, 2016|技术资讯|0 条评论

来,做一个问卷调查(有抽奖!)

前言 “小王,明天公司在***举办一个xxx产品发布会,你今天准备2000份问卷调查。还有,我们这次还做一个抽奖活动,也记得弄一个抽奖箱和一些抽奖球哦。” …… 活动结束了,小王想起早上捧着这2000张问卷和抽奖箱的情景,生平第一次对弘二头肌起了念想。回过神来看着桌子上回收回来的问卷,整整齐齐的像座小山一样好看,但领导依然不太满意,因为只回收了1000来张。可是1000多张的样本已经足够了呀,统计也很花时间的呀。小王本想反驳,但他什么也没说,只是下意识地摸了摸自己的背包,包里装着那丢失的900多张问卷。 以上剧情根据真实故事改编,如有雷同,算你倒霉。 数字化大背景 现在还有不少活动是用纸质问卷来做调查的,几千张纸是小钱,但后期统计这一堆数据可是费神费力的苦力活。以前设备落后,手机上做问卷体验太差。但现在是80岁大爷都会玩智能手机的年代,一个二维码也解决了入口问题,在线调查问卷的体验也就上来了。再加上现在办个活动什么的都是用微信宣传微信组织,配合一点抽奖活动,观众们还是愿意去回答的。既然已经具备了在线问卷的大环境,下面就让小茄带大家来做一个在线问卷调查吧。 需求 先来分析一下需求。 1、在线问卷调查的使用者都是市场运营的工作人员,他们对编程的了解很少,所以后台操作必须简单明了。 [...]

By |2019-08-12T14:09:08+08:00七月 25th, 2016|Uncategorized|0 条评论

写了35年代码的老程序员一个最大遗憾

大约不到20年前,我处在人生十字路口上。我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭。那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了。 今天,我还是一个程序员。所以说现在谁是小角色呢?我怀疑我是不是有一天真的能退休。幸好我还是比较擅长做程序员的(我现在的工作是我以前的一个经理给我的,他有一个需求而且知道我能做这件事情),但是到目前为止,我所能做的也就只能是一个程序员。 我做程序员有大约35年了,其实完成工作的感觉还是很有意思的,而且这么多年我也确实做了不少出色的东西。但是我也感觉到我对当年没有去接受成为一个管理者的挑战产生了悔意。在某种程度上,程序员确实是一个单纯的选择。考虑到我经历了整个互联网(Dotcom)时代,也经经历了乔布斯回归苹果的事件,如果我还能有成为技术领袖的经验,那么我几乎可以无所不能。 所以说,是的,我对我没有把握住(成为管理者)的机会感到后悔,谁知道如果我当时把握住了现在会变成什么样。不过有失也有得,我因此得以享受书写代码的乐趣,以及那些为了解决为题而纠结烧脑的乐趣。 我不想再同时又干技术又干管理了。我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动发布的功能。当时我一人主导了整个公司的多项事务,与媒体打交道的是我,面见投资人的是我,处理日常商务杂事的还是我,与此同时我还是公司的3个程序员之一并且兼任 UI [...]

By |2019-08-12T14:09:08+08:00七月 21st, 2016|技术资讯|0 条评论

转行做程序员之前你应该考虑的三件事是什么

2013-2014年间,全世界吹起一阵写代码的风潮,各大媒体疯狂报导,鼓吹年轻人不管所学为何,一定要学写程序。时不时就会看到「程序员是最有钱途的工作之一!」或者「连奥巴马都开始写代码,你能不开始吗?」这类的文章,不管金钱诱惑、名人带头,仿佛全世界都在疯狂的做程序。就算到了2015年底,不时仍有这类文章出现。相对之下,许多人认为自己目前工作很糟糕,包括老板高压统治、工作内容乏味、薪水仅能糊口等等,看到文章里头那些「高薪」、「出国工作」、「热门职缺」的字眼,是不是都想转行呢?今天就整理一些建议给大家。 第一件事,你对写代码真的那么热爱吗? 对于热情这件事,不得不再次提到二八法则,因为有80%的热门技术是由20%的人所构架出来。不管你未来所钻研的是哪种技术,总会在领域中有一些神人,他们可以1个人就超越10个的产值,对该技术有非常完整且深奥的了解,并且针对难懂的问题有非常优雅的解法。这些人决定了未来技术的走向,例如目前市面上的大型商业软件,许多都是由少数人将构架完成,后续才是由许多工程师进行维护、更新。 你想成为那些「大神」吗?虽然许多程序员做了一辈子也没办法,但仍然要保有那「想要成为大神」的热情,才能得到担任程序员的快乐。在生活中程序员不只会遇到系统错误,更常会遇到使用者给予的意见,包括常在Google Play或App Store上看到的评论:「这软件超烂」、「一分都嫌太高」等等,没有重点却严重打击士气,也是生活中的一部分。反之,尤其在大型项目上线,陆续收到使用者说回馈说:「使用上变得更方便了,谢谢你们!」这类温馨的评论让人非常有成就感。抑或是在钻研特别技术,而成功让项目有大幅成长的时候,例如用Go语言将部分Ruby on Rails的API服务重写,让整体速度提升20倍以上,这些数据都会让程序员非常有成就感,也是工作上很大的满足。 反之,当我们只想着要每天安安稳稳的写代码、维护项目,以上那些情况就绝对不会发生,我们整天只会自怨自艾,对现况感到不满却不改善,把所有的错都推给使用者、推给主管、推给别人。那不如不要转行了,不妨待在自己目前的位子上,好好过生活即可。一定要充满热情,想要成为「二八法则」中的领导者,跳进程序员这个圈子才有意义。 第二件事,不要被媒体的宣传蒙蔽了双眼 [...]

By |2016-07-21T15:51:49+08:00七月 21st, 2016|技术资讯|0 条评论

超齐全的资源收集

在菜鸟网上看到的资源集合,挺有用的,在这里分享一下。 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 [...]

By |2019-08-12T14:09:08+08:00七月 19th, 2016|教程指南|0 条评论

WeX5的小应用:二维码名片

前言 二维码现在是无处不在,无孔不入了。大到一辆汽车,小到一包纸巾,身上都印有二维码,明码标价。败家娘们可能会说:没想过要买的,真心的!就是看着漂亮嘛,想拍个照片,谁知道一拍就弹出个支付界面,想按退出但是手抖了。。。(这手抖的,不知道放在菜刀下会不会稳定一点?)而名片,也早就使用了二维码技术,扫一扫一键存到手机通讯录里面,是手机通讯录哦。今天小茄就试着用WeX5做一个电子的二维码名片,除了扫码外,还可以在微信里面一键识别并存到手机通讯录里面哦。 先上效果图   生成的二维码扫码即可创建通讯录,保存下来通过微信发给朋友,通过长按二维码识别也可以完成名片的分享。拿起手机测试一下吧: 这个应用的核心就是两个:将个人信息转换成二维码;二维码携带的名片信息可被手机识别。为了实现这个需求,我们需要用到一个名片格式:vcard,关于vcard的介绍可以参考这篇文章:http://lzw.me/a/php-qrcode-vcard.html。 vcard格式生成 我们的需求比较简单,需要将名片信息拼接成如下vcard格式: BEGIN:VCARD VERSION:3.0 [...]

By |2019-08-12T14:09:08+08:00七月 1st, 2016|教程指南|0 条评论