自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 敏捷开发的真实体现

现在大部分企业都说自己是【敏捷开发】,站在管理者的角度可能敏捷代表加快软件交付的速度,站在开发者的角度可能敏捷代表一堆执行的方法和规则,更有不少人(心里)认为敏捷是逼迫开发者老实点的方法。无论怎样,各个企业都执行着或多或少的敏捷开发中的元素:迭代,每天站会,复盘等等。形式是有的,但是总觉得哪里不对了,就是没达到敏捷应该有的效果。最近看了一个Dave Farley的一个有关敏捷的YouTube视频,当中指出了一个敏捷开发的几个核心内容:开发软件是一个不可重复的工作:一个需求和另一个需求的开发内容、场景和

2021-07-19 17:55:20 251

原创 大型Vue应用插件架构(二)

如何不用复制粘贴式的重用前端组件代码?你需要这个Vue插件框架

2021-03-25 16:21:36 586 1

原创 大型Vue应用插件架构(一)

大型应用需要处理两个重要问题:功能如何拆分成可控的小粒度如何把多个小粒度合并成一个整体针对这个问题,现在的大多数方向都往微前端(micro-frontend)倾斜,据说微前端的其中一个好处是各个分部可以独立发布和管理,这个方案是处理了分和合的问题,不过要合的有深度,各个部件需要有不同程度的协调与交互,这个是我理解的微前端的一个没有处理好的领域。而我现在以另外一个方向处理分和合的问题。整体思路先定义最终结果:我们需要一个大型应用的前端(Vue)框架,让开发同学可以分开部分来开发,其交付的内容就是

2021-03-14 17:23:09 941 3

原创 初探网页应用的自动化测试:Cucumber + Selenium

前言测试同学一般在测试网页应用的时候,都会按着既定的用例描述自行操作一遍,来验证输出结果是否符合预期,这相信也是大部分公司招聘测试员的工作范围之一。这种作业模式,在上线频率不高的前提下,还是可以满足要求的。完整执行一次回归测试,覆盖系统所有功能,实际上也是比较耗费时间的。自动化测试固然可以解决测试效率问题,...

2021-03-11 14:20:39 809 3

原创 领域模型数据结构

要快速了解一个系统,最快的方式就是通过阅读数据模型文档了解.这文章的出现,其实是个偶然,因为本来我以为可以快速搜索到什么是数据模型/数据结构,要么如百度百科说的,分开概念数据模型/逻辑数据模型/物理数据模型.要么就给你定义数据模型和算法的定义,来一个二叉树.扪心自问,我们的系统有没有概念数据模型的描述文档?除非你是来自比较有规模的公司,否则一般都不要求,甚至没有意识需要写这种描述文档.一般人在学习和了解一个系统,最好是从宏观角度,再一层一层细化到微观.上面说的三层模型:概念数据模型/逻辑数据模型/物理

2021-03-10 19:54:34 209

原创 依赖关系分析是开发者必须经过的一道坎

依赖关系是什么依赖关系是用来描述一个事情发生的必要条件。如:吃饱才有力气干活。那么干活依赖吃饱这个条件。要表达干活依赖吃饱,通常我们会用一个箭头链接吃饱和干活,如下图:#mermaid-svg-l3iF11rPbbnishmX .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-l3iF11rPbbnishmX

2021-02-08 18:48:49 1175

原创 没有这些能力能做好程序员吗?

经常想的一个问题,在我审核代码的时候,一般程序员都或多或少的犯了一些毛病,而这些毛病的根本原因是因为缺少了某些能力导致的,下面我做了一个初步的总结。识别识别包含几个概念: discover,identify,naming。首先你需要在混沌中发现有用的东西,明确识别它,并赋予它一个准确的名字,以区分开不同的概念。识别能力是下面其他能力的开始点。归类当你能在混沌中识别到很多不同的东西以后,你需要把东西归类(classify),作初步简化。什么东西应该放在一起,什么东西绝对不能放在一起,就好像垃圾分类。实

2020-09-19 10:49:29 267

原创 混合HTTP API和消息队列的对接策略

现代接口设计会默认使用HTTP,但有些情况使用HTTP API并不是最好的方案。本文尝试探讨这个问题。

2020-09-11 23:56:56 1331 2

原创 关务+物流领域的技术发展路线

跨境物流和关务关系密切,而这两个领域对比国内物流的发展相对滞后。本文尝试以技术的角度分析当中原因,并给出个人见解,作为个人在行业中的一个阶段性小总结。

2020-08-31 09:34:42 852 2

原创 程序员的等级

程序员的等级大致可以分为以下几种:* 要手把手的教着来做事(实习生)* 给他准确和完整的指示,才能把事做好(初级程序员)* 给他模糊甚至遗漏了的指示,他能把事做好(高级程序员)* 给他原则性指导,他就把事做好(系统分析员,架构师)* 只说好目标,不给他任何指导,他也会把事情做好(技术合伙人)* 自己找目标,并做好事情(创业者)...

