查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

为着理想勇敢前进

 
 
 
 
 
 

为什么模块“耦合性”概念该要摒弃

2015-7-10 19:00:02 阅读1233 评论1 102015/07 July10

以前,我写代码时,我考虑模块(本文中的模块就是指单个源文件)的单向依赖关系,考虑接口的正交性和紧凑性。
我觉得我在做低耦合的好设计。

然而,我发现其他程序员写的代码依赖关系混乱,接口臃肿,但他们仍然觉得自己写的代码耦合很低,设计很好。
我这才发现,我理解的耦合和他们理解的不一样。
他们理解的低耦合就是把代码提出来,让代码不要“乱”。
然而,对于什么是“耦合”、什么是“乱”,他们并不知道有什么客观标准可以度量。

作者  | 2015-7-10 19:00:02 | 阅读(1233) |评论(1) | 阅读全文>>

只要能修好我的硬盘,我甘愿成为一名好人

2012-8-4 1:50:34 阅读563 评论2 42012/08 Aug4

老外有个软件叫ISO to USB,号称可以把光盘映像放到U盘或移动硬盘上启动。

我把移动硬盘分了两个区,我打算把一张启动盘做到其中一个新分区上。于是我就高兴的打开了ISO to USB,然后选择了新的那个分区。然后……

我的移动硬盘两个区上的所有东西就都没了……

在这万念俱灰的时刻,我想起了一句古老的咒语:

只要能修好我的硬盘,我甘愿成为一名好人 - 杨博 - 为着理想勇敢前进
好人修电脑,坏人床上搞

只要能修好我的硬盘,恢复我的数据,我甘愿成为一名好人。我在好人卡前宣誓:

作者  | 2012-8-4 1:50:34 | 阅读(563) |评论(2) | 阅读全文>>

怎样玩《跑跑龟》才能欺负人

2012-5-13 12:34:03 阅读687 评论0 132012/05 May13

怎样玩《跑跑龟》才能欺负人 - 杨博 - 为着理想勇敢前进

《跑跑龟》是个很简单的桌游。基本上接触过桌游的人都玩过吧。看上去《跑跑龟》没啥策略性,输赢也就看运气而已。这么想你就错了,跑跑龟其实是个浅度策略游戏,如果你按以下方式玩,胜率可以达到80%。(注:本文是按“同时到终点时上面的乌龟赢”的规则来写的)

  • 中前期没用的牌可以随便出,但有用的牌要留着。所有的牌按有用程度排序如下:
    1. 任意颜色乌龟前进两格
    2. 自己颜色乌龟前进两格
    3. 任意颜色乌龟前进一格
    4. 自己颜色乌龟前进一格
    5. 任意颜色乌龟后退一格
    6. 特定颜色乌龟后退一格
    7. 最后一名乌龟前进两格
    8. 其他颜色乌龟前进两格
    9. 最后一名乌龟前进一格
    10. 其他颜色乌龟前进一格

作者  | 2012-5-13 12:34:03 | 阅读(687) |评论(0) | 阅读全文>>

印第安人质疑中国小学课文

2012-2-5 13:35:56 阅读888 评论2 52012/02 Feb5

印第安人质疑中国小学课文 - 杨博 - 为着理想勇敢前进

我小学时有一篇课文说讲了个故事,大意是

  1. 人的头盖骨很坚硬
  2. 生命生长的力量更大,只要把种子塞到头盖骨里面让种子发芽,头盖骨就被撑开了

我觉得这是胡扯嘛,同样是生命生长的力量,女人裹小脚时怎么没听说过撑破裹脚布的?

再说,按课文的意思,头盖骨如此坚硬,生命生长的力量如此大,那么可以推论,头盖骨生长的力量应该是世界上最大的力量了吧。于是印第安人就用自己的头做实验,用木板夹一夹,看看世界上最大的力量能否顶穿木板。

后来他们发现了真相:顶不穿的……

为了纪念他们为科学献身的精神,他们被称为

作者  | 2012-2-5 13:35:56 | 阅读(888) |评论(2) | 阅读全文>>

网络论战和囚徒困境

2012-1-21 1:18:48 阅读494 评论0 212012/01 Jan21

今天看了看韩寒和方舟子的论战,这不就是囚徒困境吗?

想象一下可能发生的各种情况:

  韩寒沉默韩寒开骂
方舟子沉默
方舟子平安无事声望 +0
韩寒平安无事声望 +0

作者  | 2012-1-21 1:18:48 | 阅读(494) |评论(0) | 阅读全文>>

科威特恶意倾销石油,惨遭欧佩克制裁

2011-10-14 1:48:15 阅读317 评论0 142011/10 Oct14

今年有个香河圈地案,县长后来被搞下台了。这并非因为强制征地而被处罚。而是因为“违规”征地。违规之处是在于突破了中央的耕地红线的限制。

