月度归档:2013年08月

微信公众平台接入的安全性

最近微信公众平台非常红火,基于公众平台的接入应用也越来越多。不过在处理接入入口的安全问题上,可能不是那么的严谨。现在我们来讨论下如何保证微信公众平台接入的安全性。

根据微信官方提供的消息接口指南,微信公众平台分为接入和使用两步。接入程序官方提供了一个简单的例子,我们来回顾一下接入认证的方式:

继续阅读

使用Entity Framework访问MySQL数据库

简介

Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架。相比于LINQ TO SQL,EF框架具有很明显的优势:

  • EF框架支持多种数据库,而不仅仅局限于微软的SQL Server,MySQL,Oracle都有良好的支持。
  • 支持存储过程。
  • 强大的可视化模型设计工具,与Visual Studio深度整合。
  • 与.NET平台的其他技术整合良好。

继续阅读

关于Java8的lambda表达式

在Java 8中lambda表达式终于被支持了。在其他语言中,匿名函数和lambda表达式早已被广泛使用了。我们常用的Javascript最常见到这一特性:

在Javascript中,函数被当做一种类型,可以像其他类型一样进行传递和调用。这种灵活的匿名函数模式使得Javascript可以很好的进行异步操作。同样在C#中,由于委托的存在,匿名函数也具有十分重要的价值。

继续阅读

使用Composer管理PHP依赖关系

简介

现在软件规模越来越大,PHP项目的开发模式和许多年前已经有了很大变化。记得初学PHP那会儿,boblog是一个很好的例子,几乎可以代表PHP项目的开发模式。当时PHP 5.x以上的版本刚开始流行,仍然有大量的生产环境使用PHP4.x。由于历史遗留的问题,OOP思想在PHP项目中还不是那么广泛流行。随着PHP5.3的发布,PHP项目规模的扩大,在其他语言领域大展身手的OOP开发模式也在PHP中崭露头角。

大型项目不可能是从头开始的,使用社区已经提供的资源可以为项目带来很大的便利。然而各自为政的打包方式、依赖关系的处理,导致了很难将两个开源项目集成到一起。虽然有pear这种PHP官方支持的包管理工具,但是依然没有很好的统一的依赖关系管理的办法。直到Composer的出现。

Composer的依赖关系管理风格,看上去更像Java的Maven。项目编译和打包、依赖关系的解决都可以很轻松的实现。再也不用费神去寻找或者更新第三方库,或者将他们集成到一起。这一切全部都可以交给Composer来完成。

继续阅读

[翻译]使用PHPUnit进行测试驱动开发

单元测试在软件开发过程中举足轻重,测试先行编程(Test-First Programming),极限编程(XP)和测试驱动开发(TDD)在实践中被广泛的使用,单元测试允许通过编程语言进行契约式设计。

在代码编写完成后,你可以使用PHPUnit来编写测试。然而在错误出现之前创建测试,测试才显得更有一样。所以与其在代码编写完成几个月之后再为它创建测试用例,不如尽早的赶在出现瑕疵的几天甚至几分钟内创建这些测试用例。尽管如此,人们自然而然的可以想到,为何不在瑕疵出现之前,就提前编写好这些测试呢?

测试先行编程是极限编程和测试驱动开发的一部分,基于这种思想我们来实现编程的“极限化”。在现在的电脑运行环境下,我们每天可以将数以千计的测试用例执行个几千次。利用测试的反馈,可以及时地改进每次开发引入的新特性,同时便于利用自动化测试检查可能新被引入的Bug。

继续阅读