优雅编程之这样构建系统,你就“正常”了(十)

开心一笑

【一个国王要替公主征婚,把一个苹果放在公主头上,
谁要把它射中就有机会迎娶公主。
第一个男士把苹果射中,他说:“I’m 罗宾。”
第二个男士也把苹果射中,他说:“I'm 后羿。”
第三个男士不小心把公主射死了,他说:“ I'm sorry..." 】

感悟

提出问题

如何开发系统才能使代码更整洁???

解决问题

下面来自《代码整洁之道》中,自己的几点总结:
1)系统的构造与使用分开;好像建设大楼时,构建大楼的吊车、铲车之类的东西,在大楼投入使用时已经完全不存在一样;软件系统应该讲启动过程和启动过程之后的运行时逻辑分开,在启动过程中创建应用对象,也会存在相互的依赖。

2)系统的构造与使用分开解决方法:

  • 分解main:将系统中的全部构造过程搬迁到main或者main模块中:main函数创建对象,再将对象传递给应用,应用直接使用;(Java应用程序必须从main()方法开始运行)
这里写图片描述
  • 工厂:可以让应用控制实体创建的时机
这里写图片描述
  • 依赖注入
    例如在Spring MVC中:

      @Rest(DeView.class)
      public class ViewController {
       
      //这些service都是通过依赖注入的,我们并不会自己去new出来
      //而是把new对象任务交给spring去做,而spring是在启动程序的时候就
      //初始化这些service的,既达到构造与使用分开
      @Autowired
      private IViewService viewService;
      @Autowired
      private IResourceOperationService resourceOperationService;
      @Autowired
      private IEditUnitService editUnitService;
      @Autowired
    

    }

3)扩容:我们不可能一开始就把系统做对,实现好当前客户的需求,然后重构,扩容来实现新的客户需求。 软件系统与物理系统可以类比。他们的架构都可以递增式增长,只要我们持续将关注面恰当的切分。

4)AOP,面向方面编程。Java中三种方面和类似方面的机制:代理,纯AOP框架,AspectJ

  • Java代理:Proxy.newInstance(被代理接口,InvocationHandler h)方法执行后,被代理类的所有方法都会被加上Handler的处理逻辑,这是简单的AOP,但是太复杂;(这里就是JDK提供的动态代理)

  • 纯AOP框架:Spring AOP(需进一步了解)

  • AspectJ语言(自行了解)

总结:这里讨论的几点,都是希望我们在软件开发过程中,记住这几方面的思想,让开发代码更整洁。

读书感悟

来自《活出生命意义》

  • 突然间,我一生中第一次领悟到一个真理,它曾被诗人赞颂,被思想家视为绝顶智慧。这就是:爱是人类终身追求的最高目标。我理解了诗歌、思想和信仰所传达的伟大秘密的真正含义:拯救人类要通过爱与被爱。我知道世界上一无所有的人只要有片刻的时间思念爱人,那么他就可以领悟幸福的真谛。在荒凉的环境中,人们不能畅所欲言,唯一正确的做法就是忍受痛苦,以一种令人尊敬的方式去忍受,在这种处境中的人们也可以通过回忆爱人的形象获得满足。我生平第一次理解这句话“天使存在于无比美丽的永恒思念中”。

  • 如果说生命有意义,那么遭受苦难也有意义。苦难、厄运和死亡是生活不可剥离的组成部分。没有苦难和死亡,人的生命就不完整。

  • 人对意义的追寻会导致内心的紧张而非平衡。不过,这张紧张恰恰是精神健康的必要前提。我敢说,世界上再没有别的能比知道自己的生活有意义更能有效地帮助人活下去(哪怕是在最恶劣的环境下)。尼采的一句话很有智慧:“知道为什么而活的人,便能生存。”

  • 必须直面所有的苦难,不能软弱,眼泪是无用的,但也不必讳言流泪,因为眼泪见证了人们承受痛苦的巨大勇气。

  • 我们可以用三种不同的方式来发现生命之意义:(1)通过创立某项工作或从事某种事业;(2)通过体验某种事情或面对某个人;(3)在忍受不可避免的苦难时采取某种态度。第一种就是成就或成功,其意义显而易见。找到生命之意义的第二种方法是通过体验某种事情——如真善美——通过体验自然和文化或体验另一个人的独特性——就是说去爱某个人。

  • 在一定意义上,一旦找到了意义(比如牺牲的意义),痛苦就不再是痛苦了。这就是意义疗法的要义之一:人主要关注的不是获得快乐或避免痛苦,而是看到其生命的意义。这也是人们为什么甚至准备着去受苦,在这个意义上,他的痛苦有了意义。

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,678评论 6 342
  • 字符属性字符属性可以应用于 attributed string 的文本中 常量 1> NSFontAttribut...
    师弟出马阅读 566评论 0 1
  • 每一个无生命的实物上都附着一个精灵,而我们能做的就是尽己所能去善待,既然它选择你,你就有义务去守护它。每一次善良的...
    艺阳阅读 194评论 0 0