江边闲话集

05/23/2014

锤子手机

Filed under: 微信 — 张太国 @ 13:29

前天,锤子手机终于和大家见面了。老实说,我对此款手机还是表示乐观的。

先说去年的那场发布会,我只有一个感觉,那就是锤子手机是老罗用心在做,我很佩服。因此,我还推荐我的同事和朋友去看看。无论老罗说的对与错,那种思考的方式和态度起码就令人尊重。

今年的这场发布会,我想说的是,这款手机我的确想买,想想我现在的HTC One(M7),难用至极,当初要不是为了其金属外壳,以及拍照的Zoe,我是不会去买的。对不起,还忘了一个非常重要的理由,尽管我当时是做app的,但是一直没用过Android系统的手机,无论是出于好奇,还是工作需要,也都需要尝试一下。但是一年多以来,花了大价钱的手机实在令我大为不满。

扯远了,继续回到锤子手机上来,我看到的有:
– 良好的工业设计,希望真机真的如在发布会上所说。
– 良好的用户体验
– 追求极致的态度
屏保。RMB200可以摔2次屏幕的保险。瞧瞧我家的iPhone,已经摔破2个了,一年一次,遭罪。
电池续航的解决方案(估计还是有点风险,仔细到地铁上一看,好多人都带充电宝)
– 2个宣传片做的不错,立即有高大上的感觉。
定价,32G和16G只相差150块,换成你,肯定选择32G。有人质疑3000起的价格,是不是有点贵了。我的意见是如果真的能达到发布会上所说的,我觉得值了。先暂时不要和小米等比。至少我觉得小米手机真不怎么样。
模仿。长得跟iPhone 4似的,老实说,模仿有什么关系呢,你看小米3不是模仿诺基亚么。无所谓,只要把手机做的好,没人说你。
版权和捐赠。锤子科技关于版权的意识是令人敬佩的。首先是开场的几首音乐版权,接下来是把门票收入捐给OpenSSL,100W啊,几个公司能做得到。就凭这点,令人钦佩。突然想起了维基百科,有几个人去捐赠的,当然,不包括我,我已经捐过几次了。最后一个问题是,为什么要给OpenSSL,是因为上个月出现的漏洞吗?

总之,凭借以上几点,就可以成为购买锤子手机的理由。

03/24/2014

杰出产品的一丝遗憾:微信

Filed under: 微信 — 张太国 @ 21:17

时至今日,恐怕谁也无法否认,微信是一个非常杰出的产品,看看现在有多少活跃用户就知道了。因为它,人们对腾讯有了无线的遐想和成长空间,这也让腾讯的市值在一年间翻倍还多,同时也给出足够高的市盈率。我在想,若不是微信,腾讯现在是一种什么样的情况,现在BAT三足鼎立竞争不会这么激烈吧?

关于微信的无限遐想还有N多,balalala,恐怕一天都写不完。

但是今天,我之所以写本文,是在这个伟大产品背后看到了一丝遗憾的东西,那就是微信工作平台的接入API和文档,尽管它们还不足以成为大问题,但的确让我看到了一丝隐忧。

几个月前,我有机会试了一下公众平台的API,令我吃惊的是,我发现这些API和文档真的写的太一般,让我无法想象这是出自于腾讯之手。看了这些文档后,我对于一些问题根本不知道如何下手。幸好API还算简单,否则真是搞死一帮人。

遗憾之一:非常一般的文档

个人认为,一篇好的文档必须从用户的角度去思考,能解决一般问题,再做更好的话,是可以解决一些疑难症状。总之,文档是用来给用户解决问题的。我试着问几个问题:

请问微信和自己开发的服务是一个什么样的关系?什么样的架构?翻了一通文档,死也没找见。一上来就是如何接入,关键是接入的文档也没把原理写清楚。我想每个开发人员都想了解系统框架和接入原理吧。这样就可以在宏观上把握整个系统。
在处理消息时,我当时就在想,用户在微信发出一个消息时,server端如何知道这个消息并处理和返回?这些原理有吗?没有!整个很重要,可以了解到完整的消息流程。
在创建自定义菜单时,我真的非常迷惑,微信的app到底是怎么自定义菜单的呢?是主动还被动?总之,我得不到想要的答案。最后根据文档发现(或者说是猜想),需要自己主动POST数据。结合别人写的代码才能验证我的想法。
代码写好后,开始调试。文档里是提供在线调试的。但是对于有些调试(尤其是处理message)来说,有时候真的不知道怎么传参数,反而把人搞得非常confuse。
细节也是注意不够,例如参数的定义和说明,有些真没说清楚,这样会让大家浪费很多时间。

上面提到的都是文档中出现的几个主要问题。如果满分是100分的话,那这文档也就是30分左右,离一份优秀的文档差远了。

分析一下写文档的人:

