这篇blog将一直持续的更新着。(2021.8.2)

工作提效

  1. 时间管理大师
    利用番茄工作法或类似方法,提高工作专注度,并且需要非常刻意的去练习,虽然这些方法不能适应到所有的情况,但是它们对每天工作的内容的的细致规划、以及频繁总结,都对工作提效起着很好的指导意义。本质上如下:
do {规划目标 + 专注完成} while (true)
  1. 目标导向而非职责导向
    ①:职责导向:作为团队中的一员,完成团队交予的任务,即完成自身职位所应该完成的任务。
    ②:目标导向:为了触达目标,除了完成自身任务,也要向上、下管理
    两种导向有根本的区别,目标导向更能推动项目进行,在平时工作中,仅仅是职责导向,会被动、盲目,且最终可能达不到目标,而目标导向,可以把60分的事情,做到90分
  2. 交流与沟通
    没有高效的沟通方式,因为每个人因为其局限性,都有自己不同的想法,即使在评审、会议中讨论了问题,也会有人不理解,并且不敢发言。
    所以需要有足够的耐心,来与任何人讨论问题,在时间充足的情况下,面对面把事情聊的水落石出,才是“高效的交流”方式。

关于编写程序

  1. 接到新需求后不从程序编写入手,而是从画流程图、类图入手,即个人的方案评审期
    这样在写程序时,思路可以很清晰。
    个人认为,能做好这些事情,反而能提高效率,而不是 more delay和 more bugs。
  2. 多读源码,能懂一行是一行
    读源码是自虐的行为,但是有很多行为能够帮助源码的阅读。
    (1)跟着大佬解析源码,就是大佬的blog/视频看到哪一步,你也跟着读到哪一步,一些晦涩的地方大佬们都会讲出来的
    (2)从小的轮子读,比如加起来只有 四五个类的那种 做一个简单操作的 小轮子,里面也有很多可以学习的地方,自己也跟着做就更好,丰富自己的blog或者github。
    (3)学习设计模式对阅读源码很有帮助。
    读源码的目的是为了达到 面向源码编程,打一个比方:同样是写一篇英文作文,别人是零散的单词和从句的东拼西凑,而你是直接带着一本字典,谁的理解更深不言而喻。
    (4)对源码既定的流程,先思考一下,多问自己几个问题,再去阅读源码,效率特高
  3. 要有代码洁癖
    要养成code smell的习惯,致力编写优美的代码。如果还没有养成这个习惯,建议每天起来写代码之前,都读一下最下面的 code smell。
  4. 代入产品的思维编程
    因为我是一名前端开发人员,所以做的程序是直接呈现给用户的,我们在自测时最直观的感想其实就是用户的感想。“开发程序的时候我是程序员,自测时我就是用户”。这是一种把产品思维代入的编程。它会帮助我们更追求一些代码细节的东西。
    比如我们会自己会为负责的模块写一套专门界面显示工具,我们任何的数据带到这个工具里面, 我们都能看到其最直观的工作流程,比起凭空想象的模拟数据工作方式,这更便于我们修改工作流程,这样做更直接而且有据可查,直接提升用户体验。(而且在debug时,这样的效率比打断点、打log更高!

关于改BUG

  1. 改bug有三种境界
    第一种:错了哪里就改哪里。 这种对于开发效率是最低的。
    第二种:错了哪里,就把整个模块 这份代码可能出错的地方 检察一遍有没别的错误。 这个开发效率稍微好一点。
    第三种:错了哪里,基于第二种找出原因后,思考一开始为什么这么设计并记录下来,保证之后不再这个地方犯错。这样的思考对自己提高开发效率是最有帮助的。
  2. 要做到阶段性的review代码,然后优化
    改bug的唯一目的是增强程序的健壮性。所以优化也是改Bug的一种。
    项目的收工并不代表之后不做这份代码了。做完后要找时间review一下代码,对 代码结构/用户反馈/或者自己的单元测试结果进行分析。自己主动的去优化

关于需求评审、多方交接

  1. 开发的任何细节都要有文档依据
    大部分情况下,开发初期的需求文档并不是最终版本,而是会随着开发做一些小更新(小更新是Ok允许的,如果说开发还在大更新需求的话就是双方的严重失误(比如说更改逻辑))
    这导致开发时的一些细节,会觉得:这个地方需求会没有考虑到,但是又不影响主流程,所以会自己发挥
    但这其实很不严谨,任何的逻辑以及细节都要在 流程图里面过。所以一定要提出来。商讨出解决方案后第一时间更新到需求文档或者开发文档,这样可以保证出现问题时,锅绝对不在你身上。
    (突然想到一个表情包,程序员最讨厌的四个事情:1.写文档 2.别人不写文档 3.写注释 4.别人不写注释, 人间真实)
  2. 如果在需求评审时,只是重点考虑到这个功能能不能实现,那其实这个评审会其实还是会给以后自己留坑。应该在之上,考虑到研发的新功能是否会影响已有的功能,如果影响到,影响的部分该怎么处理。这才是需求评审会时更该注意的一点。功能能不能做这个问题,只要你别来个根据手机环境来改变App主题颜色,那tmd肯定能做啊。

提醒自己的话

  1. 总是写自己会的代码,错误肯定会少,但是同时学到的东西也不会很多。
  2. 如果自己不去努力的解决问题,那么自己也会成为团队里的问题。

读书会

  • 《影响力》
  • 《原则》

Code Smell(代码坏味道)

  1. Duplicated Code(重复的代码)
  2. Long Method(过长方法)
  3. Large Class(过大的类)
  4. Long Parameter List(过长參数列)
  5. Divergent Change(发散式修改)
    一旦须要改动,我们希望可以找到系统的某一点,仅仅在该处做改动。
  6. Shotgun Surgery(霰弹式改动)
    假设须要改动的代码散布四处。你不但非常难找到它们。也非常easy忘记某个重要的改动。
  7. Feature Envy(依恋情结)
    最根本的原则是:将总是一起变化的东西放在一块儿。[数据]和[引用这些数据]的行为总是一起变化的。
  8. Data Clumps(数据泥团)
    这些[总是绑在一起出现的数据]真应该放进属于它们自己的对象中。
  9. Primitive Obsession(基本类型偏执)
    大多数编程环境都有两种数据:结构类型让你将数据组织成有意义的形式;基本类型则是构成结构型的积木块。
  10. Switch Statements(switch惊悚现身)
    面向对象程序的一个最明显特征就是:少用switch(或case)语句。
  11. Parallel Inheritance Hierarchies(平等继承体系)
    在这样的情况下。每当你为某个class添加一个subclass,必须也为其它已实现的兄弟class对应添加一个subclass。
  12. Lazy Class(冗赘类)
    假设一个class的所得不值其身份。它就应该消失。
  13. Speculative Generality(夸夸其谈未来性)
    当有人说“噢,我想我们总有一天须要做这事”并因而企图以各式各样的挂勾和特殊情况来处理一些非必要的事情,这样的坏味道就出现了。
  14. Temporary Field(令人迷惑的临时字段)
    在变量未被使用的情况下推測当初其设置目的,会让你发疯。
  15. Message Chains(过度耦合的消息链)
    实际代码中你看到的可能是一长串getThis()或一长串暂时变量。採取这样的方式,意味客户将与查找过程中的航行结构紧密耦合。
  16. Middle Man(中间转手人)
    你或许会看到某个class接口有一半的方法都托付给其他class,这样就可能是过度运用。
  17. Inappropriate Intimacy(狎昵关系)
    继承往往造成过度亲热,由于subclass对superclass的了解总是超过superclass的主观愿望。假设你认为该让这个孩子独自生活了,请运用Replace Inheritance with Delegation让它离开继承体系。
  18. Alternative Classes with Different Interfaces(异曲同工的类)
    假设两个方法做同一件事,却有着不同的签名式。
  19. Incomplete Library Class(不完美的程序类库)
  20. Data Class(纯稚的数据类)
    它们拥有一些字段,以及用于訪问这些字段的方法,除此之外一无长物。
  21. Refused Bequest(被拒绝的遗赠)
    Subclasses应该继承superclass的方法和数据。但假设它们不想或不须要继承,又该怎么办呢?它们得到全部礼物。却仅仅从中挑选几样来玩!按传统说法,这就意味继承体系设计错误。
  22. Comments(过多的注释)
    并不是不能写过多的注释,注释的对象是代码,但是代码糟糕所以才导致 注释写的篇幅过长

关于提高编程思维与工作效率的总结相关推荐

  1. DevOps 解决方案:最大限度地提高开发人员的工作效率,缩短上市时间以及提高客户满意度

    DevOps 解决方案:和平.爱心与工作效率 为见证开发和运营之间前所未有的协作而做好准备.我们的解决方案可消除阻碍,有助于最大限度地提高开发人员的工作效率,缩短上市时间以及提高客户满意度. 为什么选 ...

  2. 使用智能客服系统提高了客服工作效率

    使用智能客服系统提高了客服工作效率,及时的抓取信息,能够为企业提高留下各户的成功率,给企业的快速发展提供强有力的支持.在目前这个受疫情影响的环境中,越来越多的人为了保障安全,会有大量的人选择进行线上咨 ...

  3. 使用 ABAP 开发的一个基于 Web Socket 的小工具,能提高程序员日常工作效率

    程序员区别于其他岗位的一个优势是,我们可以充分利用自己掌握的编程语言,将平日一些琐碎的,重复的日常工作,通过代码来实现自动化,从而省下更多的时间来投入到技术含量更高的工作中,提高工作效率. 本文介绍一 ...

  4. 如何提高程序员的工作效率 这几招就够了

    一直以来,很多学生都被一个问题困扰过:程序员如何才能提高自身的工作效率? 1.给自己一个安静的编程环境 编程是一个细致活儿,需要程序员全情投入,因此创造一个安静的编程环境非常重要,你可以尝试切断自己的 ...

  5. 好用的在线工具,提高你的办公工作效率

    我们在日常工作中经常会用到各种在线工具,但是有些工具广告比较多,或者用到最后关键时候提示付费.下面办公人导航就和大家分享一些好用值得收藏的在线工具,提高你的工作效率. 1.在线ps,photopea ...

  6. 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率?

    目录 前言: 1. 禅道 2. Jenkins 3. sonarqube 4.showdoc 5.swgger 6.分布式配置中心apollo 7. appscan 8.项目开发文档流程化归档 9.M ...

  7. Snipaste 提高十倍生产力工作效率,堪称最强神器

    哈喽,大家好,我是.一个工作n年的老程序员啦,平时喜欢在Github上瞎逛,顺便淘一些有意思的小工具~ 今天要给大家推荐一款堪称神器的效率工具. 可以说是工作这么多年来,装机必备的软件. TA就是Sn ...

  8. linux export 生效_Linux之提高命令行的工作效率

    辉语:之前聊了很多关于Linux中的内容,今天我们继续跟大家分享一下Linux中非常重要的知识点:shell脚本的编写.今天,我们就一起来了解一下shell脚本. 编写简单shell脚本 shell是 ...

  9. 协作设计: 如何有效提高团队合作的工作效率?

    以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 在设计工作中,团队协作一直扮演着十分重要的角色.同时,它也是设计过程中最具挑战性的部分 -- 并不是每个 ...

最新文章

  1. win10只有c盘怎么分区_磁盘分区:系统C盘空间不足怎么办?
  2. python自学教程变量_Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析...
  3. 2015/Province_C_C++_C/6/奇妙的数字
  4. 一起谈.NET技术,异步调用与多线程的区别
  5. Java进阶07 嵌套类
  6. Android App优化之提升你的App启动速度之实例挑战
  7. 编译问题解决:mkdir: 无法创建目录/usr/local/share/man/man1: 文件已存在
  8. 计算机声音控制程序,win10电脑利用EarTrumpet音量控制应用程序使用教程 | 专业网吧维护...
  9. Ochestrator企业数据总线
  10. 点击子元素却也触发父元素的点击事件
  11. TMS320C5509A 控制DDS AD9854芯片进行AM幅度调制时的FIR滤波处理
  12. 第一单元 用python学习微积分(三) 求导四则运算及三角函数(上)- 三角函数
  13. python中rgb颜色_自定义RGB颜色与Python诅咒
  14. 外卖项目05---套餐管理业务开发
  15. 广东省推出居民身份电子凭证,忘带身份证也能住酒店了
  16. Mesos+Marathon搭建部署
  17. base64编码转码
  18. java调用ant_从java调用ant,然后在ant终止后返回到java
  19. Java开发需要知道的HTML知识
  20. app推广“惊天地”的一件大事件

热门文章

  1. 数字金融新型基础设施---金融产业数字化能力引擎
  2. [数据结构]模式匹配算法--KMP算法详解
  3. PART1:NRF24L01小车硬件资源篇
  4. 乒乓球女队迎战第50届世乒赛热身赛在正定基地举行
  5. 分享:为什么说精细化管理才是餐饮软件的关键?
  6. android和ios龙之谷,龙之谷2苹果和安卓同服吗
  7. Q币直充-迅银渠道商(php 面向对象类)
  8. 新时代2021年人工智能必备数学基础:高等数学编绘(4)
  9. 初步总结 .net 学习心得
  10. 盘古开源:深化能源大数据中心建设,助力能源清洁低碳转型