官术网_书友最值得收藏!

Chapter 1. Software is Complex

Useful software evolves over time in order to adapt to the ever changing environment and to cope with the ever increasing demands in the real world. Therefore, useful software becomes increasingly complex over time. This phenomenon applies to PHP applications as well.

During the early days of PHP, the systems written were fairly simple and straightforward. In fact, when Rasmus Lerdorf first developed PHP, the objective was very simple—'Make my life easy with dynamic web applications'. It was a one person effort to start with. Over a period of time, more and more individuals got interested in PHP and used it for their own web applications. Their applications were simple, hardly exceeding 100 PHP scripts and, more often than not, managed by a single person.

As more people gained interest in PHP, for its simplicity and ease of use, the number of use cases increased. This resulted in people wanting to do more with PHP, especially with the rise of the Internet and enterprises looking into using Internet for business applications. The Novel Applications of the Web 2.0 era also increased the demand for rich applications on the Web, along with the need for powerful programming options.

PHP, as a scripting language, has evolved remarkably to meet up to the new requirements. Therefore, as we all know, PHP became the language of choice for the majority of complex and interesting applications that are deployed on the Internet today.

If you look around the Web, some of the most used applications such as Flickr (http://www.flickr.com/) and Facebook (http://www.facebook.com/) are PHP-based. Any web hosting solution that is found around the Web today provides support for PHP. Drupal (http://drupal.org/), Joomla (http://www.joomla.org/), and WordPress (http://wordpress.org/), the popular content management systems that are deployed by millions, are all PHP-based.

As the adoption of PHP becomes wider and the use becomes broader, the feature set and tools continue to expand. At the same time, organizations tend to choose PHP as the language of choice for complex web applications, because it is battle tested, hardened over time, and proven to work. Thus, the chances of the software project you are involved with being PHP-based is very high. Also, the number of organizations that use PHP-based tools is also high. The following image shows the popularity of the programming languages (Source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html):

Software is Complex

The leading programming languages, Java, C, and C++, are very different form PHP. Java and C++ are used to implement enterprise as well as desktop applications. Many people still use C to implement systems software such as operating systems. Even the PHP engine is implemented in C. On the other hand, PHP is popular in a very different domain, namely Web Programming. As you can see, PHP is the leader when it comes to web-based programming.

Be it that your software project is using PHP or a tool based on PHP, given the complexity of today's software, you need a team of people. In other words, the days when one person could handle the development of a platform are long gone. Today's web applications are much more complex compared to the private home pages. For example, the PHP-based web application platforms like Flickr are quite complex web applications that are completely written in PHP. We are also seeing that blogging web applications are replacing private web sites at a very fast rate, and the blogging platforms are completely implemented in PHP.

In this chapter, you will learn:

  • The need for teams for PHP projects
  • How software engineering principles help with PHP projects
  • The need for a process for PHP projects
  • Dividing the project problem and conquering it
  • How patterns help with PHP projects
  • Using tools to manage the development and collaboration within the PHP team
主站蜘蛛池模板: 滨海县| 五台县| 石渠县| 滦南县| 昌宁县| 鹿泉市| 郸城县| 红桥区| 灵川县| 襄汾县| 区。| 灌云县| 武冈市| 澄迈县| 兴城市| 襄城县| 墨竹工卡县| 竹山县| 莱芜市| 绥德县| 定州市| 汾西县| 峨山| 登封市| 陇川县| 丰宁| 宁陕县| 什邡市| 大名县| 伊通| 宾川县| 永福县| 白城市| 昭苏县| 金堂县| 济源市| 五家渠市| 电白县| 齐齐哈尔市| 东乌珠穆沁旗| 宁安市|