防御性编程应该是一种习惯
防御性编程是一种编程习惯和方法论,其核心思想是预见并处理各种潜在的错误和异常情况。它要求开发者在编写代码时,假设最坏的情况可能会发生——外部数据是不可信的、函数的调用者可能会传入非法参数、依赖的系统可能会失败等等。 这种编程方式的目标不是消除所有错误,而是确保当错误发生时,程序能够: 优雅地处理:程序不会因为意外输入或内部状态错误而崩溃。 保证数据完整性:防止错误数据污染系统。...
防御性编程是一种编程习惯和方法论,其核心思想是预见并处理各种潜在的错误和异常情况。它要求开发者在编写代码时,假设最坏的情况可能会发生——外部数据是不可信的、函数的调用者可能会传入非法参数、依赖的系统可能会失败等等。 这种编程方式的目标不是消除所有错误,而是确保当错误发生时,程序能够: 优雅地处理:程序不会因为意外输入或内部状态错误而崩溃。 保证数据完整性:防止错误数据污染系统。...
用哲学的角度去审视软件设计模式,可以帮助我们超越具体的代码实现,去理解它们存在的根本意义和价值。 如果我们要根据“最有意义”来对设计模式进行排序,那么这个“意义”就不应是“使用频率”或“实现难度”,而应是它们所解决的问题的根本性、普遍性和抽象层次。 一个模式越是致力于解决软件工程中最核心、最无法避免的矛盾,它的存在就越有哲学意义。 第一层级:秩序的缔造者 (The Creators...
一年又到头了,365 天还剩 1 天,奥斯特洛夫斯基说过,一个人的生命是应该这样度过的,当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞耻。还好吧,没有很悔恨,没有很羞耻。 读书 脱离学生的身份以后,我们还是会读书,但读书仿佛是一件奢侈的事情,没有沉浸式的环境,没有一起讨论的伙伴,也很难有连续的时间。我问过很多人,你最近读的一本书是什么,很多人告诉我不记得了。 当然,我身边大...
你根本不知道用户想要什么 认知的偏差 看过《三体》的朋友都知道,地球人最厉害的武器,就是不透明的思想。这是最世界最美好的东西,因为不透明的想法里有希望,有诉求,有未知的美好;但也是万恶之源,因为不透明的大脑里很多时候是模糊的,变化的,捉摸不透的。 需求,正是这样的存在。不管你是学过《梦的解析》,还是倒背如流马斯洛的需求层次,对人类的需求没人敢说自己真的理解了,包括对自己的需求。 ...
如何组织你的代码结构 任何设计师都会告诉你,结构设计是设计过程中最重要的步骤。创造开始的前几笔,承载着其余部分的命运。— Christopher Alexander 我们开始看一个程序的第一步是什么?就是它的目录结构。一起从结构开始,程序好坏,从结构上大致就能分辨出来。 最佳实践 以下示例可以作为 Java 项目的一种最佳实践,核心思想来源于一个博主的视频和最近看的一些文章...
写在前面:考虑到公司对社交媒体的管理和审查办法,本文将特别隐去公司名称和部门名称,请大家知悉和见谅。 在 2022 年 12 月初,我们发起了部门内软件研发体验年度调查问卷,有 324 位同学参与了调查并贡献了自己的想法,大约占总人数比的 50%,基本反应了当前部门的软件研发现状,分析报告如下。 第一部分:团队概况 开始部分主要统计了参与人员的分布情况,从角色、定位、工作经验以及团队...
高级打工人可能有什么特点?大致列一下,部分内容来自网络。 熟练人员经过多年的积累加上自己的代码片段的总结,在完成大多少代码时基本不需要查资料。而一般的开发人员在开发过程中会花掉很多时间去查找各种资料。 熟练人员注意代码复用,并且时刻注意重构和抽取公用代码,甚至会维护自己的武器库。一般开发人员是代码拷来拷去完成功能。 熟练人员非常注意查找,定位,标签等各种快捷键的使用,定位查找方便快捷,...
全是一些琐事。 一月 元旦在崇礼滑雪跨年,见到了真正的大雪山,还有马上要进行冬奥会的滑雪赛道,上面有我摔过留下的屁股印子。 路过北京想爬起来去看升国旗,看公众号说大概是早上 5 点多,嗯,不算太早。不想北京的早上那么冷,算了,看看升起来以后的国旗就好。 借了同事的大疆无人机在公园飞,手冻僵了,电池没电了,最后飞机也炸了,不过在五千米高空看上海还是挺好玩的。 去大橙子家过年,第二...
先说一个故事。 如果今年的业务目标是卖 50 辆汽车,有 4 个团队的销售成绩分别如下。 团队名称 下属业绩 主管业绩 A 25 辆 25 辆 B 35 辆 15 辆 C ...
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away. (Antoine de Saint-Exupery) 一个设计师知道,完美不是在没办法添加更多功能时获得,而是在没有办法去掉任何东西时获...