0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的10条基本编程原则

Hack电子 来源:Hack电子 2023-12-05 11:28 次阅读

编写代码容易,但编写优秀代码却是一项挑战。采纳基本编程原则是确保编写高质量代码的稳妥途径,无论软件项目规模大小,都能保证代码高效、易读、可靠、安全且易维护。

糟糕的代码有多种形式:杂乱、庞大的if-else链、不可靠的程序、变量命名不合理等等。如何编写有效代码?需要有纪律和目的。以下是让您成为更好的编程人员的核心编程原则。

1、保持简洁明了 Keep It Simple, Stupid (KISS)

d741c086-9312-11ee-939d-92fbcf53809c.png

这听起来有点苛刻,但在编写计算机代码时,这是最重要的原则之一。KISS是什么意思?

它意味着你应该尽可能简单地编写代码。基本编程规则之一是不要陷入过于巧妙的陷阱,或用一大段高级代码来炫耀。如果能用一行代码编写脚本,就用一行代码。

这是一个简单的函数:

functionaddNumbers(num1,num2){
returnnum1+num2;
}

相当简单。易于阅读,了解发生了什么。

这种精神中的一个编程原则是使用清晰的变量名称。充分利用编码库并使用现有工具。六个月后回来工作时更容易。保持简单将会在很大程度上避免不必要的困扰。

2、编写DRY代码

“不要重复自己”(DRY)编程原则意味着,简单地说,不要重复代码。这是一个常见的编程错误。编写代码时,避免重复数据或逻辑。如果你曾经在程序中复制并粘贴代码,那么这不是DRY代码。

看看这个脚本:

functionaddNumberSequence(number){
number=number+1;
number=number+2;
number=number+3;
number=number+4;
number=number+5;
returnnumber;
}

与其复制行,不如找到一个使用循环的算法

DRY代码易于维护。调试一个处理50次重复的循环比调试50个处理一次重复的代码块更容易。

3、Open/Closed原则

按照良好的编程原则进行工作将使您的工作更加高效。

这种编程原则意味着你应该使你的代码可扩展但不可修改。这确保了即使需求改变,也不需要修改代码。这是在发布其他人将使用的库或框架时的重要原则。

例如,假设您正在维护一个GUI框架。您可以发布一个版本供程序员修改并直接集成您发布的代码。然而,当您在四个月后发布一个重要更新时会发生什么呢?

他们的代码会崩溃。这可能会使你的同事非常不高兴。无论以前它有多么有用,他们以后都不想再使用你的库了。

相反,发布代码阻止直接修改并鼓励扩展。像这样的基本编程原则将核心行为与修改行为分离。代码更稳定,更易于维护。

4、组合优于继承

如果你使用面向对象编程编写代码,那么这个编程原则对你会非常有用。组合优于继承的原则指出,具有复杂行为的对象应包含具有单个行为的对象实例。它们不应该继承一个类并添加新的行为。

依赖继承会引发两个主要问题。首先,继承层次结构可能会变得非常混乱。其次,你在定义特殊情况行为时有更少的灵活性。假设你想实现分享行为:偏向简单的编程原则通常为更有效的最终结果铺平道路。

d7624bf8-9312-11ee-939d-92fbcf53809c.png

组合编程更易于编写、更易于维护,并允许定义灵活的行为。每个单独的行为都是它自己的类。通过组合单个行为可以创建复杂行为。

5、单一责任原则

图片编码原则都有一个共同的目标:由更有经验的程序员编写更优质的代码。

单一责任原则规定程序中的每个类或模块应只提供一个特定的功能。正如罗伯特·C·马丁所说:“一个类应该只有一个变化的原因。”

类和模块通常从这样的方式开始。小心,不要在类变得更复杂时增加过多的责任。重构并将它们分解为更小的类和模块。

过度加载类的后果是双重的。首先,在尝试隔离某个模块进行故障排除时会使调试变得复杂。其次,为特定模块创建附加功能会变得更加困难。良好的编程原则可以在问题出现前阻止这些问题。

6、关注点分离

关注点分离的概念是单一责任原则的抽象版本。这个理念指出你应该设计具有不同部分的程序,并且这些部分不应相互访问。

