clojure带给我不一样的世界x

clojure带给我不一样的世界x

ID:39963015

大小:2.73 MB

页数:45页

时间:2019-07-16

clojure带给我不一样的世界x_第1页
clojure带给我不一样的世界x_第2页
clojure带给我不一样的世界x_第3页
clojure带给我不一样的世界x_第4页
clojure带给我不一样的世界x_第5页
资源描述:

《clojure带给我不一样的世界x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、不一样的世界这一年,Clojure带给我温瑞云关于我倒腾了10年的开发C++、C#、Ruby、ClojureWord、UML、甘特图、燃尽图…Scrum支持者信奉Scrum价值观践行4年,始于草莽,归于无形翻译《ProgrammingClojure2nd》正在为创建一个报警网络而工作话题讲一个故事,讲给还徘徊在Clojure门外,以及刚刚跨进来的同学听。故事的开始一个历史遗留系统开发阶段共3人参与,耗时近4个月。上线联调耗时1个半月。Bug不断,修修补补1年多,仍然无法稳定运行。代码规模C++头文件:1

2、0,507C++源文件:19,351C#代码:10,302在时间的压力下只顾堆码,不管清理堆码越多,债务越高很快就演变为高利贷团队遇到了麻烦压力巨大彼此推诿丧失热情纷纷逃离债要怎么还?身边谁长的比较倒霉,就扔给他?不好意思坑熟人,找两个新人去堵抢眼?干脆找机会自己也开溜得了?这绝对不是解决问题的办法!还债的选择继续找虫子毕竟是一笔投资,即便它更像是债尽管用户不满意,但好歹它“能运行”但是要从代码中领会别人意图是个挑战面对不具备可读性代码时,更为艰巨事实上,已经尝试过很多次也许最后能够成功,但经受考验的不

3、仅仅是技术那么,完全重写呢,行不行?怎么证明这是更有效的方式?怎么证明这不是一次不负责任的技术冲动?怎么证明不会重蹈覆辙?不,无法证明。这时候还不可能向其他人展示结果。重写的理由在一堆垃圾上耗费再长的时间,很可能最后得到的还是一堆垃圾。引入框架太过随意的这个问题,现在更加清醒了。更清楚系统结构的问题所在,也更能切中要害。手边有了Clojure(这个理由嘛)受Clojure影响,对一切用复杂手段去解决简单问题的做法,都难以忍受对真正要解决的是什么问题,比以往理解的更准确、更深刻(这是最重要的)理由有很多,

4、但关键还得有勇气需要战胜恐惧对自己而言,从未应用于实战的思想、语言、平台…没有其他任何人来共同分担责任没有失败的退路动摇遇到坎坷,感觉再也走不下去的时候“还不如…”的念头压力时间、领导、同事、自己开拓历程边学边写两个半月(之前有一个月的基础)大范围重构不下10次,小型重构无数自己一个人(闭关)番茄工作法IM和邮件都是上下班开15分钟,其他时间关掉尽可能不参加任何会议每天工作7小时左右(注意,是工作时间)周末没有加班,即使是现场部署开拓成果1,367行在两种不同数据库间同步数据衔接三个内部子系统对接两个外

5、部系统需要转换和处理SOAP、SIP、RTSP、HTTP提供了一个简单的Web配置接口现场上线联调只用了不到一个礼拜上线后没有任何bug报告,半年来甚至没有重启过服务还没结束作为项目副产品,创建了一个940行,基于JAIN的SIPDSL库同等抽象级别的C++SIP栈用了25,869行除去即将废弃的接口后,仅不到620行随后的几个月中,又与另一个外部系统对接通讯协议模型发生了巨变支持更多的协议命令新增代码未超过150行,一个礼拜即完成功能开发留下充裕的重构时间,当然还有咖啡、锻炼、读书的时间bug-fre

6、e,没有了无穷无尽的bugfix,甚至都有时间看博客和网络视频了两岁的儿子跟我好像也更熟了那么,一切缘何而来Clojure?我的答案是真正的理解需求Clojure真正的理解需求找出问题的本质本质的东西往往比其外表要简单得多从过往的失败中吸取经验深入分析,但要设定时限,避免思维扩散去掉无关的枝节需求规格列出来的,与问题的本质大多相去甚远即便我们真的漏掉了什么,也还有弥补的机会相信我,这对所有人都好:客户、队友、老板,当然还有自己,和自己正在从事的这份事业核心简单的问题让它保持简单让复杂的问题变得尽可能简单

7、幸运的是,这也是Clojure的核心!简单!简单的重要性“在我们看来,是这两个关键至极的概念驱动着Clojure的一切:简单、强大。”——《ProgrammingClojure2nd》简单和容易是不同的简单一条线上:一个规则、一个任务、一个概念、一个维度取决于线与线之间的交错情况,而非线的数量是可以客观评判的与简单对立的是:复杂容易是相对的:经验、知识、能力、工具都会有影响与容易对立的是:困难简单可以让事情变得容易,反之则不然——摘自《SimplemadeEasy》,RichHickey什么东西容易但不

8、简单大多数托托拽拽的快速开发技术不不不,我可没说是哪家公司喜欢来回折腾这种技术Clojure的核心哲学就是让事情变得简单语言构造几句话就能说清楚的语法规则(没有语法)少量的几个特殊形式(SpecialForms)标准库一致的规则和概念以组合的方式运作和扩展函数式和并行数据不可变!!!(甚至影响了我写C++代码的方式)直面现实中的“状态”问题(STM)强调“值”的作用直截了当易于传输、利于测试语言独立,更通用简单的益处易于编写同一时刻只关注一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。