我说的是这种实践:
短信验证码存缓存还是存数据库?怎么设计 /判断验证码的过期逻辑? 前端是发起请求开始倒数还是收到返回开始倒数?
这些的确都不是什么困难的东西,A 或者 B 也没太大区别.
开源让写代码的门槛低了很多,但是涉及到业务的时候,"指导性"的东西就有点匮乏了.当初用 Django 开发一个 RESTful 服务,jwt 的验证放在中间件还是写一个视图类来处理也着实让我纠结了很久 Django 的中间件都是全局的,需要手动处理特例,写类又显得太傻,Drf 的类我都继承一遍吗?每一个视图都加一个 Mixin 也很难看啊..
类似的问题伴随了我的开发生涯,因为半路出家在一个小公司,甚至没有人带过我,一直是自己摸索前行,所以常常想,这个功能其他人是怎么设计的?这个功能大厂的人是怎么设计的?
今天又在版面上看到了吐槽接口设计的帖子,日经算不上,一个月总能看到些这样的帖子,我觉得这也是缺乏指导信息造成的.没有文档约束的情况下,质量的失控是必然的,如果有一个类似于 https://dribbble.com 的网站,不知道这样的情况会不会有所改观.
btw,leetcode 的讨论区好像和我期待的东西有点像.
![]() | 1 mokeyjay 2019-07-30 15:13:23 +08:00 我也希望有这种网站 |
2 EasyProgramming 2019-07-30 15:15:21 +08:00 +1,这真是个很好的 IDEA |
3 carlclone 2019-07-30 15:31:07 +08:00 只能自己到 github 去翻箱倒柜了 , 你是说 LeetCode 的系统设计版块? |
![]() | 4 airyland 2019-07-30 15:41:03 +08:00 这个主意有意思,但是需要吸引到足够多的人一起讨论。 |
![]() | 5 Vegetable OP @carlclone 我说的是 leetcode 的题目讨论区,不过他们讨论的内容是算法的解法,而不是业务和设计之类的 |
![]() | 6 lshero 2019-07-30 15:44:03 +08:00 如果最佳实践和原型图图不一样,怕你是通过不了验收的吧 |
![]() | 7 fofoone 2019-07-30 15:49:02 +08:00 这种问题我一般是 github 找一些项目,看别人实现。但是不要限制在你熟悉的语言。 比如很多 web 实现,看得懂 php 还是很好找的。然后平时逛 github 多收集一些实际上线的项目,以后方便回来学习模仿。 |
![]() | 8 mcfog 2019-07-30 16:09:52 +08:00 你知道为什么没有吗?因为一个问题越是很多人碰到,越是存在足够通用的最佳解,那么这个东西有现成服务 /轮子,不需要每个程序员自己实现的概率就越大。程序员的核心价值之一就在于需求和系统之间的问题的复杂性,吃的就是这口饭 你觉得如果存在一个网站你搜一些类似短信验证码的关键字他就能给一套可行方案出来的话,那么我们离 AI 写代码还有多远?不如说这个网站的 owner 傻么开这么个网站,做成 AI 写代码能取代多少程序员的岗位,理论上就能赚到多少钱 |
9 taotaodaddy 2019-07-30 16:12:49 +08:00 via Android 这些所谓的干货,会成为楼上说的轮子,或者可能会成为知识变现的资本,总之成为一个免费的精华知识站的概率貌似蛮低 |
![]() | 10 www6688w 2019-07-30 19:11:49 +08:00 via Android 这种实践大部分本身就没有最优的解决方案,通用方案一般很多,各有优点及缺点,重点还是要看业务实际需求。 我个人觉得在设计之初不用太过纠结,在满足当前业务场景且能够预留后期扩展的解决方案,就可以使用了 |
11 dioxide 2019-07-30 19:29:37 +08:00 github 上的 awesome-* 系列算不? |
12 whp1473 2019-07-30 19:36:04 +08:00 怎么说呢,业务设计要和实际场景、公司的现状人员相匹配,不存在最优解,只能说有一些比较通用的方案可以参考,在此基础上做改进。 |
![]() | 13 angith 2019-07-30 20:14:39 +08:00 via Android 好想法 |
![]() | 14 hyyou2010 2019-07-30 21:15:24 +08:00 好想法 |
![]() | 15 TPOB 2019-07-30 21:22:23 +08:00 via Android 好想法 |
![]() | 16 515576745 2019-07-31 00:03:32 +08:00 via Android +1 这种真的是经验之谈 不同规模的网站 不同的发展时期 早就的技术执行方案都不同。 |
17 yuoboo 2019-07-31 00:15:50 +08:00 via Android 同问同求 |
![]() | 18 leishi1313 2019-07-31 07:38:42 +08:00 好像还没有人指出来,你其实问了两个问题: 1. 如何设计模块、类 2. 如何设计一个系统 前者,多看看设计模式这种书,多写写代码,时候到了自然会有感觉。 另外一个问题就是经验自己主动学习了 github 的 system-design-primer,design data intensive application, highscalability.com/all-time-favorites/上有很多非常棒的博文。 其他的么,建议可以自己多尝试写写 design doc,然后在公司里做 design review,大家一起来谈论讨论各种设计的好坏进步会快点。大公司里基本都是设计和写代码一半一半,大部分时候甚至设计占的比例更高。 |