或是说,总以为每个开发者都跟微信API的开发者一样,精通微信的原理。
或是说,总以为开发者肯定都是不错的开发者,有些问题能搞明白。
或是说,这些写文档的人根本不知道如何写文档。或者说根本不知道开发者想要什么。
或是说,写文档的人根本不知道如何写好一篇文档。
不得不说,写文档是一件比写代码还要难的事情,从我们生活周围发现,代码噼噼啪啪写完,很快。一旦涉及到写文档,就犯难。但是,如果写API的文档,就必须写好,尤其是这么重要平台的产品。

写文档不需要假设,因为自身知识的欠缺,如果有假设行为,会导致文档写的有缺陷。

遗憾二:API接口一塌糊涂

不得不说,这是我见过一些伟大平台API写的最糟糕的,对,没有之一。从侧面也反映了我们国内程序员写API的能力非常一般。

大小写不一致

OK,看看发送图文消息的接口:




12345678

2

<![CDATA[title1]]>





<![CDATA[title]]>






乍一看真没什么问题,但其实这里有一个非常不恰当的做法,为什么item的i变成小写了,这个其他element不一致,这也是容易出问题的地方。因为按照大家写代码的习惯,总以为这些名字的大小写是一致的。最后发现自己死也调不通,收到的是格式错误的错误信息。费了半天劲,才发现这里错了,于是心里面默默的把腾讯骂了一通。我想信这样的case不在少数。

让我们继续看看下面的API,

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
我不否认这个API不对,但是绝对不是最合理的地方,access_token怎么就加到了URL里,还是POST。足可以看出api设计的不严谨。

数据格式不一致

有时用XML格式传输数据,有时用JSON,我想说的是,能否把这些统一起来。设计api的人脑子是坏掉了吗?或者要么在前面所,我们既支持JSON又支持XML。现在好了,不伦不类的。

命名不一致

看看下面的实例,我们可以了解到element命名不统一的问题:

{
“”:”OPENID”,
“msgtype”:”video”,
“video”:
{
“”:”MEDIA_ID”,
“title”:”TITLE”,
“description”:”DESCRIPTION”
}
}
看到了吧,media_id中间有下划线,但是touser中间没有。咱们再看看下面的


<>

1348831860


1234567890123456

同时是toUser,怎么2个地方命名不一致呢。

总之,写到这里,我彻底被征服了,这种彻底被打败的感觉令人压抑。要不是为了让微信平台的打通,早就放弃了。感觉这api的定义没有整体规划,写到哪算哪的意思。

API是最能掩饰开发者的无能,因为只有接口暴露给人家。举个不恰当的例子,林志玲看起来够完美吧,谁知道她身上是否有伤疤,皮肤不够细腻呢(我倒是想验证一下, :))?所以,无论背后逻辑写的多烂,但怎么着也得把接口整得漂亮点吧。

遗憾三: 安全性

我发现一个严重的问题,简单描述一下,能看懂的就看,看不懂的就算了。问题的描述如下:

如果有多个app(至少2个)都启用了开发者功能,而且这几个app对应不同的公共账号,但是这几个app后台对应完全相同的代码,这就意味着自定义菜单和菜单的action都一样。问题来了,你会发现这些菜单的action其实和token,appid没太大关系,都可以使用,而且结果都一样。

以上问题不能说得太清楚了,否则整个app行为就会混乱的问题。

通过这个漏洞,我真的非常担心微信的安全性问题。当然咱也不清楚是人家故意这么做的,还是系统真的留下了这么一个大彩蛋。

从以上一系列的问题,我们可以看到,这个后台完全是没有章法,一是反映出微信团队管理的问题,二是开发者的问题。无论微信多么漂亮专业,但是通过这些后台的东西,足可以看出存在的问题。

说的严重一些,是不是整个微信团队,无论是前台还是后端,都存在相同问题。希望这仅是个案,而不是普遍。我有点悲观,我估计是后者的可能性较大。

另外,有人说进腾讯很难,是啊,是很难。但是并不意味着腾讯的人个个人都很牛B(当然也有很多牛B的人)。从今天写的几个问题就可以看出。

你说呢?

–关注我的微信公众账号–
您觉得这篇文章对您有帮助,可以订阅我的公众账号。查找”Terry说道” 或”terrysaid“

03/19/2014

强迫症

Filed under: 微信 — 张太国 @ 19:53

这个词,在我身上发生好多年了,这几年尤为突出。

OK,现在我描述一下我当前的状况。

每当我出门时,总要检查一下水电煤,嘴里还唠叨着水Ok,电Ok,煤OK。接下来就是关门,非得还推两下,看是否真的锁上。

工作时,发一份邮件,尤其是重要的邮件,必须review一遍甚至几遍,否则觉得不踏实。写份文档,也要想想拿到的人是否看得懂,看的舒服,文档是否写的啰嗦。

开车过马路时,一定要看清左右是否有车,(难道这是我至今未出事故的原因之一).停车时更甚,侧方停车,必须要靠近马路牙子,否则觉得不踏实。如果停在小区车位,必须和邻居车保持约20公分的距离,怕影响到人家,也怕人家蹭到我的车,(也许邻居车较名贵,出问题耽误事,也许是人家是个大姐,开车比较猛,担心蹭到自己,总之,避让一下为好)。停好车,锁上,拉几下车把手,生怕没锁好。有时候还绕着车走一圈。甚至,走出几十米后,心想车灯有没有关,然后折返回去看一下,其实每次都关了。有好几次我想回去,心理告诉自己,关了,而且按照以往经验,100%的概率,所以就没回去检查一下。

