幽默:简单几点说明日常编程中的软件设计或程序设计
source link: https://www.jdon.com/56762
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
幽默:简单几点说明日常编程中的软件设计或程序设计
- - 将模块分组到架构层是设计。
- - 将类分组为模块是设计。
- - 将函数分组为类是设计。
- - 重命名变量是设计。
设计和用户体验有很多共同之处。很容易发现两种工艺共有的特征。
虽然这些编程动作非常简单常见,都属于一种常见的抽象设计,但是如何分组分类抽象就很复杂了,关键坚持上下文>抽象:DDD和OO的重要区别:上下文重于抽象
当前编程上下文的设计重点还是注重可读性(代码可读性举例),而不是抽象或重用,过早抽象优化是邪恶的,因为你无法预测未来,以及抽象的角度是否切合需求本身的变化,而且抽象会去除一些你以为不重要的细节,结果以后这些细节反而是重点。
案例:表单提交到后端有一些简单检查:表单内容不能为空和内容长度不能太长
一般检查顺序是先检查是否为空,然后检查长度是否太长,这种分类规则是自然的,不能先检查长度,因为内容为空是首选。
但是在是否为空检查中,有一种删除各种非字字符操作,如果删除非字符的符号以后还是为空,也判断为空,这里面涉及到对内容内部进行正则寻找替换,如果这个内容文本非常巨大,替换需要很长时间,以至于客户端等待过长主动中断连接,这就很容易把问题误导到http连接上。
其实错误在于分类的依据出现问题,删除非字符串的检查为空应该放在长度不能过长的检查之后,这样顺序是:
- 检查是否为空,
- 检查内容长度是否过长,
- 检查内容中去除非字符串以后是否为空。
你不能将第三步和第一步因为都属于检查为空这个共同性而分类在一起,这个寻找共同性的依据是主观武断的,没有考虑性能等问题,其实更好分类思路是:
- 首先从事物外部检查,
- 然后从事物对象内部检查
这个抽象角度更高更好,但是一开始你是不可能想到的。过早抽象并不好。
Recommend
-
9
C语言中文网:c语言程序设计门户网站(入门教程、编程软件) 关于网站 |
-
3
幽默图:升级到Java 8使用函数式编程以后
-
6
幽默:游戏编程与其他编程完全不同? - hillelogram有没有人觉得游戏编程与其他编程完全不同?就像不同的传统智慧,不同的有影响力的人物,不同的术语行话。我觉得移动开发、科学计算、金融和DBA都和“主流企业编程”不同,但是,如果有人告诉我他们从游戏开发转...
-
4
关注前端小讴,阅读更多原创技术文章ES6 新增了正式的Promise引用类型,支持更优雅...
-
3
幽默图:不懂业务的程序设计与实际用户体验 本站原创《复杂软件设计之道:领域驱动设计全面解...
-
3
V2EX › Windows 看到某日常 os 对比贴,简单说说我眼中 Windows 目前的四个问题 swulling...
-
3
一、关闭同源安全模式,一秒解决所有跨域问题不管是日常开发还是面试,跨域和同源策略都是一个老生常谈的问题。基本上每一个新手成长过程中都会遇到下面让人抓狂的经典报错: No 'Access-Control-Allow-Origin' header is present...
-
3
Swift 5.5 提供了盼望已久的 async/await 的功能,为多线程开发带来了前所未有的便利。但 Core Data 由于其特有的并发规则,使用不慎容易导致代码陷入不可控状态,因此让不少开发者对在 Core Data 中进行多线程开发产生了望而却步的情绪。本文将对 Core Data 并发编...
-
2
在做其他类型的工作时,我们也能够从中获得一些关于产品的感悟。作者通过编程,总结了几点关于产品工作的启发,将编程感悟应用于产品工作中,应当如何做?一起来看看作者的总结吧。
-
2
幽默:编程时什么阶段最容易获得灵感? 23-06-23...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK