真的没有一个<业务最佳实践>这样的网站吗?

2019-07-30 14:53:27 +08:00
 Vegetable

我说的是这种实践:

短信验证码存缓存还是存数据库?怎么设计 /判断验证码的过期逻辑? 前端是发起请求开始倒数还是收到返回开始倒数?

这些的确都不是什么困难的东西,A 或者 B 也没太大区别.

开源让写代码的门槛低了很多,但是涉及到业务的时候,"指导性"的东西就有点匮乏了.当初用 Django 开发一个 RESTful 服务,jwt 的验证放在中间件还是写一个视图类来处理也着实让我纠结了很久—— Django 的中间件都是全局的,需要手动处理特例,写类又显得太傻,Drf 的类我都继承一遍吗?每一个视图都加一个 Mixin 也很难看啊..

类似的问题伴随了我的开发生涯,因为半路出家在一个小公司,甚至没有人带过我,一直是自己摸索前行,所以常常想,这个功能其他人是怎么设计的?这个功能大厂的人是怎么设计的?

今天又在版面上看到了吐槽接口设计的帖子,日经算不上,一个月总能看到些这样的帖子,我觉得这也是缺乏指导信息造成的.没有文档约束的情况下,质量的失控是必然的,如果有一个类似于 https://dribbble.com 的网站,不知道这样的情况会不会有所改观.

btw,leetcode 的讨论区好像和我期待的东西有点像.

2369 次点击
所在节点    问与答
19 条回复
mokeyjay
2019-07-30 15:13:23 +08:00
我也希望有这种网站
EasyProgramming
2019-07-30 15:15:21 +08:00
+1,这真是个很好的 IDEA
carlclone
2019-07-30 15:31:07 +08:00
只能自己到 github 去翻箱倒柜了 , 你是说 LeetCode 的系统设计版块?
airyland
2019-07-30 15:41:03 +08:00
这个主意有意思,但是需要吸引到足够多的人一起讨论。
Vegetable
2019-07-30 15:43:33 +08:00
@carlclone 我说的是 leetcode 的题目讨论区,不过他们讨论的内容是算法的解法,而不是业务和设计之类的
lshero
2019-07-30 15:44:03 +08:00
如果最佳实践和原型图图不一样,怕你是通过不了验收的吧
fofoone
2019-07-30 15:49:02 +08:00
这种问题我一般是 github 找一些项目,看别人实现。但是不要限制在你熟悉的语言。
比如很多 web 实现,看得懂 php 还是很好找的。然后平时逛 github 多收集一些实际上线的项目,以后方便回来学习模仿。
mcfog
2019-07-30 16:09:52 +08:00
你知道为什么没有吗?因为一个问题越是很多人碰到,越是存在足够通用的最佳解,那么这个东西有现成服务 /轮子,不需要每个程序员自己实现的概率就越大。程序员的核心价值之一就在于需求和系统之间的问题的复杂性,吃的就是这口饭

你觉得如果存在一个网站你搜一些类似短信验证码的关键字他就能给一套可行方案出来的话,那么我们离 AI 写代码还有多远?不如说这个网站的 owner 傻么开这么个网站,做成 AI 写代码能取代多少程序员的岗位,理论上就能赚到多少钱
taotaodaddy
2019-07-30 16:12:49 +08:00
这些所谓的干货,会成为楼上说的轮子,或者可能会成为知识变现的资本,总之成为一个免费的精华知识站的概率貌似蛮低
www6688w
2019-07-30 19:11:49 +08:00
这种实践大部分本身就没有最优的解决方案,通用方案一般很多,各有优点及缺点,重点还是要看业务实际需求。

我个人觉得在设计之初不用太过纠结,在满足当前业务场景且能够预留后期扩展的解决方案,就可以使用了
dioxide
2019-07-30 19:29:37 +08:00
github 上的 awesome-* 系列算不?
whp1473
2019-07-30 19:36:04 +08:00
怎么说呢,业务设计要和实际场景、公司的现状人员相匹配,不存在最优解,只能说有一些比较通用的方案可以参考,在此基础上做改进。
angith
2019-07-30 20:14:39 +08:00
好想法
hyyou2010
2019-07-30 21:15:24 +08:00
好想法
TPOB
2019-07-30 21:22:23 +08:00
好想法
515576745
2019-07-31 00:03:32 +08:00
+1 这种真的是经验之谈 不同规模的网站 不同的发展时期 早就的技术执行方案都不同。
yuoboo
2019-07-31 00:15:50 +08:00
同问同求
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,大家一起来谈论讨论各种设计的好坏进步会快点。大公司里基本都是设计和写代码一半一半,大部分时候甚至设计占的比例更高。
jugelizi
2019-08-03 14:06:55 +08:00
/t/331836
确实是个好的 idea
不如一起去把它实现
即是提升自己
也能帮助他人
最后变成一个知识付费网站

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX