文档章节

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

 流浪的棋子
发布于 2014/05/29 17:37
字数 536
阅读 17
收藏 0
点赞 0
评论 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 ⋅ 0

谷歌 I/O 大会今年将强调设计

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

oschina ⋅ 2014/04/18 ⋅ 17

简约设计中的规律—色彩(一)

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

博为峰教研组 ⋅ 2016/11/10 ⋅ 0

2017 年 20 个最佳的极简 CSS 框架

无论是在产品设计,还是在研发上,极简主义的应用简直无处不在。如果你和我一样热衷极简主义,那么本文分享的内容,一定是你的“菜”。在文章中,我们将与大家分享 20 个最佳的极简 CSS 框架...

IT程序狮 ⋅ 2017/07/08 ⋅ 0

ThinkPHP/thinkphp

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

ThinkPHP ⋅ 2013/09/17 ⋅ 0

极简网关认证方案:诞生于国科大的“认证博士”

在云南一所学校的阁楼里诞生了“云课堂”、在上海地铁隧道中摸爬滚打克服了“活塞风”、在杭州224路公交车上测出来的4G无线路由器……而我们今天要讲的故事,则是锐捷网络“极简网关认证解决...

玄学酱 ⋅ 05/11 ⋅ 0

淘醒迷乐/TaoCMS

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

淘醒迷乐 ⋅ 2014/06/06 ⋅ 0

极简网络:不止于4.0,只为“更简单”

这是一个严重依赖网络的时代,它像空气、水、电一样不可或缺。同时,网络的复杂性也在逐步增加,从纯二层的存储转发到三层交换,再到分布式、虚拟化、多业务、开放式。多变的架构、海量的接入...

玄学酱 ⋅ 05/17 ⋅ 0

为什么扁平化设计辣么火?它会过时么?

5月11日,Facebook 旗下的图片社交应用 Instagram 更换了新的 LOGO,放弃了复古相机的样式,转而变成了一个典型的扁平化风格的设计。 笔者依稀记得这个拟物风格的logo一直坚挺的使用了5年,当...

天机 ⋅ 2016/05/23 ⋅ 0

谷歌移动应用强调设计元素:向极简风格转型

导语:美国科技博客TechCrunch今天撰文称,一向不看重设计的谷歌,最近也开始在移动应用中强调设计元素,并向极简风格转型。 以下为文章全文: 谷歌的设计向来不够酷,Gmail和Google Docs的功...

oschina ⋅ 2012/12/17 ⋅ 11

没有更多内容

加载失败,请刷新页面

加载更多

下一页

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 39分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 46分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 53分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

mysql远程连接不上

设置了root所有hosts远程登录,可是远程登录还是失败,原因可能如下: 登录本地数据库 mysql -uroot -p123456 查询用户表 mysql> select user,host,password from mysql.user; 删除密码为空的...

冰公子 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部