【.com快译】有人认为:无论是提高新手程序员、还是新老行性编程老司机,说到底并非代码的码农创造者,而是生产程序的“搬运工”。在项目开发中,建议他们希望自己能够高效、提高且颇有成就感地交付出完美的新老行性代码,但是码农现实却往往事与愿违。本文将从一名深耕编程领域多年的生产资深码农的角度出发,和您分享六个方面的建议经验总结,希望能够帮助您最大限度地提高生产率、提高并加快产品的新老行性交付速度。 1.使用恰当的码农编程语言 俗话说:“工欲善其事,必先利其器。生产”如果您的建议团队能够为应用程序选用合适的编码语言,势必会对开发任务的高效完成产生积极的正面影响。例如: 不过,无论如何,请尽量不要让最新的编程时尚影响您的语言选择。最新的不一定是最适合您手头项目的语言。就我个人而言:十年前,我们会用一些JavaScript在服务器端呈现页面。云服务器五年前,我们会用REST或GraphQL API进行客户端的数据渲染。而在2020年初,我们在应用程序中使用了TypeScript,来呈现服务器端数据。 2.不要自行实施身份验证 我参与过多个项目,其中有些是在应用程序中实现了自定义的身份验证,并且将加盐(salted)的密码哈希值保存到数据库中。实际上,这完全没有需要。由于我们拥有将身份验证委派给活动目录(Active Directory)的基础架构,因此用户完全可以使用与Windows登录名相同的密码。如今,我们已经拥有了Auth0及其类似产品,完全可以将身份验证委托给Auth0。据此,我们不但可以降低自行设计与实现身份验证所带来的潜在风险,而且能够为应用程序提供更好的安全性。 3.首先编写单元测试 没有测试驱动的设计,就像只知道编写代码,而不开展测试一样,您最终会发现各种无法解决的长方法、长参数列表等问题,亿华云而且这些代码也会变得难以维护和改进。有时候,您需要手动去执行“git reset”,或直接转入代码重构(https://www.refactoring.com/)。 为了成功地进行单元测试,我们可以将某些功能分解为如上图所示的“红色、绿色、重构”,这样的微循环。其中: 如此往复循环下去,以提高代码的质量,并增强团队对于软件产品的交付信心。 4.利用SaaS、IaaS和PaaS 如今,开发人员需要将更多的时间投入到那些非代码性的任务上,其中包括:基础架构、DevOps、以及集成等方面。实际上,您完全可以通过简单的git push,这类SaaS服务与工具,来部署应用的新版本,且无需与DBA、系统管理员等抢夺内网资源。SaaS、IaaS和PaaS等服务供应商可以帮助我们打理各种有关软件项目开发的基本琐事。例如,您不需要自行配置Logstash和ElasticSearch的复制,第三方服务公司会从您的应用中检索并提取相关日志,同时在保存了90天后再删除掉,以满足GDPR(欧洲《通用数据保护条例》,https://www.ctrl.blog/entry/gdpr-web-server-logs.html)的要求。当然,您既需要花时间去找到能够提供此类服务的可靠提供商,又要充分衡量将客户的信用卡、短信、邮件等信息,存放到第三方平台所带来的安全性问题。 此外,像Heroku之类的平台即服务(PaaS)提供商,不仅能够实现应用程序的外包托管,而且可以通过各种技术栈的预配置安装,提供基础架构和平台的日常运维。据此,您可以更加专注于软件产品的交付时间。 5.使用IDE来分析代码 一些常用的、广受欢迎的IDE(集成开发环境,如:Eclipse、IntelliJ、Visual Studio、以及VS Code等),要么过于复杂,要么只能发现case块中没有最终默认子句之类的问题。我们在实际项目中使用到了linter这一套开发工具(生态系统)。它能够集成IDE或编辑器的各种内置功能,方便我们开展各种调试。其中,SonarLint不但能够支持前面提到的各种IDE,还可以提供针对程序中安全问题、细微错误、以及不规范编码的各种建议。此外,您还可以使用SonarQube来衡量代码的质量,修正IDE中的错误建议,最终交付安全且易于维护的代码。 6.快速构建 作为独立的开发人员,您可能会选择在本地的开发环境中,运行测试和部署代码,并据此得到快速的反馈。但是,当您在进行团队协作时,程序代码就可能需要在CI/CD管道中运行了。为了按时完成任务,我们往往会用到Makefile、Gradle、或其他适合编程语言与运行时环境的构建工具,以便实现数据库的迁移、打包、部署、以及分发等过程自动化,并保证代码能够顺利地运行在生产环境中。 在任何新的项目开启时,我们都需要对其进行一些基础性的探索与研究。而在开发的生命周期中,我们的重点除了编写代码,还应当兼顾实施构建,搭建IDE,配置运行环境,部署生产环境,以及顺畅地与外部进行各种调用和交互。 小结 当然,在实际开发程序的过程中,我们可能会碰到许多影响到生产率和交货时间的因素。希望上面介绍的六种提高生产率的可行性技术建议,能够对您的项目实践提供帮助,让您事半功倍。 原标题:6 Productivity Practices for New (or Old) Developers ,作者: Michael Bogan 【译稿,合作站点转载请注明原文译者和出处为.com】