其实中央的红线就跟石油输出国组织(欧佩克)控制石油产量一样,层层规划用地限额。每个省规划每个省用地分配,向上报给国土资源部,向下层层分给各个区县。每个区县再画好红线蓝线,这些土地是今年要征用的,那些土地该明年要征用云云。规划好了,层层审批,拿到中央签字画押,以后每年跟农民抢地盘征地拍卖发大财招标都必须在线内。

一个县若非申请到特殊政策,否则绝对不可越雷池一步。要是多卖了地,必定会遭来其他欧佩克成员国邻县的眼红。像是重庆的地票拍卖政策,有绕开耕地红线增加土地供应的效果。这个政策只有重庆的区县专享,其他省市就不能这么干,只能

作者  | 2011-10-14 1:48:15 | 阅读(317) |评论(0) | 阅读全文>>

常见小字体比较

2011-10-12 19:28:51 阅读654 评论0 122011/10 Oct12

小字体清晰性:宋体=雅黑>微米黑>幼圆>黑体

黑体是印刷字体,有粗细变化而无hinting信息,字面小间距大;幼圆够细够简单所以不会像黑体一样粗细不均,微米黑最大程度降低修饰变化,少做少错

字形:
字形是主观标准。宋体笔画正确性高,笔画向中间集中,显得严肃精确
雅黑扁平字面大,笔画向周围分布,憨态可鞠
微米黑字形极简,字面偏小,重心比宋体稍低
幼圆笔画细,圆角多,曲线有爱
黑体字型非常接近微米黑,但更为看重笔画正确性

由于中文笔画多,小字体字形的个性表现极为有限,幼圆的圆角个性需要想象力填补。14px/12px不适合幼圆。只有个别笔画少的字方能体现个性,比如“于”、“手”,无法弥补清晰性方面付出的代价。

作者  | 2011-10-12 19:28:51 | 阅读(654) |评论(0) | 阅读全文>>

三个勇敢的骚年

2011-10-8 18:32:32 阅读2717 评论3 82011/10 Oct8

想做一个RPG游戏。主角是三个勇敢的骚年,为了寻找传说中宝藏“神作”而走进地下城。第一位少年的职业是程序猿,近程攻击,攻击技叫做“数据结构”,附带冰冻伤害。第二位美丽的少女是美术师,远程AOE攻击,主要攻击技叫做“萌”。第三位少年是策划,双手持有法杖“用户体验”,专精治愈系。

策划可转职关卡策划、文案策划和数值策划,数值策划又可二转为系统策划。成为系统策划后可释放多种Buff,像是“兴趣曲线”、“间接控制”,显著增强团队的战斗力。

美术师的发展路线不详,听说可以转职为原画师、模型师或动画师。

程序猿初期使用的武器是C,每次攻击都要消耗“Memory Point”(俗称MP)。

作者  | 2011-10-8 18:32:32 | 阅读(2717) |评论(3) | 阅读全文>>

庖丁解牛和架构设计

2011-2-26 0:05:37 阅读790 评论4 262011/02 Feb26

程序架构设计很像庖丁解牛。庖丁解牛的方式是“依乎天理,批大郤,导大窾,因其固然,技经肯綮之未尝,而况大軱乎!”,也就是说要顺着牛身体原本的空隙(郤、窾)入刀,而不要去砍筋骨(技经、肯綮、軱)。模块划分则要依据策划需求,以最简单正交的接口拆解模块,而不要让模块之间存在紧密耦合。二者对比如下:

庖丁解牛 要顺着天生的身体空隙下刀,而不要把筋骨人为地割开。
程序设计 要依据业务需求本质的相互关系划分简单正交的接口

作者  | 2011-2-26 0:05:37 | 阅读(790) |评论(4) | 阅读全文>>

配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题

2011-2-20 16:44:14 阅读2503 评论2 202011/02 Feb20

Vim / gVim 在中文 Windows 下的字符编码有两个问题:

  1. 默认没有编码检测功能
  2. 如果一个文件本身采用的字符集比 GBK 大(如 UTF-8、UTF-16、GB18030),那么其中无法在 GBK 中对应的字符都会出现乱码,保存时会丢失。即使编辑文件时正确检测出文件格式也无济于事。

第一个问题的解决办法是在 ~/.vimrc 中加入以下配置:

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

第二个问题的解决办法是强制要求 Vim 的内部编码采用某种 UTF 编码。比如 UTF-8:

作者  | 2011-2-20 16:44:14 | 阅读(2503) |评论(2) | 阅读全文>>

Flash 中的事件录制和回放

2010-9-23 15:24:33 阅读1244 评论8 232010/09 Sept23

