文档章节

对编码、设计中“极简原则”的想法

 流浪的棋子
发布于 2014/05/29 17:37
字数 536
阅读 19
收藏 0

早上刚看了博文《对于开发人员,“极简原则”需要修正,请看“新极简原则”》,有一些想法想说说。 我用了三年的时光维护一个不算简单的系统,窃以为,“极简原则”也好,单一职能原则也好,最根本的目的是为了易读易懂;

极简必要性: 举个例子,我以前命名API,务求全面详实,希望用户看到方法名,就理解其功能、特点、参数类型、返回值;但结果是名称冗长,不易阅读。 如:Member getMemberInfoByMemberno(String id) 当隔段时间再来看,连我自己都被长长的命名弄得烦躁不安,不想去细看。所以长命名并没有达到预期效果。 实际上,这个接口充分利用已存在返回值和形参名,就可以精简很多。 如:Member getInfo(String memberno);

再举个例子,同样是获取邮件模板的ServletApi: 
   /email/getEmailTempliteByTitle.do 
  /email/getModel.do 
在有前缀/email的情况下,后面的方法名没必要再说明是获取email模板。 

极简过度: 举个过去追求极简,一句话包含无数信息的例子, member.setName(StringUtil.filterKeyword(user.getUserName().trim()));

不管你信不信,反正我看了这句话有想吐的冲动;如果不巧要调试这句话,那么我肯定骂娘。 这一句包含的信息量太大,如果出bug,那么就需要细致定位,是user==null,还是user.getUserName() == null,或者StringUtil.filterKeyword写错了,或member.setName没有生效。 系统设计里定义模块的目的之一,就是将bug的发生限制在一定范围,但太过追求“能一句代码实现的,就不用两句代码”,那么灾难就会降临,阿门……

所以,我觉得编码的最根本原则是“易读易懂”。如果写两句能够让人清晰的读懂,没必要非得整合成一句。 
因为“代码是给开发人员看的”,或者更进一步,代码是给系统维护人员看的。

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 3
码字总数 1542
作品 0
房山
程序员
私信 提问
简约设计中的规律—形式(三)

设计中的应用规律 功能性的应用规律 -- 所谓功能性原则是指设计时要考虑作品应该具有的效用和要传达的设计目的,功能性原则其实也就是目的性原则。当设计忽略了对功能的考虑,只是盲目追求个...

博为峰教研组
2016/11/16
10
0
Rust 全新官网已上线测试,这样的风格你喜欢吗?

是的,Rust 那个万年不变的“极简主义”风格官网要改版了,目前 beta 版已上线测试,https://beta.rust-lang.org/ —— 大家可以点击这里体验三分钟。 可以看到,新版的官网采用了全新的视觉...

局长
12/01
0
0
谷歌 I/O 大会今年将强调设计

谷歌在本周二公布了今年Google I/O开发者大会的主题。按照谷歌开发者关系总监比利·拉特里奇(Billy Rutledge)的说法,本次大会将强调设计、开发与渠道。今年的Google I/O大会注册截至日期为...

oschina
2014/04/18
3.7K
17
简约设计中的规律—色彩(一)

在视觉设计中,承载一种特别的视觉语言,它的特殊性就在于它的“极简性”,即在设计中,采用某种极端的方式来刻意强调甚至是有意地夸张,表现出明显的视觉语言元素特征,形成别具一格的效果。...

博为峰教研组
2016/11/10
1
0
ThinkPHP/thinkphp

简介 ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞...

ThinkPHP
2013/09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 有一天考拉麻麻拉肚子了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享周汇洋的单曲《Man Srae(曼斯拉之舞)》:美滋滋。。。。 手机党少年们想听歌,请使劲儿戳(这里) 我听了一下 赶紧关了, ...

小小编辑
20分钟前
4
0
oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
5
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部