Design and Architectural Goals
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的更多相关文章
- Design Principles and Design Patterns
设计原则解读. 设计原则是对设计模式的约束性要求,属于设计中基本的四项特征,不符合此四项特征的设计,不具有生命力. 设计模式也是在此四项设计原则上的具体化实例化衍生物. Martin原文: http: ...
- Architecture Design Process
Architecture Design Process The architecture design process focuses on the decomposition of a system ...
- 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- ...
- (转)Awesome Courses
Awesome Courses Introduction There is a lot of hidden treasure lying within university pages scatte ...
- 1.HBase In Action 第一章-HBase简介(后续翻译中)
This chapter covers ■ The origins of Hadoop, HBase, and NoSQL ■ Common use cases for HBase ■ A basic ...
- Network Function Virtualization: Challenges and Opportunities for Innovations
年份:2015 ABSTRACT 最近提出了网络功能虚拟化,以提高网络服务供应的灵活性并减少新服务的上市时间. 通过利用虚拟化技术和通用的商用可编程硬件(例如通用服务器,存储和交换机),NFV可以将网 ...
- MIT课程
8.02 Physics II (电磁学基础) Introduction to electromagnetism and electrostatics: electric charge, Coulo ...
- EDA简介
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD),[1] ...
- 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 ...
随机推荐
- location 将跟目录下某个文件夹指向2级目录
例如: /caffespressos/指向/web01/caffe/ [root@web01 default]# tree web01/ web01/ └── caffe └── index.html ...
- MongoDB Replica Set搭建集群
MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点 ...
- 一款基于jQuery的超酷动画幻灯片
今天给大家带来一款仿步步高vivo手机网站的一款首页焦点幻灯展示特效,带有超酷炫的动画特效,动态效果丝毫不逊色于flash动画,具有很强的视觉冲击力,推荐下载学习! 提示:兼容360.FireFox. ...
- jQuery插件开发全解析<转>
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- Lua中的table函数库
table.concat(table, sep, start, end) concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组 ...
- IOS微信API异常:unrecognized selector sent to instance 0x17005c9b0'
开发IOS整合微信API的时候,在运行程序的过程中可能会在注册你的APPID的时候抛出此异常而导致程序崩溃. 异常描述 [7661:2826851] *** Terminating app due t ...
- [插件] 如何在一个页面中使用多个SWFUpload对象上传文件
首先需要引入相应的样式和JS文件,还需要借助jQuery的js 提供下载路径:http://pan.baidu.com/s/1EUzca ① 引入js <script type="te ...
- mac环境搭建selenium
前言 搭建python+selenium,mac自带python2.7,需要公司使用的python是3.x,可以自己百度安装python环境. 1. selenium安装 1. selenium的安装 ...
- C# 布局 Anchor&Dock
编写c#的时候,希望里面的空间能够随窗口的改变自动调整大小.就需要用到Anchor和Dock属性. 参考链接: http://www.cnblogs.com/yuyijq/archive/2010/0 ...
- DTD与XML Schema都是XML文档。(选择1项)
DTD与XML Schema都是XML文档.(选择1项) A.正确 B.不正确 解答:DTD不是XML文件, schema是XML文档