编写代码的软件用什么编写的

特别感谢许多阅读本文并为我提供有用反馈和建议的人:Anya Roltsch,Frank Schubert,Olga Hollister,Ravi Varshney,Ashansu Pant,Marcus Blankenship,Sandra Jones,Taylor Davenport。

编写代码是非常个人的行为。

软件开发人员在锻炼时会考虑要在工作中,在汽车中,在家中编写的内容,有时甚至梦到自己必须做的工作或需要解决的问题。

最好的软件开发人员与他们编写的代码有着情感上的联系。 他们非常在意编写优雅,简单的软件,并表现出他们作为工匠和业务领域专家的能力。

另一方面,其他开发人员不了解或同情分析他们创建的代码,对其进行阅读,使用,使用和故障排除的同事。

在本文中,我将解释开发人员为什么要关心并考虑许多不同的角色以及在编写代码时会受到影响的人员。

我将通过描述软件工程团队的各种角色,然后解释开发人员编写的代码影响其工作的哪些方面来做到这一点。

软件工程团队

整个商业世界已经意识到,软件工程既是团队活动,又是技术职业。 由协作,热情,直接,诚实的人组成的软件工程团队所创造的软件要比功能失调的团队或单独开发人员通常要好得多。

团队中的每个开发人员都必须一遍又一遍地阅读他们创建和维护的代码,因为他们一起增强了代码库并对其进行故障排除。 他们还必须了解所使用的每种代码模式和抽象,当发生严重错误或业务思维发生重大变化而代码中所使用的概念发生较大变化时,这尤其会带来压力。

你未来的自我

我朋友的女儿上学,在学年的第一天,所有的孩子都被问到了他们爸爸的工作。 她说:“我的父亲输入文字。” 开发人员每天写很多小时的代码,有时每天都要写。

每周编写如此多的小时,可能会导致开发人员在尝试优化通过简洁进行打字的时间时对代码模式变得懒惰。 结果可能是难以理解的变量名,过度优化,难以阅读的代码,过于宽泛的异常处理程序或忽略异常的异常处理程序,对业务需求复杂或关键的部分代码缺少注释或一致性差具有编码风格。

把它弄出来,把它做好,继续前进,直到将来的某个时候-“我们需要扩展blarg组件来做Y。” 无声的呐喊! 这段代码是谁做的? 我不能做它的头或尾! 后来发生了一次“ git blame”,接着是脸掌-“哎呀,那是我吗?”

减少代码中关于业务概念和业务逻辑知识的假设数量。 在代码中添加注释,说明哪些逻辑领域对业务异常重要以及为什么。 链接到描述源代码本身中代码支持的产品或服务的外部资源。

质量检查工程师

质量检查可确保应用程序网页的样式和布局在3种不同操作系统上的4种不同浏览器上正确显示。 它们确保应用程序错误将有意义的消息返回给应用程序用户。 他们有意尝试滥用该应用程序,以验证当应用程序代码遇到意外输入时,它不会崩溃,并向系统开放以进行堆栈指针重定向攻击,远程代码执行攻击,SQL注入攻击或其他安全漏洞。

无论是通过手动测试还是通过自动化,QA都会努力确保每个版本都具有一致的用户体验和质量水平。

质量检查小组工作的一部分是在客户发现错误之前先发现它们; 错误通常意味着代码在特定业务工作流完成之前就停止了。 异常可能是有意的(拒绝来自用户的无效数据),也可能是服务器捕获了由代码引发的意外的,未捕获的异常,并在其浏览器中向用户返回了通用错误响应(例如,HTTP状态码为500) ),或者引发JavaScript异常,从而在浏览器中生成堆栈跟踪。

质量检查(QA)花了大量时间思考代码,执行代码以及对代码进行故障排除,以确保在客户看到代码时看起来像是一颗好钻石。

逻辑上组织代码,编写有意义的,以用户为中心的错误消息,考虑用户可能如何误解业务逻辑并传递应用程序意外输入。

待命工程师

硬件? CPU? 内存? 网络? 水平缩放? 并行处理? 那是什么?

大多数开发人员对所有这些术语都有相当深刻的了解,并且对在本地运行其代码以进行开发或在托管面向客户的应用程序的生产中运行其代码的容器,虚拟机和硬件有所了解。

许多开发人员没有考虑该过程的黑暗部分-由于不存在必需的配置参数而导致程序无法启动,当计算资源的RAM或磁盘空间不足时(凌晨2点),意外崩溃(尖叫声)警报,唤醒应召唤人员,然后该人员必须设法进入计算机,登录一个或多个系统,进行有针对性的故障排除,根本原因分析以及中断/修复工作以更正运行时发生的错误。

