首页 > 编程语言 >论编程的最后期限

论编程的最后期限

时间:2022-12-05 12:39:30浏览次数:69  
标签:代码 编程 最后 期限 程序员 日期 计划表 截止


普通编程与专业编程之间有很多差别,而最为显著的就是截止日期。

截止日期/最后期限

当你给自己写程序的时候,只要你愿意,就可以用很多(或者很少)的时间来完成,但是当你给别人写程序的时候,你就只有一点有限的时间和资源来完成任务。而根据我的经验,一般会导致以下两种情况之一:

1.你必须延长时间以妥善完成任务。

2.你必须写些不严谨的代码来应付过关。

如果你做过专业编程,你会明白我的意思。只有极少数够灵活的项目能够给予足够的时间和资源来完成任务。这就使得程序员必须做出艰难的抉择。

任何一个有自尊的程序员都不愿意提交不合格的代码;但是当交易中伴随有超时违约金时,想要始终提交高质量的代码是很困难的,尤其是在专业环境下,与那些不需要理解技术违约概念的非技术员交易。

幸好,这里有几条准则供你参考,可以在临近截止日期时,帮你把不严谨的代码总数最小化。它们不一定能够快速修复问题,但毫无疑问将有助于那些需要日复一日,始终写出一流代码的人。

准则一:编码之前设置连续部署

这是我从《The Pragmatic Programmer/程序员修炼之道》一书(绝对是程序员的必读之书)中找出的小窍门。总是,我是说总是,在编码之前设置你的连续部署系统。

我所说的连续部署是什么意思?好的,在你开始编写你的项目之前,你应该有一个能部署你的项目代码为产品的系统(最好对于分期和开发环境也是如此)。这样,当你编码时,你就会有一个平和的心态,因为你知道你可以随时部署你的项目。

在很多的编程流程中,这一点能节约相当多的开发时间。一些测试环境(或者更糟,直接在服务器上编码),你可以直接把代码放到你首选的源代码控制系统中,然后让你的连续部署系统负责接下来的事情。这也许看起来不想个节约时间的方法,但是如果你考虑一下每天都要把你的代码复制过去并手动测试所浪费的时间,你就知道这样做能快速完成并在每月中节约数小时。

准则二:先写测试

如果你从没听说过测试驱动开发(TDD),请立刻看看维基百科的解释。如果有人付钱让你编写软件,并且规定了截止日期,你就要随时练习TDD。

测试驱动开发的基本概念是,在写项目代码之前,你写一段简单的代码来测试你假设的项目代码,以获得预期的反应。例如:你的项目需要你写一个函数,把两个数相加,并返回和。在写这段代码之前,你应该写一个测试函数,test_add_two_numbers,它调用你的add_two_numbers函数来验证不同的输入值所返回的结果都是正确的。

这看起来很麻烦,但是它有许多好处:

  • 写测试首先能帮你明确你的应用程序架构。
  • 你将有一个平和的心态,因为你知道你的代码是可运行的。
  • 你能够轻易的重构项目,而不用担心破坏代码。
  • 你可以避免放出低质量的代码以免玷污你的声誉。

准则三:透明

透明很难实现(取决于你的工作环境),但却非常有益处。

为了达到透明,你需要确保与接收代码的客户之间保持一条清晰的通信线路。你需要保持定期更新,这样才能看出来工作正在进行,并且进展的哪里。再好一点就是,你能一直部署代码到分期系统,从而让客户够看到未完成的项目和它一天天的改变。

如果你能跟你的老板(们)保持透明化,他们就很有可能了解是否需要推迟截止日期。非技术人员通常不懂软件开发,视它为黑盒技术。通过与客户保持清晰的通信和透明化,并让他们参与到开发进程中,客户可以更了解你的工作,使得对将要开发出来的产品更青睐。

规则四:维持日常计划表(Todo list)

时间管理问题肯定是超出本文谈论的范围,但是我仍要指出,为确保事情一直向前进展,作为一名程序员你所能做的最好的事情之一就是维持一份日常计划表。另外,一个得力的时间追踪工具也能帮上大忙。老外推荐的​​10个时间追踪工具。​

软件开发是极为复杂的事情。成为一名优秀的程序员要求有多年的实践,耐心和锻炼,并且学无止境。当需要在截止日期内开发软件时,往往你正在编写一个复杂的系统。为保持思路清晰,并且确保发挥你编程的最大能力,你应该维持一份由每日需要完成(编码方向)的单独的任务组成的日常计划表。

