咱们中国人设计 API,为什么喜欢用 {code, data, message}?
在互联网行业工作了 10+ 年,我不知道大家是否注意到一种现象,就是 API 设计的时候,这个返回包体,很喜欢用 {code, data, message} 这种结构?
说实在的,我以前根本没有思考过这个问题,我只知道,这么设计是没问题的,理解简单,实现起来也没什么障碍,学习成本也非常低。最后,这种设计思路甚至也内化成为我的一种习惯,如果不是有人挑战这一点,我甚至不会去审视,这种思路的来源。
在互联网行业工作了 10+ 年,我不知道大家是否注意到一种现象,就是 API 设计的时候,这个返回包体,很喜欢用 {code, data, message} 这种结构?
说实在的,我以前根本没有思考过这个问题,我只知道,这么设计是没问题的,理解简单,实现起来也没什么障碍,学习成本也非常低。最后,这种设计思路甚至也内化成为我的一种习惯,如果不是有人挑战这一点,我甚至不会去审视,这种思路的来源。
在你当员工的时候,可能会觉得,某某老板真多事,总是提一些天马行空的东西,本来好好的项目,某某老板一参与,就变得艰难万分了。所以,以后做事情,尽量太太平平做,不要让那个老板知道。
你一方面这么想,另一方面,到了考核、晋升、加薪的时候,又拼命想让老板认可自己的价值,业绩,给自己更多的奖励,这不就是很矛盾么?
你有没有这种经历,就是当老板跟你提了一个天马行空的想法的时候,你回答说:“不靠谱吧,如果这样这样,那什么什么怎么办?”,这时候,你老板说了,“只要那啥啥是不是就可以了?”,你就又说了,“但是,如果你那样的话,啥啥就又不行了啊”。
这种对话的模式是不是让你有点熟悉?你是这样的吗?
其实,换位思考一下,你就能明白,没有老板会喜欢这种员工。我们都知道,老板喜欢做选择题,最好莫过于员工拿出多个方案给老板,让老板选 A,B,C。如果像上面那样说话,你让老板做的是什么题呢?老板提了一个解决方案,你否决,老板提出自己的改进意见,你继续否决,如此循环往复……那么请问,谁是老板?
你肯定想说,不是都说员工得学会说 No 吗?如果什么都答应,不是太不负责任了么?我又不是超人,什么不靠谱的东西都做?
当然,你说得肯定没错!
不过,如果换位思考一下,你千辛万苦面试进来,成为这家公司的员工,而他是你的老板,难道是因为他不靠谱?他确实天马行空,那么因为傻、不靠谱当上的老板么?那他既然没问题,为什么这么不靠谱呢?
如今,当上一个小 Leader 了,我就一下子明白了。当你位微言轻的时候,你总是会抱怨,我位微言轻,又干不了什么,现在你终于有了自己的团队了,那你可以干点什么么?你当然想要进取,又一番作为了,这时候,你遇到了什么样的下属呢?像上面那样,处处都说你不行的下属,你会开心么?
那难道没原则地说自己什么都行么?那不是骗人么?当然不行!
作为员工,我们一定要尽到自己的责任,也要信守承诺,做得到就说做得到,做不到就说做不到。但是遇到老板的想法与现实背离太大的时候,我们的责任不是努力证明他不行。因为证明别人不行,不是员工的本职工作,你来这个企业,是给这个企业解决问题的,从而换取自己的回报。所以,你的责任其实是解决问题。
回答老板的想法,也非常简单,你不要说这个想法不行,而是告诉老板,这个想法怎样才能从天马行空落到地上,你去补充这个想法,而不是否定这个想法。老板说,我想要一个持续跑 60 公里/小时 的马车,你不要告诉老板,马根本跑不动,跑不久,你要告诉老板,应该找到一种机器,可以代替马长时间跑,就可以做出那么快的马车。我们可以命名这种机器叫“发动机”。老板说,怎样才能做出发动机?你说“发动机”需要气缸、活塞、连杆,燃烧汽油就可以持续运动了……
最后,你和老板一起发明了发动机这个东西。这样不是很美妙么?
想想,乔布斯说,我想要一个单手持握的设备,轻薄,灵巧。你告诉他,手机不可能那么薄,键盘都不下,电池也放不下。你要告诉他,我们可以把键盘去掉,把电池做薄。老板说,续航也不能太差,你说,那可以舍弃换电池的能力,用可拆卸电池仓换取一定空间加大电池。牺牲按键反馈用触摸屏换取空间,最后我们可以做出世界上最薄的手机。你们一起发明了 iPhone。
“要为成功找方法,不为失败找理由。”
希望你总是提醒自己,用前半句的方式思考,而不是总是陷入后半句的死循环。
记笔记这件事,我从 Evernote,换成 OneNote,又用上 Obsidian,软件换了一个又一个,也真的存了很多资料,但真正用上的却很少很少。直到我读了一本书后,我才知道是为什么。
看下去,会颠覆你对笔记的理解。
在学习软件设计的过程中,不知道你是否有这种感觉,有一些很常见的术语,自己似懂非懂,比如:Inversion of Control(缩写 IoC),Dependency Injection(缩写 DI),Service Locator 等等。
你很难精确把握这个概念的原因是,概念从诞生开始,自己也在演化,在这个过程中会出现定义的变化(内涵),使用场景的变化(外延),再加上不同使用者的解读也可能存在错漏和偏差,最终带来了学习的困难。
好在,就算理解个大概,也不影响你对它的应用,不用太过纠结。
前几天,逛小红书时候,又看到一个红色大字封面的短视频,“建议大陆普通中产家庭,别碰香港储蓄险”,博主主要列举了外汇管制、汇率风险,以及回报慢等问题。
那么香港储蓄险,是否真的就不值得购买?或者说,就是中产家庭碰不得?
现代生活节奏快、压力大,工作、生活中处处潜藏风险。从突如其来的意外事故,到日积月累诱发的重疾,再到不可避免的衰老与身故,这些都可能带来巨大的经济打击。对普通人而言,保险是一种性价比极高的风险转移工具。
说到保险,你会想到什么?大多数人对保险中介的印象可能停留在两个词——骚扰和欺骗。
是的,保险中介就像信贷员、房产中介一样,常常因为推销的方式不当,给大家带来负面印象。这些职业有一个共同点:所销售的产品很有价值,需求量大,然而,很多人对产品了解不足。
我认识很多 Web 后端开发程序员,他们多多少少会写一些前端的代码,但是很少例外,大都 不擅长写 CSS 样式,我自己也不例外。
后端开发程序员为什么都不擅长写 CSS?我想,因为 CSS 不是一门编程语言,而是一门设计语言。而 Sass 的发明,使得写 CSS 变得更像一般的面向对象编程,从而大幅度缩小了后端程序员编写 CSS 的难度。
为了提升网站性能,或者为了更好的模块化开发,我们可能用 AJAX 技术,载入部分页面内容(HTML),里面也可能包含新的 JS 逻辑代码或者外部 JS 文件。
为了讨论方便,我在这里把一个普通的网页称为 “主页面” 或者 “父页面”,用以区分 AJAX 加载的部分,那部分我称为 “子页面”。