懒惰学习

我喜欢编写良好的代码。 我喜欢达到完美。 我想寻找最合适的设计和解决方案。 我之所以这样做并不是因为我将软件开发视为一种艺术,而将自己视为艺术家。 我从来没有这样看过。 我正在做,因为我知道它会有所回报。 我最大的动力之一就是我自己的懒惰。

您应该是一个懒惰的开发人员!

您是否曾经对class / method / field / etc的名称有任何疑问。 ? 如果是的话,那么您就会知道提出一个具有良好描述性和不言自明的名称可能会很困难。 您可能会遇到这样的问题。 经过一番无能为力的思考后,这个新主意浮现在您的脑海–也许我会原样保留它? 好吧,最后只是名字,不是吗?

我的开发人员不要朝这个方向发展。 如果现在很难想出一个好名字,那么当您在上下文中并且了解此神秘代码时,请尝试想象一下,从现在开始的一个月后,如果没有专有名称,理解该代码将有多困难! 您不想读很多行。 您不想寻找“为什么”,“什么”和“如何”。 您不需要这种努力。 你应该为此懒。 最好是现在再花一个小时,而不要再花几天。

您应该是一个懒惰的开发人员!

您正在阅读代码。 有些事情您可以很快理解。 但是,有些情况的情况要差一些,要弄清楚它们的状况要困难得多。 但是您必须了解此功能,因为您的团队将在此处进行需要修改的更改(功能?错误修复?什么)。 因此,您正在阅读。 最终,您对此代码的了解更少了。 在特定情况下会发生什么。

下一步是什么? 发展愉快吗? 如果是,那么您应该停一会儿。 也许这是快速重构的好时机?

我知道重构需要一些时间。 你能估计多少吗? 与您花在“实际”工作上的时间相比,多少钱? 我向您保证,这不是您想像的那么多。 我为什么这么确定? 因为您已经完成了最艰巨的工作。 您了解了代码。 重构是什么? 关于增加代码的描述性!

使用您已经收集的知识! 你知道什么很难理解。 您知道有问题的地方。 更重要的是–现在您已经了解了代码的这些部分! 如果您没有时间进行简单的重命名和私有方法提取就足够了。 但是请相信我,这些重命名和提取将使理解代码的痛苦减轻。

如果您仍然不相信,请提醒自己,您花了多少精力和时间来理解该代码。 您是否想再经历一次? 你应该太懒了!

您应该是一个懒惰的开发人员!

开发人员阅读的代码远比编写的要多。 这是众所周知的事实,很明显。 您是否曾经去过一个真正无法理解代码部分合理性的地方? 您正在经历您可以想象的每个业务场景,但您仍然不知道为什么首先编写此代码! 一段时间后,您几乎可以确定该代码是无用的并且不需要,并且您几乎决定删除它,但是……也许有一个神奇的地方可以通过反射使用它? 你只是有点害怕。 如果?

您不想在那个地方。 您不想感到恐惧。 您不想被迫想象每种情况。 您总是有可能错过一两个或更多。 这总是额外的努力。 有时很大。 什么会更容易? 什么会让您忘记恐惧? 对代码进行测试将对此有用。 写得很好的测试可以用作很好的文档,您不觉得吗?

在开发过程中,不要让自己跳过测试部分。 您必须为此懒惰!

您应该是懒惰的开发人员!

您是否知道其他想法,我们可以如何利用懒惰来发挥优势? 如果是,请分享并发表评论!

翻译自: https://www.javacodegeeks.com/2017/01/for-the-sake-of-laziness.html

懒惰学习

懒惰学习_为了懒惰!相关推荐

  1. python ui bs_Guibs的Python学习_列表

    Guibs 的 Python学习_列表# 列表# 列表由一系列按特定顺序排列的元素组成, 其中元素和元素之间可以没有任何关系 # 在 Python 中, 用方括号 [] 来表示列表, 并用逗号 , 分 ...

  2. python学习_循环语句

    python学习_循环语句 第1关:斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列. 因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...

  3. linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数

    linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...

  4. 交通流分析2:《基于公共交通大数据的上海市居民出行时空特征研究_王宇》和《面向交通拥堵预测大数据的神经网络群组快速学习_沈晴》阅读总结

    上一篇的地址:https://blog.csdn.net/qq_43012160/article/details/103313749 基于公共交通大数据的上海市居民出行时空特征研究_王宇 这篇论文内容 ...

  5. linux lvm 8e下继续划分分区,linux下LVM学习_逻辑卷管理

    一.LVM介绍 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,通过LVM可以在不停机的情况下调整分区大小,提高了磁盘分区 ...

  6. 机器学习深度学习加强学习_加强强化学习背后的科学

    机器学习深度学习加强学习 机器学习 ,强化学习 (Machine Learning, Reinforcement Learning) You're getting bore stuck in lock ...

  7. STL学习_配接器篇

    STL学习_配接器篇 定义 配接器(Adapter)在STL组件的灵活组合运用功能上,扮演着轴承.转换器的角色.它事实上是一种设计模式.即将一个class的接口转换为另一个class的接口,使原本因接 ...

  8. TIA博途SCL学习_堆栈的入栈和出栈(后入先出)程序示例

    TIA博途SCL学习_堆栈的入栈和出栈(后入先出)程序示例 如下图所示,添加一个FB块,语言选择SCL,命名为"入栈", 如下图所示,通过FOR循环实现堆栈数组内的元素的移动,并将 ...

  9. python 学习_第五模块 DMO

    python 学习_第五模块 DMO 1. 节点 <!DOCTYPE html> <html lang="en"> <head><meta ...

最新文章

  1. phoenix 开发API系列(三)phoenix api 结合数据库
  2. 谷歌最新论文:从图像中进行3-D目标检测
  3. java 工厂模式 计算器_简单工厂模式实现简易计算器
  4. 实况CDN专线网络技术架构如何?
  5. mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法
  6. Centos7 安装mongodb记录
  7. 解决Springboot文件上传报错,java.io.FileNotFoundException: D:\System\Temp\tomcat.819...00.tmp (系统找不到指定的文件。)
  8. 4. MyBatis几个可以优化的地方
  9. 鲜活的数据 : 数据可视化指南
  10. php表格无限扩展,php 无限级缓存的类的扩展
  11. 海康4200门禁导入人脸_刷脸开门,海康智脑NVR无感开门方案来啦~
  12. server is DOWN now, please try again later!
  13. 生鲜配送小程序源码_ThinkPHP社区水果生鲜蔬菜同城配送服务平台 社区团购商城小程序源码...
  14. Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版]
  15. Java数组 排序算法和常见异常
  16. 旋转屏幕时数据的保存与恢复
  17. Java中submit的方法,线程池中 submit()和 execute()方法区别
  18. 从C/C++到Python(之二)(By Robinvane Suen)
  19. xlrd.biffh.XLRDError: Excel xlsx file; not supported 。我也来蹭一下热度~
  20. JavaScript递归函数求阶乘

热门文章

  1. node.js 从入门到?
  2. iPhone用android充电头,安卓充电器也可以给iPhone 12快充!
  3. android 7.0之后的打开相机拍摄头像上传
  4. 算法——暴力之美(volence‘s beautify of algorithm)
  5. 线程池详解-队列、抛弃策略
  6. 计算机考研初试经验分享
  7. 互联网账户系统如何设计(上篇)
  8. 华为云申请SSL HTTPS
  9. 如何快速找出电脑里的所有视频\照片\文件
  10. Android源代码编译的准备工作