软件开发经验总结(二)别让定势思维害了你

哲学思想在软件开发中的应用与实践 在任何技术项目中,问题的定义都是成功的第一步。批判性思考是确保问题被准确捕捉和理解的关键工具。本章将探讨如何使用批判性思维来定义问题,并对现有情况提出质疑。批判性思维不仅仅是对信息的怀疑性分析,它是一种系统化的思维方式,旨在更深入地理解问题的本质。它鼓励我们挑战传统观念,审视假设,并从不同的角度思考问题。- 识别问题:分析项目需求,明确什么是真正需要解决的问题。- 挑战假设:对问题背后的基本假设进行质疑,以避免陷入思维定势。- 多角度思考:从不同利益相关者的视角来看待问题,以获得更全面的理解。 阅读详情

 在一些软件公司中,总存在着一些“高人”,他们写代码从来不写文档,不做设计,代码不写注释,跟用户瞎扯几句之后就开始动手写代码了,他们的代码一般人都看不懂,经过无数次改BUG之后,他们做开发的系统居然也上线了,再经过用户无数次的蹂躏,系统也越跑越稳定。该系统成为了该公司至高无上的产品,普通人如果想看懂该系统,必须在它的代码上摸索个10年8年的,什么“设计模式、分层结构”的思想,在这些公司里都是瞎扯,只要能把用户搞定,一切就搞定了。

每次新项目开始的时候,老板总是苦口婆心地对项目组说“咱们的那套系统,那可是金宝山,花了公司那么多的资源,经过用户多层的考验,都是精华,你们项目中如果什么模块跟它相似的,就直接拿来用好了。” 程序员B不听老板的话,设计了一套很牛的算法解决了业务的问题,最后,由于系统中存在了一个小BUG,被老板骂了一顿,闹到不得不离职,辛苦工作了一年,年终奖都没有了。程序员A听从了老板的话,一切按照那套旧系统的模式做,即使用户不满意,也由老板通过一些其他的手段去解决,最后,程序员A当上了项目经理,在公司里当起了“九千岁”,每次遇人就说,那套旧系统真是好东西啊!从此之后,大家都学乖了,什么算法和机构,都按照旧系统的方法做,即使是错了,也不是自己的责任,大家都不再思考了,反正按照旧系统做准没错,年底的奖金肯定多。

经过了许多年,由一个习惯变成了一个传统,再由一个传统变成一个文化,在每个系统中总是有旧系统的影子,老板总是对人说“咱们的系统就要超印度了,所有的程序员写的代码都差不多了”,翻开每一份代码,你总是会看到这样的代码文化:

(1)       写SQL 时,SELECT 后面总是跟着*的,也没有人会思考为什么。

(2)       写SQL时,如果需要两个表连接,一定使用LEFT JOIN,也没有人会使用INNER JOIN 或RIGHT JOIN。

(3)       定义一个对象时,总是一定要实例化(比如 DataTable obj_dt = new DataTable)。

(4)       执行100句SQL 时,总是要连接100次数据库。

(5)       系统的所有方法,总是使用Public的,哪怕是类里面自己调用的。

(6)       代码总是加密过的(变量都定义的千奇百怪,即使别人拿到原代码也看不懂)。

(7)       存储过程是从来不用的,只在代码中用字符串拼SQL,然后再执行。

(8)       代码,没有摸个3-5年是看不懂的。

(9)       数据库的索引总是不用的(如果客户觉得慢,就让客户换一部好的机器去)

(10)   ………….

 

 

     当然,这只是一个普通的笑话,或许在现实中并不存在,但很多开发人员在开发的时候,或多或少会有一些定势思维,把自己已知的东西当作是全部,从来也不去思考为什么,也不去思考更好的方法去解决问题。如果整天只是吃自己的老本开发系统,不去学习新的东西,总有一天会被社会所淘汰!

罗嗦了这么多,主要的目的也是提醒自己,开发的时候应该自己多想想这种方案是否最好的方法?是否有更好的解决方案我不知道,这样的方案有没有什么缺陷?平时应该多学习别人写的优秀代码,多学习一些新的知识,让定势思维从我的字典里删去,也与园子里的兄弟共勉之!

集体创新思维法:头脑风暴法详解与应用 在这个信息爆炸的时代,企业和组织需要不断地创新以保持竞争力。头脑风暴法作为一款高效激发创意思维的工具,可以有效地集合团队智慧,碰撞出新想法。通过群策群力,激发每个人的潜能,为解决问题或提出新概念提供新的视角。头脑风暴法(Brainstorming),是一种集体创造力的技巧,旨在通过群体成员的自由思考和讨论,激发新想法和解决问题的方案。该方法最早由美国广告人亚历克斯·奥斯本(Alex Osborn)在20世纪50年代提出,其核心在于鼓励参与者放开束缚,进行大胆设想,不害怕批评,以此促进新创意的产生。 阅读详情

