代码精进之路
范学雷
Oracle首席软件工程师,Java SE安全组成员,OpenJDK评审成员
立即订阅
6350 人已学习
课程目录
已完结 47 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你写的每一行代码,都是你的名片
免费
第一模块:代码“规范”篇 (16讲)
01 | 从条件运算符说起,反思什么是好代码
02 | 把错误关在笼子里的五道关卡
03 | 优秀程序员的六个关键特质
04 | 代码规范的价值:复盘苹果公司的GoToFail漏洞
05 | 经验总结:如何给你的代码起好名字?
06 | 代码整理的关键逻辑和最佳案例
07 | 写好注释,真的是小菜一碟吗?
08 | 写好声明的“八项纪律”
09 | 怎么用好Java注解?
10 | 异常处理都有哪些陷阱?
11 | 组织好代码段,让人对它“一见钟情”
12丨组织好代码文件,要有“用户思维”
13 | 接口规范,是协作的合约
14 | 怎么写好用户指南?
15 | 编写规范代码的检查清单
16丨代码“规范”篇用户答疑
第二模块:代码“经济”篇 (14讲)
17 | 为什么需要经济的代码?
18丨思考框架:什么样的代码才是高效的代码?
19 | 怎么避免过度设计?
20 | 简单和直观,是永恒的解决方案
21 | 怎么设计一个简单又直观的接口?
22丨高效率,从超越线程同步开始!
23 | 怎么减少内存使用,减轻内存管理负担?
24 | 黑白灰,理解延迟分配的两面性
25 | 使用有序的代码,调动异步的事件
26 | 有哪些招惹麻烦的性能陷阱?
27 | 怎么编写可持续发展的代码?
28 | 怎么尽量“不写”代码?
29 | 编写经济代码的检查清单
30丨“代码经济篇”答疑汇总
第三模块:代码“安全”篇 (14讲)
31 | 为什么安全的代码这么重要?
32 | 如何评估代码的安全缺陷?
33 | 整数的运算有哪些安全威胁?
34 | 数组和集合,可变量的安全陷阱
35 | 怎么处理敏感信息?
36 | 继承有什么安全缺陷?
37 | 边界,信任的分水岭
38 | 对象序列化的危害有多大?
39 | 怎么控制好代码的权力?
40 | 规范,代码长治久安的基础
41 | 预案,代码的主动风险管理
42 | 纵深,代码安全的深度防御
43 | 编写安全代码的最佳实践清单
44 | “代码安全篇”答疑汇总
加餐 (1讲)
Q&A加餐丨关于代码质量,你关心的那些事儿
结束语 (1讲)
结束语|如何成为一个编程好手?
代码精进之路
登录|注册

19 | 怎么避免过度设计?