当程序中发生重要动作时,编写有意义的日志消息,向错误消息添加有用的上下文,并确保2 AM苦苦挣扎的人可以理解这些错误消息,以弄清事务处理器为何不处理事务。 精心组织代码,以便即使是非编码人员也有机会了解发生的事情以及原因。

现场可靠性工程师/三级工程师

另一群通常在情况最糟糕之前才看代码的人:系统崩溃,无效数据存储在数据库中,用户无法登录,Web界面间歇地显示空白页面或与最终用户系统不一致生成的错误消息。

这些人深切地关注理解代码的逻辑和布局,以便在发生运行时问题时,他们可以帮助工程团队修复错误-通过确定逻辑在代码中的何处出现,失败影响了多少人以及故障的严重性。 故障可能是程序意外退出或性能问题-为什么原本只需要300毫秒的应用程序功能现在却需要10秒钟?

当业务工作流程错误发生时,引发异常并创建有意义的日志消息,以显示发生了什么以及为什么。 命名类,函数,方法和变量,以便分析代码的人可以在最坏的时刻(即破损时)理解其流程和功能。

最近加入团队的软件开发人员

成为团队中的最新开发人员会感到不安,尤其是如果在解散前一个团队之后新组建了一个团队,或者该团队非常成熟并且已经建立了自己的代码模式和期望。

还记得成为新人时的感觉吗? 如果您不这样做,请花点时间思考一下-您必须弄清楚源代码维护实践,编码标准,代码组织标准,命名约定,代码模式和代码中使用的特定于域的术语,以及它们如何映射到业务术语。

最大限度地减少理解代码所需的隐含上下文和知识。 使用众所周知的和易于理解的代码模式来组织代码和组合在一起的组件,从而形成整个应用程序。 学习并遵循由使用应用程序所使用的语言编写的开发人员社区规定的习惯用法。使用在业务领域中广泛使用和接受的术语来命名变量。

入门级软件开发人员

作为团队中的最新开发人员,难点是什么? 成为入门级开发人员! 在学习团队实践的基础上,您正在学习如何设计,开发和交付代码-许多新的思维模型和实践需要学习。

入门级开发人员经常被要求修复错误,因为错误是具有明确目标的重点任务,并使开发人员接触到系统的许多部分。 作为入门级开发人员的Bug面临什么挑战? 作为入门级开发人员,可能需要花费大量时间阅读和理解代码。 有许多新的业务和软件工程术语需要学习,有许多问题需要理解以了解代码并找到错误的修复程序。

避免在变量,函数,方法和类名中使用术语。 在代码中使用简单的模式。 遵循单一责任的原则。 通过编写易于阅读和理解的代码来帮助您团队中的入门级开发人员。

产品经理

产品经理,产品负责人,项目经理,Ui / UX员工,业务分析师,Scrum Master。 工程团队需要许多角色来创建业务需求,路线图和上下文,以创建可为公司带来价值的应用程序。

想一想推动公司软件开发需求的人员。 在应用程序中学习和使用特定于业务领域的概念,以使应用程序的代码和其他组件很好地映射到业务级别的术语,并且需要使与业务人员的对话更容易理解。

技术经理

那个人。 确保您获得报酬的人,希望指导您,保护您的注意力和注意力,帮助您的职业发展,对工作和家庭生活保持平衡有同情心的人,希望看到您尽力而为的人通过积极的支持,指导以及明确的战略和战术目标,帮助您保持最佳绩效。

在编写代码时,请考虑一下您的经理-做一名工匠,使每一行代码都很重要,花足够的时间进行设计,提出问题,并在编写代码之前与您的团队讨论实施的方式。

结论

在软件工程团队中,有很多人使用,关心和依赖软件开发人员编写的代码-对他们有同理心,理解和赞赏,并在创建程序时考虑它们。

我想念谁? 还有哪些其他角色或角色在乎代码? 在您的公司,您的团队,您的专业领域中谁在乎我没有谈论过的代码?

现在,继续设计和创建应用程序,它们对您的专业,您的同行和与您一起工作的其他专业人员以及您的软件工程团队创建和维护的代码有更深的同理心,理解和尊重。

翻译自: https://hackernoon.com/who-are-you-writing-that-code-for-anyway-69cx310s

编写代码的软件用什么编写的