程序员写代码调试时一个很大的困难就是如何重现 bug ,即使使用了调试器,也只能让代码向前执行,而不可能退回过去的某个状态。

这个问题的最佳解决办法是录像,如果记录了所有的输入事件,那么只要回放依次序重新触发这些事件,就能让代码每次执行都相同。需要记录的事件包括鼠标键盘等外设,也包括网络通讯数据,以及定时器。

我写了一个 Flash 下的录像框架,http://as3recording.googlecode.com/。现在我们已经用上了,平时调试都用它。遇到问题的时候可以反复测试,而且播放速度还比正常游戏快得多。以后测试的时候,发现了什么 bug 也只需附带一个录像文件就可以重现。

其实对于 C 语言层次的游戏引擎来说,录像的实现并不难,

作者  | 2010-9-23 15:24:33 | 阅读(1244) |评论(8) | 阅读全文>>

重构对开发效率的影响

2010-9-18 18:25:11 阅读640 评论0 182010/09 Sept18

重构对开发效率的影响 - Atry - Atry

在项目开始的初期,以 quick and dirty 的方式开发,开发效率往往很高。

然而好景不长,随着项目铺开,代码规模变大,肮脏的代码的代价开始显现出来。开发效率会持续下降。 如果不闻不问,一段时间以后,代码 bug 丛生,开发效率会降到接近零,任何新功能的加入都异常困难。图中的红色的曲线表示这种情况。

如果尽早开始重构的话(图中的蓝线),重构花掉的这段时间中,由于废弃了一些代码,功能反而会变少,开发效率是

作者  | 2010-9-18 18:25:11 | 阅读(640) |评论(0) | 阅读全文>>

从 SWC 生成 ActionScript 的包级别依赖图

2010-9-17 13:43:51 阅读831 评论2 172010/09 Sept17

昨天想要画一下我们项目的依赖图,帮助同事理解代码架构。所以昨天晚上回家写了个从 SWC 中萃取包级别依赖关系生成 DOT 文件的脚本。用 Scala 来写非常方便,只有二十行代码。

今天把我们项目的依赖图生成出来了,这个依赖信息其实很容易从二进制文件(SWF)中找到,所以公开也无妨。是这个样子的:

从 SWC 生成 ActionScript 的包级别依赖图 - Atry - Atry

一共有22个包,依赖关系虽然看上去复杂,但其实都是单向依赖的。

作者  | 2010-9-17 13:43:51 | 阅读(831) |评论(2) | 阅读全文>>

回复“回复几个问题”中的几个问题

2010-9-15 21:46:29 阅读745 评论1 152010/09 Sept15

最近孟岩前辈兴致所致,又讨伐 C++。说起来虽然我被 C++ 搞的历史不如孟岩前辈那么悠久,但却不幸染上斯德哥尔摩症候群,有意要为 C++ 以及包括 D 语言在内的静态语言辩护一番。

软件开发方面真正有价值的进步,应当是有利于用户、有利于项目管理、有利于解决领域问题,而不是有利于程序员。

有利于程序员的,最终都有利于用户。


抽象是程序开发的全部意义所在。之所以C比汇编是一个伟大的进步,是因为C建立了一个机器抽象,把诸如寄存器、cache、寻址方式、位对齐之类的细节都透明掉了,由此而带来的表达能力提升,当然是伟大的。但是你看看上面我举的那个例子,有抽象层次的提升吗?没有!有的只是YY暗爽值的提升。这种表达能力提升,如果得来全不费工夫,当然也无伤大雅,如果是呕心沥血,伤人一万,自损三千,窃以为大可不必也。

作者  | 2010-9-15 21:46:29 | 阅读(745) |评论(1) | 阅读全文>>

SWF 压缩还是比较有效的

2010-4-15 15:44:48 阅读1119 评论7 152010/04 Apr15

我们现在配置文件是用 Excel 写的,然后转换成 AS 文件,最后再编译成 SWF。之所以要把配置文件编译成 SWF 是为了在里面包含部分公式,而不仅仅是固定数据。都怪 ActionScript 3 把 eval 砍掉了,代码必须预先编译才能执行,要不直接嵌字符串进来就可以了。话说回来,其实内嵌一个编译器或解释器倒也有办法可以做到,比如把 tamarinesc 拿过来用,或者用lua-alchemy。不过用这些方案都会增加几百KB的编译器或者解释器,太大了。

作者  | 2010-4-15 15:44:48 | 阅读(1119) |评论(7) | 阅读全文>>

查看所有日志>>

 
 
 
 
 

License

 
 
模块内容加载中...
 
 
 
 
 
 
 
 

广东省 深圳市 双鱼座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
日志评论
评论列表加载中...
 
 
 
 
 
 
 
 
留言列表加载中...
 
 
 
 
 

八方来客

 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

登录  
 加关注