Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
蔡学镛 的技术动态 - OurCoders (我们程序员)

蔡学镛的技术动态

蔡学镛
2020-01-21 00:00:00 发布
我的新文章「技術架構設計12原則(下篇)」技術架構設計12原則(下篇)
蔡学镛
2020-01-14 15:08:36 发布
我的新文章【技術架構設計12原則(上篇)】技術架構設計12原則(上篇)
蔡学镛
2020-01-14 15:08:36 发布
我的新文章【密碼法的緣由】密碼法的緣由
蔡学镛
2020-01-14 15:08:36 发布
我的新文章【高速大量業務的應用架構關鍵】高速大量業務的應用架構關鍵
蔡学镛
2019-12-27 00:00:00 发布
我的新文章「鬆耦合的關鍵」 鬆耦合的關鍵
蔡学镛
2019-12-23 00:00:00 发布
我的新文章「技術應用的艱辛探索」 网页链接
蔡学镛
2019-12-22 00:00:00 发布
架构师的真正任务是排除技术风险,包括开发阶段、运维阶段、维护阶段的各种可能的技术风险。
蔡学镛
2019-12-20 00:00:00 发布
我的新文章「企業難以成功進行架構變革的徵兆」 企業難以成功進行架構變革的徵兆
蔡学镛
2019-12-19 00:00:00 发布
这两天写了两篇文章,讲述我的 13 条「架构原则」,预计明年初发表在这里: 架構思維|蔡學鏞
蔡学镛
2019-12-16 23:07:39 发布
这两天写了两篇文章:1. 鬆耦合的關鍵 2. 高速大量業務的應用架構關鍵,预计年底前发表在这里 架構思維|蔡學鏞
蔡学镛
2019-12-16 19:07:39 发布
我的新文章「大規模系統重構」 大規模系統重構
蔡学镛
2019-12-15 15:07:43 发布
听闻微软要开发一个类似 Rust 的语言(Project Verona),这我感兴趣,会持续关注。
蔡学镛
2019-12-14 00:00:00 发布
这二十五年来,我花时间最多的语言是:C++、Java、C#、REBOL、Rust。
蔡学镛
2019-12-13 00:00:00 发布
我的新文章「业务架构团队是公司最核心的团队」 業務架構團隊是公司最核心的團隊
蔡学镛
2019-12-09 22:13:08 发布
我的新文章「方法論設計的四個步驟」 方法論設計的四個步驟
蔡学镛
2019-12-08 00:00:00 发布
感兴趣的技术太多,时间太少,甚为苦恼。
蔡学镛
2019-12-06 15:07:51 发布
发表了我的新文章「微服務設計的十個步驟」 微服務設計的十個步驟
蔡学镛
2019-12-02 00:00:00 发布
我的新文章「架构能力的四个阶段」 架構能力的四個階段
蔡学镛
2019-11-29 11:06:40 发布
我的新文章「現代企業的架構流程」 現代企業的架構流程
蔡学镛
2019-11-25 00:00:00 发布
我的新文章「架構的意義」架構的意義
蔡学镛
2019-11-23 09:08:05 发布
我以前很擅长写一些乱七八糟的文章,例如这篇「IT演藝圈的表演課」 IT演藝圈的表演課
蔡学镛
2019-11-22 03:08:02 发布
我的新文章「區區區塊鏈,照照照妖鏡」 區區區塊鏈,照照照妖鏡
蔡学镛
2019-11-18 12:06:32 发布
我的新文章「抽象和類型」 抽象和類型
蔡学镛
2019-11-15 16:07:01 发布
我的新文章「區塊鏈的本質」 區塊鏈的本質
蔡学镛
2019-11-12 13:07:05 发布
想设计一套方法论,首先你必须要有一个参考模型(reference model)。参考模型本身就是模型,并不是 meta-model。一个好的参考模型必须做到:1 尽可能通用于许多领域 2. 容易用代码实现 3. 功能需求容易设计 4 不会阻碍非功能需求的设计 5. 可以降低后续调整的难度。
蔡学镛
2019-11-11 14:07:05 发布
我的新文章「建模的重要性」建模的重要性
蔡学镛
2019-11-06 00:00:00 发布
我在台灣的 iThome 週刊開了一個技術專欄《架構思維》,距離上次我為 iThome 寫《言程序》專欄的最後一篇已經 11 年了。《架構思維》的專欄文章已經開始刊出。第一篇「什麼是架構思維」發表在這個網址 什麼是架構思維?
蔡学镛
2019-10-18 14:05:40 发布
两个商业模型之间如何迁移,是「业务架构重整」能否成功的关键。这个迁移太复杂,所以通常必须分很多「阶段」实施。如何设计这些「阶段」,非常不容易。我认为这不是线性的,所以我用的方法是「状态图」。通过状态图描述这个变迁,加上 1 状态可以包含子状态 2 状态之间的迁移可以有三个成分(Trigger、Action、Post-Condition),迁移变得比较可控。
蔡学镛
2019-10-17 15:05:32 发布
如何设计超级框架?我的经验是:1. 先「根据合理的常识」,设计出一个完整的流程或架构 2. 接下来为其切割出阶段、层次、模块 3. 最后把市场上可以搜罗到的工具和框架映射到这些阶段、层次、模块。... 我以前的「三维技术架构」基本上就是这么来的,我现在还用这个方法在搞「业务架构」,好像也OK。
蔡学镛
2019-10-15 00:00:00 发布
大家对「快速迭代」有共识,但也有严重的误解。事实上,可能不是技术人员能力差或者不愿意快速迭代,而是没有一个可以支持快速迭代的架构。... 想快速迭代,对架构设计的要求是比平常更高的。这里说的不是高并发、高可用的架构,而是支持高迭代的架构。
蔡学镛
2019-10-12 23:08:07 发布
我把对业务架构的认知,梳理出方法论,写了 70 的 PPT,算是成了体系。方法论如果只是一种观念的话,没有搭配的工具,就不容易落地实施,于是我目前(暂时)使用 Excel 作为记录的工具,且定义了业务架构的记录格式。接下来,我还打算提供具体的填写模版(例如,产品应该包含哪些评估数据,用户应该包含哪些评估数据),这又是一个很大的任务。
蔡学镛
2019-10-12 20:08:07 发布
对我来说,今年本来是很不开心的一年,幸好第三季度我的状态有扳回一点,主要是在「业务架构」的方法论梳理上,和「技术架构」的代码实现上,都有了非常明显的进展,且两者开始有了融合的迹象。... 把技能的收获,记账到快乐的科目。
蔡学镛
2019-10-11 00:00:00 发布
业务架构必须持续调整维护,并不是设计好之后就高高挂起。我的业务架构方法支持时间维度,可把所有版本业务架构详细罗列出来,便于浏览差异和决定行动,所以我用颜色区分这些版本,以方便区分旧版本(白色)、目前版本(蓝色)、阶段目标版本(绿色)、废弃目标版本(灰色)、终极目标版本(红色)。
蔡学镛
2019-10-10 12:04:50 发布
当你把「建模」软件系统的想法和做法,再好好提炼和通用化之后,你可能会发现,其中好多技巧还可以用来建模其他的事物,例如「业务架构」。这是我最近的体会。... 我正试设计业务架构的方法流程和输出规范。
蔡学镛
2019-10-07 12:05:25 发布
有些道路是被逼着走出来的。身为技术架构师,我在技术架构之外,被逼出另外两条路:1. 业务架构:因为业务架构没有搞好,技术架构就不可能搞好。 2. 代码架构:因为代码架构没有弹性,技术架构后续就难以调整。... 一开始可能没有明显感受,后续业务变化需要维护和调整系统时就知道架构的重要了。
蔡学镛
2019-10-06 11:05:27 发布
思考架构设计方法论时,尤其是涉及业务架构和应用架构时,要分清楚:建模(modeling)和抽象(abstracting)是不一样的。... 建模是对某一个(或某一类)事物描绘要点(profiling),重点在找出「特殊的」「属性值」;抽象是对「某些」事物找出共性的概念,重点在找出「一致的」「属性」(非属性值)。
蔡学镛
2019-10-05 01:04:49 发布
架构设计的次序 vs 架构实施的次序
蔡学镛
2019-09-30 12:04:37 发布
没有严谨的业务架构 -> 没有对业务做深刻的思考 -> 业务人员乱提需求 -> 无法做妥善的技术规划 -> 技术架构混乱 -> 技术复杂度剧增 -> 技术人员加班加点 -> 好的技术人员流失 -> 技术人员加班加点 -> 好的技术人员流失 -> 技术人员加班加点 -> ...
蔡学镛
2019-09-30 11:04:37 发布
许多公司的 CTO、CIO 很可能成为公司最大的技术障碍。因为他们的技术判断能力不足(脱离一线太久),且太讲政治导致政治决策干扰专业决策,再加上总是希望短期见效(导致长期产生伤害),最后的结果就是下属提出的一些好的技术提议受到阻碍,整个技术团队的氛围丕变,不再崇尚技术。
蔡学镛
2019-09-28 00:00:00 发布
业务架构 + 技术架构
蔡学镛
2019-09-28 00:00:00 发布
架构师有好几种不同的领域偏向,包括:业务架构、应用架构、数据架构、系统架构、分布式架构。我主要以应用架构和业务架构为主,以系统架构、分布式架构为辅。这就是为什么我会设计商业之心的方法论,这是「业务架构+应用架构」的方法论。
蔡学镛
2019-09-23 00:00:00 发布
LLVM 9.0.0 出来了 网页链接
蔡学镛
2019-09-19 00:00:00 发布
这几年,越来越多底层的系统程序正在用 Rust 重写。又一个例子 Oreboot :网页链接
蔡学镛
2019-09-19 00:00:00 发布
我发现这几年技术会议的一个现象:如果技术比较新(例如刚发表 1~5 年),会议中常出现这类主题「我如何在公司内推广使用 xx」、「有效地向老板推介 xx 的十个方法」、「把 xx 技术带回家见父母」。
蔡学镛
2019-09-18 00:00:00 发布
macro_rules! 是 Rust 语言中用来定义 macro(宏)的方法,我觉得这名字相当好,有两层含义:1. 定义 macro 时,内部要定义一些规则(rules),所以 macro_rules 这名字是非常合理的 2. rule 除了是名词的规则,也可以做为不及物动词的「棒极了」,所以 macro_rules,就是「macro 真棒」,以 Rust macro 所能做的事情来说,确实很棒。而 macro_rules 是编译器的 syntax extension,所以后面需要加上半角感叹号,这更是让「macro 真棒」多了赞叹的感觉。 网页链接
蔡学镛
2019-09-17 00:00:00 发布
早期我的互联网架构模型和操作系统的分层结构有点像,后来这个架构模型才渐渐演化出三个维度,但没有停止演化,这个架构模型又渐渐演化成为编程模型。... 为什么单机系统、互联网系统、程序内部可以有类似的架构模型?这可能是因为许多好的架构思想和原则基本上是各个领域通用的,甚至可以用在生活上。
蔡学镛
2019-09-16 00:00:00 发布
今天代码越写越不对劲,因为我好像一直在重复类似的代码。但基于目前代码结构的状况,我无法用 Generic Programming 或 Macro 来解决这个问题。我必须更改整体设计,才有可能解决这个问题。... 我坚信:好的代码必须好理解、好维护、少重复。如果做不到这样,就必须停下来思考、调整,好好重构一番。
蔡学镛
2019-09-16 00:00:00 发布
对于编程语言来说,literal 类型越多,表达能力通常就越强。一般语言的literal 类型都不超过 10 个。REBOL / Red 比较多,有 30+ 个,连 email、URL 都是 literal 类型。想要让 literal 类型比 REBOL / Red 多,其实不容易,因为 ASCII 文字代码的限制。我的 UniFrame 因为没有文字代码,是通过 GUI 的编程软件工具进行配置,所以应该可以突破这个限制。我现在试图把温度、地理坐标、颜色、日期时间 ... 统统搞进来,实验看看是否好用。
蔡学镛
2019-09-16 00:00:00 发布
许多主管都有一种矛盾心态:内心其实看不起程序员(毕竟我的收入和位阶都比程序员高),但又很需要程序员(毕竟还是要有人干活,我是个管理者,没有能力写代码啊)。
蔡学镛
2019-09-16 00:00:00 发布
最近用 Rust 写我的 UniFrame 项目时,用到一个第三方的包「chrono」( 网页链接 ),它对于 TimeZone(时区)的支持方式,突破我原先的想法。原本我以为时区不过就是个 DateTime 值的一部分(多数语言的 DateTime 程序库都是这么设计的),没想到 chrono 居然把 DateTime 类型设计为 Template,时区作为其类参数。也就是说,不同时区的 DateTime 类型都不同,例如 DateTime<Utc>、DateTime<Local>。

