译者:小傻子

杭州电子科技大学计算机学院在读本科生

审校: 明明如月

软件攻城狮

 

出处 :http://www.codeshare.co.uk/blog/10-golden-rules-for-becoming-a-better-programmer/

英文原文作者:Paul Seal

我极力为程序员推荐下面10条最佳法则,遵循它们能够助你进阶。

1. 避免重复劳动



   这是一条需要遵循的很棒的准则。我写完代码以后喜欢重新回顾它们,并且重构那些要被重复使用的部分。此外,精简方法体也将使我身心愉悦。在使用Visual Studio时,使用Ctrl+R+M快捷键可以快速帮你将代码重构到单独的方法中。这些都能使代码更具可重用性和可测试性。

2. 命名变量应该表示出它的含义而不是它的数据类型


唯一的例外是,如果你正在使用他人的代码并且要继续完成,那么你就应该继续使用他们的命名规范。

3. 方法名要能清楚的表达出其功能

如果你方法名能清楚地表达出方法的功能,便可以少些注释。如果你的代码本身就有很强的可读性,便不再需要去做注释。

4. 不要使用奇怪的数字或字符串


在你的代码中,不应该有任何能使他人阅读时产生疑惑的数字或字符串值。创建常量、枚举或私有变量时对其进行规范地命名使它们更容易理解。

5. 如果可能,编写方法时尽量做到你的方法能够在不依赖应用的其他部分的情况下就可以单独进行测试


这种情况下,这个方法是从哪里调用的便不再重要,这也能加强代码的可测试性和可重用性。

如果你正使用会话中的值或者配置中的值,应该将他们作为变量进行传递并在调用此方法时对回话或者配置的值再进行获取。

同样的,这些都加强了代码的可测试性。

6. 不要害怕寻求帮助


我不是说任何东西你都去寻求帮助,而不靠自主学习,我的意思是当你状态良好能自己解决的时候就独立完成,但是当你没有思绪的时候那便去寻求帮助。其他人很有可能就曾遇到过这个问题,并且知道怎么解决它。并且,在告诉别人你正在做什么、你想要什么和你的问题是什么的过程中,没准你自己就突然知道怎么解决这个问题了。

7. 遵循Boy Scout Rule


(译者注:Uncle Bob 在QCon上的演讲 《Bad Code, Craftsmanship, Engineering, and Certification》中提到了 The Boy Scout Rule这个概念, 挺有意思的。Boy Scout有一个规定:"Always leave the campground cleaner than you found it"。如果将这个rule应用到项目中,那就是团队中任何一个成员都有义务去改善代码,"Always leave the code cleaner than you found it"。)

有bug或比较混乱的代码的时候,顺手修复它。不要把它留给后来者做,但是也要记住不要去重写整个程序。

8. 与他人分享知识


不要自私地藏着自己的知识,试着养成一个帮助别人的习惯。你会发现团队工作不仅更有效率而且还能互相提高。当你的同事水平提高的时候,并不意味着你失去了你的知识,或者你的工作受到了威胁。而是将会使你自己更有价值,因为你不仅拥有知识,还愿意帮助身边的人提高。

9. 当你的同事思如泉涌的时候,不要打断他们


想象一下,当你正在编程的时候,你把所有这些都放在你的脑海里,就像你正在精心打造一个纸牌屋。如果有人打断你问一个问题,那么你暂时的失去了注意力,这个时候,那个纸牌屋便很容易倒塌。他们可能需要5到10分钟来重新获得注意力并在脑海里回顾它们,而你本来只需Google一下或者问其他人。如果你给你的同事这方面的尊重,并且让他们了解,他们也会这样对你,这样反过来会使你更富有成效。

10. 积极对待批评建议


对我而言,批评建议是一个可以提高自我的机会。如果还有我没想过的其他能够解决问题的方法我愿意去了解,因为它有助于我的提升。

作者简介:Paul Seal

一个来自英国德比的.NET Web开发者,擅长使用MVC框架umbraco建立内容管理系统(CMS)网站。保罗热衷于网络开发和编程,除了和他的妻子或儿子在一起时,他都会去写代码、思考代码或听相关的播客。

译者补充:

11. 随时保存


不知道你们有没有遇到过辛辛苦苦打了半天的程序,因为断电、电脑蓝屏啥的而化为乌有的情况,反正遇到这种情况时我经常欲哭无泪,至此养成了随时保存的情况。敲完一段代码,顺手Ctrl+S,妈妈再也不用担心我白忙活了。

来源:http://toutiao.com/i6330203094978134529/

