Atitit api design Usability simple 易用性之简单化设计

目录

1. 理论原则 2

1.1. 概念简单 2

1.2. 切换到了"write less, do more"模式 2

1.3. 归一化(锤子钉子理论) 2

1.3.1. 打破接口单一职责的原则,多用途api 3

1.4. 1. 好API的6个特质 极简(minimal 语义清晰简单(have clear and simple semantics)、符合直觉(be intuitive)、易于记忆(be easy to memorize)和引导API使用者写出可读代码(lead to readable code 3

2. 范例 3

2.1. Php win jq 3

2.2. Linux every thins is file api 3

2.3. Jq $ multi override 3

3. Api设计的简单规则 3

3.1. 多功能 重载 3

3.2. 层次简单 4

3.3. 支持批量的操作数组中的元素,也叫隐式迭代 4

3.4. 支持链式操作,可以在一条语句中完成很复杂的逻辑 4

3.5. 代码量少短小精悍 4

3.6. 1.3. 参数接收 JSON 对象 2命名参数 4

3.7. 细粒度api + 粗粒度快捷api +高级api三层 4

3.8. 2. 具体 2 4

3.9. 2.1. 语言简单性 弱类型  动态变量  动态实体 2 4

3.10. 2.2. 数据结构简单 arr 代替了array map set 2 4

4. 技术选型简单化 5

4.1. 语言简单化 php python js 5

4.2. 数据结构存储简单化 5

4.3. 类库简单化 5

4.4. 简单化委员会人员组织架构 5

4.5. 简单化制度原则 5

5. 语言简单化 5

5.1. Dsl h5 5

5.2. 业务逻辑 php python js 5

5.3. sql 5

6. 类库工具简单化 5

6.1. Mysql 代替redis es等 5

6.2. Spring jdbc 5

7. 架构简单化 6

7.1. 数据结构简单 6

7.2. 并发简单化 6

7.3. 8. 面向过程 pop vs oop 3 6

7.4. 2.9. 同步模式 vs 异步 3 6

7.5. 2.10. 资源释放一次性 不常驻内存  vs 常驻类 4 6

7.6. 2.11. 然支持热部署 4 6

8. Ref 6

  1. 理论原则

    1. 概念简单

根本不需要去了解真正的 Array 和 List 有什么区别,也不需要去管数据流、缓冲区,也不用管多线程并发编程,从长期来看,这一点是致命的,它使得 PHP 生态中的重要一环很脆弱,很可能是导致 PHP 最终衰落的真正因素。

  1. 切换到了"write less, do more"模式

,jQuery正是通过一个字符一个字符地节约程序员的工作量来达到这一伟大目标的。

压缩后仍达97k的jQuery竟然帮助我们少写了这么多代码,好神奇啊啊啊!这正是库/框架设计的要点,那就是"没有问题创造问题也要解决问题!"

据我所知,就图书馆的预期哲学而言,改进是"多做少写"之类的。我认为他们做得很好。您可以编写一些非常简洁而富有表现力的代码,以完成大量工作。

  1. 归一化(锤子钉子理论)

    1. 打破接口单一职责的原则,多用途api
  2. 1. 好API的6个特质 极简(minimal 语义清晰简单(have clear and simple semantics)、符合直觉(be intuitive)、易于记忆(be easy to memorize)和引导API使用者写出可读代码(lead to readable code

API之于程序员就如同图形界面之于普通用户(end-user)。API中的『P』实际上指的是『程序员』(Programmer),而不是『程序』(Program),强调的是API是给程序员使用的这一事实。

在第13期Qt季刊,Matthias 的关于API设计的文章中提出了观点:API应该极简(minimal)且完备(complete)、语义清晰简单(have clear and simple semantics)、符合直觉(be intuitive)、易于记忆(be easy to memorize)和引导API使用者写出可读代码(lead to readable code)。

  1. 范例

    1. Php win jq
    2. Linux every thins is file api
    3. Jq $ multi override
  2. Api设计的简单规则
    1. 多功能 重载

取值赋值统一化

链式操作

  1. 层次简单
  2. 支持批量的操作数组中的元素,也叫隐式迭代
  3. 支持链式操作,可以在一条语句中完成很复杂的逻辑
  1. 代码量少短小精悍
  1. 1.3. 参数接收 JSON 对象 2命名参数
  2. 细粒度api + 粗粒度快捷api +高级api三层
  3. 2. 具体 2
  4. 2.1. 语言简单性 弱类型  动态变量  动态实体 2
  5. 2.2. 数据结构简单 arr 代替了array map set 2

2.3. 免编译 热部署 2

2.4. Api简单性  内部dsl相对于 3

2.5. 最常见的操作都有优化的简短api 3

2.6. 单线程 稳定健壮可靠 vs 并发 3

2.7. Sql vs orm 3

2.8. 面向过程 pop vs oop 3

2.9. 同步模式 vs 异步 3

2.10. 资源释放一次性 不常驻内存  vs 常驻类 4

2.11. 然支持热部署 4

2.12. 实现了高度的封装,让开发人员专心面对业务 4

2.13. 业务逻辑文本预处理器 4

2.14. Win vs linux 4

  1. 技术选型简单化

    1. 语言简单化 php python js
    2. 数据结构存储简单

Mysql 代替redis es等

    1. 类库简单化
    2. 简单化委员会人员组织架构
    3. 简单化制度原则
  1. 语言简单化
    1. Dsl h5
    2. 业务逻辑 php python js
    3. sql  
  2. 类库工具简单化
    1. Mysql 代替redis es等
    2. Spring jdbc
  3. 架构简单化  
    1. 数据结构简单
    2. 并发简单化
    3. 8. 面向过程 pop vs oop 3
    4. 2.9. 同步模式 vs 异步 3
    5. 2.10. 资源释放一次性 不常驻内存  vs 常驻类 4
    6. 2.11. 然支持热部署 4
  1. Ref

ATITIT提升效率  U易用性简单性优化 简化 提升  FURPS的  方法总结

Atitit lib api design 原则 类库设计原则

Atitit api design Usability simple 易用性之简单化设计 目录 1. 理论原则 2 1.1. 概念简单 2 1.2. 切换到了“write less, do more相关推荐

  1. API Design for ios 译文

    API Design 译文 译文 本文来源于matt gemmell困于自己英语水平问题, 若有错误见谅. One of the development tasks I do most often i ...

  2. [译文]Domain Driven Design Reference(四)—— 柔性设计

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...

  3. atitit. 文件上传带进度条 atiUP 设计 java c# php

    atitit. 文件上传带进度条atiUP设计java c# php 1. 设计要求 1 2. 原理and架构 1 3. ui 2 4. spring mvc 2 5. springMVC.xml 3 ...

  4. Atitit. 脚本语言的断点单步调试的设计与实现 attialx 总结 php 参照java

    Atitit. 脚本语言的断点单步调试的设计与实现 attialx 总结 php 参照java 1. 断点的实现:手动断点 die和exit是等价的 1 2. 变量表的实现 1 3. print_r( ...

  5. [译文]Domain Driven Design Reference(三)—— 模型驱动设计的构建模块

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...

  6. Atitit.木马病毒websql的原理跟个设计

    Atitit.木马病毒websql的原理跟个设计 1. Keyword Wsql { var sql="select "+p.txt+" as t,"+p.v+ ...

  7. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

    Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载"和"纵向重载"1 1.2.  ...

  8. Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户

    Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户越 ...

  9. Design:设计目录

    ylbtech-Design:设计目录 1.返回顶部 1.0 蚂蚁设计 https://design.alipay.com 1.1 Ant Design - 一个 UI 设计语言 https://an ...

  10. 【Material Design视觉设计语言】应用样式设计

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

最新文章

  1. 合作开发过程产生的专利_被起诉专利侵权怎么办?专利律师给你出招!
  2. [转]Angular: Hide Navbar Menu from Login page
  3. mac系统用什么linux远程工具,推荐几个Mac/Linux下比较好用的工具
  4. Cheat Engine逆向修改植物大战僵尸(外挂)
  5. 证书与签名(一):数字签名是什么
  6. nas 微型计算机,商为家用的利器 希捷BS 2- Bay NAS
  7. 【Vue插件】一款很好用的vue日历插件——vue-sweet-calendar
  8. 第九篇:ROS的gazebo三维物理仿真环境联合使用
  9. 微信小程序海报画布生成圆形头像
  10. 最近研究的windows API
  11. Linux入门——与目录相关的一些命令(pwd、ls、cd)及tab和上下方向键的使用
  12. Centos7 yum安装MySQL5.7.25
  13. 星之匙,石之阶,火之行:我们能从EMUI 10.1读出什么
  14. 狙击精英4服务器文件,狙击精英4联机补丁
  15. 推荐WebSocket、Https移动端(iOS)抓包工具mitmproxy
  16. kali更新系统软件官方源连接不上报错
  17. CSGO(KZ模式)服务器搭建教程(windows系统)包含申请全球服务器操作方法
  18. 西藏计算机一级,西藏计算机一级考试成绩查询入口
  19. 切图具体需要切什么内容_档案管理:档案具体如何保管?保管工作的内容都有什么?...
  20. 基于Jsp+Servlet+SQLServer的酒店管理系统

热门文章

  1. sql怎么select中位数_怎么能避免写出慢SQL?
  2. java 取模运算_JAVA算术运算符_四则与取模
  3. 判断malloc申请内存_Linux内存使用情况与监测
  4. jsbridge实现及原理_Hybrid APP基础篇(四)-JSBridge的原理
  5. c语言汉诺塔递归算法_Python进阶之递归函数的用法及其示例
  6. Luogu P2595 [ZJOI2009]多米诺骨牌 容斥,枚举,插头dp,轮廓线dp
  7. java归并排序自底向上实现:
  8. 阿里云前端周刊 - 第 18 期
  9. 杭电2098--分拆素数和
  10. 生产环境下ftp的迁移并构建corosync+pacemaker的高可用