相关推荐

miniDP与DP管脚定义差异详解及设计避坑指南

本文详细解析了Mini DisplayPort与标准DisplayPort接口在管脚定义上的核心差异,通过对比表格直观展示了两者20针脚的不同排列方式,特别是高速差分信号线的分布。文章结合真实设计案例,为硬件工程师提供了从原理图设计、PCB布局到信号完整性考量及故障排查的完整避坑指南,强调绝不能将两者视为简单的物理缩小版。

weixin_29248653的博客 362

《程序员的思维修炼》读书笔记(思维的重生)

此读书笔记并不完全作为阐述想法,所以在阐述一些问题的时候可能没有前因后果,更是一种总结性的话语和书上言语的精华,这有点悖论,如果你想了解,请去看《程序员的思维修炼》,这本书可以跨学科,即便你不懂程序,都值得一看,是从思维和大脑层面来开展介绍的。   第2章 从新手到专家的历程        新手到专家需要经历5个阶段(德雷福斯技能获取模型)      真正的专家不怕考

yuyin86的专栏 8071

实战解析:基于Python的APT攻击检测与ATT&CK框架应用

本文通过实战案例,详细解析了如何利用Python编程语言结合MITRE ATT&CK框架,构建一套针对高级持续性威胁(APT)的自动化检测与狩猎系统。文章涵盖了从环境搭建、核心检测逻辑编写、到模块化框架设计与主动威胁狩猎的全过程,为安全从业者提供了可落地的技术方案,以有效应对复杂的网络攻击。

weixin_29044157的博客 389

打破思维定势,跳出问题漩涡

思维定势(Thinking Set) 是由先前的活动而造成的一种对活动的特殊的心理准备状态,或活动的倾向性。在环境不变的条件下,定势使人能够应用已掌握的方法迅速解决问题。而在情境发生变化时,它则会妨碍人采用新的方法。消极的思维定势是束缚创造性思维的枷锁。     上面的描述太专业化,通俗地讲,思维定势其实是根据个人或团队先前的知识积累去解决现实问题的方法或者思路。通常而言,思维定势能解决我们遇到

项目管理之路 3913

OpenWebUI外部模型配置异常排查与修复指南

本文详细解析了OpenWebUI外部模型配置异常的常见问题及解决方案,包括隐藏字符、数据库锁死等典型现象。通过错误日志分析和数据库修复实战指南,帮助开发者快速定位并解决配置问题,确保OpenWebUI与第三方大模型的稳定连接。

weixin_29205061的博客 314

SAP SD信贷管理实战:从配置到风险控制的完整指南(附后台路径)

本文详细解析了SAP SD信贷管理的完整配置流程与风险控制策略,涵盖信贷控制范围设置、风险分级机制及动态控制配置。通过实战案例和后台路径指引,帮助企业实现从客户信用评估到实时监控的全流程管理,有效降低坏账风险并优化资金安全。

3a9bq4r8t2y的博客 213

心理学原理:冲破思维定势

如果给你看两张照片,一张照片上的人英俊、文雅;另一张照片上的人丑陋、粗俗。然后对你说,这两个人中有一个是全国通缉的罪犯,要指出谁是罪犯,大概不会犹豫吧。 以上就是思维定势的一个典型例子。所谓思维定势,是指人们按习惯的、比较固定的思路去考虑问题、分析问题,表现为在解决问题过程中作特定方式的加工准备。它可以使我们在从事某些活动时能够相当熟练,甚至达到自动化,可以节省很 多时间和精力;但同时,心理定势

叫我需求分析师 1233

Sigrity Power SI Model Extraction模式如何提取电源网络的S参数和阻抗操作指导(一)

34. 默认格式是BNP format格式,会被Sigrity识别的S参数文件,在仿真完成后,默认会在文件夹中生成bnp和ckt(MCP)文件,无需这步操作。由于port设置的ref Z是50ohm,实际上电源网络的阻抗是没有这么高的,所以S参数回损曲线是基本上全反射的一个状态。Sigrity PowerSI是频域电磁场仿真工具,以下图为例介绍如果用它观测电源的网络的S参数以及阻抗的频域曲线.42. Spice格式的加载进来图标是橙色的,BNP格式的图标是灰色的。

weixin_54787054的博客 1280

软件开发经验总结()别让定势思维害了你

