资深码农应该养成的九个好习惯在实际的软件项目中要想开发出让客户满意并且愿意为之买单的应用产品,那么就需要通过刻意练习和反复练习养成一些良好的编程习惯。相应地,您只需在“实战”中投入较少的精力,即可完成简洁、易读、易维护的程序代码。下面,我们就来探讨一下值得资深码农的九种编程习惯吧!1.编写友好的代码,请永远记住:你不仅是在为机器编写代码,也是在为你未来的“读者”编写代码。因此,编写可读性强的代码尤为重要。有人曾经把编程比作写一首好诗。除了在格式上保持一致,我们还应该在缩进和命名规则方面保持代码段的组织良好。这里有一些技巧可以让你快速掌握:遵循一致的命名约定如果你使用下划线作为首字母来命名各种私有变量,那么请在其余代码中继续遵循这种命名规则。如果您正在进行协作编程活动,请在让任何人接触代码之前讨论此命名约定。值得注意的是,大多数编程语言本身可能已经有了自己的核心语言,或者相应的社区定义(比如:PHP-FIG,见——https://www.php-fig.org/psr/psr-12/)标准化的命名约定。因此,在大多数情况下,您不必自己创建另一组命名规则。您可以使用所谓的linters或代码嗅探器(codesniffer)来协助规范化和纠正代码,使其更符合通用的行业标准。以下是各种编程语言中常见的主流linter:ShellCheck--https://www.shellcheck.net/JavaScript:ESLint--https://eslint.org/和JSHint--https://jshint.com/Swift:Tailor--https://tailor。sh/和SwiftLint(https://github.com/realm/SwiftLint)描述性的变量/方法名称无论是变量还是方法,它们的名称都应该准确描述其代码的用途。比如Sort_PT()这样不常见的缩写很可能会引起混淆,人们往往不知道PT是什么意思。因此,为了避免歧义,我们需要将名称优化为:Sort_PostType(),这样显然更容易理解。当然,这里有一个例外。大多数程序员已经熟悉使用“ID”来表示身份,所以我们可以直接使用“ID”的缩写形式来定义变量。缩进和换行缩进的神奇之处在于,你只需要用一些简单的Tab键就可以显示出代码的整个结构,让后续的后继者能够清楚地了解它的作用,继续将程序代码继续下去。写。换行的主要目的是:当同一行的两段代码执行不同的操作时,我们就可以使用它。例如:为避免复杂性,最好不要在同一行上链接不同的CSS属性。2、组织结构的思考除了代码的整洁之外,好的组织结构也有助于我们解决与可读性相关的问题。如果我们需要经常上下滚动多次来找到需要修改的部分代码,那么就需要将代码分成不同的段和块,方便快速定位和按需修改。另外,请不要将所有代码放在一个脚本中。虽然单个文件原则上可以包含8000多行代码,但这种“一站式”组织对于撤回一些频繁出现的方法名来说完全是一场噩梦。毕竟,我们需要将“易于调整代码”作为首要考虑因素之一。通常,我们可以借鉴的最佳实践是:根据代码的主要功能(例如:管理器、界面、动画、扩展等)将代码分成不同的文件。只要有可能,请确保为特定的功能目的使用特定的编程语言。例如:除非你有足够充分的理由,否则请避免编写jQuery动画效果,而使用CSS3编写动画效果。而且,即使您使用jQuery,也请注意您的CSS文件中出现此类违规行为的原因。3.先计划再编程在为手头的项目输入第一个字母之前,您最好考虑一下某些编程思想和计划。例如:写一个固定在页面上的导航菜单很容易,但是如果用户要求在页面向下滚动时菜单可以自适应最小化到边框,那么就需要从长远考虑.可见,为了避免盲目手写代码造成无休止的返工甚至“死循环”,我们需要在以下几个方面提前做好规划:提前准备流程,“边做边想”编程和考虑解决问题,最好事先设定好要解决的问题和代码的用途,然后列出实现过程和计划。我们以上面提到的菜单为例,梳理一个典型的流程:使用Bootstrap作为响应式框架(见--https://www.hongkiat.com/blog/tag/rwd/)。创建一个导航菜单。将.navbar-fixed-top添加到菜单。创建一个jQuery脚本,当用户在页面上向下滚动超过200像素时调整菜单大小。如果用户滚动回到页面顶部,再次调整菜单的大小。回答问题梳理完流程,你一定会发现各种潜在的问题。例如:我们如何根据菜单的大小来调整网站的logo和菜单标题的大小?我们需要调整下拉菜单的大小吗?我们是否需要动态检测而不是静态检测?一旦这些“雷和坑”都清除了,我们就可以撸起袖子开始写菜单的相关代码了。4.编写可控代码你不会想一行一行地手动修改成百上千个变量吧?当年不仅经历了这样悲惨的过程,而且持续了一年。从那时起,我就发誓要学习编写需要尽可能少的手动修改的代码。那么我们如何实现呢?答案是:请使用数组(Array,参见--https://www.w3schools.com/js/js_arrays.asp)。数组非常适合存储多个变量,我们可以使用方便的for循环,或者foreach方法来访问这些变量。当然,目前各种编程语言中都有动态方法可以添加、排列和检索数据,包括:List(参见--http://www.dotnetperls.com/list)和LINQforC#(参见---http://www.dotnetperls.com/linq)。因此,请密切关注各种新功能、库或插件,以实现高效的数据管理。另外,为了避免重复修改代码中的一些内容,我们可以编写一些高度独立的代码。当其他代码段的内容被修改或更新时,这些代码既不会影响也不会破坏整个系统。这称为松散耦合,请参阅--http://social.msdn.microsoft.com/Forums/en-US/c747f40a-7091-4f59-98b1-c637814d275b/cnet-what-is-the-exact-meaning-of-松耦合?forum=netfxbcl)。5.不要过度开发。随着技能的成熟和水平的提高,我们会逐步接手一些更复杂的软件产品的开发,以满足更广泛用户的需求。然而,值得注意的是,我们需要避免陷入另一个陷阱——过度开发项目的一个完全没有必要的特性。即在开发过程中,要定期提醒自己关注项目的主要目标,只添加满足这个目标的那些基本功能。例如:如果知道集合的确切大小,请使用数组类型;如果List函数可以按需检索数据,请不要使用高级LINQ。套用一句哲学名言:“仅仅因为你可以并不意味着你应该”。也就是说,请不要浪费时间开发本软件产品中很少使用的插件或功能。毕竟你不是在预研或者创新阶段,你需要交付一个成熟的产品。最值得你花时间去实现的是项目的主要特性和目标。6、学会调试就像“有人的地方就有江湖”,有代码的地方就会有bug。为了尽量减少代码中的缺陷,我们应该不断学习和提高程序的调试技巧,掌握现有的各种调试工具,以节省交付时间,提高效率。目前各种浏览器普遍配备了强大的开发者工具(DeveloperTools简称DevTools,请参考--https://developers.google.com/web/tools/chrome-devtools)。它们通常具有方便的调试功能,例如错误检测、断点设置、表达式跟踪、性能检查等。同时,像AptanaStudio3这样的工具(参见--https://developers.google.com/web/tools/chrome-devtools)和XamarinStudio(参见--https://visualstudio.microsoft.com/vs/mac/xamarin/之类的IDE)甚至带有一个强大的内置调试器,您可以随时调用它。当然,调试器不可能完全看懂你的代码,所以我们还需要把console.log的日志功能放到代码中,保证能很好的和变量结合。如果您仔细搜索,可以在网上找到针对不同编程语言的高级、特定调试方法(参见--https://developer.mozilla.org/en/docs/Debugging_JavaScript)。7、寻找更有力的编辑器俗话说:工欲善其事,必先利其器。一个好的程序编辑器不仅可以帮助我们提高编程技能,还可以加快项目的完成速度。因此,无论你的编程水平如何,我都强烈建议你选择带有代码自动补全功能的编辑器,例如:SublimeText(参见--https://www.sublimetext.com/3)、VisualStudioCode(参见--https://code.visualstudio.com/)和AptanaStudio3。此类工具不仅可以帮助初学者识别和学习编程语言的语法,还可以为专业人士提供更好的代码建议和解决方案。值得注意的是,大多数IDE只支持某些语言代码的自动补全,所以你需要提前知道它们支持哪些开发语言。例如,我非常喜欢MonoDevelop的代码模板功能(参见--http://monodevelop.com/)。使用自定义快捷方式,我可以将自定义代码模板从通用switch语句导出到成熟的管理器脚本中。此功能对于大型项目非常有用。此外,您还可以使用以下领域的基本功能:调试器正则表达式替换宏版本控制支持数据库支持分割编辑布局定制器所见即所得(WYSIWYG)编辑器8.版本控制当前的严重错误需要回滚到早期版本代码的程序。想一想:如果错误涉及我们代码库中的多个文件,这些文件是几天前甚至几个月前修改的,我们会怎么做?据推测,您知道版本控制系统的局限性。重要性。在业界常见的版本控制软件中,Git(见--http://git-scm.com/)最为流行。它有很多在线资源。使用Git,您可以按需保留各种修订、代码试验的“分支”文件、跟踪代码的哪些部分最近被更改,并能够按需恢复原始版本。9.永远学习新事物如果你是一个资深的coder,那么你一定见证过很多在过去10年里早已被淘汰的开发方式和编程语言的历史。即使是那些从软件开发领域顶尖公司跳出来的程序员,也未必能立即胜任新的开发领域和任务。由于程序员注定要紧跟最新的开发技术,学习成为职业生存和发展的必要途径。我这里说的学习不仅仅是简单的看书套路和编程练习,更重要的是通过一些有挑战性的实际项目不断实践。只有边学游泳边游泳,才能学得更扎实,用得更灵活。原标题:开发者应该养成的10个编程习惯,作者:lvarisFalcon
