2017 Qcon参会笔记

By | Uncategorized | No Comments

持续集成之 Why、What & How

  • 之所以要使用持续集成是为了提高生产力,解决落后的生产力和需求之前的问题
    • 思考平时的工作,需要抽出时间来去做基础设施建设的工作,不然会造成技术负债,到最后还起来困难,甚至还不上
    • 持续集成的健身有助于提升生产力,映射到自身业务呢?
      • 设定底线,只要不造成客户和公司的钱款损失,不造成隐私和业务数据泄漏就可以推进。除此之外没有边界
  • 期间思考当前企业消费的架构,发现了很多优化点
    • 服务的命名需要进行管理,当前的混乱造成了新员工入职理解的困难,这种困难是人为造成的。企业服务微服务的架构梳理成keynote,便于所有人快速理解这个内容
    • 微服务有他的好,但是也对服务的管理和治理提出了更高的要求,过去monolic的服务管理方法需要升级
    • 剩下的优化,单拎内容去说
  • 其中一段四象限的部分没有理解,需要通过slide去回顾理解

在业务量暴增中痛并快乐——数据交易平台的成长记事

  • 四个环境比较合理
    • 本地
      • 测试
      • 集成测试
      • 生产

从技术到管理的 3 大挑战

  • 队员做的工作没有自己好,花时间去沟通还不如自己去做
    • 外圆内方,方是原则,圆是技巧
    • 授权模式
      • 清晰表达工作内容
      • 的到授权方确认反馈
      • 定期沟通
    • 指导模式
      • 赞扬他的业绩
      • 激励他得到更好的成长
      • 指导
    • 共事模式
      • 和搭档建立信任关系
      • 认可搭档价值
      • 极力称赞
  • 感觉自己的价值在退化,长期不写代码觉得自己没有价值
    • 单兵作战作战是任务驱动,团队作战是目标驱动
    • 目标模式
      • 为什么是我不是他
      • 搞清楚公司的诉求
      • 朝着目标全力以赴
    • 自省模式
      • 做的好
      • 做的不好
      • 怎么做更好
  • 认为管理没有技术含量,只要把队员管理好就行了
    • 不喜欢被管是人的本性,那你为什么要去管他?
    • 管理自己比管理别人容易很多,要锻炼团队的自我管理能力
    • 他对工作不上心,说明缺乏激情,此时你应该去激励他,为他设置目标,提出更高的要求
    • 认可模式
      • 认可对方的优点
      • 告知对方的不足
      • 帮对方弥补
  • 技术管理,管的不是“人”,而是“事”。管理的根基是“理解人性”,管理的本质是“管事 + 理人”

如何快速找到产品的商业模式

  • 推荐图书
    • 精益创业
    • 四步创新法
    • 启示录
    • 跨越鸿沟
    • 创新者的窘境
    • 引爆点
    • 你的灯亮着吗
    • 系统化思维导论
  • 用户 =》 场景 =》 问题 =》假设 =》 解决方案
  • 商业模式画布是个什么鬼

经典算法与人工智能在外卖物流调度中的应用

  • 时光机的设计对于解决问题,优化实现有很重要的参照意义
  • 寻宝系统的想法很有趣
    • 一个专门的系统,通过分析数据获得对于业务有价值的图标和结论

探究 Node.js 的服务端之路

  • 用js做前端和后端有本质上的思想差异,其实也是前后端的思想差异。自己的技术栈更多是从前端过来的,所有对于后端思想的体验深度不够,需要在之后的工作中注意。
    • 前端
      • 快速开发
      • 快速渲染
      • 视觉效果
    • 后端
      • 稳定
      • 性能
      • 负载
  • 后端的常见问题及影响,重要程度从高到低
    • 稳定性,100%流量丢失
    • 负载, m%流量丢失
    • 性能,n%
  • V8引擎原理探秘
    • new space,需要详细学习一下
    • 垃圾回收机制
    • 防止内存泄漏
  • node.js服务端擅长io密集型的计算,不擅长cpu密集性的计算
    • CPU Profilling
    • 火焰图
  • nodejs原理读物

趣分期风控业务那些事

评估要不要借一个人钱

  • 靠不靠谱
    • 想不想还钱
      • 人品怎么样
      • 是不是骗子
    • 能不能还钱
      • 他想借多少
      • 他收入多少
  • 能借多少
  • 该不该催,以及什么时候催

其实评估任何一个对象,是否要贷款都是这么个事请

高性能高可用机票实时搜索系统

系统诉求与很多电商消费系统相通

  • 全网最低价
  • 报价最全
  • 实时性最好
  • 产品最丰富
  • 预订最流畅

分布式的过程中,如果遇到密集命中相同机器负载过高的情况,可以在计算的时候引入一个其他纬度进行分析

喜欢clojure,但怕动态语言太灵活怎么办

  • 主人公的微博http://www.weibo.com/u/1899123755
  • 摩根斯坦利 小组长(VP) scala,clojure大牛
  • 摩根斯坦利是全球scala使用排名前三的企业,有400多人开发
  • 坐标:英国伦敦

