Xu-Blog

养一猫一狗,猫叫啵啵,狗叫没想好~~

0%

最近在偶然看到了复旦大学陈果老师的人生哲学课,其中讲到活在当下,让生命起舞,让我颇为感触。

如同老师所愿意的,在这世界的某个地方,渺小的我了解到了,还有很多人是这样生活的,生活还可以这样去做。

我喜欢海子的诗,海子有一首诗《面朝大海,春暖花开》,讲:“从明天起,做一个幸福的人。”陈果老师问,从明天起,做一个幸福的人,那今天呢?那么今天永远都是不幸福的。

阅读全文 »

上天很有意思,猫喜欢吃鱼,猫却不能下水,鱼喜欢吃蚯蚓,鱼却不能上岸。人生,就是一边拥有,一边失去,一边选择,一边放弃。人生,哪有事事如意,生活,哪有样样顺心。所以,不和别人较真,因为不值得,不和自己较真,因为伤不起,不和往事较真,因为回不去。

—— 网易云音乐热评《鱼》陈绮贞

阅读全文 »

以下内容已经被作者删除。

内容借鉴慕课网 学写一个字,老师@liuyubobobo讲的不错,值得学习。

学一个技术,最重要的就是练。我自己还是个没啥想法的人,那就借鉴别人的想法,跟着老师学习,模仿大神。

本练习目标是在 PC 和移动端完成一个手写板,以此来练习 canvas 的基础知识。

阅读全文 »

观察者模式(Observer)

观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。又称为发布-订阅模式。

观察者模式最主要的就是完美的将观察者与被观察的对象分离开来。由于面向对象的单一职责原则,使得系统中的每一个类将重点放在某一个功能上,而不是其他方面。观察者模式在模块之间划定了情绪的界限,提高了应用程序的可维护性和重用性。

阅读全文 »

单一职责原则(SRP)

就一个类而言,应该仅有一个引起它变化的原因。

单一职责原则的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方法就有了两个职责。每一个职责都是变化的一个轴线,如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。特别是当两个职责耦合在一起的时候,一个职责发生变化可能会影响到其他职责的实现,造成意想不到的破坏。这种耦合性得到的是低内聚和脆弱的设计。

因此 SRP 原则体现为:一个对象(方法)只做一件事情。

阅读全文 »

适配器模式(Adapter)

提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

适配器模式的作用是解决两个软件实体间的接口不兼容问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。

适配器的别名是包装器(wrapper),这是一个相对简单的模式。在程序开发中有许多这样的场景:当我们试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求。

阅读全文 »

迭代器模式(Iterator)

提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按照顺序访问其中的每个元素。

目前,几乎所有流行的语言如 Java、Ruby 等都已经有了内置迭代器的实现,许多浏览器也支持 JavaScript 的 Array.prototype.forEach。

阅读全文 »

一盘炒猪肝,二两黄酒,黄酒给我温一温。

—— 余华《许三观卖血记》

出差几天,工作起来也是没日没夜,身心俱疲也心神不宁,忽然觉得生活没了意思。没有人关心,也没有人爱。没那么高大的目标,也不知道未来在何方。

正巧在书店看到《许三观卖血记》,早就听别人说《许三观卖血记》中的活着要比《活着》更现实。便特意的读了一读,看了一看,再写上一写。

阅读全文 »

持续一周的出差在今天结束了,忙忙碌碌的工作,零零散散的时间,出差前我留了个小练习给实验室小朋友,自己当然也要完成一下,出差第二天我就写完了这个系统,一直没时间整理,今天上飞机前抽点时间写一写。

前几个月给实验室买了几本书,本来说用 LabVIEW 写个实验室书籍借阅系统来着,但是一是懒、二也是懒,一直拖着没做,正好赶着这个机会,用 Python 弄个出来。GUI 界面我就不弄了,时间太紧迫,也不立 Flag 说之后完善什么的,等回去再用 LabVIEW 弄一个吧。

阅读全文 »