[转]对目前主流开发技术的分析和总结

一、引言我为什么要写这篇文章

  首先,我要限定我文章的范围,我讨论的问题局限于桌面应用开发领域和企业应用开发领域,所以我的结论并不适用于整个软件开发界,比如我说C语言已经退出历史舞台,这对于写嵌入式系统的人和编写操作系统内核的人来说显然是错了。我写这篇文章的目的主要是:

   *简单的介绍并评价当前主流技术

   *比较当前的主流技术

   *预计技术的演变

  如果你想做程序员或者已经是个程序员,你可能会面对这些困惑:

   *学什么语言呢?Delphi、C++、VB、Java、 C#、PHP、Python?

   *选择什么开发工具呢?Delphi、VC、C++Builder、 JBuilder?

  当你已经入了门,有了一定的基础之后(可能已经通晓了几种语言),你会面临进一步的困惑:

   *MFC和VCL之间是什么关系?

    *J2EE到底是什么?.Net到底是什么?两者有什么本质的区别,我应该学习哪一个呢?

   *COM那么复杂,为什么很多地方都用到它?我必须学习它吗?

  如果是作为一个软件公司,如果不是那么大,如果你的公司还没有一个真正的技术上的灵魂人物,那么你也会面临同样的困惑。技术问题纷繁复杂,让你不知所从,而且真正的精通每一项技术都需要巨大的时间和人力的投入,你怎么办?选择哪种技术作为公司的主流技术呢?选择的方向是否正确是个关乎你的公司的生死存亡的问题。你面临着这些困惑吗?如果是,那么请让我试着为你拨云见日。
继续阅读“[转]对目前主流开发技术的分析和总结”

深入理解 abstract class和 interface

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。
继续阅读“深入理解 abstract class和 interface”

PHP5中的对象持久层实现:Propel简介

传统的PHP应用程序一般采用无框架的Client-Server-Database三层模式,实现起来快速,很适合中小企业搭建动态站点的需求。 PHP5的出现,把PHP引向更广泛的使用领域。现在的站点,不仅要考虑站点的运行效率,还要综合开发效率以及未来的维护成本。于是有很多站点开始用基于 MVC模式的框架。
在M,也即模型中,考虑的正是数据模型的存储和数据。一般的解决方案将使得在业务逻辑中夹杂着较多的SQL。 ORM的出现很好的解决了这个问题。

Propel是一个ORM的PHP实现。

简介:
Propel是一个基于Apache Torque的对象持久层,需要PHP5支持.实际上,它让你使用 对象 代替SQL 来读写数据库表中的记录.它提供了一个生成器来创建基于你的数据模型的SQL定义文件和相应的类文件,并有一个运行时引擎透明的处理对象持久和获取工作. 如果要定制生成的类将是很简单的事情,XML, PHP类和Phing构建工具使得把Propel集成到已有的应用程序框架也相当的容易.
Propel算是PHP中对ORM的实现,并且用到它的兄弟项目Creole作为数据抽象层.
它的核心思想是:通过 XML 格式的模式文件和相应的配置文件来生成SQL和类, 在数据库抽象的基础上,  更近一步,它”隐藏”了数据库,使得WEB开发人员专注于业务逻辑上.
实践:著名PHP框架 symfony使用了精简版的Propel.
相关:PEAR DB_DataObject是另一个轻型的ORM实现,不过它的数据库抽象层使用的是 PEAR DB.
链接:
http://propel.phpdb.org
http: //creole.phpdb.org

php编写大型网站问题集

PHP以其易用性得到迅速的推广,但易用并不是说就能用好它,实际上许多程序员用它很容易的立一个个WEB应用系统,但又有多少人仔细的考虑过他们的代码,是否容易维护、是否足够健壮、否效率足够高、是否足够安全,当PHP用于建立大型网站时这些就成为很关键的因素。下面我们从较轻微的问题开始讨论,直至一些致命的错误。共分三部分。 继续阅读“php编写大型网站问题集”