15.1. 开发框架 Framework

选择一个好的开发框架,很重要。不过大部分框架都针对于软件开发,而我们要的是轻量级,适合高负载,灵活的框架。

框架的分类

  • 本地框架HMVC,MTV
  • 远程框架SOA/REST
  • 混合框架

上面框架可以满足我们绝大多数需求,如URL定义,Session/Cookie管理,多语言国际化,数据库访问等等。

Java和.Net我没有太多的经验,php我有10+年经验,我在各种框架之间做比较发现CodeIgniter框架比较适合我们的需求。

框架是没有100%完美的,你仍需要对它进行二次开发。如果你有充足的时间,针对自身系统系统的特点设计一个更适合您网站的框架,这是最好的选择。

设计一个框架需要用到很多知识,需要有丰富的经验。目前主流框架都是基于MVC设计思想,要设计一个框架你必须了解MVC (Model-View-Controller) 参考:http://www.itisedu.com/phrase/200604231324325.html

开发一个框架包括那些重点呢,下面我把一些要点一一列出,然后一个个地突破,我这里使用php为例子,上面我已经说过语言只是工具,所以学习是设计思想,不要拘泥于语言:

  • JS封装(javascript)

  • 模板(template)

  • url

  • session/cookie

  • 语言包(language package)

  • 编码(unicode)

  • 数据库访问(database OR Mapping)

  • 权限(Permission)

如果重新开发一个框架,我认为太现实,我的建议使用现有pear库,搭建一个MVC框架。例如:

  • Model(pear db)

  • View(smarty template)

  • Controller (pathinfo)

15.1.1. HMVC

  • Python web2py

  • Php CakePHP,Zend,CodeIgniter

  • Perl Catalyst

  • Java Struts,Spring MVC

  • ruby on rails

15.1.2. REST

  • Python Pylons

  • ruby on rails

15.1.3. SNA (Shared Nothing Architecture)

15.1.4. 其他

  • Python Django 是一个MTV框架

  • .Net Framework

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

第 15 章 Framework Design相关推荐

  1. Spring - Java/J2EE Application Framework 应用框架 第 15 章 EJB的存取和实现

    第 15 章 EJB的存取和实现 作为轻量级的容器,Spring常常被认为是EJB的替代品.我们也相信,对于很多 (不一定是绝大多数)应用和用例,相对于通过EJB容器来实现相同的功能而言, Sping ...

  2. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  3. 第15章 MiniVGGNet:更深的CNNs

    第15章 MiniVGGNet:更深的CNNs VGGNet(或简称为VGG),第一次在文献<Very Deep Learning Convolutional Neural Networks f ...

  4. 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第15章-基于竞争关系的离散异构多智能体系统分组一致性

    第14章 回到目录 第16章 第15章-基于竞争关系的离散异构多智能体系统分组一致性 15.1 引言 15.2 预备知识 15.3 问题描述与分析 15.4 例子与数值仿真 15.5 本章小结 15. ...

  5. 第15章 SpringBoot集成logging日志

    第15章 SpringBoot集成logging日志 15.1 SLF4J与Logback简介 15.2 spring-boot-starter-logging 15.3 logback-spring ...

  6. 第三次作业:阅读《构建之法》1-5章有感

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178 阅读<构建之法>1-5章有感 第1章:概论 ...

  7. 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40

    1. 第15章代码修改 先不说习题,说一说我对源码的修改.从运行结果来看,主要是增加了颜色支持.不过把我的代码与配书代码相比较的话,还是有很多不同的.这些修改是怎么来的,可以参考我之前的博文. 运行效 ...

  8. 复现经典:《统计学习方法》第15章 奇异值分解

    第15章 奇异值分解 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者", ...

  9. 机器学习实战第15章pegasos算法原理剖析以及伪代码和算法的对应关系

    Pegasos原文是: http://ttic.uchicago.edu/~nati/Publications/PegasosMPB.pdf 还是挺长的,论文结构是: 第1~6页:主要原理 第7~15 ...

最新文章

  1. RuntimeError: Expected object of device type cuda but got device type cpu for argument pytorch数据位置
  2. 从基础末尾:CSS适用教程
  3. DeeplabV3+ 在自己环境下跑出现的错误
  4. 如何使用用户数据脚本在EC2实例上安装Apache Web Server
  5. Java并发教程–锁定:内在锁
  6. 【转】JMeter学习(十七)JMeter测试Java
  7. 移动通信matlab实现,现代移动通信中的调制技术研究及Matlab实现
  8. linux低级格式化工具下载,Hard Disk Low Level Format Tool下载-硬盘低级格式化工具 v2.37 官方版 - 下载吧...
  9. Resource Hacker-资源替换工具
  10. Unity3D游戏开发入门引导:Unity3D收费方案和版本、下载地址、安装教程
  11. 让画面契合音乐节拍——BeatEdit
  12. Spss-多元回归案例实操
  13. springboot定制和关闭banner
  14. 用好这 28 个工具,开发效率爆涨|云效工程师指北
  15. Win10忘记登录密码,系统U盘/光盘轻松重置
  16. snv服务器备份方案
  17. VS2008的安装注意事项
  18. JDK1.7ConcurrentHashMap源码分析
  19. 一维数据二维化的办法汇总(二)
  20. JAVA中一些术语的中英文对照

热门文章

  1. java序列化和反序列化工具_Java 序列化和反序列化工具类并解决StreamCorruptedException问题 | 学步园...
  2. Science Robotics:仿生手臂的神经机器人感觉运动融合恢复自然行为
  3. letswave7中文教程2:脑电数据预处理-通道位置分配
  4. Gameplay 框架
  5. 又搜集一批项目源码,同样改改就能用
  6. 华人开发世界最小电池,直径细如灰尘,可集成在芯片上供电10小时
  7. 浪潮信息:企业互联网化下的数据平台升级 | 云·创课程实录
  8. 她15岁,上海高一女生,也是顶尖科学家论坛最年轻嘉宾
  9. 题解——洛谷 P2680 NOIP提高组 2015 运输计划
  10. JSOI2012-夏令营 Mar Maps