w动态实例化-轻量级,组件间依赖程度、专一性-复用性、灵活性。

https://www.codeigniter.com/userguide3/overview/goals.html

http://codeigniter.org.cn/user_guide/overview/goals.html

Design and Architectural Goals

Our goal for CodeIgniter is maximum performance, capability, and flexibility in the smallest, lightest possible package.

To meet this goal we are committed to benchmarking, re-factoring, and simplifying at every step of the development process, rejecting anything that doesn’t further the stated objective.

From a technical and architectural standpoint, CodeIgniter was created with the following objectives:

  • Dynamic Instantiation. In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.
  • Loose Coupling. Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.
  • Component Singularity. Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.

CodeIgniter is a dynamically instantiated, loosely coupled system with high component singularity. It strives for simplicity, flexibility, and high performance in a small footprint package.

设计与架构目标

CodeIgniter 的目标是在最小化,最轻量级的开发包中得到最大的执行效率、功能和灵活性。

为了达到这个目标,我们在开发过程的每一步都致力于基准测试、重构和简化工作, 拒绝加入任何对实现目标没有帮助的东西。

从技术和架构角度看,CodeIgniter 按照下列目标创建:

  • 动态实例化。 在 CodeIgniter 中,组件的导入和函数的执行都是在被请求的时候 才执行,而不是全局的。除核心资源外,系统不需要任何其他资源,因此系统默认是 非常轻量级的。HTTP 请求所触发的事件以及你设计的控制器和视图将决定哪些资源是 需要加载的。
  • 松耦合。 耦合是指一个系统中组件之间的依赖程度。组件之间的依赖程度越低, 系统的重用性和灵活性就越好。我们的目标就是打造一个松耦合的系统。
  • 组件专一性 专一性指的是组件对某个目标的专注程度。在 CodeIgniter 中, 每一个类和方法都是高度独立的,从而可以最大程度的被复用。

CodeIgniter 是一个动态实例化,高度组件专一性的松耦合系统。它在小巧的基础上力求做到 简单、灵活和高性能。

Design and Architectural Goals的更多相关文章

  1. Design Principles and Design Patterns

    设计原则解读. 设计原则是对设计模式的约束性要求,属于设计中基本的四项特征,不符合此四项特征的设计,不具有生命力. 设计模式也是在此四项设计原则上的具体化实例化衍生物. Martin原文: http: ...

  2. Architecture Design Process

    Architecture Design Process The architecture design process focuses on the decomposition of a system ...

  3. 1: 介绍Prism5.0 Introduction to the Prism Library 5.0 for WPF(英汉对照版)

     Prism provides guidance designed to help you more easily design and build rich, flexible, and easy- ...

  4. (转)Awesome Courses

    Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scatte ...

  5. 1.HBase In Action 第一章-HBase简介(后续翻译中)

    This chapter covers ■ The origins of Hadoop, HBase, and NoSQL ■ Common use cases for HBase ■ A basic ...

  6. Network Function Virtualization: Challenges and Opportunities for Innovations

    年份:2015 ABSTRACT 最近提出了网络功能虚拟化,以提高网络服务供应的灵活性并减少新服务的上市时间. 通过利用虚拟化技术和通用的商用可编程硬件(例如通用服务器,存储和交换机),NFV可以将网 ...

  7. MIT课程

    8.02  Physics II (电磁学基础) Introduction to electromagnetism and electrostatics: electric charge, Coulo ...

  8. EDA简介

    Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD),[1] ...

  9. Architectural Styles and the Design of Network-based Software Architectures

    w Architectural Styles and the Design of Network-based Software Architectures  http://www.ics.uci.ed ...

随机推荐

  1. IP地址欺骗

    1.什么是IP地址欺骗按照IP网络协议,数据包头包含来源地和目的地信息,而IP地址欺骗,就是通过伪造数据包爆头,使显示的信息源不是实际的来源,就像这个数据包是从另一台计算机上发送的. 2.IP地址欺骗 ...

  2. yii2 ContentDecorator 和 block 挂件

    在做网站的过程中,大部分的页面结构都是相似的.如都有相同的头部和底部.各个页面这样仅仅是中间的部分不同. Yii中的布局文件就是用来实现这样的功能.如: 布局文件:@app/views/layouts ...

  3. Linux(centOS)手动安装删除Apache+MySQL+PHP+Memcached原创无错版

    =================== 第一步:Apache安装 =================== 下载 去 http://www.apache.org 自己找最新的 国内有很多镜像点例如人人和 ...

  4. struts2 OGNL ValueStack概念理解 # % $ 的区别

    http://blog.csdn.net/tjujacob/article/details/8117659 —————————————————————————————————————————————— ...

  5. 07 Test结构

    Test 有多种实现方式, [ 等价于 test, 并且 [ 是一个内建命令, 效率很高 另外, [[]] 也是测试, [[]]结构比bash[]更灵活, 这是一个扩展test命令, 从ksh88继承 ...

  6. SSIS 自测题-文件操作类

    说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 1.什么是控制流,什么是数据流,控制流和数据流之间的关系是什 ...

  7. OSG 中 相交測试 模块 工作流程及原理

    主要涉及三个类: 1. osgUtil::PolytopeIntersector // 详细不同算法实现类 2. osgUtil::IntersectionVisitor //用来遍历节点树的每一个节 ...

  8. erlang的汉字字符串和二进制的相互转换,并还原成汉字打印

    19> Hanzi = <<"汉字"/utf8>>. <<230,177,137,229,173,151>> 20> i ...

  9. glibc升级小记

    2015年元月最后几天,glibc幽灵漏洞来袭,引用 中华财经网的报道 稍做介绍: Linux glibc函数库日前曝出名为GHOST(幽灵)的高危漏洞,漏洞编号是CVE-2015-0235.攻击者可 ...

  10. 【C++缺省函数】 空类默认产生的6个类成员函数

    1.缺省构造函数. 2.缺省拷贝构造函数. 3. 缺省析构函数. 4.缺省赋值运算符. 5.缺省取址运算符. 6. 缺省取址运算符 const. <span style="font-s ...