关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »每个程序员都该知道的10大编码原则

    每个程序员都该知道的10大编码原则

    2014-10-21 00:00:00 出处:ITJS
    分享

    回顾我的职业生涯,我曾自己单枪匹马地干过,也和一些特别有才能的人一起共事过,曾解决过一些非常严重的技术难题,也见识过一些鼎鼎大名的技术公司。近期我和我的团队偶然聊起我的这些经历,谈论的成果是我们在编码时应该知道一些原则。这不是规矩,也不是指导方针。它们只是我在编写和运行代码时总结出来的一些需要注意的原则。

    1.偏执

    这一点与我而言几乎是天生的。我几乎是靠自学才成为了程序员。

    我从不相信电脑,也不相信我刚刚修复的bug真的已经修复好了,总之我不相信任何东西。我甚至连自己都不相信。除非多次检验之后,我才会相信我已经如我所愿地理解了问题。

    偏执是我的诤友,而且我认为它也应该成为我们每一个工程师的“左膀右臂”。大家要偏执的是,应该总是想着从另一种方式来证实假设,或者从另一个角度去看我们遗漏了什么。虽然很多时候这显得很鸡肋,但是有时候它能发挥至关重要的作用 。

    2.不要欺骗电脑

    换言之就是“避免抽象漏洞”(注:抽象泄漏是指任何试图减少或隐藏复杂性的抽象,其实并不能完全屏蔽细节,试图被隐藏的复杂细节总是可能会泄漏出来)。系统该怎么用就怎么用,不要别出心裁自创用法。不要指望会出现什么奇迹。

    要是系统使用规模超过当前的三倍,那么就得考虑重新设计。

    电脑是最诚实的孩子,要是你欺骗了它,它绝对会狠狠地反咬一口。

    3.简单就好

    我们喜欢创建一些新事物、解决一些疑难杂症。这也是为什么我们干这一行的原因。但是很多时候,我们发现某个问题可以解决,却并不意味着现在就是解决它的好时机。

    我总是觉得自己是个爱自找麻烦的程序员——我喜欢干净简单易于理解的设计。别以为这很容易,相反这是一个难度不小的挑战——以一种复杂的方式解决问题谁都能办到,但是只有优秀的程序员才能用一种既简单又易于理解的方式解决问题。特别是要真正直截了当地思考出问题的关键就更是难上加难了。

    理解是重点,要知道程序员大部分时间是在维护代码,而不是写代码。

    4. 优化第一戒律就是不要优化

    这一点来自于John Bentley所著的经典书籍《编程珠玑》。(它旨在帮助我们像一个经验丰富的程序员一样思考。虽然已经发行了好多年,但是上面的很多经验教训仍然适用于当今社会。)

    优化可以采取多种形式:速度、后验形式、潜在规模、可能用途,等等。

    问题在于,大多数的优化最终是没人用的,而且从定义上看,优化或多或少会使得设计更加复杂。所以,优化的第一戒律就是不要优化,除非你完全理解整个问题。(他的第二戒律依然是:“不要优化”,意即即使你理解了,但是除非你真的需要才能去优化。)

    5.不要仅仅修复bug;要修复所有可能发生bug的地方

    对于自己犯的错误,没必要耿耿于怀。每个人都讨厌出现bug,我也是。

    我讨厌会让我犯错的系统。而且我真的非常非常讨厌去修复同样的bug,所以为了避免这种情况,每当我修复一个bug时,我就会思考以下问题:这种bug现在还有可能出现在哪里?以后又比较容易出现在什么地方?是什么原因造成了这种模式的bug?我能不能一下子一网打尽呢?

    6.不断地做问题假设

    因为我大部分时间都是在搞我自己的创业公司,所以我养成了一个不断询问自己的习惯“为什么要这么做?这能解决什么问题?有没有更好的方法?有没有什么更重要的事情是我还没做到的?”

    我们应该一直保持这种态度,不断地询问自己这些假设情况。什么是真正需要解决的问题?是不是只要求解决效果而不必追究根本原因?解决方案完整吗?完备吗?值得吗?

    7..从长远角度思考。放慢脚步,才能跑得更快

    这可能是最重要的一点了。作为工程师,我们享受于高效的工作效率:喜欢不断地创建、创建、创建。但是要是我们不能用长远的角度看问题,只会作茧自缚,使得最后越来越难构建任何东西。

    有时候,我们还没理解问题就直接去写代码,最后导致不得不放弃。有时候我们的方案虽然对局部问题很有疗效,可却能让事情变得更糟或造成更严重的后果。有时候我们匆匆忙忙没有完成设计,从而导致后期别人需要花更多的时间来修复。有时候我们只是懒得用正确的方式写,直接就复制或者借鉴了别人的内容,原因可能是因为忙着赶项目进度不想花时间去好好思考。……

    上面这些情况举不胜举。也有人说,这可比我碰到的情况好多了,呵呵。但是我还是想重复一下——我们的目标是建设最多最强大的功能,拥有最广泛的用户。所以,目光要看得长远。

    8.关心自己的代码

    我想这一点没必要过多解释了吧。不过遗憾的是,现在有很多人时不时地将其抛之脑后。

    为自己的工作骄傲!关心你自己写的代码!

    要是我想偷懒抄近路,我就会告诉自己种瓜得瓜种豆得豆,现在偷懒将来可能会面对很多乱七八糟的代码,最后可怜的还是自己。

    当然你也不必极端——在谷歌公司我经常开玩笑说其他的工程师对待代码就像对自己的宠物一样,而我和代码之间的关系我更像是一个牧场主——务实,不感情用事。话虽然这样说,但是碰到代码不听使唤的时候,我还是忍不住会发脾气。

    9.成本、速度、正确率

    这是软件中的铁三角关系,也是全世界软件工程师孜孜以求的目标。但是这不能成为我们裹足不前自满自得的借口。

    事实上,所谓程序员的优秀和伟大之间的区别往往在于他们驾驭这个铁三角的能力——伟大的程序员通常会想尽办法尽可能地达到这三个目标。我们都应该努力成为伟大的程序员。

    不过话说回来,鱼与熊掌不可兼得,当我们不得不摒弃这个铁三角的时候,一定要明白大家要妥协什么,为什么而妥协,是否是当前形势下最正确的选择。

    10.最后,保持好奇心,不断地学习

    好吧,这可能看上去更像是职业建业。但是要是你没有了好奇心,不愿意学习新鲜事物,不再关心新技术、新语言,那么你还干这一行干嘛呢?

    上述编码原则可能并不完美,各位如有不同意见,欢迎指正,在下洗耳恭听。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    腾讯iOA EDR:全方位狙击银狐木马,破解“钓鱼+免杀”组合拳

    国补价679元!vivo WATCH 5星纱粉新配色开售

    挑战行业最强!REDMI K Pad搭载8.8英寸3K LCD屏

    间谍冒充大学生窃密:用word套取我国敏感数据被识破

    不法分子冒名虚假招聘,长江存储母公司发布严正声明

    员工电脑故障难处理?这款神器让IT运维效率原地起飞!

    护航高考·网警同行|2025年高考个人信息安全指南请查收!

    哈弗H6经典版重庆车展吸睛,8.19万起售,性价比王者来袭!

    vivo海外新机Y400 Pro与X200 FE曝光,定位中高端市场,上市在即

    苹果iOS26将推液态玻璃设计,或为20周年iPhone特别版预热

    IT头条

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    更容易爆炸?罗马仕充电宝被北京多所高校禁用,公司紧急回应

    17:19

    天衍”量子计算云平台,“超算+量算” 告别“算力孤岛时代”

    18:18

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    技术分享

    MySQL基本调度策略浅析

    MySQL使用INSERT插入多条记录

    SQL Server高可用的常见问题

    3D立体图片展示幻灯片JS特效

    windows 7上网看视频出现绿屏的原因及解决方法

    windows 7 64位系统的HOSTS文件在哪里?想用它加快域名解析

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。