• 关于框架的一些思考


    框架的本质,是解决了以下两个问题:

    • 使用已知的最优解,来解决已知的共性问题,节约重新发明轮子的工作。
    • 强行进行规范性的约束。

    框架应该提供的几个核心能力,或者说要提供关键特性:

    1. 路由管理
    2. MVC分层
    3. ORM
    4. 基本的安全控制(防SQL注入等)
    5. 切片编程
    6. 日志机制
    7. 异常机制
    8. 多语言支持机制
    9. 对第三方工具包的集成机制

    关于框架的发展方向:

    Java主流框架,从Spring到SpringBoot,从Hibernate到MyBatis,包括国内最近出的TDengine,背后都有一个思路,就是设计者逐渐抛弃复杂的过度设计,回归到二八原则,用最简单的方法为大部分项目提供更轻量级的、效率更高的技术方案。

    社区建设方面PHP一直是落后于Java的,不过显然也会是这样的一个发展趋势。从这个角度看,Laravel框架本身比较臃肿,很多功能的实现机制也太过于复杂,应该并不会代表未来的发展方向。对于框架而言,提供的功能越是丰富,路就走得越窄。在代码的世界,Off-The-Rack的东西,应该是和具体业务无关的,否则适用范围有限。Off-The-Rack的程度越高,这个适用范围就越窄。

    仅就这些年遇到的项目需求,我对框架的期望是:

    • 最好大家都逐步过渡到完全的前后端分离,这样框架可以更纯粹,不用分别照顾两种情况。
    • 框架本身尽量简洁,但是可以在各个不同的环节,集成或者替换第三方的组件,这样可以促使社区组件丰富化、专业化,不同场景可以自由选择不同组件。类似装修,简单做硬装,用新做软装。
    • 从框架角度,支持API版本的管理。
    • 期待一些有意思的组件,如灰度发布等。
  • 相关阅读:
    PhysX3 User Guide 04 Rigid Body Dynamics
    PhysX3 User Guide 05 Scene Queries
    PhysX3 User Guide 01 基础
    error C2061: syntax error : identifier '__RPC__out_xcount_part'
    vim中替换字符串
    Linker Tools Warning LNK4098
    PhysX3 User Guide 03 Joint
    【转】C RunTime Library 暨 深入理解编译选项的含义 04
    不足
    tortoiseSVN Check out正常但Show Log时 Go Offline
  • 原文地址:https://www.cnblogs.com/zhaoxizhe/p/11405875.html
Copyright © 2020-2023  润新知