优秀的程序 vs 糟糕的程序

本文对比了优秀程序与糟糕程序的特点,强调了优秀程序具备简洁、高效及易于维护等特性,而糟糕程序则通常复杂、难以理解且生命周期短。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发者Rahul Singh近日在其个人博客中列出了他眼中的优秀的程序和糟糕的程序:

引用

优秀的程序可以使复杂的东西看起来很简单;糟糕的程序让原本简单的东西变得复杂。

优秀的程序不需要加以说明;糟糕的程序需要大量注释。

优秀的程序编写时需要更多时间,但未来花费的时间却更少;糟糕的程序往往花费较少的时间,但会在未来浪费掉更多时间。

优秀的程序需要考虑当前和未来的需求;糟糕的程序只侧重于现在,在未来可能无法正常工作。

优秀的程序非常易于维护;糟糕的程序难以维护。

优秀的程序有更长的生命周期,甚至应用范围超出预期;糟糕的程序在其工作范围之外几乎无法使用。

优秀的程序如同良好的习惯,其影响将持续很长一段时间,几乎可以永久地解决问题;糟糕的程序如同止痛药,其效果只有很短的时间,解决问题大多是暂时的。

优秀的程序是整洁的、遵守规律的;糟糕的程序是混乱的。

优秀的程序可以令人学到很多编程方法和经验;糟糕的程序只能令人越学越糟。

优秀的程序中,该重用的地方重用,该发明的地方发明;糟糕的程序会重新发明轮子,并在适合发明的地方重用。

优秀的程序依靠程序员的直觉和知识,并经过了多年良好程序习惯的熏陶;糟糕的程序往往盲目依赖他人的知识和经验,而没有自己的理解。

优秀的程序可以很容易地从一个程序员转移给另一个程序员;糟糕的程序只能被编写者理解和实施。

优秀的程序员不会刻意去记忆一段代码,他依赖于他的逻辑思维能力和理解,并能在未来轻松改善代码;糟糕的程序员往往会记住很多自己不理解的代码。

优秀的程序都有相同的特征,如简单、可读性强、效率高;糟糕的程序各有糟糕之处。

优秀的程序比程序员存在的时间要更久;糟糕的程序存在的时间很短。

Good Programming, Bad Programming

November 17, 2012

Some thoughts on Good Programming and Bad Programming:

Good Programming makes even complex things seem simple.
Bad Programming makes even simple things complex.

Good programming is self-explanatory.
Bad Programming requires explanation.

Good Programming takes more time now, but less time in future.
Bad Programming takes less time now, but more time in future.

Good Programming involves considering present and future requirements.
Bad Programming focuses only on the present and may not work in future.

Good Programs are easy to maintain.
Bad Programs are hard to maintain.

Good Programs have a longer lifespan, and may even outlast the purpose for which they were created.
Bad Programs have short lifespan and barely usable outside their working scope.

Good Programs are like good habits, whose effects last for a long time and solves the problem almost permanently.
Bad Programs are like painkillers, whose effects last for only short time and solves the problem mostly temporarily.

Good Programming is clean and disciplined.
Bad Programming is messy and chaotic.

Good Programming is learned, practiced and mastered over a period of years.
Bad Programming is self brought, and when practiced for long time makes it even more difficult to learn good programming.

Good Programming is knowing when to invent and when to reuse.
Bad Programming is inventing what's already invented, and reusing what can be better invented.

Good Programming is relying on your own instincts and knowledge, gained after years of good programming practice.
Bad Programming is relying blindly on others knowledge and experience, without applying your own understanding.

Good Programs can be transferred from one programmer to another programmer.
Bad Programs can only be understood and implemented by the same programmer.

Good Programmer doesn't memorize piece of code. He relies on his logical skills and understanding, and can enhance the code easily in future.
Bad Programmer memorizes the piece of code instead of taking right efforts to learn it, and has difficulty in making changes to the code.

Good Programs are good for similar reasons like simplicity, readability, and efficiency.
Every Bad Program is bad for its own reason.

Good Programming Concepts outlast the life of a programmer.
Bad Programming Concepts die with the programmer.

http://www.singhrahul.com/2012/11/good-programming-bad-programming.html

