2015年6月

weibo实习5个月学习成长简短总结

2015年1月13日入微博实习,迄今已有5个月之久,且说说自己学习成长收获。
整个实习期间只做了一个投票产品,工作上还是比较轻松的。所以不以时间为线索来谈,直接说说学习到哪些干货吧。
我主要做投票pc端、h5端、feed的落地页。

  1. 单一个落地页需要处理展现的信息就比较多,包括发起人、好友参与(双向关系)、投票本身、投票选项、话题信息、相关投票等等。投票的状态有:主他 * 是否结束 * 是否参与 * 结果是否可见 * 图文 等十多种。
  2. 是多端的细节处理和ajax接口提供,h5要在微博客户端上有很多要协调处理之处。
  3. 微博投票系二级内容产品,涉及对象库、配置平台、主站的多方协作,同时兼顾业务、产品的需求,整个开发调试过程也是比较锻炼人的。
  4. 再小的问题,当你考虑大并发量的时候,都不再是简单的问题。要设计memcache缓存、程序内缓存,设计参与投票走mcq队列,假数据输出。

HTML,CSS,Javascript接触不多,但以前自学过,掌握还算可以。
关于PHP,微博投票两次版本分别应用了kohana、yaf框架,so我学习了两套框架的设计思路,路由的设计等。学会了原生的模版写法:
MVC设计中,假设controller中数据准备$items变量,然后赋值给模板,再渲染、response。

<?php
...
Class Controller_Items extends Controller{
    public function listAction(){
        $items = Model::Factory('items')->select()->limit(5)->execute();
        $this->assign('items',$items);
    }
}

在模板文件中应该是这样的:

<?php foreach($items as $k=>$item): ?>
    <p>this is item <?=$K?>, it's value is <?=$item['value']?></p>
<?php endforeach; ?>

PHP编译安装:configure make make test & make install
PDO作为PHP扩展为PHP访问数据库定义了一个轻量级的一致接口,而PDO_MYSQL扩展则实现了PDO接口,来连接mysql数据库。当然PDO的出现,是为了使PHP能平滑游走在诸多RDBMS中,所以我们只要选择不同的数据库驱动扩展来实现PDO就可以了。
对Apache/Nginx见此的编译、安装、配置基本掌握。
Linux的管道、strace系统调用、关于log的tail -f 等调试技术的学习
还有一个主要的成长就是写代码的功力:

  • 代码重用
    投票落地页涉及多端展现,但处理逻辑大体上是一致的,所以在基本完成pc、h5的controller处理逻辑时,翔哥让我把多端共用的逻辑提炼出来放到ModelPoll_Comm类里。之后再做修改时,真的体会到代码重用的好处和必要性。

  • 数据迁移
    投票产品的这次新改版不止前端优化更改,后端的数据库设计、PHP框架都有所变更,并且迁移要保证在用户无感知的情况下完成,所以要明确整个迁移的流程by宇哥,物理迁移、逻辑迁移,开启双写,迁移后,队列缓存数据写入等。

  • PHP架构设计
    主要分yaf路由、models、modules、library、data、config几个部分。核心路由功能,在config 中配置,交由yaf完成;modules是应用模块,包括pc、h5、cli、openapi、internal、API等;models与data配合,关于数据的增删查改处理逻辑;library提供应用使用的各种类库。

以上只是就学到的方面做个简短说明,其实还学习到很多,好的坏的嘎嘎,就不说了~

---------- 以下情怀,高能勿入 ----------

首先感谢牛总,给机会,给予支持和理解。感谢翔哥宇哥给予教导。感谢峰哥,感谢宗稳
感谢台网团队,给成长锻炼的机会,(吃了好多顿免费的午餐~~)
热爱coding,但coding不是全部,运营、产品都是非常重要的。一个好的工程师绝不是一个码农,有责任心,擅于沟通,嗯,加油!