关于敏捷开发

敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。在敏捷开发中,软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发的核心理念是,以最简单、有效的方法迅速达成目标。这其中,主要包含对环境变化的快速反应,以及相应的速度调整。

敏捷开发的概念源于1990年代中期的软件开发界。当时,许多软件开发项目都面临着超出预算、延期交付、无法满足用户需求等问题。传统的瀑布模型开发方法被认为过于繁琐和僵化,无法适应快速变化的市场和技术环境。2001年,17位著名的软件开发者在一个滑雪度假村聚集并讨论了这个问题,提出了一种新的软件开发方法——敏捷开发。他们共同撰写了《敏捷软件开发宣言》,明确提出了敏捷开发的四大核心价值观和十二条基本原则。

阅读更多

更换了阿里云ECS香港机房

用了N年的搬瓦工VPS终于要说再见了,最近几年搬瓦工的速度是一日不如一日,今年实在是忍无可忍,物色了一个月最终决定换成阿里云香港机房算了.

选择阿里云一方面因素是国内云主机用阿里云已经用的挺多了,只不过国内主机在用一些国外的程序时有时脚本跑不通,所以还是需要一台方便连外网的主机.另外一方面因素是阿里云的香港机房速度非常不错,无论是连国内还是连国外都非常好,虽然价格比较贵,但其实对于这一台不是主力的机器来说价格并不会太高,于是直接买个5年打了个4折.而且买这个云主机也是因为阿里云的销售推销电话刚好就打了过来,认识了阿里云的销售妹子唐婉,是相当的给力,让我更加坚定了买阿里云的云主机,唐婉在打4折的基础上还给我加了个双11的优惠券,简直像不要钱一样,性价比满满,-_-||

不过这次选的购买方案选的是按流量付费,所以首次付费非常便宜,毕竟这台云主机只拿来做一些BLOG服务还有部分官网站的英文版本服务,流量肯定很小,另外附上香港ECS的全球连接速度情况,非常优秀.

换上CN2 GIA

用了好多年的搬瓦工CN2服务器今年终于决定不再续费了,换上CN2 GIA的机器,价钱贵了好几倍,但相对CN2好的太多了,任何时间段都很稳,虽然速度也并不快,但对于一个网页服务器来说,没有比稳定更重要的了.

换上CN2 GIA自然就重新部署了环境,我还把首页X3系统一并更新然后打算重新构建内容,反正都是一个做个自己看的网站,索性放一些自己会欣赏的东西,包括歌曲,图片,视频,或者是一些没有什么具体目标或者没营养的东西.

之前BLOG因为CN2速度太慢或者被墙有一段时间移回了国内的阿里云放着,但因为不能连接国外的服务,而且WP3更新也遇到了挺多问题,所以又移回了CN2,这次升级到CN2 GIA让BLOG访问更加舒服.

重新部署了wordpress

许久没有在自己的BLOG写东西,这段时间WORDPRESS不停的提示PHP需要更新,好吧,抽了一个国庆长假更新了服务器的系统及服务端程序,不料恢复数据进来后网站竟然无法访问,DEBUG了许久虽然能访问了但依然有许多的问题,想想算了,干脆自己重建了一个WORDPRSS然后再导入之前的文章数据,整个系统清爽了,毕竟之前安装的一些插件还是对系统会有一定的影响吧.

新版的WORDPRSS主要是编辑器还是需要适应一下的,而且插件方面也完全不同了,虽然我之前也不怎么使用插件,基本就是一个默认的系统,不过还是有些编辑类的自定义插件无法使用了,比较遗憾,以后有空继续研究研究吧.

还有一个比较遗憾的是这次转移把服务器放回了国内,重新申请了备案,整个网站变快了许多,只是之前使用的IG和YOUTU的页面也不能使用了,只能把链接暂时屏蔽吧.

WEB代码上线自动化方案

小型企业上线架构方案


1、开发人员需在个人电脑搭建LAMP环境测试开发好的网站代码,并且在办公室或IDC机房的测试环境测试通过,最好有专职测试人员。
2、程序代码上线规定时间,由网站业务性质而定,原则就是影响用户体验最小。
3、代码上线之前需备份,网站程序出了问题方便回退,另外,从上线技巧上将,上传代码时尽可能先传到服务器网站临时目录,传完整后一步mv过去,或者通过ln做软连接。
线上更新代码的思路。如果严格更新,把应用服务器从集群节点平滑下线,然后更新。
4、尽量由运维人员管理上线,对于代码的功能性,开发人员更在意,而对于代码的性能优化和上线后服务器的稳定,运维更在意服务器的稳定,因此,如果网站宕机问题归运维管,就要让运维上线,这样更规范科学。否则,开发随意更新,出了问题运维负责,这样就错了,运维永远无法抬头。

阅读更多

我为什么这么强调前端工程化

历史状况

WEB 前端开发这几年发展非常迅速,非常多的开发框架和构建工具涌现,可能你昨天还在用的工具、插件,到了今天就过时了。在 2 年前,我面试别人的时候,会问一些有没有接触NodeJS、 Grunt、gulp、ES6、Babel 这类技能的问题,超过半数的面试者会回答『没有』,或者说『只是刚刚接触,并不是很深入』。迫于招人急迫,我并不会直接说 NO,然后继续问一些 HTML、CSS、JS 前端三板斧的知识。 然而今年,如果应聘者不会这些技能,那真的很抱歉, 我不会接受一个没有走在前沿的开发者 。任何面试者都不会喜欢一个墨守成规的人。难道没人告诉你,外面的世界已经变了吗?

需要解决的问题

web 开发发展了很多年,已经积累了大量的经验和工具,前辈们的经验已经经过了很多考验,有轮子借鉴参考的时候,一定不要拒绝。对于还没有接触 Gulp/Grunt/Webpack 的人来说,你们还在石器时代,不建议你继续看下去。
工具和语言虽然差异大,但是解决的都是相似的问题,归纳为:

  • 扩展 javascript 、html、css 本身的语言能力
  • 解决重复工作
  • 模板化、模块化
  • 解决功能复用和变更问题
  • 解决开发和产品环境差异问题
  • 解决发布流程问题

阅读更多

web架构之演化过程

大型网站特点

1.高并发,大流量
2.高可用
3.海量数据
4.用户分布广泛,网络情况复杂
5.安全环境恶劣
6.需求快速变更,发布频繁,产品发布频率是极高的
7.渐进式发展。好的互联网产品都是慢慢运营出来的,不是一开始就开发好的。

阅读更多

技术管理

其实我还不是一个正式的技术管理者,还是在学习管理的路上。
以前我对做管理也有很多误解,比如任务做了管理之后对技术就会慢慢生疏了技术,越来越不懂技术,在技术的路上只能看着别人一路前进了。另外,管理上更多是琐碎的事情,不停在协调资源,给人打kpi,毫无技术含量。
记得在去年自己刚开始接触管理的时候,内心是非常抵触的,都不愿意承认自己在往技术管理的方向发展;也因为这种思想导致自己在实际工作中不能把技术管理做好,也没有把技术做好。
做到合格的技术管理应该有很好的技术观产品观数据观、整体来看也就是有全面的业务观 。
现在谈谈我在技术管理角色中做了什么。

阅读更多