• 程序员的10个好习惯(转自四猿外)


    1. 引入新的技术栈的时候,要以官方文档为主

    在项目里,无论使用新的 jar 包,还是用新的中间件,一定要去看官方文档。

    现在网上的技术文章鱼龙混杂,再加上国内那个不咋地的搜索引擎,所以在网上搜靠谱的技术文章,就相当于在屎坑里捞金子。

    比如,如果你想要对 SpringBoot2 写的代码进行单元测试,JUnit 版本你可能已经是 5 了。但你搜到的网上文章很可能会告诉你测试用例需要注解:

    @RunWith(SpringRunner.class) 

    但是官方文档说了,其实如果你用 JUnit5,就不用加这个注解了,加了反而可能引起不必要的冲突。

    所以,官方文档对新技术的引入是唯一的参考金标准。

    2. 一定要悄悄地把代码测的没问题了再交付

    在职场上,什么样的人才能快速成长、快速得到重用?答案是可靠的人。

    那就程序员来说,什么样的人才算是可靠的人?答案是交付可靠的技术产品。

    那可靠的产品第一评估标准就是 bug 少。这个 bug 少是别人评估的,而不是自己评估的。

    无论咱们自己代码实现成什么样子,哪怕是代码写的还不完美,但是,只要咱们通过自测,在提交之前尽可能把问题解决掉,让别人少发现你的错误,尤其是低级 bug,那么你才是一位可靠的程序员。

    所以,交付任务前,一定要自己把代码全方位地测试一遍,保证自己有着优秀的口碑才好。

    3. 打日志的时候尽可能把输入、输出以及耗时都打印出来

    我们打日志的目的是什么?是为了定位问题的。

    问题有哪些?其实大体就两种,逻辑问题和性能问题。

    逻辑问题,我们如果打印了输入和输出,那么根据业务规则,这么一对照就能很容易定位到问题。

    性能问题,我们无论是通过像 grep、sort 等 shell 命令去直接对日志做个过滤加排序,还是通过日志搜集加日志搜索等工具,都能很容易的发现到问题。甚至还可以和监控系统联合起来,直接做预警。

    所以,打日志的时候,我们要记得把输入和输出以及时间都打印出来。

    4. 学好 Git

    Git 这东西太重要了。现在的团队开发,用 Git 管理各种代码版本,代码分支。如果你用不好 Git,很容易就会因为合并代码、升级版本等情况,产生出许多没必要的 bug。

    一个用不好 Git 的团队,可能每次上线,都会带来那么几个莫名其妙的问题。

    5. 优先实现功能,性能问题或许没那么着急

    我在带团队的时候,经常发现有些刚入行的同事,会边写代码边纠结自己写的代码性能是否有问题。其实真的不必这样。像我们这些老程序员,都知道过早优化有时候可能白花费功夫。

    像咱们如果写一个批处理的定时任务,这个任务要求只要在凌晨运行,在大家上班前任务完成就行。那么,这个任务从凌晨两点运行到六点和运行到四点,有什么区别吗?

    优化代码一定要适度,要在写完功能之后,看功能会怎么被使用,根据实际的要求,去优化真正需要优化的地方。

    6. 先实现最确定的需求,不确定或者模糊的需求先往后放

    实现需求的先后顺序,注意一定要以需求的可靠程度为准。

    在分配给我们的需求里一般分两类:

    • 有的需求是我们和产品经理都非常明确的需求;
    • 也有的需求比较模糊:开会讨论时大家都觉得没什么问题,但是一到代码实现的时候,就发现还存在很多问题。

    这时候,咱们应对的技巧是,先对这些需求搭一个统一的架子,把已经非常明确的需求先开发出来。

    由于架子搭建出来了,这时候再和产品经理讨论那些模糊的需求,很容易就能让产品明白困难的地方,这样就可以把沟通难度降到最低。

    7. 主动找项目里的问题并给出解决方案

    问题是什么?问题就是在实践过程中需要解决的东西。

    把这些问题一个个找出来,解决掉,这些解决问题中产生出来的方案,全会形成推动项目前进的推动力。那么产生这些推动力的你自己,一定会从中获益良多。

    8. 评估开发周期,要留出冗余时间

    留出冗余时间的目的很明确,在咱们开发的时候,遇到的意外情况太多了:

    • 需求又双叒叕变了
    • 团队人员有变化
    • 当初估算的时间乐观了
    • 这个功能需要动老代码
    • 需要跨团队合作开发
    • 领导说“加个小功能”,领导认为这个小功能不影响开发周期(此处省略二百字)
    • ……

    所以,冗余时间是要留出来的。

    留出的冗余时间不等于摸鱼时间,开发还是按照正常的节奏干,早做完早交付。

    9. 不要光看书去学习技术,要把感兴趣的技术通过代码实现出来

    咱们程序员最重要的就是实践,能把学到的知识转化为实践用到工作上。

    光看书学习技术,很可能只会让咱们产生出已经学会的错觉。只有通过代码把感兴趣的技术实践练习了一遍,咱们才真正能明白这技术实际用起来是什么样子,需要注意什么。

    这篇通过模拟环境来学习高并发

  • 相关阅读:
    GPUImage滤镜效果翻译
    c3p0配置
    Android webview Mixed Content无法显示图片解决
    java连接jdbc Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by defa
    Castle DynamicProxy creation出现COMException(0x800703fa)错误的解决方案
    magent实现memcached集群的一个问题
    近期Windows 10 RedStone 2 Insider版本安装进度停留在百分之23、24解决方案
    XPS 15 9530使用Windows10频繁发生Intel HD Graphics 4600驱动奔溃的一种解决方法
    Visual Studio 2015开发Android App启动调试始终无法完成应用部署的解决方案
    Visual Studio 2015中创建C#的Android项目提示"Value cannot be null"的解决方法
  • 原文地址:https://www.cnblogs.com/q1359720840/p/15626380.html
Copyright © 2020-2023  润新知