博客园在升级的路上,不妨更自信些,同时说说我们可以为博客园做些什么

    最近,博客园在技术升级上做了积极向上的努力,虽然中间过程出现反复,但姑且先不论最终升级后客户体验方面的提升,在升级过程中探索排查问题和解决问题的过程,本身就能帮助博客园团队和广大用户积累经验和提升能力,这种实践机会是千金难买的。

    阅读了博客园官方的相关文章,其中充满对广大用户浓浓的善意,这从多数同样充满关心的回复里能得到充分体现。其实,博客园团队在本次乃至之后的升级过程中,不妨做得更自信些,毕竟博客园的技术实力和品牌摆在这里。

1 以春秋之意责备贤者,博客园的本次升级可以做得更好

    从结果上来看,如果本次过程放在一般的互联网公司,不能不算是个产线问题,有差别的是博客园交流技术的氛围浓厚,不大会因此流失用户。不过博客园管理团队依然可以思考如下的问题。

     1 对于升级后的技术方案,针对当前并发流量,有没有做过压测?

     2 有没有事先评估升级过程中可能会出现的问题,并以此做了回退等预案?

     3 高速开车换底盘的过程中,一般会用灰度发布的方式,一点点切流量,目的是对现有产线影响最小。本次升级,发布次数众多,是不是每次都是全量切换?

    总之一句话,可以分析本次有哪些改进点?如果再做一次,怎么能做得更好。复盘问题,是为了让之后的升级更加平坦,也是为了让之后的升级更加自信。

2 自信更可以体现在框架层面

    我经常见到阿里团队,在各种场合从框架角度介绍他们的组件或产品,而且不少框架和技术会在介绍后,影响面逐渐扩大,之后该组件或框架逐渐成为业内标杆。

    比如现在我们要解决某个高并发等方面的问题,首先会想,阿里或其它著名互联网公司是否有现成的解决方案。与之对应,我所希望看到的场景是,博客园所采用的基于.NET的框架体系,也成为业内的标杆,如果有人在.NET方面有问题,首先会想,博客园对此是怎么解决的。这样的话,就单论技术层面,博客园的影响力也能进一步扩大。

   虽然我是做Java的,对.NET不大熟悉,但从本次博客园相关官方文章里,能看到不少“docker”,“云”,“高并发”和“负载均衡”等热门词汇,这说明博客园所用的技术第一不算落伍,第二还紧跟技术进步的潮流。在这基础上,在不涉及到商业机密的前提下,博客园可以更为自信地在众多场合介绍自身的技术框架以及相关技术实践,比如介绍应对高负载的.NET体系框架方案。

    希望不久的将来,能在诸多技术大会等场合,听到博客园技术人员能自信满满地介绍自己的框架,底下是顶礼膜拜的广大听众。         

3 可以更自信地不断更新版本

    本次版本迭代,影响面不小,但不能因此缩手缩脚,相反还可以更自信地完善技术乃至完善版本发布流程,毕竟博客园的技术储备摆在这里。

    我期待的博客园发版流程是,首先举重若轻地通告,从某月某日某点到某点,进行发布;其次在发布过程中,虽然会出现个别功能故障,但总体不会出现大问题;最后是写篇文章总结,比如在本次发布过程中,用到了xx技术,从功能上做了xx提升,在性能上有xx改进。

    这其实也是诸多互联网公司普遍流程,一般都是一月两版本,甚至更多,每次发布虽然重视,但绝非如临大敌。

    发布时的自信来自平时的不断总结以及充足的预案,只要不停止探索,一回生二回熟,成功次数多了,自信心就慢慢提升上来了。

4 我们可以为博客园做点什么

    在博客园发展的路上,我们不应该仅仅做看客。

    第一,先不说写博客,就先说在评论别人博文时,应当注意影响,在争论不同观点时也应当尽量心平气和,毕竟在博客园发表不堪的文字,更会让博客园美玉有瑕。

    第二,看到博客园偶有功能上的问题,乃至自己想到有改进点,可以找个合适的场合与博客园沟通。

    第三,尽量多写些有质量的原创博文,比如在写文章前多找些素材,用词造句时多斟酌,多加入些自己的思考。

    第四,如果以当前的能力,写不出足以留在首页的文章,也可以通过不断学习提升自己的能力,通过不断写作提升自己的文笔,这样文章的质量就慢慢提升了。

    本人对.NET技术不熟,所以在本文里也不敢据此提出此方面的见解,在最后也希望能抛砖引玉,引出更多高质量的相关技术文章。

 

转载于:https://www.cnblogs.com/JavaArchitect/p/11383218.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS中持久化存储SQLite(一)