不要写过于空泛的计划表,像“调试声音问题”这样的,而是要真正地想一遍,并且写出事情的几个步骤。例如:

  • 写一个音乐文件加载功能的单元测试,检查mp3是否能够播放。
  • 写一个音乐文件加载功能的单元测试,检查加载wav文件时是否崩溃。
  • 创建新的特性分支,设计升级,适用于新的网页设计模板。
  • 使用网页设计新模板升级style.css。

有一个明确的可操作的事件列表可以使你集中力量在一段时间内解决一个单独的任务。这样就不用时刻平衡分配和在脑子里想着接下来的步骤。编写软件已经够复杂的了,不要让你的生活更困难。

准则五:做应该做的事

毫无疑问,会有令你紧张和不舒服的情况出现。你拖延时间并忽略了新特性的单元测试吗?当这些情况发生时,不要任意妄为。相反的,做应该做的事。

不管是否需要你回顾还是重新查看一些旧代码,都要多写一些测试用例,甚至推迟截止日期也要这么做。作为一位专业的技术人员,持续地开发能够运行的代码是你的工作,即使这意味着你必须做出艰难的抉择。

结语

对一个软件开发人员来说没有轻松的任务。我们的世界一直充满挑战和困难,只有磨练和时刻准备着才能帮助我们渡过难关,并在好时光里成功。一直利用我们最精确的判断,通过运用毫不动摇的工程实践去打破时间的桎梏并且不向困难低头。

你能够做到。

标签:代码,编程,最后,期限,程序员,日期,计划表,截止
From: https://blog.51cto.com/u_11295556/5911866

相关文章

  • 如果你把每一天都当作生命中最后一天去生活的话,那么有一天你会发现你是正确的
    在2005年那次已经成为经典的毕业演讲中,乔布斯曾讲到:当我21岁的时候,我读到了一句话:“如果你把每一天都当作生命中最后一天去生活的话,那么有一天你会发现你是正确的。”......
  • NVIDIA-CUDA编程初探
    CUDA的全称是ComputeUnifiedDeviceArchitecture,是显卡厂商NVIDIA推出的运算平台,开发者可以使用C语言来编写CUDA代码,使用NVCC编译器可以在支持CUDA的GPU处理器上以高速运......
  • OpenCL编程之二
    白嫖来的C端代码:matrix.c:#include<stdio.h>#include<stdlib.h>#include<alloca.h>#include<CL/cl.h>#pragmawarning(disable:4996)intmain(){cl_interror;......
  • 异步编程
    一、什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?回调函数概念回调函数是一个作为变量传递给另一个函数的函数,它在主体函数执行完之后再执行回调函数特......
  • 《不用编程,不用遍历》 回复
    《不用编程,不用遍历》     https://tieba.baidu.com/p/8172829227     4楼一个可喜的前景是,未来,望闻问切可以和磁共振x光心电图水平仪经纬仪听......
  • Flutter 陈航 10-状态 State 编程范式 构建过程
    本文地址目录目录目录10|Widget中的State到底是什么?UI编程范式命令式声明式总结StatelessWidget构建过程适用场景StatefulWidget构建过程总结StatefulWidget可能......
  • [转]C#并行编程系列-文章导航 - 释迦苦僧 - 博客园
    菜鸟初步学习,不对的地方请大神指教,参考《C#并行编程高级教程.pdf》目录C#并行编程-相关概念C#并行编程-ParallelC#并行编程-TaskC#并行编程-并发集合C#并......
  • [转]【读书笔记】.Net并行编程高级教程--Parallel - stoneniqiu - 博客园
    一直觉得自己对并发了解不够深入,特别是看了《代码整洁之道》觉得自己有必要好好学学并发编程,因为性能也是衡量代码整洁的一大标准。而且在《失控》这本书中也多次提到并发,......
  • C#网络编程之TCP(六)
    一、大文件的上传上一章节我们了解了小文件在客户端和服务器之间是如何传输的。但对于一个几百兆或者几个G大文件来说,无法通过一次传送,就能够把文件的所有数据都传过......
  • 学习ASP.NET Core Blazor编程系列十五——查询
    学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习ASP.NETCoreBlazor编程系列二——第一个Blazor应......