范学雷 2019-02-15
俗话说,“过犹不及”。“过度”这个词仿佛会给我们一些不好的暗示。不要紧张,我们先聊一个轻松的话题。
假设有一个小地方,要建一个火车站。这个地方有数十万人口,每列火车预计上下乘客数十人,高峰时段大概近百人。你会怎么设计这个火车站?
这个火车站可能是个富丽堂皇的建筑,有宽敞的售票厅和候车室。这种设计到处可见,你可以想一想你熟悉的火车站, 也可以观察一下旅途中的火车站。
也有些火车站可能只是一个一百平米左右的小房子,只有简单的售票窗口、进站口和出站口。 比如说北京的清华园火车站,就是这样的。
也有的火车站只有标牌、售票机和遮阳棚的一小块地方,告诉人们火车在这儿停靠,就像我们常见的公交车站。
这三种火车站,都能实现旅客购票、候车、上车和下车的核心需求,帮助他们实现乘车旅行的目的。
既然乘坐火车的核心需求基本是一样的,为什么车站的差别这么大呢?
乘车旅行这个需求,衍生出了购票、候车、上车和下车的需求。
购票的需求衍生出了售票、购票、验票、检票以及各个环节排队的需求。
售票的需求衍生出了要有售票办公室和售票大厅、管理售票人员、购票人员和票贩子的需求。
售票办公室衍生出了科长办公室、科员办公室、会议室、售票窗口。售票窗口的需求也可以接着衍生出更多的需求。这个列表我们可以列很长很长,最后的结果就是火车站的建设耗资大,建设周期长,运营成本高。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《代码精进之路》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • Demon.Lee
    想了想,打开银行app。首先想看到总余额以及每张银行卡里的余额,第二,汇款功能,第三费用明细。

    作者回复: 嗯,这些是核心的用户需求。不幸的是,很多App并没有第一时间、用最便捷的方式满足这些需求。

    2019-02-16
    1
    4
  • Ricky
    现在的很多银行APP和电信运营商的APP做的真的是够了,一大堆花里胡哨的东西,真正想要的使用高频的功能都特别难找。

    作者回复: 不知道给谁用的😂

    2019-03-17
    3
  • 悲劇の輪廻
    某些银行的客户端已经奔着150M+去了……我怀疑他们的开发人员是不是也经过层层外包,根本不考虑客户终端的运行环境(#笑哭
    2019-03-07
    2
  • 卞雪达
    哈哈哈,我经常有过度设计的冲动,有时候忍不住就实施了出来。冲动的原因可能是想试试新的技术,包括大小轮子、各种优化、编程思想等等。但是更多的原因是项目某些时候给与的时间较充裕,不折腾一下总觉得没发挥,我面向对象、接口、切面、组件等编程思想,都是在这个过程中学习的。有时候弄出来发现其实过度了,又往下砍。

    作者回复: 工具一定要掌握一大把,还要不停的折腾它们,这就是学习啊。但是产品,要把它变成折腾后的东西,而不是折腾中的东西。折腾,需要充裕的时间。我们的很多设计和实现,都是反复折腾、反复砍减后的结果。

    2019-05-28
    1
  • Sisyphus235
    银行管理 APP 必要功能:
    1.查看余额
    2.转账
    3.收支明细
    4.消息通知
    5.账户管理
    6.方便的查询
    2019-05-23
    1
  • sovran
    所有复杂的软件系统都应该是迭代演化而来的,设计需要遵从简单原则。在每一个迭代里面,只做重要而必须做的事,实现则是越简单越好。一切都要刚刚好。先解决生存问题。随着时间的推移,多个简单的实现渐渐的组合出复杂的系统,根据债务的严重性,再进行安排调整,架构重构。一口吃不成胖子,成了胖子后就该减肥了……
    2019-12-08
  • xavier
    避免过度设计的意识,我想大多数人都有。但是真正能实践起来,太难了。
    有时候在支付宝APP里找个功能都要找半天, 最近用了招行APP,又开了眼界。

    作者回复: 嗯,是一个非常难的事情!在设计的世界里,做复杂的事很简单,做简单的事情很复杂!

    2019-04-18
  • 知非
    从火车票到银行啦
    2019-03-15
  • 徐题
    很认同,然而大部分的需求就是不合理的怎么办
    2019-03-05
  • IamNigel
    对于银行app我最想看到钱,可以转账,可以管理我的银行卡信息,最近两年在用平安银行的手机app,看余额得输入密码,这个可应该是安全考虑,但其中的很多功能都让人从来不会去点,特别是任意门,一不小心就点上去了。好的地方也有,像转帐以后会记录我最近转过的信息,也是比较方便
    2019-03-05
  • 风清扬笑
    话说第一眼看到钱这个需求貌似是很多人想要的,但是我觉得有部分原因也是基于安全考虑,一些app设计里把余额放到二级菜单里,而且想看的话还得输入密码

    作者回复: 不登录有什么必须要看的吗?现代的App,登录很方便的,比如指纹,刷脸。

    2019-03-03
  • 唐名之
    登录用户 绑卡 账户余额 收支明细 转账

    作者回复: 绑卡是一个一次性的事情,非常重要但是使用频率不高。这个可以通过设计解决,你有什么好办法吗?

    2019-02-18
  • go_on
    1.我的钱
    2.我的流水
    2019-02-17
  • gnehc
    用招行iOS app差不多五六年的样子了,眼看着越来越繁杂越来越不好用…

    作者回复: 抑制不住加功能的诱惑。

    2019-02-16
  • 我来也
    打开app,第一眼希望看到的是: 有多少钱.😁

    作者回复: 我也希望第一眼看到每个账户的钱。可惜我用的银行的app并没有做到这一点。

    2019-02-15
  • 往事随风,顺其自然
    银行账户管理APP核心功能存储,查询,转账这些是最核心功能

    作者回复: 你打开app,第一眼希望看到的功能是什么?

    2019-02-15
收起评论
16
返回
顶部