防护等级代码_代码意识等级

防护等级代码

编写代码就是要同时在多个抽象级别上工作。 但是,除了在多个抽象级别上工作之外,对代码的认识也有多个级别。

代码意识的最基本层次就是使代码正常工作。 这行代码是否可以编译,运行并按照我的预期去做? 在学习编码这一最低级别的知识时,几乎消耗了我们的全部能力:除了仅键入正确的语法外,很难专注于其他任何事情。

一旦我们掌握了可以正常工作的代码的输入,便有了另一种意识:这行代码的意图是否明确? 另一个人能够理解吗? 地狱,一个月后能理解吗? 这是代码可读性开始的地方。 在编写代码时,我们会花一些精力来确保代码可读。

但是,代码的可读性不仅仅是隔离的每一行代码。 我们还需要考虑在此方法的其余部分中这条线是否有意义,也许我们应该提取一个新方法? 在此类的其余部分中,这一行代码是否有意义? 该行为是否属于其他地方? 我发现的设计实际上有意义吗? 是否一致? 我实现的模式与应用程序的其余部分是否一致? 除了使每一行代码都可以编译外,还有许多更高的层次–遍及应用程序中的每个较大结构:方法,类,模块,组件,系统。

除了代码的易读性之外,还有其他因素要注意:该代码中的错误是否易于理解,异常是否可以帮助我快速到达代码的正确部分,如果我所依赖的东西失败了怎么办? 该代码在什么情况下以什么频率调用会好吗? 此代码安全吗,攻击者是否有办法利用此代码?

编写良好的代码要求开发人员始终意识到这些级别。 但是,如果我们感到疲倦,宿醉或受够了,我们可能不会花很多时间解决这些问题。 我们将使代码摆在我们面前,而忽略大局。 当我们缺乏思维能力时,我们倾向于不再担心更高层次的问题,而专注于较低层次,更容易解决的问题。 我们告诉自己:“稍后我会再修复设计”。

这是配对可以提供帮助的地方。 我认为配对伙伴只是在考虑更大的范围,这是不对的。 但是非驾车伙伴肯定有多余的能力去思考这些事情,并作为良心来对抗驾驶员遗失或疲劳的情况。

我喜欢在面试情况下使用动手编码练习,因为它有助于突出开发人员的意识。 通常,我正在寻找对于给定问题具有足够能力快速,良好地解决问题的开发人员。 能力较弱的开发人员通常会花更长的时间和/或严重解决问题。 但是在面试的情况下,除了解决问题外,还有其他的意识水平:我正在做的事情是否能给人留下良好的印象? 我是否以正确的方式(例如使用TDD)解决了问题? 我解决问题的方法是炫耀正确的技能吗?

例如,前一段时间,我采访了使用“收益率回报”的候选人。 这是一件不寻常的事情,所以我问为什么要使用它? “开始讨论您是否应该使用它”。 我发现这给人留下了深刻的印象:具有足够的智力能力的候选人不仅可以很好地解决眼前的问题,还可以为自己解决问题。 但是仍然有足够的备用能力来意识到,有机会纯粹使用不寻常的结构来引发对它的讨论-通过代码有效地推动面试,以展示他们的知识和经验的深度。 这是您团队中想要的那种人:具有足够的备用头脑能力以确保代码干净且设计正确的人。

我认为这种能力不足是为什么我们在疲倦,学习新语言或学习新框架时编写的代码很糟糕:为什么我们所有的能力都集中在使代码正常工作,而不是有足够的能力来考虑代码是否可读或设计是否合理。 当我们努力使代码按我们的要求工作时,只是为了让编译器满意,难怪结果是一团糟吗?

如果您想了解我能为您的公司带来多少智力,为什么不雇用我呢? 我现在正在寻找新角色-所以给我留言dave@activelylazy.co.uk

翻译自: https://www.javacodegeeks.com/2016/08/code-awareness-levels.html

防护等级代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值