热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

程序开发的墨菲定律

墨菲定律????????又是一年的初夏时节,天气变化无常,时而如爆款特卖急速升温,时而满30减10,人的心情也如气温一般起伏不定.????????下意识的打开钉钉工作群看看发生了什
墨菲定律

????????又是一年的初夏时节, 天气变化无常, 时而如爆款特卖急速升温, 时而满30减10, 人的心情也如气温一般起伏不定.

????????下意识的打开钉钉工作群看看发生了什么, 此刻的心情总是矛盾的, 看着同事的只言片语试着去了解事情的来龙去脉, 有时偶尔想插上几句话, 又生怕陷入其中脱不开身, 只读不回又让人觉得我对此莫不关心, 全然不顾又让人忐忑不安, 生怕由于我的起因让同事陷入麻烦. 这种心理应该是很普遍的现象吧.

????????流行在程序员间的一个很经典的笑话是这样的, 普通人见面的第一句话是问“你吃了吗”, 程序员见面的第一句话是问“呦, 最近又在写什么bug”. 这是一种自嘲也反应了一个普遍的现象, bug与程序总是形影不离, bug会导致功可以异常, 会影响使用户体验, 会失去用户, 甚至会让人怒砸手机、砸电脑, 造成财产损失.

????????程序员会由于自己开发的功可以而沾沾自喜, 也会由于自己写的bug而垂头丧气, 假如你告诉一个程序员你开发的功可以有bug, 程序员的第一反应是“你的环境是不是有问题, 你傻逼你会使用吗”. 假如你换一个说法, 你实现的功可以跟预期的有点不太一样, 你可以否检查下, 程序员的第一反应就会是“我操, 有bug”. 同一件事, 不同的说法, 得到的答复截然不同. 不论怎样说, 程序员多少是有些不愿面对bug的, 可是又不得不处理, 由于我们都知道, 不处理的后果会很严重.

????????写了两年代码, 发现墨菲定律也适使用于程序开发. 墨菲定律是一种心理学效应, 主要内容是: 1, 任何事都没有表面上看起来那么简单; 2, 所有的事都会比你估计的时间长; 3, 会出错的事总会出错; 4, 假如你担心某种情况发生, 它就更有可可以发生.?

????????先说第一项. 当你接手一个功可以的时候, 产品经理告诉你, 你要做出这个效果, 可以这样那样就行. 你看着原型图和流程图, 对照需求说明, 快速转动着你的大脑, 仿佛一瞬间, 你已经实现了这个功可以, 它已经可以在你的大脑中完美运行了. 你双手枕头, 身体往椅子上一靠, 轻松写意的告诉产品经理“这个简单, 明后天就搞定”.?

????????随后你开始快速着手开发, 在这个过程中, 你忽然发现不妙, 这件事似乎没有表面上看起来的那么简单. 假如这样改, 会不会影响到现有的功可以; 假如这样走, 会不会流程走不通; 假如这样操作, 会不会产生bug. 忽然之间似乎又多了很多功可以要开发, 按照排期预计完不成啊, 可是已经答应了别人了. 此时又陷入烦躁和自责中无法自拔.?

????????再说第二项. 一个大型项目的开发不是一蹴而就的, 需要将大版本划分成小版本, 小版本划分成大功可以, 大功可以划分成小功可以, 小功可以整理成一步一步的业务逻辑, 逐渐实现. 理想的情况下, 项目经理将这些功可以逐一排期, 开发按照这个排期完成开发、测试、发布, 最终完成整个大的项目.?

????????不论做任何事都会遇到困难. 程序开发更是如此, 因为技术水平、开发经验、团队协作等多方面起因, 完成一个功可以的时间总是会超过预期的时间. 为了在规定时间完成任务, 加班加点不可避免, 通宵熬夜家常便饭, 秃头脱发十有八九. 下次排期时多争取点时间, 时间和生命且过且珍惜.

????????聊聊第三项. 人体的组成、社会的运转、世界的构成、宇宙的形成看似无比精妙, 实则处处暗藏bug. 程序代码更是如此, 再优秀的架构, 正当的设计, 精确的编码, 也会产生意想不到的bug.?

????????一个产品的成功不代表没有缺点, 只不过没有被放大而已. 以前我对于bug的心态是害怕, 害怕又要面对突如其来的问题; 现在我对于bug的态度是厌烦, 怎样又有bug, 真是烦不胜烦. 既然会出错的事总会出错, 与其把时间白费在烦躁不安, 自怨自艾上, 不如叹息一声, 静下心来接受bug,?慢慢排查, 找到根本起因, 逐渐处理.

????????最后一项. 每当完成一个功可以的时候, 心中都会充满成就感. 我知道每个程序员都很享受这样的感觉, 由于他们知道他们的成果不仅能换来面包, 更可以改变世界, 实现自我价值. 虽有夸大其词之嫌, 但其实一点都不为过.

????????稍等一下, 似乎少了点什么步骤, 哦, 对了, 还要测试. 没有测试的代码是危险的,没有测试的代码是危险的,没有测试的代码是危险的, 重要的事情说三遍. 其实三遍都算少的了. 完成了一项功可以, 假如没有全面测试各种条件, 当你发现某种条件还没有测试, 你担心会不会出问题, 但是你又觉得应该没有啥问题的时候, 无数次的事实证实, 问题总是会出现在你没有测试的那个条件中. 这似乎很讽刺, 但就是这么残酷, 现实一次次的打脸, 已经让我面红耳赤了. 下次完成功可以的时候, 不要想着自己改变了世界, 先想想自己已红肿不轻的脸吧.

????????写着写着又到了这样的时刻, 夜里12点, 某年某月的某些天的此时, 我还在急忙的赶进度、修bug、思考未来的人生.?

????????程序开发永远不要抱有侥幸心理, 此时未做好的事, 将来会花数倍的时间来修复,??可是将来的时间够使用吗?明日复明日,明日何其多,我生待明日,万事成磋砣.


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • tcp/ip 高清大图
    为什么80%的码农都做不了架构师?转载于:https:my.oschina.netgsbhzb ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
author-avatar
我是小储哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有