在一些软件公司中,总存在着一些“高人”,他们写代码从来不写文档,不做设计,代码不写注释,跟用户瞎扯几句之后就开始动手写代码了,他们的代码一般人都看不懂,经过无数次改BUG之后,他们做开发的系统居然也上线了,再经过用户无数次的蹂躏,系统也越跑越稳定。该系统成为了该公司至高无上的产品,普通人如果想看懂该系统,必须在它的代码上摸索个10年8年的,什么“设计模式、分层结构”的思想,在这些公司里都是瞎扯

aspgreener的专栏 556

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

a_zxswer的博客 191

PCL 基于法向距离的对应点获取

提出了一种基于法向量欧氏距离的点云配准方法。详细推导了法向量距离计算公式,并给出具体计算流程。在代码实现部分,采用PCL库完成了点云法向量计算和对应关系估计,通过可视化验证了算法有效性。实验结果表明,该方法能够准确获取点云间的对应关系,为后续点云配准奠定了基础。

点云侠的博客 226

效率思维是如何导致僵化Scrum的?

Scrum是由Ken Schwaber和Jeff Sutherland在20世纪90年代开发的,主要应用于解决产品和软件开发固有复杂性的框架。Scrum框架正式形成于1995年,随着技术的进一步发展,最近,Scrum框架已成功解决了众多领域的复杂问题,例如:市场营销、组织变革和科学研究等。

minjiekaifa的博客 91

为什么 ADT 在 SAP BTP ABAP environment 里认证成功却无法登录 Service Instance:根因拆解与一站式修复路线

摘要 ADT报错"认证成功但Service Instance登录失败"通常源于ABAP租户的权限或用户映射问题,而非账号密码错误。常见原因包括:1) ABAP租户内未创建对应业务用户;2) 业务用户缺少开发角色(如SAP_BR_DEVELOPER);3) BTP角色集合未分配或IdP组映射缺失;4) 浏览器会话混淆身份;5) 连接了非开发租户(如Customizing Tenant);6) 实例休眠导致误判。 解决方法:检查ABAP业务用户及角色分配,确认BTP角色集合映射,使用隐身窗口

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 255

AI 扩展开发者思维方式:以 SQL 查询优化为例

在使用 AI 之前,开发者可能已经习惯了使用传统的 SQL 写法和思路。比如在检查表中是否存在记录时,通常会选择使用COUNT(*),因为这是最为直观的方式。然而,随着 AI 的介入,开发者发现了新的查询方式,比如使用EXISTS或LIMIT来优化性能。这种思维方式的转变,实际上是一种"思维扩展"。AI 通过提供不同的视角和更优的解决方案,让开发者意识到以往没有尝试过的可能性。不仅扩展了开发者的工具箱,还帮助他们从新的角度思考问题,突破以往的编程习惯和思维定势。

nbsaas-boot基于Request-Response的企业级快速开发框架 1485

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

被禁锢的思维

前两天我们在群里聊天的时候师哥给我们提了一个问题:如何不利用第三方内存空间做到两个变量的交换。 我们几个人讨论了半天也没有讨论出什么结果出来,最后师哥给出来的答案让我突然发现我们的思维被学到过的东西禁锢的太深了。  答案很简单: int a=3; int b=4; a = a+b;//这时a为7 b = a-b;//b为3 a = a-b; //a为4 很简单的一个小算法吧,或许给一个没有

滨州学院优快云高校俱乐部郭政 1276

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【工作经验】如何在IT外包公司快速成长?

写在前面 “ 看书时候,突然心中有一份感动,想和工作中的朋友分享一些心得,希望对正在阅读的你有所帮助。” 第一点:停止抱怨       有的人一进到公司就开始抱怨,公司这里不行,那里不好。但我们要知道能到公司里面,意味着这家公司是我们当时候能做出来的最好选择,或是能力,或是周围环境,都让我们再没有其他更好的选择。一旦选择了就学会为自己的决定负责,学会用乐观积极的心态去面对前面工作。要知道抱怨...

夜深人静后的码农 4672

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

这是地铁, 不是电梯

   这是今天我在地铁的车上看到的一幕。地铁屏蔽门刚开始关上,外面的一个女生大步向前。用两只手撑开屏蔽门,而身体确迟迟不肯进来。我开始还想着她是否在等着同伴一起上来。随着屏蔽门慢慢合上,她越来越使劲地去撑开,但身体还是不肯进来。到底她在等什么呢?这时候地铁的一个工作人员奋力把她拉开,并随口蹦出一句话,“小姐,这是地铁,不是电梯”。这时我才恍然大悟,原来那个女生可能坐惯电梯了,希望在合上门的瞬...

