[转]DSL-让你的 Ruby 代码更优秀】的更多相关文章

https://ruby-china.org/topics/38428 以下摘录 DSL和Gpl DSL : domain-specific language.比如HTML是用于组织网页的‘语言’, CSS专门调整页面样式的‘语言’. SQL是数据库操作的‘语句’. GPL: general-purpose language.通用目的语言.即不是为了特定领域设计的语言.Ruby,Python,C都是. 简单的DSL 我们遇到不少的Ruby开源库都会有其对应DSL,其中就包括Rspec,Rabl,…
轻量级,轻量级,所以用notepad++来运行ruby的代码最合适不过了,虽说有更好用的轻量级工具,但是用notepad++习惯了,也懒得去再装其他工具了.好了,进入主题,先安装插件NppExec,打开notepad++,在Plugin->Plugin Manager->Available里面找到NppExec,勾选中Install.装好重启后,在notepad++中打开一段ruby代码,F6在弹出的对话框输入 cd $(CURRENT_DIRECTORY) ruby $(FULL_CURRE…
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Python, Java, 经验] category: Python --- 我曾经是一个对Java非常反感的人,因为Java的语法非常啰嗦.而用惯了动态类型的Python再使用静态类型的Java就会觉得多出了很多的工作量. 因为工作的关系,我开始使用Java来做项目.在这个过程中,我发现Java在某些方面…
与asp.net 打交道很多年,如今天微软的优秀框架越来越多,其中微软在基于mvc的思想架构,也推出了自己的一套asp.net mvc 框架,如果你亲身体验过它,会情不自禁的说‘漂亮’.回过头来,‘漂亮’终归有个好的思想,其中类似于AOP的思想,就在其中体现的淋漓尽致,今天本文主要讨论的是基于AOP思想构成的‘异常过滤器’.我们的目的只有一个,让try...catch...无处盾形,让代码更健壮优美. 一.理解mvc里filter是怎么运行的 老外的一篇文章是这样的草图 通过翻译中文是这样的 其…
前言 前几天看一个朋友的博客时,看他用到了C#6的特性,而6出来这么长时间还没有正儿八经看过它,今儿专门看了下新特性,说白了也不过是语法糖而已.但是用起来确实能让你的代码更加干净些.Let's try it. 1.集合初始化器 //老语法,一个类想要初始化几个私有属性,那就得在构造函数上下功夫.public class Post { public DateTime DateCreated { get; private set; } public List<Comment> Comments {…
[TypeScript]如何在TypeScript中使用async/await,让你的代码更像C#. async/await 提到这个东西,大家应该都很熟悉.最出名的可能就是C#中的,但也有其它语言也实现.比如,Python 3.5中.比如Js中的yield/generator. Typescript 当前版本1.8.x,1.7版本开始支持async/await, 当然只支持es6编译.2.1版本说是将支持到es5/es3. Typescript Roadmap : https://github…
好书推荐:Effective Java中文版(第2版) JVM JIT编译器优化技术有近100中,其中最最重要的方式就是内联(inlining).方法内联可以省掉方法栈帧的创建,方法内联还使让JIT编译器更多更深入的优化变成可能.本人在fastxml(速度比XPP3(基于xmlpull)还快的xml解析器)开源项目中针对方法内联进行了很多学习和实践,这里总结一下,介绍一下怎么让你的代码更好的被JVM JIT Inlining. Inlining相关的启动参数 上一篇博客<Java JIT性能调优…
在C#中, 适当地使用Lambda表达式, 可以让我们的代码更优雅. 通过lambda表达式, 我们可以很方便地创建一个delegate: 下面两个语句是等价的 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/-->//using delegate syntax Func<int, int> f = delegate(int i) { retur…
一,什么触发器 1,个人理解 触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了.你放炮仗,点燃了,一会就炸了. 2,官方定义 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行.触发器经常用于加强数据的完整性约束和业务规则等. 触发器可以从 DBA_TRIGGERS ,USER_TRIGGER…
区块链是什么?作为一个Ruby开发者,理解区块链的最好办法,就是亲自动手实现一个.只需要50行Ruby代码你就能彻底理解区块链的核心原理! 区块链 = 区块组成的链表? blockchain.ruby: class Block attr_reader :timestamp attr_reader :data attr_reader :previous_hash attr_reader :hash def initialize(data, previous_hash) @timestamp = T…
简介 lambda表达式,又称闭包(Closure)或称匿名方法(anonymous method).将Lambda表达式引入JAVA中的动机源于一个叫"行为参数"的模式.这种模式能够解决需求变化带来的问题,使代码变得更加灵活.在JAVA8之前,参数模式十分啰嗦.Lambda表达式通过精简的方式使用行为模式克服了这个缺点 解决什么问题 传递行为.它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理,变成了一等公民.解决重复的代码片段和代码包裹问题. 内置抽象行为.把常见的…
先定义一个实体类 @Data @AllArgsConstructor @NoArgsConstructor public class Human { private String name; private int age; } 下面的操作都基于这个类来进行操作.这里面使用了Lombok类库,它用注解的方式实现了基本的get和set等方法,让代码看起来更加的优雅. JAVA8之前的List排序操作 在Java8之前,对集合排序只能创建一个匿名内部类 new Comparator<Human>(…
大佬的编码建议,让你的代码更pythonic Raymond Hettinger是 Python 核心开发者,本文提到的许多特性都是他开发的. 若无例外,本文代码中出现的 colors names d 等变量全为以下所定义,其中, colors names 为列表,d 为字典.且本文所说的集合全都指 collection ,而不是 set . colors = ['red', 'green', 'blue', 'yellow'] names = ['raymond', 'rachel', 'ma…
1.下载 Ruby 1.8.5(2006-8-25) for Windows: 在网页http://www.rubychina.net/downloads/ 上找到  --〉Ruby on Windows  --〉Ruby 1.8.5 One-Click Installer Stable version (recommended)  点击鼠标右键,另存为…,存入你的本地硬盘,这就完成了下载. 2.安装Ruby,(一直下一步就可以了) 3.配置环境变量,把Ruby的的安装目录(我的是"D:\Rub…
首页   登录注册         CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅 阅读 8113 收藏 927 2017-09-26 原文链接:github.com 腾讯云容器服务CSS,立即免费体验容器集群吧!cloud.tencent.com 之前不久,由于自己平时涉猎还算广泛,总结了一篇博客:这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已,没想到受到了大家的欢迎,有人希望能博主还能整理个 CSS 的一些黑魔法小技巧,无奈我 CSS 一直很渣,没什么干货,最…
让 Python 代码更易维护的七种武器 2018/09/29 · 基础知识 · 武器 原文出处: Jeff Triplett   译文出处:linux中国-Hank Chow    检查你的代码的质量,通过这些外部库使其更易维护.   可读性很重要.— Python 之禅The Zen of Python,Tim Peters 随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准).然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力…
Jaina .NET 事件总线,简化项目.类库.线程.服务等之间的通信,代码更少,质量更好.‎ 安装 Package Manager Install-Package Jaina .NET CLI dotnet add package Jaina 快速入门 我们在主页上有不少例子,这是让您入门的第一个: 定义事件订阅者 ToDoEventSubscriber: // 实现 IEventSubscriber 接口 public class ToDoEventSubscriber : IEventSu…
有关Assert断言大家并不陌生,我们在做单元测试的时候,看业务事务复合预期,我们可以通过断言来校验,断言常用的方法如下: public class Assert { /** * 结果 = 预期 则正确 */ static public void assertEquals(Object expected, Object actual); /** * 结果 != 预期 则正确 */ static public void assertNotEquals(Object unexpected, Obje…
反射获取 PropertyInfo 可以对对象的属性值进行读取或者写入,但是这样性能不好.所以,我们需要更快的方案. 方案说明 就是用表达式编译一个 Action<TObj,TValue> 作为 Setter,编译一个 Func<TObj,TValue> 作为 Getter. 然后把这些编译好的委托放在一个泛型类的静态字段中保存起来,需要使用的时候从这里面查找就可以了. 知识要点 使用表达式创建委托 泛型类的静态字段是每个闭合类型独立的,因此用于存储和类型相关的内容非常方便 实现代…
能让你成为更优秀程序员的10个C语言资源 本文由 伯乐在线 - archychu 翻译自 mycplus.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 一些人觉得编程无聊,一些人觉得它很好玩.但每个程序员都必须紧跟编程语言的潮流.大多数程序员都是从C开始学习编程的,因为C是用来写操作系统.应用程序最常用的语言. C编程笔记 这些是华盛顿实验学院C编程入门课的部分笔记.它们是以<C程序设计语言>的补充笔记(从1995年春开始)为基础修改的,而这本书的作者就是大名鼎鼎的Brian Kern…
比Kafka Mangaer更优秀的开源监控工具-Kafka Eagle 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在Kafka的监控系统中有很多优秀的开源监控系统.比如Kafka-manager,open-faclcon,zabbix等主流监控工具均可直接监控kafka.Kafka集群性能监控可以从消息网络传输,消息传输流量,请求次数等指标来衡量集群性能.这些指标数据可以通过访问kafka集群的JMX接口获取. 由于Kafka Eagle监控系统核心模块采用java编程…
通过AI自学习,Google让Pixel 3的人像模式更优秀 Link: https://news.cnblogs.com/n/613720/ 虽然双摄手机已经在市场上普及,其所带来的人像模式.多倍变焦也成为了不少智能手机的「标配」,但仍然有厂商依然坚持用一个摄像头的配置. 比如以软件著称的 Google,从 Pixel 手机的初代到今天的 Pixel 3 / 3XL,在往今的两年时间里(初代 Pixel 于 2016 年发布),他们仍坚持采用单摄配置. 有意思的是,Pixel 不但是 DxOM…
这些属性都可以在 首选项>设置-默认 里修改下面也会介绍几个比较常用的几个插件 字体大小: "font_size": 17 高亮编辑中的一行 "highlight_line": true 焦点丢失后自动保存 "save_on_focus_lost": true 显示当前文件的编码 "show_encoding": true 保存的时候把无用的空格去掉 "trim_trailing_white_space_on_…
我需要依赖注入 业余时间开发的娱乐项目 (为了练习使用ruby语言) 遵循SRP原则,业务逻辑拆分由各个service类型提供,假设存在如下几个类型 GameService 封装主要游戏业务逻辑 UserService 维护用户信息 PlayerService 封装当前玩家信息及业务逻辑 ChatService 封装聊天业务逻辑 Service之间存在依赖关系,例如 PlayerService 依赖 UserService中的方法 PlayerService 依赖 ChatService中的方法…
枚举是java 5之后添加的一个重要特性,这个特性不能提高性能,但是能让java程序员写出更优雅的代码. 我之前看到过挺多介绍java枚举的不错的帖子,我也来参与以下这个话题. 1. 枚举基本用法 /** * 消息的类型,是请求还是回应 * @author leo * */ public enum ReqOrRes { req,res; } 这应该是枚举最简单的用法了,即使是这样简单的使用,也能给我们带来方便, ReqOrRes.req.name() == "req" ReqOrRes…
摘要HTML优化是网站内部优化的重点,可能对SEO新手来说,容易忽略.符合搜索引擎习惯的HTML代码是极利于SEO的,可以让你的网站获得更好的搜索引擎排名.如何制作一个标准的HTML网页,如何做HTML优化,本文将为你详细阐述. 一直想写下SEO中关于HTML优化方面的的文章,总算空出这部分时间来了.其实,HTML优化应该是网站内部优化的重点,每个SEOer都需高度重视.根据本人多年实战经验,一般做过HTML优化的网站上线后,相关关键词都可以获得一个不错的搜索引擎排名.显然,符合搜索引擎习惯的H…
最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善Android App的性能.在这个视频里面,演讲者以一个图片app为例讲解如何应用Android中现有的东西来改善app性能问题.这个图片app的代码在这里.ppt在这里.现在我将视频里面的内容记录如下: 使用LruCache避免OOM 首先我们的图片app是用来展示手机里面保存的图片.当app里面需要…
最今在玩2048这款小游戏,游戏逻辑简单,很适合我这样的对于游戏新入行的人来实现逻辑.于是选择了最拿手的ruby语言来实现这款小游戏的主要逻辑.还是挺简单的,加起来4小时左右搞定. 上代码: require 'optparse' module Help HELP_TEXT =<<HELP press buttons for move l => move to left r => move to right t => move to top b => move to bo…
何为pythonic? pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少,比如:很娘,很国足,很CCTV等等. 我的理解为,很+名词表达了一种特殊和强调的意味.所以很python可以理解为:只有python能做到的,区别于其他语言的写法,其实就是python的惯用和特有写法. 举个例子: 很python的写法: a,b = b,a 不python的写法: temp = a a = b b = temp 上面的例子通过了元组的pack和unpack完成了对a,b的…
不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一…