从菜鸟到大师:编程必须遵循的三个基本原则

这篇具有很好参考价值的文章主要介绍了从菜鸟到大师:编程必须遵循的三个基本原则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任斗转星移,原则恒定

在软件开发的世界里,虽然技术日新月异,但有些原则是经久不衰的。就像建房子需要坚实的地基,软件开发也有其基础原则。它们像是指南针,帮助开发者在变化莫测的技术海洋中保持方向。接下来,我们就来聊聊这三个基本原则:DRY、KISS和YAGNI。

DRY —— 重复是编程之敌

1.1 概念:Don't Repeat Yourself

想象一下,你你在家自己做土豆丝夹饼,如果你家有三口人需要做三个,你不会每次都重新和面、烤饼、切土豆丝,调配同样的调料吧?这不仅效率低下,而且很难保证味道一致。你会一次性准备好所有的面饼,然后一次性切好所有的土豆丝,预先调制好所有的调料,这样更高效。这就是DRY原则的精髓——不要做重复的事情。

从菜鸟到大师:编程必须遵循的三个基本原则

1.2 为何要DRY?

通过将重复的逻辑提取出来,形成独立的模块或函数,我们的代码变得更加整洁、易于管理。这就像我们制作每一个土豆丝夹饼时,因为已经提前做好了准备,只需要从烤箱中把饼拿出来,从菜盆中夹出土豆丝,从调料盒中挖出调料,而不是每次从和面烤饼开始。这样的组织让做饭过程更加高效和一致。

1.3 遇到的挑战

  • 技术人员对业务理解不够深入,难以在恰当的时机做出合适的抽象,就像是一个大厨对如何高效准备土豆丝夹饼的材料不熟悉,不知道何时应该提前准备。
  • 在紧迫的deadline前,临时的业务变更可能导致我们做出临时妥协,这就像是客人临时要求变更土豆丝夹饼的配料,而厨师只能急中生智,可能会牺牲味道。

1.4 代码示例

public class Calculator {

    // DRY - 将加法逻辑提取到一个方法中,避免在多处重复
    public int add(int a, int b) {
        return a + b;
    }

    // 其他操作也应该遵循DRY原则
    public int subtract(int a, int b) {
        return a - b;
    }
}

KISS —— 保持简单的艺术

2.1 概念:Keep It Simple, Stupid

让我们继续用美食做比喻。如果你的土豆丝夹饼食谱需要30种配料,而实际上只需要3种就能做出美味的饼,那这个食谱显然过于复杂了。KISS原则告诉我们,保持简单直接非常重要。

从菜鸟到大师:编程必须遵循的三个基本原则

2.2 简单的力量

一个简单的设计意味着更少的错误,更容易的维护,就像简单的食谱更容易掌握,结果也更加可靠。

2.3 遇到的挑战

  • 当项目涉及多方面的参与人员时,每个人都可能带来自己的关注点,这时候很容易忽视了用户的核心需求,就像厨师忙于展示烹饪技巧而忘记了食物是用来吃的。
  • 受限于过去的决策,我们可能会一直在现有的基础上打补丁,最终导致系统复杂难以维护,就像一个本来简单的土豆丝夹饼因为不断添加配料变得复杂而难以下咽。

2.4 代码示例

public class SimpleTask {
    
    // KISS - 使用简单直接的方法来计算两个整数的和
    public int add(int a, int b) {
        return a + b;
    }

    // 这个方法违反了KISS原则,因为它过于复杂
    public int add(int a, int b) {
        // 使用一个数组来存储参数
        int[] numbers = new int[2];
        numbers[0] = a;
        numbers[1] = b;
        
        // 使用流来计算和,这在这种情况下是不必要的复杂性
        return Arrays.stream(numbers).reduce(0, (subtotal, element) -> subtotal + element);
    }
}

YAGNI —— 未雨绸缪还是过度设计?

3.1 概念:You Ain't Gonna Need It

如果你只是做几个土豆丝夹饼,你不会去买一个和面机吧?除非你打算经常自制烧饼,否则这显然是不必要的。这就是YAGNI原则的核心——不要添加当前不需要的功能。

从菜鸟到大师:编程必须遵循的三个基本原则

3.2 实践YAGNI的智慧

YAGNI原则鼓励我们专注于当前的需求,而不是过度设计未来可能也可能不会用到的功能。这就像是在购物时,只买你当天晚餐需要的材料,而不是囤积一大堆可能永远不会用到的食材。

