要学会思维图形化 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
阅读:834 字 ~2分钟曾经,我幼稚地认为:只有写好代码才能对产品最“大”的贡献。什么需求分析文档,架构设计文档,没有最终的代码落地,那就是一张张的空纸。那些职位高高在上的架构师们,就也是写写胶片,画画图,他们又不懂技术细节,天天开会讨论来,讨论去都是在空谈一切。没有我们这些屌丝写的代码,你让他们去实现,估计几年也搞不出来。我写代码的能力比他们顶上N个人;再看看人家老外,60/70岁了还在码代码。为什么我国到了30岁了,都不去写代码了,都去搞所谓的架构设计了。是他们写代码写不好才去干架构师活吗?
经过这么多年在产品中挖坑、填坑,发现我们的产品是越来越复杂,但使用上也是越来越复杂,问题也是越来越难理清。我们的问题到底是出在什么地方:
数据不可靠,系统常出错增加新需求困难,场景总是覆盖不全系统之间集成各种问题难以轻易解决交付不同局点,代码总是改来改去每年代码量成倍增加,前辈的代码看不懂、改不动…这其实是光写好代码是不能解决上述问题的。只有你经历过,感受到,才能认识到系统的架构是何其重要。作为曾经一名码农,这几年一直在设计部与架构部工作,总是羡慕那些高级别的架构师:
他们思考问题角度...阅读全文

软件变革下设计原则 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
阅读:3441 字 ~7分钟传统大型软件系统 ,多以功能需求驱动设计与开发。在体系结构上是一个单体应用,变更修改往往是牵一而发动全身;在系统生态上是一个封闭系统,系统集成是大量定制开发。单体封闭的系统在交付中面临着越来越多的挑战,提升系统的竞争力首先是在软件架构上先行。软件系统发展也需像硬件一样不断地更新换代,软件架构设计需要输入新的思维。只有在思想上彻底地变革,才能摆脱原有的束缚与局限性。
体验为王软件原本是一种信息技术发展不断地服务于各行各业,软件在实现上又是偏向技术性。如何让普通用户能够较好地使用软件,而不需要这方面的专业背景,需要思考软件减少数字与体验之间鸿沟。互联网思维一直讲求如何让用户感知到你对他的价值,而且把这个价值争取做到极致,超出用户的预期,这个就叫体验。只有用户产生体验之后,才能形成口碑。简而言之,体验的思想,就是从用户的感受出发,把它做到极致。
正如我们所见到的,iPhone的成功原因之一,就是注重用户的体验获得巨大的成功。今天,人们于弹指间操控丰富业务。无数应用,以碎片化的形式填满用户时间,连接起永远在线的数字生活。一个显见的事实是,“体验”正被尊奉为至高...阅读全文

Archlinux on WSL - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
最近国庆某东活动,搞了一台HP的笔记本,系统是Win10。经过不断地折腾,在Win10上启用了Windows Subsystem for Linux(简称WSL),并在WSL上安装了Archlinux。加入Insider Preview会员计划,可以最快地获取Win10的最新内部版本,以便及时获取WSL的功能更新。
WSLWindows Subsystem for Linux是一个为在Windows 10上能够原生运行Linux 二进制可执行文件(ELF 格式)的兼容层。 WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码)。它包含用户模式和内核模式组件,主要是由如下组成:
用户模式会话管理器服务,处理Linux实例的生命周期;Pico(可编程输入输出)提供驱动程序(lxss.sys,lxcore.sys),通过转换的Linux系统调用模拟Linux内核;承载未经修改的用户模式Linux的Pico进程,例如/bin/bash。在用户模式Linux程序和Windows内核组件之间,通过将未修改Linux程序放入Pico进程,我们让Linux系统调用被引导至Wind...阅读全文

Go依赖管理机制 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)
阅读:3006 字 ~6分钟无论何种语言,依赖管理都是一个比较复杂的问题。而Go语言中的依赖管理机制目前还是让人比较失望的。在1.6版本之前,官方只有把依赖放在GOPATH中,并没有多版本管理机制;1.6版本(1.5版本是experimental feature)引入vendor机制,是包依赖管理对一次重要尝试。他在Go生态系统中依然是一个热门的争论话题,还没有想到完美的解决方案。
看其它我们先来看看其它语言怎么解决,例举两种典型的管理方式:
Java开发态,可以通过maven和gradle工具编辑依赖清单列表/脚本,指定依赖库的位置/版本等信息,这些可以帮助你在合适的时间将项目固化到一个可随时随地重复编译发布的状态。这些工具对我来说已经足够优雅有效。但maven中也有不同依赖库的内部依赖版本冲突等令人心烦的问题。尤其是在大型项目中的依赖传递问题,若团队成员对maven机制没有足够了解下,依赖scope的滥用,会让整个项目工程的依赖树变得特别的巨大而每次编译效率低下。运行态,目前Java也没有很好的依赖管理机制,虽有classloader可以做一定的隔离,但像OSGi那种严格的版本...阅读全文

再说说微服务 - 蘭陵N散記

作者:JerryXia | 发表于 , 阅读 (0)

Why我司从15年开始学习互联网的微服务构架,到今16年的全云化战略,微服务已作为架构体系的重要工作。但微服务看似美好,在IT界应用非常的成熟与成功,但这个本质没有革命性的技术架构,在我司却非常地难以落地。主要原因:传统的CT应用太过厚重,面临着软件交付模式完全不一样,历史包袱改造面临短期看不到收益的成本投入:
IT界:软件是自运维,借助于微服务构架,DevOps工程化,以及相对扁平的组织结构。软件向微服务转变相对阻力比较小,按康威定律,组织决定架构,微服务构架与扁平化、轻小的、精英化的组织是完全匹配的。在微服务构架实施上可以快速迭代演进,同时形成回路反馈,架构更符合良性的发展。同时像BAT等公司,业务上爆发式的增涨,也会加速微服务构架软变与满足。我司:软件非自运维,做的是产品卖给运营商,DevOps当前无法直接打通。微服务构架对交付与运维来说,没有直接带来价值,反而会带来更多的问题。运营商是不可能像IT界每日构建灰度升级的。当然运营商自己也在改变,但这个改变是基础设施平台化,上层业务应用会拉入IT厂商,反而像我司这类传统的设备供应商会被旁落。说起来,这是另一个更大沉重的话题,不...阅读全文