开发人员应该采用的10种编程习惯
这些结果可能会降低我们的信心,但实际上,可以通过适当的开发实践来解决。 这里有10个值得养成的习惯,可以投入较少的精力来编写更干净,更智能的代码 。 现在就开始养成这些习惯吧!
学习编程:10个不正确的误解
围绕编程艺术存在很多误解和神话。 许多人将其视为工作... 阅读更多
1.编写人类友好的代码
永远记住,您不仅在为机器编写代码,而且还在为自己的未来写代码。 因此,编写可读代码很重要。 实际上,编程就像写一首好诗。 语调应保持一致,描述性词和句子应有条理。
以下是一些编写友好代码的技巧。
遵循一致的命名约定
例如,如果使用下划线作为首字母来命名私有变量,则应在其余的代码中继续进行操作。
如果您正在协作,请在任何人接触代码之前先讨论命名约定 。
但是,大多数编程语言现在可能已经具有自己的标准命名约定,或者由核心语言本身或社区定义(例如PHP-FIG )。 因此,大多数时候,您不必创建自己的命名约定。
您可以改用所谓的linter或代码嗅探器来帮助执行和修复代码,以使其符合这些标准。 以下是一些编程语言中的一些流行的lint :
- PHP : PHPCS
- Ruby : RuboCop
- Shell或Bash : ShellCheck
- JavaScript的 : ESLint和JSHint
- Swift : Tailor和SwiftLint
描述性变量/方法名称
变量和方法名称应完美描述该代码的作用 。 例如,像Sort_PT()
这样的不常见缩写可能令人困惑:PT是什么意思? 如果您第二次无法回答,则将名称优化为Sort_PostType()
以获得更好的理解。
但是有一个例外。 大多数程序员已经对标识一词“ ID”很熟悉,因此我们始终可以使用缩写形式“ ID”定义变量。
缩进和换行符
缩进是神奇的! 使用一些简单的Tab键,您可以显示整个代码结构并在清楚了解其功能的情况下编辑代码。
对于换行符,当同一行上的2条代码执行不同的操作时,请使用它。 例如,最好不要将CSS属性链接在一行上,这会使事情变得复杂。
2.思考组织
除了更干净的代码,代码的结构和组织还有助于解决可读性问题。 对代码进行分组以使其易于修改很重要(如果需要上下滚动多次才能找到受影响的部分,则需要在结构上进行操作)
另外, 不要将所有代码都放在一个脚本中 。 虽然在单个文件中包含8000行以上的代码似乎很方便,但是在尝试重新调用方法名称时,调试是一场噩梦。 总是考虑改变的难易程度 。
最佳做法是根据代码的主要功能(例如管理器,界面,动画,扩展名等) 将代码分成不同的文件 。
只要有可能,请确保该语言仅满足特定目的 。 如果要使用CSS3编写动画效果,请避免编写jQuery动画效果,除非您有足够的理由。 如果这样做,请在CSS文件中评论该异常。
3.编码前计划
在按下第一个琴键之前, 确切知道该怎么做至关重要。 在编程世界中,提前计划很重要。 编写固定的导航菜单很容易,但是如果菜单需要响应,又能在访问者向下滚动页面时将其最小化,该怎么办?
开始编写代码时没有明确的程序通常会导致重试,倦怠和沮丧循环 。
计划您的代码
因此,与其并行解决问题和进行编程,不如先找出过程,然后编写解决方案 ,要容易得多。 首先列出一般步骤(这里是一个示例):
- 使用Bootstrap作为响应框架。
- 创建导航菜单。
- 将
.navbar-fixed-top
添加到菜单。 - 当用户向下滚动200px以上时,创建jQuery脚本以调整菜单大小。
- 如果用户滚动到顶部,请再次调整菜单大小。
疑难排解
此时,您应该发现其他潜在问题,例如我们如何根据菜单大小调整站点徽标和菜单标题的大小,或者是否需要调整下拉菜单的大小,或者是否需要动态检测而不是固定检测。 。 一旦弄清楚了这些,就可以轻松完成菜单。
4.编写可管理的代码
相信我,您不想逐行更改数百个变量。 我做到了,连续一年。 那是一次令人卑微的经历,从那时起,我学会了编写需要尽可能少的手动更改的代码。
如何实现呢? 使用Array 。 它非常适合存储多个变量 ,并且您可以方便地访问这些变量以for
循环或for each
方法。
还有更多动态方式可以使用某些语言(例如List和LINQ for C#)添加,排列和检索数据,因此请确保定期检出更好的功能,库或插件以进行更智能的数据管理。
最后,为避免不断修改代码中的内容,请编写高度独立的代码 ,当应用新功能或更改时, 这些代码不会破坏整个系统。 这就是所谓的松散耦合 。 经过优化后,开发人员只需要将代码调整为1类,而无需为新功能调整3类 。
5.停止过度使用功能
随着我们技能的成熟,我们倾向于开发更复杂的解决方案,以满足更广泛的需求。 这是增长的一个好兆头,但要小心,因为您可能会陷入另一个陷阱–过度使用了项目完全不需要的功能。
在开发中,定期提醒自己项目的主要目标 ,并且仅添加满足 目标的 功能非常重要。 如果您知道确切的集合大小,请使用数组。 如果List的功能可以按所需方式检索数据,请不要使用高级LINQ。
当您几乎不使用该功能时,为什么还要开发一个插件? 仅仅因为你可以,并不意味着你应该 。 不要浪费你的时间。 记住最耗时的部分,也就是完成项目,还没来! 现在,调试!
6.学习更聪明地调试
有代码的地方就有错误。 拥有无错误的代码解决方案是不可能的,因此调试技能备受追捧 。 古老的反复试验方法可能有效,但速度较慢。 太慢了。 另外,如果已经为您开发了调试器 ,为什么还要折磨自己?
调试工具
浏览器现在配备了功能强大的Developer Tools或DevTools的简称,具有错误检测,断点设置,表达式跟踪,性能检查等功能 ,所有这些功能都可以为您提供调试便利。
10个网站在线测试您的代码
现代趋势和Web应用已极大地改变了Web开发人员的构建方式。 显然,您需要一些类型... 阅读更多
像Aptana Studio 3和Xamarin Studio这样的IDE甚至带有它们自己强大的内置调试器,因此花时间学习它们可以使您的生活变得更加轻松。
但是,调试器不会完全了解您的代码。 如有疑问, 请将log函数放入代码中 ,例如console.log
for,并确保它与变量集成良好(而不是将变量名重新键入为字符串或简单地'It works!'
)。 网络上充斥着每种语言的更高级和特定的 调试方法 。
适用于软件开发人员的30个备忘单和信息图表
如果您只是开始学习编程语言,或者想... 阅读更多
7.寻找更强大的编辑器
合适的编辑人员可以帮助您掌握知识,并加快项目完成速度。 无论您有多熟练,都强烈建议您选择具有代码完成功能的编辑器,例如Sublime Text , Visual Studio Code和Aptana Studio 3 。
该功能不仅对初学者识别和学习语法非常有帮助,而且专业人员可以使用它来检查可能更好的代码或解决方案。 请注意,大多数IDE仅支持某些语言的代码完成 ,因此请寻找正确的语言 。
特征过滤
例如,我喜欢MonoDevelop的一件事是它的代码模板功能。 使用自定义快捷键,您可以将自定义代码模板从通用switch
语句输出到成熟的管理器脚本。 这对于大型项目非常有用,因此请在搜索编辑器时将其优先考虑。
需要注意的其他基本功能:
- 调试器
- 正则表达式替换
- 巨集
- 版本控制支持
- 数据库支持
- 分割编辑
- 布局定制器
- 所见即所得编辑器
8.做版本控制
有时候,您会犯一个严重的编程错误,并想返回到早期版本的代码。 现在,如果您的错误涉及代码库中的多个文件,而其中一些文件是在几天甚至几个月前被修改的,该怎么办?
恢复原始版本,并在解决错误的同时一点一点地更新代码? 这适得其反 ,为什么版本控制系统非常重要。
版本控制系统
在多种版本控制软件中, Git最受欢迎,它在线上提供了大量文档。 使用Git,您可以保留所需的多个修订版本,将文件分支出来进行一些代码实验,跟踪上次更改的代码部分,并在需要时恢复为原来的版本。
感觉像是过度杀伤力? 也许是因为它最初是为团队编程而开发的 ,但对于长期的个人项目也很完美。 您可能会犹豫,因为即使使用GUI版本,Git本身也需要学习很多东西。 但这只是迟早的事情(最好尽快完成),此外,网络上载有大量的教程和指南 ,可帮助简化学习过程。
9.没有额外的原型,完成当前项目
繁琐的编码和调试可能会耗尽人的身心。 而且我们中有些人甚至倾向于在完成工作之前就对我们的工作进行原型制作 。 从长远来看,原型制作是一种有益的行为,但是当您从工作场所逃脱时,它并没有帮助。
失去动力的一种更好的方法是享受与工作,锻炼,游戏,阅读完全无关的东西(也许吗?)—您必须保持工作生活的平衡 。 除了原型之外什么都没有。
程序员在出错时的30种常见反应
开发应用程序可能是一项非常艰巨的工作。 没有人是完美的,碰到越野车代码相当... 阅读更多
10.总是学习新东西
在此字段中,您可以很快淘汰它。 甚至在过去的10年中,许多开发方法和编程语言甚至都被淘汰了 。 即使您从拥有该学科学位的顶尖大学毕业, 也不能确保您仍然准备工作。
获得大学学位还是自学?
史蒂夫·乔布斯(Steve Jobs),马克·扎克伯格(Mark Zuckerberg)和比尔·盖茨(Bill Gates)是科技行业中的一些知名人士,他们... 阅读更多
生存和发展的唯一途径就是不断学习 。最好的学习方法是? 不要只是阅读,编程 。 挑战那些需要更高可扩展性的实际项目 。 这迫使您更有效地思考。 探索并享受创作过程。 在编程中不能忽略实践。 您编写的代码越多,您成为一名更好的程序员。