博客园整改之思考_整改思路

博客园整改之思考_整改思路在博客园写博客写了三年半的时间了,当初为什么会选择在博客园写,我也记不清是什么原因了,或许这大概是缘分吧。今年3月份后半段的时候,博客园突然访问不了了,如今通过搜索资料,仍然发现有部分文章访问不了,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在博客园写博客写了三年半的时间了,当初为什么会选择在博客园写,我也记不清是什么原因了,或许这大概是缘分吧。

今年3月份后半段的时候,博客园突然访问不了了,如今通过搜索资料,仍然发现有部分文章访问不了,如下图所示:
博客园整改之思考_整改思路

博客园给园友致歉,内容如下图所示:
博客园整改之思考_整改思路

从这张图中引发我的一些思考,最核心的一句就是:
7天还17年欠下的债(网站运营工作),四两拨万斤,我们的任何努力都是杯水车薪。

一、技术债务的思考

技术债务又称代码债务。定义如下:
交付第一次代码就像陷入债务。 债务是可以加快开发速度,只有通过重写代码,及时偿还债务。如果不偿还债务,就会发生危险。 把时间花在写一些不正确的代码上的每一分钟都算作该债务的利息。 整个软件项目可能在未合并代码的部署,面向对象设计或其他方面的债务问题而陷入停顿-著名的计算机程序员沃德·坎宁安

在创业公司的时候,从智能酒店+智能门锁、快速开发平台、编程教育平台到电商平台二次开发等,写了大量的代码(至少十万行代码量,不含空格),代码虽然写的多,但技术债务也不少,这导致的一个结果就是bug越写越多,最后不得不以周末的时间来改bug。

1.为什么bug越写越多?以我的经验总结如下:

  • 写之前想的太少,没有想清楚就直接开敲,一切凭感觉(凭感觉写代码,在没养成良好的编码习惯和研发制度的约束下,凭感觉写代码很不可靠);
  • 工期紧,任务多,注重功能实现,忽略实现细节(对输入进行参数校验、复杂的业务逻辑处理考虑过于简单、不合理的数据库/IO操作、无异常机制或大量不必要的try/catch等)。

2.那么如何减少bug率?

  • 团队编码规范一定要落实(可以参考阿里巴巴的Java开发规范);
  • 每写完一个功能,一定要自测(如果你平时bug率很高一定要这样做,当你的bug率大幅度降低时不一定都要自测(可能代表你逐渐养成好的编码习惯),不过我的习惯是不管代码bug率多么低,一定要自测);
  • 代码Code Review(不管是Review自己的或者还是其他人的,多少都会有些收获的);
  • 一定要有责任心(记得当初在创业公司的时候,整个后台的前后端都是由我和另外一个同事负责,我们俩写了一堆bug,整个后台管理系统可用性非常差,根本原因就是我们责任心缺失,写的很随意)。

3.技术债务如何从源头控制?

此次博客园被审查,很大原因是因为对于内容审核不严,内容审核太松的话,某些非法分子就会借此进行非法宣传和传播,最后遭殃的一定是平台,微信公众号在这块就做的很不错(可以借鉴)。之前在纵横网写小说的时候,发现纵横网的内容编辑器对内容审核还是比较严的,特别当内容出现违禁词的时候,强制性不准发布。

回归正题,技术债务如何从源头控制住?或者是已经发生要如何控制?

  • 制度(光靠人的主观能动性是不行的,还要从制度上约束,合理的制度能充分调动人的主观能动性和积极性);
  • 定期团队内部培训(代码规范、业务讲解、问题复盘、技术分享);
  • 工程师要有主人翁的意识(开发前熟悉业务和理解需求、开发时画流程图(针对业务逻辑复杂的)和写代码遵守公司代码规范、开发后自测);
  • 定期处理技术债务(功能实现了,但可读性和可扩展性非常不好需要重构,定期抽时间处理不一定要一口吃一个大胖子);
  • 推行代码Review(利于发现系统的技术债务,同时也是为了提高团队的编码质量,好的推广落实,不好的引以为鉴)。

二、面向搜索编程受阻

平时开发基于以往的经历(踩过的坑),基本上能解决开发过程中的不少问题,但面对有些问题还需要搜索,没有搜索很难进行的下去。
这次说的面向搜索编程搜索受阻,不是指不会用搜索引擎,而是指我想要搜的关键信息,其中有一篇文章在博客园平台,但因为博客园平台整改,看不到我想要的信息。于是我便只能转向CSDN、思否、简书、StackoverFlow或其他个人博客,从中得到我想要的信息。
不禁想起导师曾写过的一篇wiki关于技术管理的,其中提到一点
“一定要自己把问题搞清楚,不要寄希望于别人来帮你搞清楚事情,可以借助别人的帮助,但不能过度依赖”
对于面向搜索编程时,有些时候我会犯这样的错误,只是看到报错部分的信息,没有注意到是那一行出现这样的错误,就直接搜索了(有些时候这样的搜索很低效,因为你没有弄清楚真正的错误是什么),这种情况就是过于依赖搜索引擎,不过好在这种现象自去年下半年和至今基本犯的比较少,这或许是一个好的兆头。

1.面向搜索编程让我看到自身的一些不足?

  • 基本功有待加强(体现在Java中对String、List、Set、Map、I/O和多线程的合理应用,应用不等于合理应用,当然了不仅仅是Java);
  • 没有总结出自己的代码库(最直接的体现没有将以往的工具类总结出来,直接网上复制(不少代码是有问题的)或者将之前公司的代码迁移过来,总结自己的代码库不仅仅是为了方便以后复用,也是为了更好的深入理解)。