在iOS中做持久化存储有多种方案,其中包括plist, preference, sqlite, core data,其中: (1)plist, preference适合小型数据存储,因为每次存储前都必须将文件内容读到内存中,因此如果数据量过大就会占用大量…

多进程相关内容

多进程相关内容 multiprocessing模块与process类 multiprocessing python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。…

iOS中SQLite持久化存储第三方库FMDB

interface HMShopTool : NSObject (NSArray *)shops; (void)addShop:(HMShop *)shop; end implementation HMShopTool static FMDatabase *_db; (void)initialize { // 1.打开数据库 NSString *path [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, N…

python超神之路:python异常对照表

python异常对照表 异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代器没有更多的值GeneratorExit生成器(generator)发生异常来通知退出StandardError所有的内建标准异常…

python超神之路:创建对象的9种方法

python生成对象的9种方法 class Point:def __init__(self,x,y):self.x xself.y y import sys import copy import typespoint1 Point(1,2) point2 eval("{}({},{})".format("Point",1,2)) point3 globals()[Point](1,2) point4 locals()["Point…

面向接口的编程

面向接口的编程,将接口与实现分离,可以极大的降低代码的耦合,比如在编程中使用的加密接口,如果将具体的加密算法写入到使用加密的地方,这样就会导致,下一次加密方法发生改变的时候会导致大量的地方需要修改…

ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)...

在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入。 约定: 1、仓储层接口都以“I”开头,以“Repository”结尾。仓储层实现都以…

可视化caffe模型结构及在线可视化

在线可视化caffe模型结构 http://ethereon.github.io/netscope/#/editor 假设Caffe的目录是$(CAFFE_ROOT) 1.编译caffe的python接口 $ make pycaffe 2.装各种依赖 $ pip install pydot $ sudo apt-get install graphviz 3.可视化模型 draw_net.py执行的时候带三个参数 …

布式缓存系统Memcached简介与实践

缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时Memcached或许是你想要的。Memca…

仿百度翻页(转)

https://www.cnblogs.com/fozero/p/9874334.html 转载于:https://www.cnblogs.com/hj0711/p/11390203.html

matlab 多核并行编程

在使用matlab处理大数据,编程需要注意两个问题:并行运算和释放内存。matlab也提供了并行计算的功能,甚至能用GPU加速。并行计算工具箱,叫做parallel computing toolbox.它的使用方法,可以从matlab的帮助获得。 Parall…

iOS核心动画之CALayer(1)

本文目录 一、什么是CALayer二、CALayer的简单使用 回到顶部一、什么是CALayer * 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 * 其实UIView之所以能显…

ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await

PS:异步编程的本质就是新开任务线程来处理。 约定:异步的方法名均以Async结尾。 实际上呢,异步编程就是通过Task.Run()来实现的。 了解线程的人都知道,新开一个线程来处理事务这个很常见,但是在以往是没办法接收线程里…

iOS核心动画之CALayer-layer的创建

本文目录 一、添加一个简单的图层二、添加一个显示图片的图层三、为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage?四、UIView和CALayer的选择五、UIView和CALayer的其他关系 * 上一讲已经说过,UIView内部默…

iOS核心动画之CALayer-隐式动画

本文目录 一、隐式动画属性二、position和anchorPoint 回到顶部一、隐式动画属性 * 在前面几讲中已经提到,每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层)。所有的非Root Layer,也就…

多进程补充

多进程补充 僵尸进程和孤儿进程 基于unix环境(linux,macOS) 主进程需要等待子进程结束之后,主进程才结束 主进程时刻监测子进程的运行状态,当子进程结束之后,一段时间之内,将子进程进行回收.为什么主进程不在子进程结束后马上对其回收呢? 主进程与子进程是异步关系.主进程无法…

iOS核心动画之CALayer-自定义层

本文目录 一、自定义层的方法1二、自定义层的方法2 三、其他 自定义层,其实就是在层上绘图,一共有2种方法,下面详细介绍一下。 回到顶部一、自定义层的方法1 方法描述:创建一个CALayer的子类,然后覆盖drawInContext:方…

iOS核心动画之CoreAnimation

本文目录一、Core Animation简介二、Core Animation的使用步骤三、CAAnimation四、CAPropertyAnimation 回到顶部一、Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果…

抽象类

当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体。 也就是编辑一个类 这个类不是绝体的东西 是一个抽象的 例如 描述JavaEE工程师:行为:工作。 …

iOS核心动画 Core Animation2-CABasicAnimation

Core Animation2-CABasicAnimation 本文目录 一、平移动画二、缩放动画三、旋转动画四、其他 CABasicAnimation是CAPropertyAnimation的子类,使用它可以实现一些基本的动画效果,它可以让CALayer的某个属性从某个值渐变到另一个值。下面就用CABasicAnimat…