人工智能 + 微服务的最佳实践分享

微服务与配置中心:别让您的微服务被配置管理“绊”了一跤

配置是什么?

  • 是程序运行时动态调整行为的能力

微服务布道的时候提出了配置文件应该统一管理

技术管理的思考和实践——技术团队如何边打仗边成长

价值无外乎,多快好省

杂事的处理,能用技术手段的,就不要用人力,是在需要人力的,也要有流程框架

团队和工程管理取舍的实践

针对国情,OPSDEV可能更靠谱

基于一个成熟的产品去研发,最保险,见效快

直接面向开源去做自研,不仅代码质量更好,文档也会更好

团队建设

  • 用极致的方法找到和你的团队味道一样的人
  • 找到你的团队贡献最大的10%的人,并赋予他们权力
  • 不要试图讨好你的团队,作为leader应该做正确的事情
  • 万不得已的时候才增加岗位,否则只要增加角色就够了
  • 周会是用来同步信息的,不是用来讨论具体问题的

面向企业服务的未来与知人的实践

  • 推荐书目
    • 人类简史
    • 未来简史
  • 企业服务的未来是数据服务
  • 服务的内容
    • 基于产品做业务支撑
    • 基于数据做业务诊断
    • 基于咨询服务做业务指导(最重要)
  • 知人的设计流程
    • 选方向
    • 定重点
      • 全业务支撑
      • 流程自动化
      • 开放服务
    • 迭代
      • 给自己做
        • 熟悉业务
      • 找别人用 (6个月)
        • 验证产品
      • 标杆验证 (6个月)
        • 强化产品
      • 服务销售 (12个月)
        • 验证市场
      • 管家服务
        • 扩大规模

反思(1)

By | Uncategorized | No Comments

生活再一次进入了调整期,回顾反思过去觉得在不同纬度上存在一些不足,记录下来。

 

个人心智成熟程度不完善:

  • 对于自我认知程度有限,还是会出现偏离自我认知的情况,我究竟是谁?
  • 滥好人的性格,给工作带来了不好的影响
  • 贪婪,不是贪婪利益,而是贪婪工作。贪了很多工作的结果是自己累够呛,质量难以保障
  • 自我催眠,对于个人成长起到了不错的作用,但是会带来报喜不报忧的管理问题

 

还意识并开始实践了自己认可的新思想:

  • 从利己转为利他
  • 物欲和肉欲带给人的满足是短暂的,精神世界的丰富才是要追寻的

 

wordpress设置为相对链接后,博文post翻页无法使用的解决办法

By | Uncategorized | No Comments

帮公司内运营部署最新的wordpress时,因为公司使用https,所以需要在设置中,将链接改为相对连接。部署成功后,可以正常使用,但是运营在使用时发现管理界面博文无法翻页,因此去查了下原因。

首先在网页中检查元素,发现下一页的按钮跳转到的链接是相对链接,是服务器所在内网的ip地址,导致了无法正常使用。可是已经配置成为相对连接了啊,为什么还会这样子呢?

发现这个按钮有个class是next-page,于是在wordpress代码中全局搜索,定位到代码在wp-admin/includes/class-wp-list-table.php中。

接下来排查去调试,输出链接发现是current_url这个变量,然后这个变量是用$_server来拼的,正是因为前半部分使用了这样的拼写,导致了链接成为了绝对链接,去掉这部分就工作正常了

使用Homebrew时version命令失效的处理方法

By | 技术 | No Comments

QQ20150604-1@2x

今日因为部署开发环境的问题,涉及到要降级系统中的nodejs,从0.12的版本降级到0.10的版本。

根据牛哥的指导,可以通过修改gulp的配置文件,强制性的指向nodejs到旧版即可。可是实践后发现这个解决方法并不稳定。导致了只能考虑卸载nodejs的环境,然后重新安装较旧的版本。大家如果有其他的好方法欢迎讨论!

首先卸载nodejs

卸载的方法如下


sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

可以参见http://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x

然后安装旧版的nodejs,坑多

在google中搜索,基本上解决方法都是

brew versions node

的方式来进行实现

当时实际的使用过程中,发现brew报错,如下

Error: Unknown command: versions

再次搜索解决方案,发现建议的解决方案如下:

brew tap homebrew/boneyard

但是执行的时候还是报错

You should use the homebrew-versions tap instead:
https://github.com/Homebrew/homebrew-versions

再次通过搜索发现homebrew在2015年3月份的时候更新了这个命令,所以针对要安装到低版本的情况的解决方法是:

到达brew的安装目录,一般是

cd /usr/local

clone Git上的库下来

brew tap homebrew/homebrew-versions

然后再进行

brew search node

看到输出是


homebrew/versions/node010 leafnode
homebrew/versions/node04 node
homebrew/versions/node06 nodebrew
homebrew/versions/node08 nodenv
...

然后执行

brew install node010

最后进行链接修复和overwrite

brew link --overwrite node010

ok,最后输入

node -v

见证奇迹的时刻吧

关于Apple Watch体验设计的一个细节