程序员进阶的10大黄金法则相关推荐

  1. 程序员必备的10大健康装备!

    前言 做为程序员,为了实现理想而奋斗不懈,每天对着电脑辐射坐在工位上拼搏8小时甚至更久,这种如同机器旁边的机器般的工作对于健康的损耗何其之大?再这么下去,还真得应了:"职务不高,工资不高,血 ...

  2. 2019年最受程序员欢迎的10大非关系型(NoSQL)数据库

    数据库是一组信息的集合,这些信息被组织起来以便于访问.管理和更新.在开始介绍最流行的NoSQL数据库之前.您必须了解NoSQL数据库.大多数程序员不知道它代表什么.它的全称是Not Only SQL. ...

  3. 程序员必备的 10 大 GitHub 仓库

    GitHub 不仅是维护代码的好工具,而且也是学习和成长的好去处.身为一个软件开发者,我一直在寻找有用的 GitHub 仓库,从中学习,以及找到灵感.以下是我最喜欢的 10 个仓库. 构建你自己的 X ...

  4. 程序员必备的10大健康装备!——我们要工作更要健康!

    爬虫里面做的最好的肯定是google ,不过google公布的蜘蛛是很早的一个版本,下面是几种开源的网络爬虫的简单对比表: 还有其他的一些比如Ubicrawler.FAST Crawler.天网蜘蛛等 ...

  5. Java程序员必备的10个大数据框架

    当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,小千列出了Java程序员在过去12个月内一直使 ...

  6. 从Java程序员进阶到架构师,6大核心技能要领详解

    " java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计. 希望能真正帮助到从程序员进阶到架构师之路的朋 ...

  7. 程序员进阶之路 --- 如何超过大多数人?

    点击上方 "程序猿杂货铺" ,选择"置顶公众号" 每天 0 点准时推文,我们不见不散! 本文来源 | coolshell.cn 当你看到这篇文章的标题,你一定对 ...

  8. 谈谈Java程序员进阶的那些知识和方向

    谈谈Java程序员进阶的那些知识和方向 记得前段时间看过一篇文章谈到一种程序员叫野生程序员,战斗力极强,可以搞定一切问题,但是通常看问题抓不到本质,或者说是google/baidu/stackover ...

  9. 程序员进阶架构师路线

    作者简介:曾任职于阿里巴巴,每日优鲜等互联网公司,任技术总监,15年电商互联网经历. 下面是作者根据自己15年的互联网电商经验总结的,Java程序员进阶架构师的路线图,希望对初入职场的同学和对自己技术 ...

最新文章

  1. php a标签 执行js,关于a标签不能调用js方法的小细节,你注意到了么?
  2. Angular - - ngHref、ngSrc、ngCopy/ngCut/ngPaste
  3. 在MyEclipse中导入做好的java项目出现错误The project cannot be built until build path errors are resolved
  4. oracle中获取年份、月份段内的时间
  5. netbeans项目缺少服务器,Netbeans,添加Glassfish服务器“不存在”
  6. UI5 xml view里control id的生成逻辑
  7. springboot+jsp中文乱码_【spring 国际化】springMVC、springboot国际化处理详解
  8. jquery地图插件jvectorMap
  9. Oracle数据库间的数据复制 - SQLPlus中的COPY命令
  10. python和java哪个好学-Java和Python去学哪个好
  11. native react 更新机制_React Native 热更新实现(客户端 + 服务器端)
  12. QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
  13. php微信 api,PHP微信API接口类
  14. HD2500显卡驱动linux,intel hd 2500驱动下载
  15. Mindmanager2020教程篇画一个树状思维导图及试用密钥过期
  16. 解决挂过代理之后ip不变
  17. c语言程序设计结论,C语言程序设计报告.docx
  18. AC-DC电源管理芯片选型及应用
  19. 从零开始写一个框架的详细步骤
  20. ecg信号越界_精确心电图ECG信号处理介绍

热门文章

  1. 不得不服!java面试初试和复试的区别
  2. 设计数据库时需要考虑的问题
  3. 分享几款实用的识别图片文字的软件
  4. 华为如何拍火烧云_火烧云好看,怎么才能拍的更好看?
  5. cocos2d-x 学习笔记(3)cocos2d-x 创建基本控件 及小动画
  6. 计算机网络位置被断开了怎么办,win10电脑网络一会就断开了怎么办_win10电脑网络一会就断开了的解决方法...
  7. Android实现发短信,打电话
  8. 新手必读:一个牛人给的java九点建议
  9. 机器学习中的数据归一化、最值归一化、均值方差归一化(标准化)
  10. 央视点名PC软件弹窗乱象 鲁大师等多家被点名