这的一个知名例子是模型-视图-控制器(MVC)设计。MVC将程序分成三个不同的区域:数据(模型)、逻辑(控制器)和页面显示内容(视图)。MVC的变体在当今最流行的网络框架中很常见。

例如,处理数据库的代码不需要知道如何在浏览器中渲染数据。渲染代码接收来自用户的输入,但逻辑代码处理处理过程。每段代码都是完全独立的。

其结果是易于调试的代码。如果您需要重写渲染代码,您可以这样做而不必担心数据如何保存或逻辑如何处理。

7、你不会需要它(YAGNI)

有些编码原则比其他原则更直接。

这个原则意味着你不应为了未来可能需要的功能而编写代码。计算机编程中最重要的原则之一是不要试图解决不存在的问题。

为了编写DRY代码,程序员可能会违反这个原则。通常,缺乏经验的程序员试图编写最抽象和最通用的代码。然而,过度抽象会导致臃肿的代码,难以维护。

只有在需要时应用DRY编程原则;如果您注意到代码一遍又一遍地写,实现一层抽象。不要牺牲当前代码的批次来考虑太远的未来。

8、文档化你的代码

在谈论编码原则时,很容易忘记最终可能会查看代码的人。

任何资深开发人员都会强调使用适当的注释记录代码的重要性。所有的编程语言都提供了注释的方式;你应该养成编写注释的习惯。留下注释以解释对象、增强变量定义以及让函数更易于理解。

以下是一个带有注释的 JavaScript 函数,指导你了解代码:

//如果数字为奇数,则此函数将在输入数字上加上5,否则返回数字本身
functionevenOrOdd(number){
//判断数字是否为偶数
if(number%2==0){
returnnumber;
}
//如果数字为奇数,则加上5并返回
else{
returnnumber+5;
}
}

在编码时留下注释需要一些额外的工作。这需要时间,并会分散你对实际工作的注意力。你对自己的代码相当了解,对吧?谁会在乎呢?但值得记住的是,即使在技术领域,也没有什么是可以被丢弃的。最终的计算机编程原则是什么,如果对面的人最终迷失了方向?

我们建议你多走一步,在你担心事情会变得混乱或不清晰的地方留下注释,特别是在与他人合作时。不要强迫其他开发人员去解读你的语法,以免让他们感到沮丧。

试着写一个程序,放置六个月不动,然后返回修改它。你会庆幸你记录了你的程序,而不是不得不研究每个函数来记住它的工作方式。

9、重构

这个编程原则鼓励你始终以全新的视角审视你的工作。

很难接受,但你的代码不会一开始就是完美的。重构代码意味着审查你的代码,寻找优化的方法,使其更高效,同时保持结果完全相同。这是编写更清洁和高质量代码的考虑。

代码库不断发展。编程原则之一是记住,重新审视、重写甚至重新设计整块代码是完全正常的。

这并不意味着你第一次写程序时失败了;随着时间的推移,你不可避免地会更加熟悉项目。利用这些知识随着你的进步进行调整。

10、一切代价都要编写清晰的代码

d779e150-9312-11ee-939d-92fbcf53809c.png

除了所有基本的编程原则外,把你的自我留在一边,忘记编写过于聪明的代码。当我们说这句话时,我们指的是那种看起来更像是谜语而不是解决方案的代码。你编码不是为了给陌生人留下深刻印象。你从事这个职业是为了解决问题。

不要试图把大量逻辑塞进一行代码中。在你的注释和文档中留下清晰的说明。如果你的代码易于阅读,通常也易于维护。

优秀的程序员和可读性高的代码是相辅相成的。当必要时留下注释,遵循代码风格指南,并尽可能地站在下一个人的角度考虑。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92404
  • 函数
    +关注

    关注

    3

    文章

    3879

    浏览量

    61309
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66772
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29572

