A Philosophy of Software Design】的更多相关文章

关于复杂性,尚无统一的定义,从不同的角度可以给出不同的答案.可以用数量来度量,比如芯片集成的电子器件越多越复杂(不一定对):按层次性[2]度量,复杂度在于层次的递归性和不可分解性.在信息论中,使用熵来度量信息的不确定性. John Ousterhout选择从认知的负担和开发工作量的角度来定义软件的复杂性,并且给出了一个复杂度量公式: 子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C.系统整体的复杂度并不简单等于所有子模块复杂度的累加,还要考虑该模块的开发维护所花…
<Software Design中文版01> 基本信息 作者: (日)技术评论社 译者: 苏祎 出版社:人民邮电出版社 ISBN:9787115347053 上架时间:2014-3-18 出版日期:2014 年4月 开本:16开 页码:156 版次:1-1 所属分类:计算机 > 数据库 > 数据库存储与管理 更多关于>>> <Software Design中文版01> 编辑推荐 日本顶级软件开发实践性技术读物 首度全版独家引进   IT业革新进化的 秘…
本篇涉及内容: ORM框架(无需再用contentprovider或者sqlitedatebasehelper之类的古董工具了) 规划各种业务Bean文件(配合ORM框架) 设计一个好的请求基类(BaseRequest.BaseResponse) BaseActivity和BaseFragment(把公用的代码写在里面,比如检测网络.弹出alertdialog等等) 定制一个Application类代替默认的(很多第三方框架需要把一些代码写到定制的Application类里面) Http请求框架…
类是不是越小越好?最近在读John Ousterhout的<A Philosophy of Software Design>,感到作者文笔流畅,书中内容具有启发性.这里摘要一部分内容,以供开发相关工作中的参考.学习. 本文链接:https://www.cnblogs.com/hhelibeb/p/10708951.html 转载请注明 在软件复杂度的管理当中,最重要的技术之一是通过对系统的设计,使开发者任何在时候都只需要面对整体复杂度中的一小部分.这个过程被称为模块化设计. 1,模块化设计 在…
API是软件系统的核心,而软件系统的复杂度Complexity是大规模软件系统能否成功最重要的因素.但复杂度Complexity并非某一个单独的问题能完全败坏的,而是在系统设计尤其是API设计层面很多很多小的设计考量一点点叠加起来的(也即John Ousterhout老爷子说的Complexity is incremental[8]).成功的系统不是有一些特别闪光的地方,而是设计时点点滴滴的努力积累起来的. 因此,这里我们试图思考并给出建议,一方面,什么样的API设计是__好__的设计?另一方面…
John Ousterhout(斯坦福大学教授,Tcl 语言.Raft 协议的发明人...真的是超级牛人,Title 好多好多,这里就列几个大家熟悉的),在 Google 做了一次演讲,题目就叫 「A Philosophy of Software Design」.首先,John 问了大家一个问题,什么是计算机科学里最重要的事情?下面有回答 Abstration 的,有回答 Complexities 的,有回答 Testing 的.他还问了 Donald Knuth(高德纳,程序员应该都认识吧),…
在程序开发的过程中,相同的功能往往有不同的实现方式.对于可以实现同样功能的不同代码,复杂度是用于比较其质量优劣的重要指标. 在本文中,代码复杂度是指代码被理解/修改的难易程度.越容易被理解.修改的代码的复杂度越低:反之其复杂度越高. 复杂度低的代码比复杂度高的代码有更多好处,比如, 从代码“查逻辑”变得简单 可以节省修改的时间 降低在未来引入bug的几率 新人会更容易上手现有代码 帮助整个系统更加“长寿” ABAP开发是在SAP系统中进行的,而SAP是企业的核心信息系统,其中会包含复杂的业务逻辑…
转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding principles If I’m going to talk about best practices in any programming language I need some way to define what I mean by best. If you came to my keynote…
Deep Module(深模块) 目录 1,模块化设计 2,接口里有什么 3,抽象 4,深模块 5,浅模块 6,Classitis 7,例子 8,结论 正文 类是不是越小越好?最近在读John Ousterhout的<A Philosophy of Software Design>,感到作者文笔流畅,书中内容具有启发性.这里摘要一部分内容,以供开发工作中的参考.学习. 本文链接:https://www.cnblogs.com/hhelibeb/p/10708951.html 转载请注明 在软件…
小结: 1. https://mp.weixin.qq.com/s/qWrSyzJ54YEw8sLCxAEKlA API 设计最佳实践的思考 谷朴 阿里技术 昨天   阿里妹导读:API 是模块或者子系统之间交互的接口定义.好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难. 接下来,阿里巴巴研究员谷朴将给出建议,什么样的 API 设计是好的设计?好的设计该如何做? 作者简介:张瓅玶 (谷朴),阿里巴巴研究员,负责阿里云容器平台集群管理团…