写点什么

感觉要起飞!终于找到开发效率低的原因....

作者:Jackpop
  • 2021 年 11 月 09 日
  • 本文字数:2430 字

    阅读完需:约 8 分钟

程序员宝藏库:https://github.com/Jackpopc/CS-Books-Store


有效的时间管理是大多数成功的软件工程师都具备的技能。


它可以帮助你在职业生涯中快速提升,而不必在冲刺期限前要长时间、高强度工作。


每个组织都在试图通过自动化管道、增强的 IDE 和 DevOps 来减少浪费和提高生产力。


通过避免这 6 大时间浪费,走在曲线的前面,使你的一天更有成效。

1. 添加太多特性


有多少次你通过考虑所有的”可能性“而使一个故事需求过度复杂化?


如果你正在开发的 API 可以被设计成与其他平台无缝集成呢?如果你的仪表板可以发送自动报告呢?


抵制这种行为,不要过度设计它。


你不应该在未来太过超前的功能上花费大量的时间。而且,更多的代码意味着更多的 bug 和不必要的脚本会增加应用程序的臃肿。


理解你的代码和添加新的特性也会更加复杂。


为了避免这种情况,要不断问自己,你的代码是否解决了具体的需求。


确保你想清楚用例和边缘案例,但不要在一个你可以更快上线的功能上花费数周时间。


如果你对添加一个有可能解决极端用例的功能感到困惑,在下一次版本迭代上提出来。


你将会节省大量的时间,并且你将会建立起你自己作为一个团队成员的形象。

2. 重复写同样的脚本


作为一名软件工程师,你应该遵循 DRY(Don't Repeat Yourself)原则来提高工作效率。


这可以通过两种方式实现:消除代码中的冗余,或简化开发流程。


让我们看看如何解决这两种情况。

代码中的冗余

设置一个服务器,甚至一个虚拟环境,需要多次编写相同的脚本和动作。


你要用几乎相同的步骤和代码建立你的 3 层开发架构,包括开发、测试、生产。


除此之外,管理基础设施的依赖性也变得越来越复杂。


这不仅是重复和枯燥的,而且手动操作也让你容易出现人为错误。


低代码平台通过可重用的基于抽象的组件和可视化的拖放界面,开箱即有这种功能。


当然,你不会为每个场景找到一键式解决方案,但你会有最基本、可重复的解决方案。自动管道将帮助你为你需要的许多环境构建、复制和扩展代码。

流程中的冗余

清楚地勾勒出你在开发过程中的步骤数量,并思考如何减少这些步骤。


在这里,自动化能够提供有效帮助。


另外,留意那些你最终执行了两次以上的过程。制定一个自动化序列,每次你想做这个任务的时候都可以触发,你会从中受益。


不过,在你进行自动化之前,一定要注意时间上的权衡。


在实现自动化之前要问自己一些问题”如果我把它自动化,会比我做这个任务节省更多时间吗?在接下来的几周内,我是否会定期做这件事?“


如果答案是肯定的,就把它自动化。

3. 从零开始建立系统


如果一个开发者每次建立网络应用时都要对 JDBC 数据库连接进行自定义编码,那么完成一个项目就需要很长时间。


开发可维护和安全的软件应该是你的首要任务。


然而,这并不意味着从头开始构建系统。


你不需要重新从零开始造轮子、重建已经存在的功能。


公司想要高效的工作,而你花在从头开始构建系统上的时间,在大多数情况下是多余的。


因此,取而代之的是,通过使用成熟的框架,根据客户的需求进行定制。


另外,检查公司代码库。如果该工具现有的功能与分配给你的功能重叠,最好检查一下函数调用是否可以提供你所需要的数据,或者是否可以整合。


然而,当处理机密数据如财务,或健康记录时,从头开始建立功能以加强安全是有意义的。但在大多数情况下,框架、知名的开源库可以完美地完成工作。

4. 糟糕的测试策略


在选择自动化和人工测试时,你必须注意一个微妙的平衡。


因此,让我们了解一下,作为一个软件工程师,你如何利用这一点来制定一个有效的测试策略。


写一个小的手动测试来确保你添加的新功能工作正常是很容易的。


但是,当你扩大规模时,运行这些手动测试需要更多的时间,特别是当你试图找到那个讨厌的 bug,不断破坏你的代码。


你需要花更多的时间来设置你的自动化测试。不过,一旦它们被写好,它们就可以被重复使用。因此,你不必因为增加了一个新的功能就手动重新测试以前的功能。


反过来说,选择正确的任务来实现自动化也同样重要。不幸的是,这是 QA 自动化测试中最常见的错误之一。


但是,不要陷入过度自动化的陷阱,最终把测试任务做的本需求本身还要复杂。

5. 不正确的代码优化



这是一种相当常见浪费时间点,通常很难从一开始就发现。


你花了很多时间来优化那些不是优先级的场景,甚至可能不需要的代码。


你首要的关注点应该是让功能发挥作用,然后再考虑优化问题。


而且,优化的决定通常是基于具体情况的。


如果这个性能优化只需要几分钟,那就做吧。如果你要花几个小时来获得 1%的性能增量,最好先慎重讨论一下。


例如,让我们假设你正在为一个内部团队开发一个网页。如果网站在一秒内成功加载,使用者并非迫切需要在 0.5 秒内加载,而且,这并不能显著改善业务运营。那就没有必要花费太多精力进行优化。如果它是一个电子商务商店,一秒钟或者两秒钟加载对用户体验影响较为突出,那么,它就成了一个功能需求点,需要着重优化。

6. 低效的沟通

低效的沟通是造成软件开发中许多时间浪费的直接原因。


沟通是至关重要的,尤其是在开发和过渡阶段。


假设出现这样的情况:开发人员对业务需求有误。


这种沟通上的差距会使解决方案过于复杂,导致技术上的错误,并增强出现错误或返工的机会。


由于沟通是软件开发中最人性化的方面,这种时间上的浪费是无法完全消除的。


然而,有了适当的项目管理工具和协作环境,它肯定可以被减少。


就个人而言,在开会或开发一个功能时,总是考虑到大局。学会倾听和有效协作。养成写下或发送会议讨论内容纪要的习惯,以明确双方的期望。


另外,要尽早沟通,而不是拖延。

结语

上述提到的 6 点,只能在短期内提升你的生产力。


但良好的编码实践和自我意识将帮助你变得更有效率。


注意你的时间花得最多的地方,试着减少它,你就会在成为一个成功的软件工程师的道路上走得更远!


大家好,我是 Jackpop!我花费了半个月的时间把这几年来收集的各种技术干货整理到一起,其中内容包括但不限于 Python、机器学习、深度学习、计算机视觉、推荐系统、Linux、工程化、Java,内容多达 5T+,获取方式:技术干货_免费高速下载|百度网盘-分享无限制(提取码:0000)

用户头像

Jackpop

关注

还未添加个人签名 2020.09.16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
感觉要起飞!终于找到开发效率低的原因....