编写代码的软件用什么编写的_您到底是为谁编写代码?相关推荐

  1. 计算机毕业设计时间修改代码程序软件安装运行问题题目汇总送开题送文档先代码

    毕业设计时间分为三个你必须改的 1数据库表内的数据时间 可以直接在表里修改 2网页上的时间也就是文字形式,可以直接在程序里修改 3文件夹的创建时间和修改时间 必须用软件统一修改 需要修改软件的可以喊我 ...

  2. 读《代码不朽:编写可维护软件的10大要则》C# 版

    这本书特别针对没有接受过计算机科学或软件工程专业学习的软件开发人员,这类人员除了熟悉所用语言语法和语义之外,很少接受其他专业培训,对软件工程中的一些概念理解欠缺.软件设计方面考虑较少.如果要成为一个专 ...

  3. 编写代码的软件用什么编写的_如何通过像编写代码一样克服对编写的恐惧

    编写代码的软件用什么编写的 by Chris Rowe 通过克里斯·罗 How often do you get the fear? What do I mean by fear? How about ...

  4. 写html前端代码的软件_html用什么软件编写

    HTML代码可以用Brackets.WebStorm.vscode.Sublime Text.HBuilder .EditPlus等开发工具来编写. web前端学习:打造全网web前端全栈资料库(总目 ...

  5. 编写代码的软件用什么编写的_如果您编写代码,这就是您的黄金时代

    编写代码的软件用什么编写的 这是10月22日至23日在北卡罗来纳州罗利举行的万物公开会议第一天的两个主题演讲的部分抄写. Forrester Research副总裁兼首席分析师Jeffrey Hamm ...

  6. 编写代码的软件用什么编写的_编写出色的代码

    编写代码的软件用什么编写的 Writing great code that is not only functional and bug-free but also leverages all asp ...

  7. 用Qt编写STM32烧录软件(ISP模式)代码

    1.前言 之前写了一篇[用Qt编写STM32烧录软件(ISP模式)],但是在文中没有具体的实现代码. 现在补上,各位有兴趣的同学可以参考以下.但是代码里面还有很多没有完善的,必定会存在一些bug,目前 ...

  8. 代码不朽——编写可维护软件的十大要则

    导读 人类到目前为止已经能够度量越来越多的东西,例如时间.长度等,但是在软件开发领域,我们依然很难去评估一个软件系统的质量,以及维护它的难易程度.可维护性越差,意味着开发成本越高.开发速度越慢,以及由 ...

  9. 编写代码的软件用什么编写的_团队编写代码

    编写代码的软件用什么编写的 Software is rarely written in a silo. Whether you're building the next social media ap ...

最新文章

  1. repeater用法一步一步详讲,用来绑定和显示数据信息
  2. C语言对p1口取反,单片机c语言编程基础(5页)-原创力文档
  3. Vue报错Module not found: Error: Can‘t resolve ‘less-loader‘
  4. 已知三角形三边长怎么求面积_已知三角形三边求面积的公式——海伦公式
  5. 2021-04-10 【数据库导数】数字类型的列如果位数过长,变为科学计数法问题
  6. 关于 Java 9 你所需要知道的一切
  7. vim编辑器的快捷键使用
  8. C mysql带参数存储过程_C# 调用Mysql 带参数存储过程
  9. singleTask和startActivityResult
  10. 冰点还原精灵是怎么用的
  11. [附源码]Java计算机毕业设计SSM大学生学科竞赛管理系统
  12. 【Zeekr_Tech】为自动驾驶保驾护航—谈谈主流中间件设计
  13. 华为校园编码达人秀(第二季) 查找家谱
  14. Whale帷幄 - 智慧化门店 智慧化运营
  15. Win10开启黑色护眼暗黑主题
  16. ispring 软件改变PDF阅读困难,电子书轻松阅读!
  17. 教你如何搜索电影资源,再也不为没有电影资源烦心!
  18. 绥化学院学报杂志绥化学院学杂志社绥化学院学报编辑部2022年第9期目录
  19. Mac(Alfred) 办公提效工具
  20. 搭建可视化管理DNS服务器

热门文章

  1. JAVA文件编码转换:gbk转utf-8
  2. 十二个“一”的特征与剑三中十二门派风格相对应
  3. 电力系统故障点分析,短路类型分析,中性点小电流接地 不接地故障分析,故障点定位
  4. 滤波电容为什么要靠近放置,去耦半径是什么?滤波电容如何打孔?(转)
  5. JAVA的人民币大写(金额)转化
  6. chromium内核edge浏览器开启多线程下载
  7. 耶鲁大学《博弈论》课程——纳什均衡
  8. mysql proxy mycat_mysql数据库代理MyCAT搭建
  9. 海到无边天作岸,身登绝顶我为峰
  10. 红米note4出厂系统版本_红米Note4发布!出厂就有MIUI8黑科技