2.如何避免面向搜索编程形成的机械思维?

面向搜索编程有利也有弊端,

  • 利是能在一定程度上提高学习或工作效率
  • 弊是如果过于依赖大脑会变得不思考,长此以往,不利于长远发展

这里提到的如何避免面向搜索编程形成的机械思维或者是依赖性思维不等同于不使用搜索引擎。

刚好之前有一个活生生案例,是我写的一个复盘,文章如下:
ssh问题之复盘

这篇文章提到的问题,问题的根源在于我没有弄清楚真正的问题是什么,仅仅是依据是没有权限导致重复输入密码,结果是没有找准问题的关键,搜索了一堆,参考了网上各种解决办法都没有解决这样的问题(花费大量不必要的时间,仍然没有解决)。最后冷静下来,复现这个问题,一步步来,才找准了问题的根本原因。

面向搜索编程的机械思维也可叫惯性思维,这种惯性思维会让我们产生一个错觉(前面提到过),当遇到一个问题时,我们看到错误信息,只看一部分不看很整体,发现解决不了就直接复制一些关键字搜索,其实这些问题原本是不需要搜索的,错误信息看全了,定位到关键代码(必要时可以借助Debug)实际是可以解决的。

作为程序员平常工作中用到搜索引擎,主要为如下几个方面?

  • 个人学习(网上教程、博文、在线视频、技术官网等);
  • 工作中高效解决问题(站在巨人的肩上,前人踩过的坑,我们不必从头来过)。

过去近几年的时间,我过于依赖搜索给我带来的一些快感,这些快感让我养成了问题的浅度思考习惯(所谓问题的浅度思考习惯指仅仅满足于问题的解决,而不去深究问题背后的原因以及如何避免类似的问题再现等)。

说了这么多,那么我们如何避免面向搜索编程形成的机械思维?
答案很简单,那就是多给自己提问(凡是多问个为什么),随着不断提问和回答所提的问题,问题的本质也就找到了,本质定位到了,对应的解决方案自然会有,这一个过程中,深度思考能力也在不断提升。

当然了突破人的惯性很难,习惯一旦养成,不是一两天就能改的掉的,所以我选择用复盘来提高自己深度思考的能力和看问题的视角

三、总结

舒婷有一首诗叫做《这也是一切》,其中有一句我印象深刻,即”一切的现在都孕育着未来,未来的一切都生长于它的昨天“,从18年到至今,我比较关键的三年经历(从2018年初到至今),深刻地验证着这句话。这关键的三年有太多的经验教训,我都没有好好复盘总结过,导致至今还时不时犯这些错误,不过好在近来定期复盘一些事情,能规避不少曾经的错误。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167896.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 从智能家居的发展看对讲企业的定位

    从智能家居的发展看对讲企业的定位当你在浏览最近的热词榜单时,智能家居会位居其中。自智慧城市建设的大潮来袭之后,智能家居是“首当其冲”,自然是占了个大便宜!同时,楼宇对讲企业也迎来了春天。相信好多人都知道楼宇对讲,它最早是出现在高层住宅、公寓大厦内外,用来传递户内与单元门之间的信息,并控制防盗门,甚至可在紧急情况下住户通过它向安保值班室报警。它是智能家居体系下最重要的一部分。如今面对智…

    2022年6月22日
    27
  • linux的rwx权限,linux权限管理:rwx

    linux的rwx权限,linux权限管理:rwx标签:rwx权限管理简介:r,w,x对文件及目录进行权限管理,从而达到文件及目录管理。1、rwx对于文件而言:r:可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x:可执行,exacutable,可以命令提示符下当作命令提交给内核运行;2、rwx对于目录而言:r:可以对此目录执行ls以列出内部的所有文件;w:可以在此目录创建文件;x:可以使用cd切换进此目录,也可以使用…

    2022年6月10日
    65
  • linux smartctl 命令,使用smartctl命令检查磁盘

    linux smartctl 命令,使用smartctl命令检查磁盘使用smartctl命令检查磁盘在TS过程中会碰到很多磁盘异常出现影响系统数据或者生产数据的情况,但是有时候无法判断磁盘出现问题是由于磁盘物理损坏还是磁盘SATA口接触不良导致,这个时候smartctl命令就可以很容易判断出磁盘是否存在物理损坏问题,并且及时作出预警。使用smartctl进行SMART测试所有现代硬盘都可通过SMART属性监视其当前状态。这些值提供有关硬盘各种参数的信息,并可提供有…

    2022年6月16日
    43
  • mysql修改表名

    mysql修改表名ALTER TABLE table_nameRENAMETOnew_table_name

    2022年6月1日
    31
  • nginx php apache php 对比,Apache和nginx的比较「建议收藏」

    nginx php apache php 对比,Apache和nginx的比较「建议收藏」nginx相对apache的优点:● 轻量级,同样起web服务,比apache占用更少的内存及资源● 抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能● 高度模块化的设计,编写模块相对简单● 社区活跃,各种高性能模块出品迅速啊● Nginx支持更多的并发连接,能够支持高达50000个并发连接数的相应● 能在不间断服务…

    2022年6月6日
    30
  • 参加 CSDN 2009 英雄大会有感(一)

    参加 CSDN 2009 英雄大会有感(一)

    2021年7月30日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号