内容概要:本文详细介绍了在Linux环境下进行C++开发所需掌握的内容,以一个Web多人聊天项目为例,涵盖从开发环境搭建到项目部署的全过程。首先推荐了一个项目地址,该项目支持HTTP请求、Websocket、多房间和多人聊天、MySQL用户信息存储、Redis缓存、json序列化等功能,并建议扩展功能如基于Reactor模型构建HTTP/Websocket服务、仿写MySQL/Redis连接池等。接着介绍了开发环境,包括Ubuntu 20.04、MySQL 8.0、Redis 6.0、gcc/g++ 10.5.0等,并提供了详细的部署步骤,如安装boost库、编译聊天室服务、配置MySQL和Redis等。最后分析了项目架构,包括数据存储(MySQL存储用户信息,Redis存储房间消息和用户cookie)、消息格式(HTTP请求消息和Websocket交互消息)、HTTP/Websocket数据处理流程等。; 适合人群:有一定Linux基础,想深入了解C++开发及网络编程的开发者,尤其是有志于从事Web开发或服务器端开发的技术人员。; 使用场景及目标:①掌握Linux C++开发环境的搭建,包括工具链的安装与配置;②理解并实践HTTP、Websocket等网络协议的应用;③熟悉MySQL、Redis等数据库的使用;④学习如何处理HTTP请求、Websocket交互消息及数据存储;⑤能够独立完成类似Web聊天室的项目开发。; 其他说明:本文不仅提供了理论指导,还给出了具体的实践操作步骤,如编译过程中可能遇到的问题及解决方案。对于初学者来说,可以按照文中提供的链接和教程逐步学习,同时鼓励读者根据自身需求对项目进行扩展和优化。
【文章/演示视频链接:https://archie.blog.youkuaiyun.com/article/details/147283872?spm=1001.2014.3001.5502】1.本系统有一个主机,两个从机。2.一主多从的LORA组网通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数据并通过各自的 LoRa组网将数据发送给主机。3.两个LORA从机,功能一样,组网分别实现对温度、湿度、粉尘PM2.5、PM10、CO2和NH3进行实时采集,并在OLED显示屏显示,系统采用锂电池供电。从机所用主要硬件:STM32F103C8T6最小系统板、多合一环境检测模组、0.96寸OLED显示屏、MQ-135传感器、正点原子LORA模块ATK-LORA-01、18650锂电池。4.主机LORA,组网实现接收两个从机采集过来的数据,通过主机WIFI模块网关将两个从机的数据远程传输到物联网云服务器和手机APP。主机所用主要硬件:STM32F103C8T6最小系统板、ESP8266模块、正点原子LORA模块ATK-LORA-01、18650锂电池。 资料包,包含本项目所有的程序源码和原理图 1.程序源码文件如下所示: “0.机智云MCU代码生成”是机智云平台生成的代码 “1.主机-未移入机智云”是没有移植机智云的代码(方便更改为你的机智云) “1.主机-移入机智云-此程序可接入机智云”是本项目的主机网关程序 “2.从机1-本地数据采集与显示”是本项目的从机1程序 “3.从机2-本地数据采集与显示”是本项目的从机2程序 【物联网】基于LORA组网的远程环境监测系统设计(资料包)
内容概要:本文详细阐述了医院管理住院系统的研究与实现,旨在通过信息技术手段提升医院管理效率和服务质量。系统采用SQL Server 2005作为数据库管理系统,使用MyEclipse的JSP技术进行开发,主要编程语言为Java。系统设计基于B/S架构和MVC设计模式,涵盖了六大功能模块:医生管理、病人管理、病床管理、收费管理、统计分析和系统管理。通过对系统的需求分析、可行性研究、总体设计、详细设计与实现、系统测试等环节的深入探讨,确保系统的安全性和有效性。系统实现了对医院内部信息的有效管理和快速检索,提高了医院的工作效率,减少了患者的等待时间和不必要的开支。 适合人群:适用于医院管理人员、医生、病人等相关人员,尤其是对医院信息化管理感兴趣的IT从业者和医疗行业工作者。 使用场景及目标:①医院管理人员可通过系统查看病床利用率、收费明细等情况,优化资源配置;②医生可查询病人信息,提高诊疗效率;③病人可以查看自己的治疗信息、费用明细等,增强就医体验。目标是提升医院整体管理效率和服务质量,建立现代化医院的良好形象。 其他说明:系统开发过程中充分考虑了经济、技术、操作等方面的可行性,确保了系统的实用性和可操作性。同时,通过详细的测试确保了系统的稳定性和安全性。此外,系统的可扩展性和模块化设计也为未来的功能扩展和维护提供了便利。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值