Ruby哲学-语言的力量

感恩和学习

刚开博客才两个礼拜,写的东西也不是和别的人比起来,无论是数量上还是质量上,都是蚍蜉撼大树哈!我会不断努力,每周保证都会有更新,但是我也有自己的原则,这里说一下:第一点,不是原创的不写;第二点,不酷的东西不写;第三点,come on,有时候技术是个冷冰冰的东西,不可能合家欢乐!但是,我觉得加点废话,funny一点才有意思!

Ruby的设计哲学

正如Ruby的哲学:让程序猿感觉编程的快乐!关于这点,个人觉得很重要。

传统编程的苦闷:

传统编程的困苦在哪?很简单,为了编译器而编程,这点搞java的一定深有所感,写代码时,往往会加个@supperwarning的注解,来抑制编译器发出警告,所以代码里面很多代码是在应付编译器,come on!我们写代码不是为了让编译器开心的!这是Ruby的核心思想,解放程序猿从而得到生产力的提高!相信我,Use Ruby,You can do less, get more!,它的面向对象是如此简洁,完完全全的面向对象,Java还不够面向对象,你可能会差异,java里面还有保留了8种基本类型,而至于后期的包装类型,再到自动拆装箱,都是在打补丁知道不!?当用Integer的人如果不知道其内部有个整型池,很会很诧异的吃到一个128的bug,打住!说好的不黑Java的,鄙人目前也是靠Java吃饭的,所以更知道,有时候java的解决方案确实不够优雅!世界很大,看到缺点才能更强大(因为你会知道如何扬长避短)!

面向对象:

Ruby则是完全的面向对象,所有东西都是对象,1也是个对象!But,这话忽悠忽悠一些ruby新人就行了,ruby里面还是有些东西不是对象,毕竟ruby不仅可以面向对象编程还可以函数式编程,这个以后会讲,你只要知道ruby的面向对象绝对不是忽悠人就行了!

简洁但多选择:

Ruby从Perl里继承了什么?一句话,解决问题的手段永远不只一种,这话其实是在叫嚣Pyhton,为何我不去学Pyhton?我会告诉你这单词太难写了吗!Pyhton不是完全的面向对象,它有它的理由,它提倡简洁,简洁到只有一种方式解决一种问题,Pyhton的函数库一直也是备受尊敬的,Pyhton和Ruby现在让人感觉像天生的对手,其实Ruby也从Pyhton里继承了一些东西,没错,那就是简洁之道!

哪都少不了Lisp:

Ruby还有一位祖先,Lisp,编程语言影响力最大的语言,Ruby的元编程完全就是一个Lisp宏的微小版,上面我们提到过了,所谓元,就是语言的基础构件:类,对象,方法等等,宏可以创造出新的语法,太强大了,松本先生觉得这玩意太不可控,不同人可能会写出完全不同风格的宏,为了团队,还是牺牲一下吧,多加点限制,但是,相信我元编程已经足以让你目瞪口呆了!

将正则表达式发扬广大:

第一次接触时,我总以为ruby只是用来做文本解析的,因为正则表达在Ruby是一种类,其目标也是取代Perl强大的文本处理能力,不用过是不会说的,确实很强大,看过《正则指引》一书的同志们一定清楚,ruby是目前支持正则支持最好的语言,Java?别逗了好吗!(Java1.5后才引入正则,而且每个版本的正则都有不一样)

失态,又喷了!

再是关于面向对象:

mix-in大家应该都不知道,php最新版本除了加入闭包(php在我心中是越来越乱了)概念之外也有了mix-in的影子,混合,就是为了实现多继承的,php的interface关键字其实完全就是一个没有必要存在的东西,只要抽象类足以,为何?看过《php核心技术和最佳实践》第二章的筒子们一定知道!接口只是一种规格的继承,无实现,这其实是对多继承打上了一个非常大的折扣!这里java的同学一定清楚,请问您是何时才开始真正使用interface这个关键字的?绝对不是一开始,任何一个java入门的人齐刷刷的会忽略这个关键字,为何呢?还不是因为,基础了也要有自己的实现,规格是在后期,明白多态,明白解耦时才明白过来的!好吧,这就是问题了,正真好的东西,你一定一开始就会用!

《松本行弘的程序世界》里,松本大叔会告诉你,关于多继承,以及动态类型和静态类型的对比的更多内容,不用急,就在第二章,而且第一章只有6页!

我是不是得罪了很多人?

我感觉身后发凉,一大帮幽怨的颜色向我抛来!好的吧,ruby不是万能的,毕竟它不是你嘛!关于性能,当在对性能要求很苛刻的环境下,比如你内存少的可怜,你很穷,你的服务器迟迟不更新换代,还是不要用ruby的,用静态类型的语言,或者直接用C去吧!当然ruby里面也可以嵌入西语音,举个例子:(Linux下面把代码搞出来,太麻烦了!虚拟机不容易啊)

            

            

眼神没问题的同学都看到了,我在里面定义了一个求阶层的函数factorial(为了大家更清楚有多少次循环,故没有用递归写,貌似写错了,群众的眼睛真亮啊!),为了使用这个特性,你得安装ruby inline gem,当然为了测性能我还用了benchmark模块。大家看到,性能还是很高的,因为耗性能的部分交给了西语言。

不过我还说得向前辈们道歉,不管何种语言,都对社会做出了贡献。当sun公司宣杨开源精神的时候,松本大叔还在看凹凸曼呢。

Ruby难道除了性能方面没有别的缺点了吗?当然有,这些都会在以后慢慢道来,而现在,我们即将进入一个开始,美剧每当结尾时,都会抛出一个很大的悬念,这里,我们也来抛一把!

目的是为了什么?很简单,为了证实一点,ruby确实简单,上手简单,入门简单,但是它绝不是小孩的玩具!(虽然也不会有小孩去玩它!)

好了,接下来就是见证奇迹的时刻!

---------------------我是代码,我又来了-------------

class Xml
    def initialize(filename)
        @f = File.new(filename, 'a')
    end
    def method_missing(name, *args)
        @f.print("<#{name} ")
        args[1].each { |key, val| @f.print("#{key} = #{val} ")} if args[1] != nil
        @f.print(">#{args[0]}")
        @f.print("</#{name}>\n")
    end
    def end
        @f.close
    end
end
#test
xml = Xml.new('hello.xml')
xml.name 'Milo', :nickname => 'Coljure'
xml.language 'Ruby'
xml.end

--------------我是结果,我和上面那位关系不是很好------------------------








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值