分享最近项目出现的问题和思想升华

本文作者通过分享自身在软件开发过程中的经历,强调了良好的编程习惯的重要性。从代码编写规范、需求分析到团队合作等方面,提供了宝贵的建议。
每天最多的时间对着电脑鼓捣着程序,或因为一个问题不能解决而绞尽脑汁苦苦思索,或因为有了点小小的成果而沾沾自喜兴奋异常。 ----《疯狂的程序员》



软件开发是一个善于思考的职业,写程序都是要经过需求分析、设计、编码还有测试运行的。所以我在写程序的时候自然而然的就形成了一些坏毛病,例如:唯我独尊,不愿测试,不喜欢别人说自己程序烂等等。



而事实告诉我,我太把自己当回事了。



最近的最近给学校在做一个关于综合测评的BS项目,项目实现是非常容易的,但是在项目几近结束的时候发现了一个bug。



这个bug让我好几天都没有睡好觉,每天脑子中都在想是什么导致这个问题出现,怎样才能解决这个问题。



不过还好,经过了几天的痛苦折磨,在一个夜黑风高的深夜,我终于把它给解决了。



经过这次问题,我更加深刻的认识到自己在写程序上出现的一些问题,并且总结出来一些思想,今天把这些问题和思想分享给大家,和大家交流沟通,共同努力。



无风不起浪,你别把自己当个艺术家


我设计的代码是否非常糟糕,从我一敲击键盘就能察觉到。把一个方法或函数写上成千上万行,那最后不想承受洪水冲击都不行;我把所有的变量都写成i,j,k那么过一段时间之后它认识我,我却不认识它了;我不把注释写好,我还想奢望让团队的每个人都理解我的代码?可能他们到最后连我本人都不想理解了。


无风不起浪,要想风平浪静,就要运筹帷幄。让自己强大起来,做好运筹帷幄的事情。



我不是什么艺术家,我也没有那么高尚,我写出来的代码是非常烂的,没有必要把自己奉为神明,唯我独尊,东方不败的样zhi。自己写出来了代码,不去检查,不去调试,那自己做这个高尚的职业又有啥意义呢?

所以,我不要去挑剔别人的程序,有一天也许我的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。


时刻告诫自己,我不是艺术家。



不注重前戏,后果很严重


前戏很重要,需求分析和设计是要要求我们对整个系统的结构和逻辑都有很清楚的理解。需求要到位,这是项目的根基,如果根基没有了,那么大楼是无从谈起的。文档和架构UML都要明确清晰明了,如果这些不明了,那么交流是项目进行中的一个阻碍。前戏阶段思路清晰非常非常重要,否则会一乱到底,乱上加乱。后果不堪设想。



所以前戏非常重要,为了避免出现意想不到的结果,还是要好好的把前戏做好。





勿以善小而不为,勿以恶小而为之



像刚才说到的无风不起浪,我们项目中会出现诸多bug,是什么原因呢?可能有很多,有些是技术上的,有些是非技术上的。


所以在这里要好好的说说这个代码编写。


1. 代码的编写,要尽量减少拼写的错误,严禁使用关键字作为变量来使用,要尽量做到代码模块化,并且保证其正确性和可重复使用性

2. 函数别写太长,功能越单一越好。函数写那么长干哈,又不是写论文,想让看程序的人累死,也想让debug的自己愁死,有木有啊!

3. 缩进要合理,当debug的时候会感受到这条带来的好处。

4. 要做代码检查工作,你不要写一万行代码再进行调试,这样增加了排错的难度。如果你把一万换成四五行,你想你的排错是不是更加容易。

5. 命名是非常有学问的事情,我一刚写程序的时候,一写变量除了i就是j要不就是k。当然我也遇到过这样尴尬的情况--写了一段代码过了一段时间后,我反问我自己,这是我写的程序吗,丫的,那个i是表示的什么变量呀!

6. 注释。做好注释不仅让自己在debug阶段更加方便而且还会让团队开发更加和谐,也会让代码更加具有亲和力。



所以编码的规范性是非常重要的,勿以善小而不为,勿以恶小而为之。
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring Boot与Vue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性与扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理与数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试与优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性与可维护性,遵循企业级开发标准,确保了系统的长期稳定运行与后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值