俗话说:台上一分钟,台下十年。如果你想在实际的软件项目中轻松开发出让客户满意并愿意为之付费的应用产品,你就有必要通过刻意的练习和反复的练习来培养一些良好的编程习惯。据此,在“实战”中,你可以事半功倍地完成简洁、易读、易维护的程序代码。下面,我们就来讨论九个值得资深程序员采纳的编程习惯吧!
1.编写友好的代码

永远记住:你不仅是在为机器写代码,也是在为你未来的“读者”写代码。因此,编写可读的代码尤为重要。有人曾经把编程比作写一首好诗。我们不仅要保持格式的一致性,还要保持代码段在缩进和命名规则方面的有序性。以下是一些你可以快速掌握的技巧:
符合命名规则
如果您使用下划线作为命名各种私有变量的第一个字母,请在代码的其余部分继续遵循这样的命名规则。如果您正在进行一项协作编程活动,请在让任何人接触这类代码之前,提前讨论此类命名规则。
值得注意的是,大多数编程语言可能已经有了由其核心语言或相应社区定义的标准化命名规则。因此,在大多数情况下,您不必自己创建另一套命名规则。
你可以使用所谓的linter或代码嗅探器来帮助规范和纠正代码,使其更加符合行业内的通用标准。以下是各种编程语言中常见的主流linter:
Php: phpcruby: rubocopshell或bash:shellcheckjavascript:eslintswith:tailor和SwiftLint描述性变量/方法名
无论是变量还是方法,它们的名字都应该能够准确描述它们代码的用途。比如Sort_PT这样的生僻缩写,很容易造成混淆,人们往往不知道PT是什么意思。所以为了避免歧义,我们需要将名称优化为:Sort_PostType,这样显然更容易理解。
当然,这里有一个例外。大多数程序员已经很熟悉用“ID”来表示身份,所以我们可以直接用“ID”的缩写形式来定义变量。
缩进和换行。
缩进的神奇之处在于,你只需要用一些简单的Tab键就可以显示出代码的整体结构,让后续的后继者清楚地了解它的功能,继续编写程序代码。
换行符的主要用途是:当同一行上的两个代码执行不同的操作时,那么我们就可以使用它。例如,为了避免复杂性,最好不要在同一行中链接不同的CSS属性。
2.想想组织结构
除了代码的整洁之外,良好的组织结构还有助于我们解决与可读性相关的问题。如果我们需要多次频繁上下滚动才能找到需要修改的代码部分,那么就需要将代码分成不同的段和块,方便快速定位和按需修改。
另外,请不要把所有代码放在一个脚本里。虽然单个文件原则上可以包含8000多行代码,但是这种“一站式”组织对于撤回一些经常出现的方法名来说完全是一场噩梦。毕竟,我们需要将“易于调整代码”作为首要考虑因素之一。
一般来说,我们可以学习的最佳实践有:
根据代码的主要功能将代码分成不同的文件。只要有可能,确保使用特定的编程语言来实现特定的功能。比如除非你有足够好的理由,否则请避免写jQuery的动画效果,用CSS3代替。而且,即使使用jQuery,也请在CSS文件中注明这种非常规行为的原因。3.编程前先计划
在为手头的项目打第一封信之前,你最好心中有一些编程的想法和计划。例如,虽然编写一个固定在页面上的导航菜单非常容易,但如果用户要求在向下滚动页面时,菜单可以自适应地最小化到边框,这就需要从长计议。

可见,为了避免盲目写代码导致的无休止的返工甚至“死循环”,我们需要在以下几个方面未雨绸缪:
预先准备过程
与其“边做边想”既编程又解决问题,不如事先设定好代码要解决的问题和要达到的目的,然后列出实现过程和方案。我们以上面提到的菜单为例,梳理一个典型的流程:
使用Bootstrap作为响应框架。创建导航菜单。补充。导航栏-固定在菜单顶部。当用户向下滚动页面超过200像素时,创建一个jQuery脚本来调整菜单的大小。如果用户滚动回页面顶部,再次调整菜单的大小。答疑解惑
梳理流程后,你一定会发现各种潜在的问题。比如如何根据菜单的大小来调整网站logo和菜单标题的大小?我们需要调整下拉菜单的大小吗?我们需要动态检测而不是静态检测吗?一旦清除了这些“雷坑”,我们就可以卷起袖子开始编写菜单的相关代码了。
4.写可控代码。
你不想一行一行地手工修改数百个变量吧?我不仅经历了这种惨不忍睹的过程,还持续了一年。从那以后,我就发誓要学会尽可能少的写需要手动修改的代码。
那么如何才能实现这个目标呢?答案是:请使用数组。数组非常适合存储多个变量,我们可以使用方便的for循环或for each方法来访问这些变量。
当然还有各种编程语言的动态方法来添加、排列和检索数据,包括:C#的List和LINQ。因此,请密切关注各种新的函数、库或插件,以实现高效的数据管理。
另外,为了避免重复修改代码中的一些内容,我们可以编写一些高度独立的代码。当其他代码段的内容被修改或更新时,这些代码既不会受到影响,也不会破坏整个系统。这被称为松耦合。
5.不要过度开发
随着技能的成熟和提高,我们会逐步接手开发一些更复杂的软件产品,以满足更广泛用户的需求。但是,值得注意的是,我们应该避免陷入另一个陷阱——过度开发项目的一个完全不必要的功能。也就是说,在开发的过程中,要定期提醒自己关注项目的主要目标,只添加那些符合这个目标的基本功能。例如,如果知道集合的确切大小,请使用数组类型;如果List的功能可以按需检索数据,就不要使用高级LINQ了。
套用一句哲学名言:“你能,不代表你应该”。也就是说,请不要浪费时间去开发这个软件产品中几乎不需要的插件或者功能。毕竟你不是在预研或者创新阶段,你需要交付成熟的产品。其中,项目的主要功能和目标是最值得你花费时间的。
6.学会调试
正如“有人的地方就有江湖”,有代码的地方就会有bug。为了最大限度地减少代码中的缺陷,我们应该不断地学习和提高对程序的调试技巧,我们需要掌握现有的各种调试工具,以节省交付时间,提高效率。
目前各类浏览器普遍配备了强大的开发者工具。它们通常具有方便的调试功能,如错误检测、断点设置、表达式跟踪、性能检查等。
同时如Aptana Studio 3 editor 8。版本控制

有时,由于当前程序中的严重错误,您需要回滚代码的早期版本。想象一下:如果错误涉及代码库中的多个文件,而这些文件是在几天前甚至几个月前被修改的,我们该怎么办?想必你已经意识到了版本控制系统的重要性。
Git是业界最流行的版本控制软件。它有很多在线资源。使用Git,您可以根据需要保留各种修订版本,为代码实验“分支”文件,跟踪最后更改的代码部分,并能够根据需要恢复原始版本。
9.总是学习新的东西。
如果你是一个资深的码农,你一定见证过很多开发方式和编程语言在过去10年里早已被淘汰的历史。即使是那些从软件开发领域顶尖公司跳出来的程序员,也未必能马上胜任新的开发领域和任务。
既然程序员注定要紧跟最新的开发技术,那么学习就成了他们职业生存和发展的必要途径。我这里说的学习不仅仅是简单的阅读套路和编程练习,更重要的是通过一些具有挑战性的实践项目进行持续的练习。只有在游泳中学会游泳,才能学得更扎实,用得更灵活。