2019-12-19 14:04:09 238

原创 时间的基础知识

时间的基础知识前言时间的本质时间的表达方式运行结构存储方式数据库存储结构JDBC调用的影响传递方式总结前言时间处理是所有程序员都必须面对的难题,如果你遇过以下问题:时间显示时总是差八个小时时差存储在数据库的时间看起来没问题,就是程序读出来的时候差了八个小时时差浏览器传过到后台的时间,差了八个小时时差八个小时时差这个事,好像总是跟程序员过不去,而程序员总是糊里糊涂的把时差补上去完事,...

2018-09-30 17:38:22 625

原创 HTTP WEB基本功

我发觉很多程序员,即便是有很多年经验的,也会对HTTP基本原理的理解不够透彻,特别明显的是对资源的理解。具体问题体现在服务器中的临时文件的处理。以下让我描述一下某些错误观点。错误一:某些动态生成的资源(如PDF,验证码图片等等),需要写在文件系统中,而该目录需要在应用服务器中的某个公开目录,才可以让用户访问我们以前做的JSP,放在webapp目录中的文件都是可以直接访问的(或ASP项目中的...

2018-06-28 12:37:58 300

原创 消防员的工作量

作为老板,你肯定希望员工的工作能饱和,不会闲着。如果你要招聘的是消防员,你希望他的工作饱和吗?如果按资源利用率的角度,假如有一天你发现这个消防员闲着没事干,你很有可能把他裁掉,等到一天每一个消防员都非常忙的时候,再招几个来应付一下。天天出去救火的消防员,从资源运用的角度是充分利用了这份人力资源,但这并不是社会的目标。有些角色是要维持一定缓冲量的,你闲放着,是不希望需要用上,但万一有一天...

2018-06-19 16:21:26 398

原创 机会

一般做系统开发,很多时候都是在某些基础之上搭建新的功能,或者维护现有的功能。从零开始做起的项目是很少很少遇到的。在有一定基础上建设系统,需要的技能是快速理解现有代码,框架和结构,并按需求加以改造。按这种思维做出来的代码通常不会做大手术(架构调整),因为任何大动作都影响旧的功能导致运行问题。如果幸运的,有测试代码覆盖了旧的功能,需要重构的时候比较安心,如果不幸没有任何测试代码,那结果就是不动为妙...

2018-04-09 23:57:57 151

原创 无中生有

很多伙伴做了多年开发,都不太注重【从无到有】这个过程,这里我想展开一下。从无到有,是一个创造过程,基本上整个编程工作都是无中生有的,在你敲第一个字的代码开始,代表了整个创造过程的开始,不过且慢。用什么程序敲你的第一个字?在笔记本Notepad中?当然可以,但一般不会这样。一般需要一个IDE帮助我们开发的,我们第一行代码通常在一个IDE中敲的。所以注明用什么IDE什么版本什么插件等,就是从无...

2018-04-02 14:53:34 423

原创 金融才俊

作为面试官,最近面试了一个来自金融行业的人,由于我们公司小,对于一个金融背景的人看得上我们公司,我是绝对质疑的,这是我的偏见。不过既然人事部安排了,尽管见一面吧。第一感觉,整齐端正,头发整理甚是讲究,感觉果然是个金融才俊。初步了解的过程中,她说了较多的行业业务的处理流程,我尝试尽量了解,自认理解能力挺高的自己,都有点似懂非懂了,只有先认输了:「你说的东西,作为外行人,比较难理解,我们换个话题吧...

2018-04-01 13:39:17 564

原创 技术行业中的师徒制

很多行业都是师徒制的:做学问的: 教授与其研究生搞艺术的: 二胡大师与其学生形而上的: 禅修大师与其徒弟手把手的: 厨师与其徒弟以上的例子有几个共通点:较高的入行门槛需要一定的意志和追求需要一定时间的经验累积和心得开创性和不确定性较为强烈个人风格和思维方式教育也讲求效率,一班一百多号人,多么有效率。对于普及教育,这种模式是必须的。但是我们甚少看到一个教授公开谈...

2018-03-31 13:47:16 607 1

原创 产品和开发对接

有朋友说不会跟开发打交道,我尝试在这里描述一下开发需要什么东西。但开始之前,我想先说明一下开发是什么。现在的开发,绝大部分都是数据处理。举个例子,假设没有任何系统帮助,只有Excel,如果要记录某客户下了一个单,我们会期望在Excel表格中,用一行数据来记录这个订单。从单纯记录订单的角度,这样已经足够好了。如果我们还想进一步记录订单状态(如发货了没有),按目前表格的结构上看,可能需要发生一些变...

2018-03-13 13:16:08 2819

原创 项目中的大改动

关于项目改动的一些分层分析:包括界面、逻辑、模型、框架上的改动

2017-06-09 17:26:38 349

原创 项目中的一些轶事

项目落地

2016-04-03 10:57:33 630

原创 软件模块和领域概念

技术上我们经常强调模块化、组件化,但是能真正实现软件模块化,需要通过对业务领域有一定程度的理解才能达到。我们可能有专业培训组件和模块技术的课程(OSGi等),但这类课程并不会告诉我们所在的领域上具体情况应该如何划分模块,大概辨别和划分模块的能力是理所当然。但事实上并非如此。用一个例子说明:假如一个网站需要添加一个广告功能。大概有以下可能性:如果该网站本来是没有模块化的,直接就往代码里做修改。而后果

2015-03-29 11:13:09 1541

原创 系统安全领域的人员是否真的供不应求?

想非正式地调查一下,大家在企业里有没有这样的需求没有被满足的?

2014-09-26 18:12:37 912

原创 职业规划

以前一位同事正在疑惑有关他未来的职业发展,以下我给他的回复:说实话,要给出适当的意见,需要对你的性格有一定了解才行。不过有几点意见是通用的:第一:如果你的兴趣能为你赚取你的生活所需,这个是最好的。有人跑去开自行车店,因为自己喜欢自行车;有人喜欢吃,跑出做大厨。而我喜欢偷懒,所以尝试用计算机帮我做一些繁琐的工作,和帮忙其他人解决他们繁琐的问题,同时赚取生活所需。从兴趣出发来选择职

2014-09-25 11:05:40 1120 1

原创 持续集成的成功要素

成功的持续集成环境,在我看来包括几个重要部分:1. 清晰的依赖管理 Dependency Management2. 内部软件库 Package Repository3. 可配置的环境参数、配置管理 Configuration Management4. 可分拆的部署单元、发布单元、贡献单元

2014-09-11 15:17:34 1902 1

原创 企业领导层对技术该有的态度

技术对好多老板级的人说,就如买个手机一样,看的是付出的成本和得到的利益。无可厚非,老板付出金钱购买服务,技术人员提供专业服务,这种关系本质上说是平等的,你可以买我的服务,我也可以不卖给你。不过双方一旦发生关系后,这种平等性就会被打破。举个例子:你买了一套金蝶,你的数据都在里面跑了,要逆转的话,恐怕要付出比较多的成本。又例如:你找了一个朋友帮你做了一个系统,慢慢地这位朋友开始没有时间帮你调整和更

2014-09-06 15:51:12 1128 1

原创 贡献式编程(总结)

介绍贡献式编程的思考方式:一个系统的可扩展性,是这个系统生命力的所在。容易扩展,容易修改,容易做出贡献,生生不息。

2014-09-04 14:35:02 1566 1

原创 贡献式编程(四)

xu界面上,订单明细的UI,同样定义两个区域,一个区域显示通用字段,另外一个区域显示平台特有字段。而这个平台特有区域就是可以扩展的地方了。

2014-09-04 14:23:56 825

原创 贡献式编程(三)

定义过贡献单元后,开始更改架构来支撑每一个贡献的可能性了。支持贡献的技术变更由于第一版和第二版是不支持贡献的,我们需要定义贡献的目的地:订单系统。先把[订单系统]抽出来。Amazon 和 eBay 分别是两个不同的贡献。在没有 Amazon 和 eBay 这两个贡献之前,订单系统就应该存在,而且应该是可以“正常”运行的(正常的意思是没有报错,只是没有下载订单数据)。第二版(第二稿)

2014-09-03 21:06:05 898

原创 贡献式编程(二)

前面说到,

2014-09-03 11:38:08 906

原创 贡献式编程(一)

我想在这里强调以下这个模块式

2014-09-03 10:56:39 1106 1

原创 新兴技术名字Reactive

近1-2年Reactive:意思是

2014-08-30 08:25:19 902 2

原创 Logback和Logstash的集成

http://www.elasticsearch.org/overview/elkdownloads/有一段时间没有关注这个

2014-08-29 10:00:19 17831 7

原创 一代的成长

刚和我的一位就伙伴交流了

2014-08-15 17:33:39 728 2

原创 持续集成交付的流水作业

最近和一位朋友讨论持续集成()

2014-08-14 17:51:45 1374

原创 Scala的实际应用场景

一般程序员对Functional Programming针对Scala

2014-08-11 11:28:13 6986 1

原创 一次简单的重构经验

背景曾经为一家律师事务所做的案件信息管理工作,使用的是Playframework 2.3.x / Java。由于是外包项目,原来就只是一个工程,也没有打算再拆分子模块。后来这家公司继续为系统考虑添加功能,要增加一系列的CRM中的销售管理的功能,问题慢慢浮现。我发现问题有几个:Playframework本来就能进行代码修改、编译、加载、运行,一直以来都非常方便,但是开

2014-08-11 09:39:16 1707

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除