原文标题:你真的知道?程序员的 10 条基本编程原则

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    程序员该怎样学好电子工程?

    我是C/C++,JAVA,汇编程序员。该怎样学好电子?是否应从电子元器件学起?请各位给我指学习路线吧。非常感谢。
    发表于 03-02 10:07

    是什么成就了一名“高级”程序员

    除多年编程经验之外,还有什么能区分一个程序员是“老手”还是“新手”?编程技巧当然是一部分,但它绝非是全部。确实,成为一名优秀的程序员需要做的事情有很多,不光是要有良好的
    发表于 11-13 17:25

    程序员的十大技术烦恼

    我们都明白,这是我们有我们行业里的特定的烦恼。 下面要说的就是让程序员们烦恼的十件事情。 10. 注释 — 只解释了“how”却没有解释“why” 入门级的编程课程通常会教育学生们写代码前先写注释
    发表于 11-14 15:51

    每天10分钟,改变你编程生涯

    `有这样一讨论:你现在用10分钟做点什么,可以帮助到你今后的职业生涯?下面给出了这个问题很好的一个答案,值得程序员思考。 编写程序不是为了写代码而写代码,它是为了解决某个问题,个体程序员
    发表于 12-01 17:21

    知道为什么不能打断正在工作的程序员吗?

    ,一句友好的问候都是多余的。 ”  1.一个程序员打搅后,他需要10-15分钟的时间才能重新恢复到之前的编程状态。  2.当修改一个程序函数时被打搅,只有十分之一的
    发表于 07-13 13:59

    最让程序员感到崩溃的10编程语言,有让你崩溃的那个吗?

    过于灵活)、差劲的调试功能或其它原因让你抓狂,甚至崩溃。据程序员在 Quora,Stack Overflow和Hacker News这三大国外论坛上的讨论,挑选了其中10大最让程序员不爽的编程
    发表于 09-11 10:03

    优秀程序员是怎样炼成的?

    最基本的要求是能自主地编程。只有在经过多年的学习实践之后,我们才能超越写一些简短程序的基础水平。而仅靠上课或者看书是做不成能力卓群的程序员的,不断的练习和实践才是唯一的正途。学校中那些所谓的CS
    发表于 02-14 20:45

    程序员的幽默——献给所有程序员

    的作家。怎么才算伟大呢?他说:我写的东西全世界都要看到!看完他们必定会歇斯底里!会火冒三丈!会痛苦万分!结果,他成功了,他在微软公司负责写系统蓝屏时的报错提示信息。10. 程序员应聘必备词汇:了解=听过名字;熟悉=知道是啥;熟练=用过;精通=做过东西。欢迎加入物联网交流群
    发表于 10-31 18:43

    程序员去模式验证?

    我有一个部分是半编程,但程序员去指示它通过。程序员编程模式进行验证后,编程?(也许在设置代码保护之前?)我找不到任何地方记录的序列。谢谢!
    发表于 10-10 15:06

    程序员越老越优秀吗?

    。帖子的质量,例如每个帖子的分值,随着年龄只有微弱的增加。老程序员通过更活跃的回答问题来赢得声誉。明年我就年满40,在很多编程相关的社交圈里都被公认为“老程序员”。我的经验如下:每年,我都能更进一步
    发表于 10-25 10:04

    pickit3程序员限制编程次数吗?

    嗨,我想让USPEKIT3程序员去功能更新设备在现场。无论如何,有限制编程的数量吗?
    发表于 03-05 09:28

    设计机器人程序员系统的编程技能

    (机器编程系列文章二)嵌入君上一篇《机器人程序员正朝我们走来,大家准备好了吗?》文章中,谈到了我个人的观点,在一个编程平台中,是否算是机器编程,需要看机器完成的代码占总编码的量和对
    发表于 09-09 06:45

    如何避免程序员面向监狱编程

    转眼间白驹过隙般飞奔而去,而在岁末年初的当口,笔者在回顾这一年程序员世界的大事件后,突然发觉如何避免程序员面向监狱编程是个特别值得一谈的话题,这几天一款秒杀茅台酒的Python项目,突然在
    发表于 09-14 07:51

    10倍效率程序员是否真的存在

    编程神话中,一个 10 倍效率的程序员可以完成一个普通程序员 10 倍的工作量。「普通程序员
    的头像 发表于 10-30 11:50 1825次阅读

    10个习惯让程序员受益匪浅

    当谈到编程时,很多人应该都有听过10x程序员的说法。 据说一个10x程序员的效率大约是其他程序员
    的头像 发表于 01-04 11:33 1957次阅读