3.3 遇到的挑战

  • 技术人员有时会被新技术吸引,就像看到新出的厨具就想买来试试,即使它们对于目前的需求并不必要。
  • 我们对未来的预测往往不准确,过度设计的功能可能最终成为累赘,就像买了太多食材最终导致浪费。

3.4 代码示例

public class UserService {

    // 当前只需一个方法来添加用户
    public int add(String userName,int age) {
        ...
    }

    // 不要预先添加额外的方法,例如删除用户,除非有明确的当前需求
    // public double delete(int userId) {
    //     ...
    // }
}

结语:用智慧编织代码的网

软件开发就像是编织一张网,DRY、KISS和YAGNI这三个原则就是那些帮助我们编织出强韧而灵活网格的工具。它们指导我们避免重复,保持简单,不做无用功。当我们遵循这些原则时,我们能够创造出更加可靠、易于维护且满足用户需求的软件产品。

就像做饭时,遵循一些基本原则,我们才能做出既美味又健康的土豆丝夹饼。文章来源地址https://www.toymoban.com/news/detail-776906.html

到了这里,关于从菜鸟到大师:编程必须遵循的三个基本原则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IPv4/IPv6综合组网技术基本原则解析

    IPv4概念 IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年 Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用

    2024年02月07日
    浏览(31)
  • Java设计模式_概述(设计模式类型和基本原则)

    设计模式(Design pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临一般问题的解决方案,是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。是优秀程序猿的经验结晶。 但不推荐刚入门的开发者学习,哪怕把代码搞的一塌糊涂,也要先将功

    2024年04月29日
    浏览(25)
  • 《移动互联网技术》第九章 感知与多媒体: 了解质感设计的基本原则和设计方法

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(33)
  • LLM 优先的软件架构:源自 ArchGuard Co-mate 的四个基本设计原则

    在优化 ArchGuard 的 AI 辅助架构治理工具 Co-mate 的架构时,发现有一些模式与之前设计 AutoDev、ClickPrompt 等颇为相似。便思考着适合于 ArchGuard Co-mate 的架构设计原则是什么,写下了初步的三条原则。 而正好要在公司内分享 LLM + 架构,便又整理了适合于更通用的四个架构设计原

    2024年02月09日
    浏览(29)
  • 编程大师-分布式

    mysql redis 【IT老齐122】不只setnx,两张图说清Redisson的Redis分布式锁实现_哔哩哔哩_bilibili zk 用这种方式去实现,zookeeper分布式锁,你会吗?_哔哩哔哩_bilibili

    2024年02月09日
    浏览(28)
  • 发掘JavaScript潜力:掌握高级技巧,成为JavaScript编程大师!

    🎬 岸边的 风:个人主页  🔥 个人专栏  :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 众所周知, JavaScript  是一种非常流行 🔥 的编程语言,它已经成为了网页开发的必备技能。但是,在我们从事 JavaScript编程 的时候,我们却没有完全发掘和利用它的

    2024年02月14日
    浏览(39)
  • 《Effective Java》:Java编程圣经,Bloch大师亲授高效优雅编程之道!

    是谁?作品一出版就获得著名的Jolt图书大奖,每一版本豆瓣评分均超9.0! 连Java之父James Gosling都多次表白他的作品“我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍,但是我需要这本书”,还在 JavaOne 2001 上直呼“去买这本书吧!”。 他就是《

    2024年04月09日
    浏览(30)
  • 编程入门:五个你必须知道的编程常识

    常识1:编程不仅仅是写代码 当我们谈论编程时,大多数人首先想到的是写代码。这是正确的,但并不完整。编程不仅仅是写代码,而是解决问题的一种方式。编程是一种工具,我们使用它来创建能够解决特定问题的产品和服务。 比如,你想开发一个手机应用来帮助人们更有

    2024年01月23日
    浏览(54)
  • R编程教程_编程入门自学教程_菜鸟教程-免费教程分享

    R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言的核心是解释计算机语言,其允许分支和循环以及使用函数的模块化编程。 R语言允许与以C,C ++,.Net,Python或FORTRAN语言编

    2024年02月11日
    浏览(31)
  • Golang三个编译基本命令

    在运行Go语言程序之前,先要将其编译成二进制的可执行文件 我们通常在编辑器编写完源码后使用go build或go run命令对GO语言程序进行编译 作用:将Go语言程序和相关依赖编译成可执行文件 语法格式:go build 【参数】 fileName 参数: fileName为所要编译的文件名,可以是一个或多

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包