By | 产品, 技术, 设计 | No Comments

在设计Apple Watch体验的时候,比较重的交互是希望引导用户到手机上进行交互的。那么这个时候需要考虑,在Watch使用到不同页面的时候,在手机上如何打开你的App?以及在手机App上以什么样的条件进入到哪个页面?

在手机上如何打开你的App?

苹果提供了Handoff的方法,那么当用户打开手表上你的App中你想显示Handoff的页面时,如果点亮iPhone,那么在iPhone的左下角就会出现你的App图标,用户按住左下的图标上滑就可以打开你的App了。

QQ20150529-2@2x

但是当前这部分的体验有一个痛点,如果用户习惯使用Home键进行解锁且使用TouchID,那么就很难使用这个功能了,希望苹果可以在iOS9中修复这样的问题。但是如果iOS9把左侧变成了Homekit使用的位置就苦逼了。

如果用户按照Home键和TouchID躲过了刚才的流程,那么也可以通过共享文件机制,在app打开的时候通过共享文件查到用户是从手表上的哪个界面过来的,从而提示用户跳转到刚才操作的位置。不过这个操作流程比Handoff的打开流程比,就费劲一些了。

在手机App上以什么样的条件打开什么页面?

不是说handoff打开你的app就ok了,还需要精确定义手机页面和手表页面的关系。这个就case by case了

微信6.2在更新加入了对于handoff的支持,而且终于加入了对于通知(Long-Notification)的回复支持。我一直觉得支持回复比在手表上刷朋友圈靠谱多了。

换工作了

By | 产品, 技术, 生活, 设计 | No Comments

今日办理了离职手续,离开了时光网。这次离职是因为女友的事情而起,但最终却是因为职业生涯发展方向的变化而落地。随着和女友交往越来越深入,异地恋的问题也就愈发凸显。因为自己一直在北京的原因,女友的情绪也变的越来越糟糕。所以决定换一个可以有更多时间在上海陪女友的工作。在寻找新机会的过程中自己对于自己职业发展又进行了一次思考。

说在前面

这个观点其实伴随着我对于现在趋势的两点认知:

  • 因为工具越来越先进,掌握技能的时间大大缩短
  • 小公司是未来的方向,获取资源的成本在不停下降

反思自己职业发展规划的缺陷

按照之前自己职业生涯的规划,更多的是发展成为产品型或者管理型。但是在之前的职业发展中,基本都没考虑自己的两个爱好。也就是开发和设计。

作为产品型发展,充分利用了自己的两个优势,就是责任心和好奇心。自己对于自己的产品很负责,且对于自己不懂得东西比较好奇,经过时间的积累且运气较好的情况下,可以在产品设计和项目管理方面有比较好的成长。

但是这里忽略到了一个问题:投入产出比。当你长期持续在一个领域投入了过多的精力,那么的你的投入产出比是不停的增大的。花费相同的精力,但是产出会越来越小,也就会遇见我们通常所说的瓶颈。

所以当思考到这一点的时候,就会发现:

如果将自己的爱好开发和设计带入到自己的职业发展当中,也许可以创造更大的价值

直觉觉得这是一个比较靠谱的想法。于是在求职的过程中也进行了验证,果然市场是对于这样全栈定位的人是有刚需的。那么基本认定了,这是一个可以实践的想法。

继续完善

但是仅仅市场需要就够了吗?当然不是,做这种产品、设计、开发的全栈未来的发展有空间吗?在什么样的位置可做发挥最大的价值呢?带着这两个问题又进行了一波思考。

毫无疑问这样定义的全栈是初创企业所需要的,你能够一个人提供一个小团队的战斗力。但是这样的价值更多的适合从无到有,而不适合去做稍大规模和复杂度更高的事情。

那么当公司的规模扩大了以后,刚才说的这种全栈能够提供怎样的价值呢?我觉得主要有三方面:

  • 更容易了解对方的想法,进行管理会更得心应手
  • 思考全局会更为全面,做出的架构会更合理
  • 对于流程了解的更全面,可以提出更优化的流程,节约企业成本

当然,这样的定位也很适合去创业 XD

总结几句

总结一下,基本就是放弃过去只做产品的局限,在开发和设计投入更多的精力去学习实践。

 

时光网Apple Watch App上手体验及设计反思

By | Uncategorized | No Comments

简单介绍

时光网的Apple Watch App(以下简称 Watch App),主要包含三部分功能:

查看我的电影票

可以查看到电影距离开场和结束的时间,是否有彩蛋,影票兑换码和取票方式,座位信息以及导航去影院

查看正在热映影片

可以查看正在热映的影片以及评分

查看附近影院排片

查看附近影院排片

Glance和Notification

支持在Glance查看电影票,Notification收取上映提醒和开场提醒

 

测试场景

使用时光网app购买1个多小时之后开场的《赤道》,假装不知道影院的位置,只知道大概的距离。需要导航去影院,取票,观看电影。

 

测试过程(从使用者角度描述)

在时光网App购票,比X眼多花了52元,然后假装不知道自己多花了多少钱,继续测试…

Read More