Month: 七月 2014

方糖茶会5:邮件发送那点事

原文发自 Job Deer Park  http://t.cn/RPVlTWK

我一般会在Job Deer Park记录和分享一些不太成型的想法,和大家讨论后,再整理发布到博客。

 

为什么要自己做

在中国做网站有两个魔咒你总是逃离不掉的。

第一个就是注册邮件总有用户收不到;另外一个就是一出名立马被DDOS。

为了避免第一个魔咒,我们早早的买了SendCloud的付费用户。

每天几十个到几百个注册用户,自以为很靠谱。直到有一次首页改版,我们在邮件发送的提示信息页面放上了客服电话。

然后隔三差五就有客户电话投诉说都不到激活邮件,我们很郁闷啊,我们用的可是「东半球最好的」邮件服务商。

后来每天都手工重发邮件实在忍不了了,罗飞说,我们用WebHook做个弹回吧,一旦发送不成功,就自动给我们运营人员发一封邮件,我们直接转发就好了。

结果我们发现有些成功发送的邮件也被Hook回来了。然后罗飞就崩溃了 T__T 。

其实我不是来吐槽的,SendCloud依然是国内邮件服务商的首选,毕竟现在也就这么一家。

上个周末我仔细分析了下问题,并尝试着做了解决方案,写出来和大家分享下。…

当我在设计LP4框架时我在想些什么?

原文发布在 Job Deer Park社区。http://park.jobdeer.com/

 

之前在SF上回答过类似的问题。但我想说点具体编码以外的事情。

为什么要设计框架

极端一点,在我看来,重用代码是框架存在的唯一价值。

所以LP4的设计,都是代码重用为目的,以D(ont)R(epeat)Y(ourself)为基本规则的。

代码重用分两个级别。一是不重复自己,二是不重复其他人。

软件其实是一种能力,是封装好的、可高速、廉价、重复执行的能力。而框架,正是这种能力的封装器和分发平台。

想象一下,如果使用一个框架的所有开发者都不需要重复其他人写过的代码,这个框架的生态会是如何欣欣向荣。

开始设计框架

常用功能的组件化,可以保证不重复自己写过的代码;而好的包管理和加载设计,可以让你直接重用大量的现有代码。

今天的PHP世界,不是代码太少,而是代码太多了。所以后者反而比前者更重要。

Composer已经成为PHP里边最常用的包管理器,而PSR4的规范让它可以和其他很多包天然兼容。LP4直接将Composer作为包管理和加载器。这解决了两个问题。一个是命名空间和自动加载的问题;另一个是在LP4中直接使用海量Composer包的问题。

基于Composer的包管理很好用,但唯一的问题是包的依赖太多。Laravel是一个很Sexy的框架,但是它install后的文件目录居然有28M之多。

我知道很多文件并不会被引用,但事实上,老外写的东西,总是对形式的注重更胜于性能和简洁性。当然老外里边也有讨厌依赖的,他们做了auraphp。这是一个零依赖的PHP包集合。 http://auraphp.com/

LP4自己实现了最核心的组件,只把Composer作为外围。

未来的框架

和@luofei614 讨论时,我们经常聊未来的框架。

软件开发已经互联网化了。Composer 用起来很爽,Bower 用起来很爽,为什么?

它们都有一个在线搜索功能,在这里你可以搜索到各种别人打好的包,然后通过命令在几十秒内无缝整合到自己的代码中。

我觉得未来的PHP框架也会这样。Composer实现了一部分,它的重用只是基础组件级别的。

而真正有意思的是业务级别的。我下载一个内核,就几百k,然后我开始选功能:

我要整合微博登录,lp4 install weibologin ,

我要发送邮件,lp4 install sendcloud ,

我要把界面从Bootstrap换成Polymer, lp4 update interface polymer。

我要用户系统,lp4 install member mod ,

我要Feed流,lp4 install feeds mod 。

上帝说要有光,于是便有了光。这是LP4的远景,我们会慢慢的走过去。

目前我们大部分精力都花在了JobDeer上,好在JD就是基于LP4的,所以虽然很慢,我们会贡献出一个靠谱而成熟的框架。…

程序员应该知道的13个设计技巧

程序员应该知道的13个设计技巧

偶尔看到好文章,又懒得全文翻译,就选其中部分重点意译了。翻译时只求答意,不拘小节,偶尔还会加上自己的点(tu)评(cao),均放于方糖选译分类,不喜勿BB。

本文选译自 http://www.duetapp.com/blog/design-tips-for-developers/ 。以下正文。


 

我是一个程序员,不是设计师。我没有受过设计师的训练。我也没有读过关于设计的书籍。尽管如此,在数年的开发过程中,我学会了让自己的网站和应用看起来很专业。

下边是我认为一个技术背景的人要变得擅长设计需要留意的东西:…