惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Securelist
P
Palo Alto Networks Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
H
Hacker News: Front Page
AWS News Blog
AWS News Blog
Latest news
Latest news
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
The Hacker News
The Hacker News
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
O
OpenAI News
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Security Latest
Security Latest
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
博客园 - 叶小钗
L
LINUX DO - 最新话题
Martin Fowler
Martin Fowler
N
News | PayPal Newsroom
Project Zero
Project Zero
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
月光博客
月光博客
IT之家
IT之家
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
D
DataBreaches.Net
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

咸糖 - 自律者自由

2025 年终总结:降噪、重构与长期主义 在新加坡和新山吃过最好的食物(持续更新) 写给还在迷茫的你:我的三本大学回忆 2024 年终总结 Neovim: No Crash Incremental Selection 2022 年终总结 使用 neovim 作为 PDE(个性化开发环境) shell 是一个不错的生产力工具 使用二八法则省力地学习 awk 肉身翻墙新加坡安顿指南 使用 Docker Compose 建立你自己的开发环境 关于编写可维护的代码的一些实践与想法 我为什么使用双向链接做笔记? 关于焦虑和拖延症 Golang: 如何处理日渐膨胀的 interface 使用番茄工作法来更好的利用你的时间 Unix 如何杀死一个进程和它的子孙进程? Golang: 让你的零值更有用 使用 Mock 和 Interface 进行 Golang 单测 关于 Golang Slice 的一些细节 重新学习英语语法 上班族近期小半年入门投资基金组合的学习与实践经历 疫情期间的肉身翻墙新加坡指南 About me 软技能:大厂底层员工打工指南 软技能:我是如何获取知识与信息的? 分布式的令牌桶算法的实现 实现一个AtomicInteger GC root 在哪里? 什么是 Minor GC/Major GC 漏桶算法的设计与实现 剑指offer 单例模式 TCP 针对面试学习 Actor 如何处理阻塞消息 Akka 源码解析 How to learn scala AES 需要限制 SEED 长度 Java 如何区分==与.equals()方法 2018年年度总结 Java 集合扩容
总结一些计算机常用的原则
xiantang · 2021-11-10 · via 咸糖 - 自律者自由

文章目录

【注意】最后更新于 December 29, 2025,文中内容可能已过时,请谨慎使用。

计算机常用的原则

在写代码的时候我们经常会有一些体会和经验所得,这些经验所得其实老早被之前的大神归纳成为原则。最近这一年我就一直在收集各种原则然后不断的运用和实践。

KISS 原则

KISS 原则是英语 Keep It Simple,Stupid 的首字母缩略字。

KISS 原则是指在设计当中应当注重简约的原则。总结工程专业人员在设计过程中的经验,大多数系统的设计应保持简洁和单纯,而不掺入非必要的复杂性,这样的系统运作成效会取得最优。

正确的做法应该是当开发者遇到一个问题后,把问题拆分成一个个能够明白的小块,然后进入编码阶段。

  • 好处:

    • 你将可以通过很少的几行代码去解决复杂的问题。
    • 你将可以产出高质量的代码。
    • 当新的需求来了后,你的代码将会更加的灵活。
  • 怎么用:

    • 你不是天才,你的代码 stupid simple,所以你没必要是天才。
    • 拆解问题。任务拆解为 4 - 12 小时的子任务。
    • 每个子任务用一个或者很少的类解决问题。保持类要小不用搞太多 uses case 在里面。
    • 保持方法足够短。30 - 40 行。
    • 任何场景尝试简单。

DRY 原则

don’t repeat yourself,直译不要重复你自己。

这个原则其实在工作中特别常用,比如你的代码经常会写重复的,你就可以将它抽成一个函数。

但是我觉得最佳实践是:如果一件事情做了 3 次,才将它抽成一个函数或做抽象,因为过早的抽象会导致不够普适,不利于代码的维护。

YAGNI 原则

You aren’t gonna need it,YAGNI 的意思是“你不需要它”:在必要之前不要做多余的事情。

这个原则主要是告诉我们不要太早的去思考一个问题,降低实现的成本。 虽然和前者有些矛盾,但是我们可以通过我上面提到 3 次重复再尝试抽象来做折中来实践会比较好一些。

单一责任原则

单一职责原则 (Single Responsibility Principle),简单来说就是一个类只负责一个职责,而不能负责多个职责。在程序设计中,单一职责原则是一个很重要的原则,因为它能够帮助我们更好的组织代码,更好的管理代码,更好的解决问题。

让每个类做一个事情,而不是让每个类都做一个事情,这样对代码的维护和扩展都会更加方便。

面向接口编程原则

面向接口编程原则 (Interface Segregation Principle),简单来说就是尽量使用多的接口,而不是使用多的类。

这样的好处是:将程序分为不同的模块,对外暴露的是上层的接口,而不是下层的类。这样当实现修改的时候,上层的接口不需要修改,只需要修改下层的类就可以了。

文章作者 xiantang

上次更新 2025-12-29 (4c152d04)

赞赏支持

微信打赏 支付宝打赏