03 2014 档案

摘要:英文原文:Engineering Managers Should Code 30% of Their Time 在一个科技公司里,软件技术经理用在编程上的时间应该不低于总工作时间的30%。无论是管理一个团队,还是一个分部,还是整个公司,当技术经理用在编程上的时间低于30%时,他执行职责的能力就会发生严重退化。 我的这个断言可能跟那些我看到的想成为团队首领的软件程序员们期望的情况完全相反。每次晋升,程序员们都期待花在编码上的时间会大幅度减少,当 从“leader”爬到“经理”职位时,就应该彻底脱离编码活动。而且,他们期望以一种“动口动眼不动手”的方式来保持对代码库的熟悉。再上级的领导就跟... 阅读全文
posted @ 2014-03-19 12:26 王滔 阅读(1096) 评论(0) 推荐(0)
摘要:使用工厂模式的目的或目标?工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a(),假设某天需要把a类的名称修改,意味着很多调用的代码都要修改。工厂模式的优点就在创建对象上。工厂模式的优点就在创建对象上。建立一个工厂(一个函数或一个类方法)来制造新的对象,它的任务就是把对象的创建过程都封装起来,创建对象不是使用new的形式了。而是定义一个方法,用于创建 阅读全文
posted @ 2014-03-11 19:22 王滔 阅读(24277) 评论(3) 推荐(0)
摘要:一、单件模式英文叫做sington。其他语言中有叫做单例模式,其实都是一样的道理。保证只会出现单个实例,所以是单例。翻译成单件,永远只会产生一件,呵呵。还有翻译成单元素模式。其实关键是看这个英文比较好。英文是sington,统一是使用这个单词。单件模式的目的我理解如下:避免重复创建(实例化)对象,已经有现成的实例就用现成的。减少资源的浪费(因为创建多个实例,浪费内存,完全没必要),单件模式保证了每时每刻引用的都是同一个实例。为什么同时创建多个实例会引起逻辑上的错误呢?$obj1$obj2多个实例。可能会覆盖掉里面的静态static变量吗? 不是这样子的。其实是因为我目前还没遇到更加严重的问题。 阅读全文
posted @ 2014-03-11 19:21 王滔 阅读(2771) 评论(0) 推荐(0)
摘要:实际上在,做web开发,比较少遇到使用一些算法之类的,毕竟不是做搜索引擎,也不是写底层(比如写个类似于mysql这样的数据库,里面需要自己实现排序算法),另外,每种语言,比如java,php都或多或少已经封装好排序函数给程序员使用。比如有个共识,大家做web开发的基本都明白,业务逻辑多比较简单,不是... 阅读全文
posted @ 2014-03-11 19:04 王滔 阅读(2296) 评论(0) 推荐(2)
摘要:原来的mysql_connect是非持久连接,所以即使你在当前脚本中没有使用mysql_close函数进行关闭连接。脚本执行完毕后,连接标识会自动释放掉。这里是什么完成自动上释放的操作呢?php跟java一样,有一个垃圾资源回收系统,对于不再用到的资源会自动进行内存回收。怎么实现的,不知道。pconnect()是建立持久连接,特点是:当前脚本执行完毕后。该连接标识不会被释放掉。下一个脚本文件还可以使用。持久连接的实际用处:假如一个php脚本文件,同时会有多个用户访问该页面。里面涉及到数据库查询操作。如果使用非持久连接的话,那么每个用户都会从新建立一个数据库连接。而持久连接,多个用户访问同一个文 阅读全文
posted @ 2014-03-11 18:58 王滔 阅读(1476) 评论(0) 推荐(0)
摘要:先来看看对一个字段做全文索引,作为一个数据库系统需要做哪些工作?假设一个文章表里面包含几个字段:文章id、文章作者、文章标题、文章内容比如,我们对文章内容这个字段artilce_content建立全文索引,这样方便对文章里面的内容使用关键词搜索。数据库系统首先需要从文章内容(这个字段内容)中提取关键词,因为只有提取了关键词,才好建立类似索引目录—类似于新华字典那样的笔画页码对应关系,当你搜索一个词语”beijing”的时候,就直接去索引中查找,然后就可以定位到数据行的具体位置了,不需要扫描文章表很多行。这就像,如果我想去新华字典中查找一个汉字,我直接按照笔画或者按照拼音来查找(这个就是新华字典 阅读全文
posted @ 2014-03-11 18:47 王滔 阅读(11020) 评论(0) 推荐(0)
摘要:目前关系型数据库系统中有两种锁定模型:一种是mvcc(Multi-Version Concurrency Control),方便并发控制的。大多数rdbms都是使用这种方式实现。读不加锁,写加锁的机制。另外一种是Lock-Based Concurrency Control要多补充点数据库理论知识了术语ACID概念原子性(Atomicity) A一致性(Consistency) C隔离性(Isolation)I持久性(Durability)D传统的关系型数据库必须会实现上面几个点的。而mongodb是不会的。发生crash(意外崩溃)数据容易出现问题。mongodb采用的mmap机制,在断电和某 阅读全文
posted @ 2014-03-10 20:46 王滔 阅读(701) 评论(0) 推荐(0)
摘要:insert into test_fulltext values("王正科技全文")select * from test_fulltext where data like "%王正%"能够搜索到新插入的一行数据。data字段并不是全文索引字段。其实反而不要使用match against去搜索,也就是不要使用全文搜索,使用全文搜索的话,会进入全文索引结构中去寻找数据。而刚好mysql对中文分词支持存在问题。所以mysql全文索引中建立的词典索引中不存在那个词语,比如select * from test_fulltext where MATCH(data) 阅读全文
posted @ 2014-03-10 20:45 王滔 阅读(1494) 评论(0) 推荐(0)
摘要:我们做开发的经常遇到一个问题:设计出来机制不是需求方想要的,按照他的思路去修改功能,结果做出来发现有损失了,就是解决他要的问题,其他附带问题就来了,那个不是他想要的。其实我借鉴《顾客想得与说的不一样》中的。我理解到,技术需求与顾客需求分析也是一样的道理,所以我借鉴过来。总结为:我们不要陷入需求方的思维去,不要陷入需求方口头上说的去。而要问对方要解决什么问题(因为我解决他那个问题的技术方案很多种)可以看《顾客想得与说的不一样》里面提到一个例子:你问用户想要什么样的把手,顾客答:我想要把手粗的!结果工厂造把手加粗的。结果还是没人买。实际上,深入问对方:想解决什么问题?顾客答:我只是想避免把手拿到手 阅读全文
posted @ 2014-03-02 16:54 王滔 阅读(1225) 评论(0) 推荐(1)