这不禁让我开始想,如果我设计 Money 类型,是否也要如法炮制:把币种作为 Template 的类参数:Money<C>。
蔡学镛
2019-09-15 00:00:00 发布
2009/Q3 时,我被指派一个工作任务:做一个「业务实时监控引擎」,当业务系统出状况时,引擎会立刻介入处理或通报相关人去处理。这工具是让业务人员用的,不是让程序员用的,所以我必须设计一个容易使用又有弹性的业务规则描述方式,还要让引擎能够执行这些描述。当时我选择采用「状态图」作为描述方式 ...全文
蔡学镛
2019-09-13 00:00:00 发布
跟我最近在写的 D-WAL 代码相关的技术设计 Waltz: A Distributed Write-Ahead Log 网页链接
蔡学镛
2019-09-02 00:00:00 发布
带着明确的技术问题,往上思考,通常可以快速找到解决方法,在技术栈上又往上添加一层;但如果不往上思考,而是往下思考本源,需要很多时间才可能找到解决方法,但越是往下的方案会越简单,且一旦这样的方案出现,可能原有的技术栈有一大半的技术都要被丢弃了。
蔡学镛
2019-08-30 00:00:00 发布
这个时代还用代码行数来评估生产力,已经严重不合时宜。因为 1. 语言的选择不同,代码量差异很大 2. 应该鼓励使用成熟的库和框架来少写代码,因为稳定、快速、好维护 3. 许多配置文件已经取代了代码文件 4. 聪明的架构设计比猛写代码更有价值,而聪明架构设计下的代码通常会减量。
蔡学镛
2019-08-23 00:00:00 发布
Rust 语言除了自己快速进化,还会找寻适合的应用领域,成立开发工作群(Development Working Group)推进 Rust 在这些领域的应用,已经出现 Web Assembly 领域和嵌入式系统领域,最近又搞了个游戏领域工作群。Making Rust a first-class choice for game development 网页链接
蔡学镛
2013-01-19 00:00:00 发布
如果你告诉大陆朋友,你找了新工作,他会问你:薪水 Double 吗?告诉台湾朋友,他会问你:健康负荷得了吗?告诉美国朋友,他会问你:更能实现你的梦想吗?

蔡学镛

灵光乍现 + 归纳总结

0 129937 6141
关注粉丝微博