摘要: 编程中常用的动词 FIRST 原则:专注(Focused,单一职责)、独立(Independent)、可复用(Reusable)、简洁(Small)和可测试(Testable)。 Write it the right way first time, and make sure you only mo 阅读全文
posted @ 2011-05-24 15:38 刘俊峰 阅读(852) 评论(1) 推荐(2) 编辑
摘要: 为了对抗微信小程序,安卓手机厂商联合起来推出了快应用,这是好事一件,但快应用的实现方式在我看来并不是一个最佳的方案。 阅读全文
posted @ 2018-03-28 12:07 刘俊峰 阅读(830) 评论(0) 推荐(0) 编辑
摘要: 服务端 客户端 阅读全文
posted @ 2017-09-07 10:21 刘俊峰 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 2016 年终总结 2016年过去了,总体还算充实,没什么可后悔的。主要的成就有: 年初开始学习和使用React框架,采用前后端分离的架构,先后开发了三个比较大的网站(1、2、3)。我的webpack-react-boilerplate也同步做了更新,支持服务器端渲染(SSR)。 做了一个进行各种文 阅读全文
posted @ 2017-01-07 21:10 刘俊峰 阅读(378) 评论(0) 推荐(1) 编辑
摘要: 语言和类库的选择关乎品味,所以在年终想列一下今年所做的主要项目和使用的技术。 阅读全文
posted @ 2016-01-25 20:01 刘俊峰 阅读(1434) 评论(6) 推荐(3) 编辑
摘要: 最开始学习电脑编程的原动力之一就是想自己编写游戏,一方面很好奇这些游戏是怎么做出来的,另一方面觉得有些地方设计的不合理,希望电脑游戏既能让人玩的有趣,又不浪费时间。学校五年,毕业十年,学用了十多种编程语言。期间有过几次做游戏的尝试,但由于很难驾驭游戏程序的复杂度,都半途而废了。今年1月份看了一本书之... 阅读全文
posted @ 2015-05-16 16:12 刘俊峰 阅读(6445) 评论(2) 推荐(3) 编辑
摘要: 做了两件事情:第一件是从Wikipedia网站上搜集各种编程语言的资料,第二件是把编程语言之间相互影响的关系用图的形式画出来,从而得到了一张编程语言的发展脉络图。 阅读全文
posted @ 2014-10-05 19:52 刘俊峰 阅读(3488) 评论(8) 推荐(5) 编辑
摘要: 想到一种从两个维度对编程语言进行分类的方法。横向的维度是从语言设计的角度,考虑设计思想、语法语义、实现方式,按照语言特性的先进程度分为原始、过渡、现代三类。纵向的维度则从抽象层次和问题领域的角度分类。 阅读全文
posted @ 2014-08-21 13:40 刘俊峰 阅读(1275) 评论(1) 推荐(4) 编辑
摘要: 2013年11月,Dart语言1.0稳定版SDK发布,普天同庆。从此,网页编程不再纠结了。在我看来,Dart语法简直就是C#的升级版,太像了。之所以喜欢Ruby的一个重要理由是支持mixin功能,而Dart也引入了mixin特性。最棒的是Google提供了集成开发环境——Dart Editor和Dartium,有非常强大的编辑和调试功能,既能编写网页程序,也能编写服务器端程序。把网站上的主要文档看完一遍后,再把SDK下载解压,就能用Dart编程了。第一个程序写什么呢?做了一个黑白棋游戏。直接上代码: Reversi 黑白棋 2 2... 阅读全文
posted @ 2014-01-20 23:06 刘俊峰 阅读(1524) 评论(0) 推荐(0) 编辑
摘要: 1998年,上大学之后开始学习计算机和编程,课堂上零零碎碎地学了一些Basic、Fortran、Matlab。喜欢上编程之后,决定做一个严肃的程序员,又自学了C和C++。2001年,上网有一段时间之后,对做网页产生了兴趣,学了下HTML。做了一些静态页面,内容主要是在我的梦想中未来会出现什么样的科学技术,其中有一项预测十到二十年之内会发展出如今的智能手机,即集看书、看图、听音乐、看视频、看网页、打电话、拍照、录音、录像、大屏幕于一体的掌上电脑,结果没用十年iPhone和Android手机就问世了,其他一些基因工程和人工智能方面的预言短期内很难实现。然后放到了某个免费的个人空间里(记不清是哪个了 阅读全文
posted @ 2013-07-30 21:07 刘俊峰 阅读(4972) 评论(67) 推荐(18) 编辑
摘要: 本图片使用yEd软件制作界面、功能、结构是软件的三个构成要素,因此软件开发的过程围绕这三个要素进行。需求明确后,功能与界面的设计可以并行进行,设计完成后再次确认是否符合需求;结构设计确定后,功能与界面的实现可以并行进行,然后集成测试,完善功能和界面,交付使用。使用之后,提出新的需求,进行下一轮迭代。每一轮迭代的范围可大可小,一般来说,先把最核心的需求实现出来,再进一步改进易用性,扩充功能等。 阅读全文
posted @ 2013-04-14 23:16 刘俊峰 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 思维导图是一种树状的图,用来拓展思维,记录和传递思想。但用思维导图来描述知识就常常是力不从心了。经过长期的思考,我发现需要使用一种新的工具来表达和描述知识,并称之为知识图。知识图的定义知识图表示一个概念体系,概念用结点表示,概念之间的关联用箭头表示;箭头有四种:无向、单向、双向、分叉;结点的内容可以是文字、图形、嵌套的知识图及其组合,箭头上面也可以用文字或图形标志关联的名称或内容。结点和箭头的图形可以选用适当的大小、形状、背景等,使整个知识图更加的生动形象。知识图不限定图的结构为树,也可以是网,所以更具普遍性,能够表达思维导图、组织结构图、流程图、示意图等已经常用的一些图型。下面用一幅知识图来 阅读全文
posted @ 2013-03-24 21:46 刘俊峰 阅读(3475) 评论(2) 推荐(0) 编辑
摘要: 上次发了《一个人六个月做了个网站,还要不要继续做呢?》一文后,得到了众多网友的回应,我仔细地阅读了每一条评论,然后做了一个决定:再做一段时间,并观察发展情况。同时网站的访问量也迎来了到目前为止的一个最高峰,在此非常感谢各位网友的支持。有网友提供了一些具体的帮助和建议,之后的三个月里改进了产品链接的网址形式,做了搜索引擎优化,产品列表及筛选搜索结果可以按照最新上市和最高销量排序,销售列表也做了分页和排序,增加了平板电脑和电子书产品,进一步美化界面等,并且每隔一两个星期就把一些新发布的产品数据更新进去。总体而言这个网站跟同类型网站有一定的实用性和差异性,但总觉得还没有优异到可以去大肆地去做广告宣传 阅读全文
posted @ 2013-03-17 15:14 刘俊峰 阅读(1797) 评论(5) 推荐(0) 编辑
摘要: 前言从Win8RC、Win8RP一直用到RTM企业试用版,原以为到期后会停止自动更新、停止打补丁,结果90天试用结束后居然是每开机用一个小时就自动强制关机,而且事先没有任何提示会变成这样。一直对Linux世界有种好奇,不妨乘此机会测验一下转到Linux之后能不能同等地满足使用需求和高效地完成工作。从安装系统到配置成可日常使用整整花了两三天的时间,有必要把中间不断Google和百度搜到的方法,验证可行的记录下来。一、选择版本众多Linux发行版里,Ubuntu和Fedora名气最大,Ubuntu安装更容易一些,Fedora以后再试吧。新机器选64位,老机器选32位,注重稳定性选12.04LTS, 阅读全文
posted @ 2012-12-31 17:22 刘俊峰 阅读(3739) 评论(3) 推荐(1) 编辑
摘要: 首先说一下做这个软件的动机和用途。平时喜欢在cnBeta网站看新闻,但是有时候太忙了,不可能每天都去看,一般两三天或者四五天去一次,快速扫一下重要的新闻,遇到特别好的文章就收藏起来。唯一不爽的就是超过一天的新闻评论不显示了,所以一边学Ruby一边做了这个软件。上一篇博客中使用的方法是在在浏览器中使用远程的代理服务器,然后就可以看到过期的评论。但是网页打开速度比较慢,图片加载慢,视频看不了。现在又用了一个新的方法,而且效果不错,代理服务器还是在本机运行,网页文本从远程服务器获取,其他的图片、视频等则不经过远程代理,从而达到了一个较好的使用体验。代理服务器做成了比较通用的结构,可以挂载对多个网站的 阅读全文
posted @ 2012-11-04 15:30 刘俊峰 阅读(4083) 评论(1) 推荐(0) 编辑
摘要: 安装完Ruby之后,doc目录里自带了一本书《THE BOOK OF RUBY》,粗看还可以,细看就一般了,而且是基于ruby 1.8的。Ruby 1.9改了很多地方,跟1.8不完全兼容了,改掉了一些缺点,很不错。最近在上一篇博客的基础上又做了以下改进:1.个别网页中有编码错误的字符,不能正确解析,用下面的代码加以修正。1if not text.valid_encoding?2 puts "warnig: text contains invalid chars"3 text.encode!("utf-8", :invalid => :replace 阅读全文
posted @ 2012-10-26 11:19 刘俊峰 阅读(1631) 评论(0) 推荐(0) 编辑
摘要: 10月12日突然对Ruby产生兴趣了,于是就找了本书《Programming Ruby 1.9》来看,结果被它迷上了。长期以来我一直认为我知道的各种编程语言都不够好,一直想自己设计一门语言。看了Ruby之后,发现的它的语法和语义正是我想要的,尤其是它的Mix in机制,是我寻找了好久的一个功能,Ruby有了,而且实现的很好,这一点很令人兴奋。唯一不同的是我想设计的是静态类型的语言,而Ruby是动态类型的,一旦引入类型的声明,语法就会很复杂,比如Scala,各有优劣,Scala也是个不错的语言。上次学Lua的时候,两天学会,然后两天做了一个练习《绘制任意二元不等式的图像表示》。Ruyb比Lua复 阅读全文
posted @ 2012-10-21 21:11 刘俊峰 阅读(2406) 评论(5) 推荐(2) 编辑
摘要: 今年3月份从公司辞职后在家一边带小孩,一边做网站。最开始的想法是做一个商品知识库,类似于维基百科的形式,可以让卖家和买家都去更新各种商品的信息,参见另一篇文章。但是这需要网站有一定的知名度和访问量,否则很少有人愿意去发布和编辑里面的信息,所以决定先自己搜集一些商品资料,吸引用户去访问。商品的种类实在是太多了,所以先把范围缩小到自己比较感兴趣的数码和家电产品。从做网站的角度去考虑,不可能一下子就把各种数码和家电产品都做出来,所以决定先从比较热门的,更新换代比较快的手机做起。于是最初的商品知识库网站演变成了现在的手机参数控网站。确定了网站的内容后,开发技术选了ASP.Net MVC 4和Mongo 阅读全文
posted @ 2012-09-27 22:00 刘俊峰 阅读(10594) 评论(113) 推荐(11) 编辑
摘要: 生命体大部分生命体都是由细胞构成,基因(DNA)存在于细胞核中的多个染色体上。细胞根据基因生成对应的蛋白质,通过各种蛋白质(各种酶)指导生命体工作。病毒本身没有细胞,其组成就是RNA(或DNA)链,必须侵入其他的细胞才能繁殖。基因对于细胞来说就是以四进制为基础编就的一段程序,人类和其它生命只不过是运行着程序的机器罢了。染色体上并不全是有效基因,有很多是无意义的字符,并且基因因为不同的原因在染色体上不断的重复。有时候会发现有意义的基因经常被其它信息所打断。科学家发现在人体基因里竟然有病毒的基因代码,不过它们都被甲基化了(仅头几个字符被甲基化),不能再被激活了。在《基因组:人种自传23章》中把基因 阅读全文
posted @ 2012-07-22 11:03 刘俊峰 阅读(965) 评论(1) 推荐(0) 编辑
摘要: 帮我弟弟配了一台电脑,网购零件,自己组装:不包括音箱、鼠标和键盘,总价4518元,秒杀市面一切一体机电脑的配置。CPU有点浪费,可是集成HD4000的就只有这款。60G的固态盘搭配了一个旧笔记本电脑上拆下来的80G的机械盘,一个做系统盘,一个放资料。第一次用固态盘,果然很好用。主板支持的新技术和功能比较多:UEFI,SATA3,USB3.0,HDMI,WIFI等。优点:既可以家用也可以放办公室用。缺点:显示器没有自带音箱,用了DVI连接线,接口比HDMI的大很多,主板自带的WIFI天线不够精干,看上去比较啰嗦。 阅读全文
posted @ 2012-06-27 11:53 刘俊峰 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 购物的第一步不是比价格,而是比参数。先挑型号,再挑商家。商品知识库要做的就是: 尽可能多地收录各种商品的信息,要求参数准确详实。 提供易用的根据参数筛选商品和给定商品比较参数的功能。 信息的组织以商品为中心,而不是以店铺为中心。以百科词条的方式收录商品: 每一款商品只对应一个条目,不断编辑,不断完善。 每个商品条目包括商品的描述、参数、图片、评论、销售信息等。 建立科学的商品分类体系和商品资料库。对于买家而言: 首先找到的是商品,然后才是所有卖这件商品的人。 同一种商品,可以在不同型号、款式之间比较。 同一款商品,可以在不同的卖家之间挑选。对于卖家而言: 同一款商品的所有卖家都列在同一个页面, 阅读全文
posted @ 2012-05-02 15:37 刘俊峰 阅读(1130) 评论(1) 推荐(0) 编辑