Less is more 172

从蓝军建设中学习颠覆性质疑思维

在军事演习中,蓝军扮演假想敌,其核心使命不是取胜,而是通过和不断挑战红军的战略假设和战术布局,暴露其潜在弱点。这种思维模式与程序员在构建和维护复杂系统时面临的挑战惊人相似。软件开发中,我们常陷入“实现逻辑”的惯性思维,而忽略系统漏洞、架构缺陷或潜在的安全威胁。蓝军的价值在于它永不满足于表面合规,而是持续追问:“如果对方这样攻击,我们如何应对?” 这种质疑精神可直接转化为编程领域的深度防御策略——例如通过渗透测试发现漏洞、通过红蓝对抗检验系统韧性,甚至像腾讯蓝军那样模拟真实攻击路径以暴露内网脆弱点。

weixin_44904675的博客 657

我的软件开发经验总结[逐步演化中...]

(1) 理解代码的工作原理,而不仅仅是测试跟踪,有助于更快更好的调试代码;(2) 版本回溯,可以很方便地界定bug;(3) 版本对比,可以方便地发现bug的产生根源;(4) 能工作,且有进展的情况下一定要做版本提交,以利重现;光凭记忆是很难回溯的;(5) 如果代码产生的结果在某个branch上变得一团糟,那么从一个干净的代码基重新开始;(6) 找高手讨论问题,往往自己觉得很难的地方,高手一点即通;

tomxue0126的专栏 2495

突破思维枷锁

转载于:https://www.cnblogs.com/SophiaTang/archive/2011/09/22/2185660.html

JasonChou0913的博客 174

一个关于C语言循环的错误

有时候人的思维会定势,这是一个很可怕的问题,特别在检查代码的时候,就是无论怎样想,也就怎样错。今天这个可怕的事情也被出现了。如下的代码: #include #define N 3 int main(){ int i ,j , k; i = 0 ; j = 0 ; k = 0 ; for( ;i < N

ld326的专栏 1185

[ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 002

今天发现的一个小差异是,在类的成员变量定义时的赋初值问题 当初在学 C++ 时,老师有再三强调,类中的成员变量,是不可以在定义时赋初值的,成员变量的初始化,应该在构造函数里完成(构造函数的函数体,或者构造函数的初始化列表) 但是,在学习Java时,我发现老师的PPT 里有这样一句话: 在定义类的成员变量时可以同时赋予初值,表明类所创...

weixin_30686845的博客 90

工作中的定式思维

在我们的日常ka'f

stdying的专栏 1020

软件开发的破局之道:当固执遇上绕行哲学

在代码与需求的碰撞中,开发者常陷入「完美主义陷阱」:试图用标准解法攻克所有技术难题,执着于正面突破每个逻辑障碍。这种执着往往导致项目陷入「死亡螺旋」——据某大厂技术团队统计,相当一部分的延期项目源于开发者对特定技术路径的过度坚持‌7。软件开发的艺术,正在于懂得何时该坚持标准,何时需另辟蹊径。

yinhezhanshen的专栏 625

WeX5客观题软件开发与list组件应用等典型疑问

界面实现 无论是WEX还是BEX,开发各种客观题模块都是最常见的。但是,最近在利用业余时间想开发一个学生使用的小型客观题系统时遇到了麻烦。首先,在论坛上搜索到了大量相似问题。问题或者过于简单,或者过于特殊。且看一下本人提供的客观题界面,我相信这种设计思路还是与大多数应用需求相一致的。 这是单选题界面和多选题界面。 注意:我每一个

tmchongye的专栏 3108

清华00后博士生打破80年数学僵局:破局思维在科研与工程中的实践

在数学与计算机科学领域,突破性进展往往源于对经典问题的重新审视。从计算复杂性理论到算法设计,许多长期悬而未决的难题都形成了固定的解决范式和技术路径依赖。这种僵局的本质在于思维框架的固化,以及现有工具成熟度带来的认知盲区。真正的创新通常需要回到问题原点,质疑基础假设,并通过跨领域概念迁移打开新视角。在工程实践中,这种思维模式同样重要——无论是优化系统性能瓶颈还是设计新算法,关键在于识别问题的隐形框架并构建最小可行性验证。本文通过分析一个具体案例,探讨如何培养打破思维定势的能力,将直觉转化为严谨证明或可落地的解

weixin_33937913的博客 398
上一篇: 软件开发经验总结(一)细节决定软件的成败
下一篇: 软件开发经验总结(三)客观地认识程序员心中的恐惧
sphinger
博客等级 码龄19年 33粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值