balabala…,还有好多实例,就不一一说了。

说完这些,是不是觉得强迫症厉害。幸运的是,强迫症至今还没影响到我的生活,要真影响到了,也算是神经病了吧。哈哈。

其实我一直在想,这个强迫症是怎么发生的?我身边的人是不是也发生呢?就此事,我也和其他同事交流过,发现了一些规律,一般我认为靠谱的人或多或少都有这种情况。和他们了解到的情况,以及我个人的考虑,之所以出现强迫症,也许是大家的责任心强,也许是因为怕犯错误,或者是担心自己的错误怕给大家和自己带来麻烦。原因非常多。

总之,我觉得,适当的强迫症也没关系,相反有助于工作和生活质量,做事踏实靠谱。但是,我也认为,如果强迫症很严重的话,会影响到生活和工作,影响到其他人。

最后,我想问的是,你强迫了吗?

–关注我的微信公众账号–
您觉得这篇文章对您有帮助,可以订阅我的公众账号。查找”Terry说道” 或”terrysaid“

03/17/2014

做个强大的人

Filed under: 微信 — 张太国 @ 22:49

在最近一年多里,我已经多次提到这一点,尤其是在逆境里。在这个社会里,咱必须做一个强大的人,无论在工作上还是生活上。

在这个社会结构里,很多事情都是非常残酷的,不是你淘汰别人就是别人淘汰你。所以,为了避免自己不被别人淘汰,首先必须让自己强大。

在我看来,强大的人至少需要表现在以下几个方面:
强大的内心
内心一定要强大,不以物喜,不以己悲。顶住压力,调整自己,哪一样都不能缺少。如果因为一件事情,或者老板骂了几句,而郁闷不已,想放弃或者换工作,只能说你不够强大。任何一个上司都不喜欢的。另外,一般做技术的内心都比较简单,所以我们能看到做技术的人和其他比起来,是需要锻炼。
过硬的技术
这也是是自己强大的因素之一。技术能力好,当然在工作和生活中会让人省心。
业务的熟练
不得不说,光有技术是不行,一个技术再好的人,不懂的业务,也是不起作用,所以,当加入到一个新公司,或投入到一个新team或project,了解其业务非常重要。

当然,还有其他方面,暂时不表,不然成了一个优秀人员应该具备的素质。

一个强大的人,是能够自我反省,自我适应的。否则,就不是强大的那一类人。处于当口,我们真的强大了吗?

03/06/2014

最需要投资的是我们自己

Filed under: 微信 — 张太国 @ 17:26

今天和同事吃饭,偶然聊到同事做投资炒股的事情,于是,我和同事说了我自己的看法。

其实,我觉得,就现阶段,与其把大把多的时间放在在股票,基金,以及现在火热的比特币,莱特币上,倒不如把这些时间花在自己的生活和工作上。为什么这样说呢?首先,我们进行投资肯定是为了挣钱,不会有人想着去赔钱吧。但是在中国这种奇葩的股市里,有几个人能真正挣到钱呢。这种人少之又少,除非你是股神(好吧,你是股神通知我,10%的收益率就够了)。当然,每个踏入股市的人都以为自己股神。

你可能在想,你怎么知道这些的?废话,偶当年也曾进入过股市,也以为自己很牛,最后的结果可想而已,赔了。后来彻底醒悟,干脆就不玩股票了,也不买股票基金了,干脆买货币基金了,然后收益比较稳定,然后把时间花在工作和生活上,然后自己过得充实,也觉得自己提高不少,然后….。

现在有个问题摆在面前,你不是想挣钱么?好,哥有个办法,我们可以把那些投资的时间放在工作上,这样,你自身会不断提高,我相信这种提高会给你带来不少的增值,例如升职,加薪。要是表现优异,有更猛的升职也说不定,这种包赚不赔的事情,总比投资不确定来的稳定可靠,同时自身也得到提高。如果你的老板连这都看不见,你自己赶紧逃离。熟话说,一定要跟对老板(这是另外一个话题,下次再聊)。

咱也来算笔账。话说回来,投资,是需要本钱的,我们又不是富二代(富二代可忽略),哪来那么多本钱,光靠几万块能发的了财吗?所以,先得积累资本啊,没资本干什么事都不成。就说投资吧,假说我们有500W,5%的年收益率,也就是25W,这钱估计是很多人一年的收入了,但是,这25W基本上是没风险的。那这500W怎么来?我们又不是投资专家?那只能靠自己的努力挣来呗。

所以,现在,我们身边最宝贵的是什么?是我们自己,自己自己升值了,才是最大的升值,可持续的升值,主次不能混淆。

–关注微信–
您觉得这篇文章对您有帮助,可以订阅我的公众账号。查找”Terry说道” 或”terrysaid

Powered by WordPress