JUST ENOUGH SOFTWARE ARCHITECTURE

作者:JerryXia | 发表于 , 阅读 (0)
 
本书算是个总结整理, 没看出提出了什么新的观点和方法
本书倒是明确了几个词汇, 丰富了设计时可用与思考和交流的语言
领域语言 
工程风险与项目管理风险
后者可以认为是乙方的business risk
明确提出这两个词汇后,可以思考和理解常见的几个问题:工程师和产品经理/项目经理经常在优先级上有不同意见,原因是前者没有充分理解business risk,后者没有充分理解工程风险,因此使用统一语言就变得必要.
鉴于工程师的弱势地位, 应该是工程师用业务语言来描述工程风险 , 来争取自己的主张.
设计技术与设计活动
这两者通常被混为一谈,而其实前者回答的是针对何种问题选择何种技术和模型来解决,后者回答的是何时开始设计,何时停止,本书第一部分说的是后者,第二部分说的是前者
软件开发过程与设计活动采用的方法 
二者是正交的,风险驱动的设计方法可以用于瀑布,迭代,螺旋等,因为无论是瀑布,迭代还是螺旋. 都要回答何时开始设计何时停止
局部重构与架构重构 
明确指出目前流行的重构技术偏向于局部重构. 架构重构明显缺乏指导
过程性知识与陈述性知识 
能击中网球与知道如何...阅读全文

Guava与波函数坍缩

作者:JerryXia | 发表于 , 阅读 (0)
(摘自科学松鼠会, 虚拟现实的逻辑与模型)
越来越多的证据表明, 后面两个命题更有可能为真, 也就是我们正活在一场计算机模拟中. 本文将介绍一种新的证据, 起因是这两天在使用Guava的过程中引入的一个Bug, 而其背后的原因则可以为我们的世界是计算机模拟出来的这一命题提供间接证据.
Bug的场景是这样的: 在将一组domain对象保存到数据库时, 使用了如下代码(Java, Spring, Hibernate, Guava)
...阅读全文

代码仓库规划

作者:JerryXia | 发表于 , 阅读 (0)
2014-08-19
代码仓库规划公司内软件项目越来越多, 项目类型也逐渐丰富, 比如移动应用, 后端服务, 基础框架和库等. 需要在整体上对代码库的使用进行规划, 制定基础的规则, 比如什么时候需要新建独立的 git 仓库, 什么时候使用已有的仓库, 什么时候新建分支, 什么时候合并等. 这些规则的制定, 需要考虑以下几个原则:
能够快速应对业务和需求变化能够降低开发人员日常的操作成本能够降低管理员日常的维护成本规则简单直观, 能够降低无意中违反规则的几率基于以上原则, 一个示例的代码库规划方案如下.
库策略...阅读全文

Access Control For Gitlab Bundled Postgresql

作者:JerryXia | 发表于 , 阅读 (0)
2014-08-07
Access Control For Gitlab Bundled PostgresqlGitlab 自带了 Postgresql, 作为缺省的内部数据存储, 比如用户信息, 源码仓库信息等。 为防止非法访问, 需要对其进行访问控制.
Peer AuthenticationGitlab 缺省将Postgresql配置为Peer Authentication, 这意味着客户端只能以Postgresql所在主机上的Linux系统账号访问数据库, 无法远程访问。 Postgresql连同Gitlab将被安装在内网某服务器上。 保护好该服务器的访问权限将保证Postgresql的数据安全。该验证方式的一大优点是并没有引入额外的风险, 保护好服务器即保护好自身. 
Password/Md5 Authentications还可以将 Postgresql 配置为更多的认证方式, Gitlab 支持其中的 Password/Md5 方式(其中, password 是传输明文密码, md5是传输哈希值). 具体配置步骤如下:
1). 设置数据库用户 gitlab 的...阅读全文

自动化测试: 策略及工具

作者:JerryXia | 发表于 , 阅读 (0)
2014-09-05
自动化测试: 策略及工具持续集成的目的是为组织提供快速反馈. 而反馈的唯一途径则是测试. 手工测试无法满足集成的频繁程度和时效性的要求, 我们需要自动化测试, 并将其内建在开发过程当中.
另一方面, 持续集成可用于辅助实现持续部署. 在互联网时代, 将产品的新功能和缺陷修复部署到生产环境中的节奏越来越快, 越来越频繁. 要安全无风险的部署, 完善的自动化测试不可或缺.
因此从某种程度上来讲, 自动化测试跟持续集成基础设施同样重要, 如果不是更重要的话. 我们需要建立初步的测试策略, 包括测试分类, 典型场景和技术, 所用工具等. 该策略应随时间演化.
1. 测试象限在测试策略领域, 比较常用的工具是测试象限, 见下图.

在测试象限中, 把所有测试按两个维度进行了划分, 因此总共有四种组合. 在原图中, 除右上角象限外, 其它三个象限的测试都可以进行自动化. 而随着技术的发展, 右上角象限的测试也部分的可以进行自动化. 那么问题自然而然出现: 应该从哪入手? 在资源受限的情况下, 重点应该投资哪类测试以获得最大收益?
2. 测试金字塔在回答这...阅读全文