首页
学习
活动
专区
圈层
工具
发布

《Kotin 极简教程》第14章 使用 Kotlin DSL第14章 使用 Kotlin DSL《Kotlin极简教程》正式上架:

DSL 让我们理解和使用模型更加简易。 DSL 有内部 DSL 跟外部 DSL 之分。例如 Gradle、Anko 等都是我们使用通用编程语言(Java 和 Kotlin)创建的内部DSL。...内部DSL 内部DSL是指与项目中使用的通用目的编程语言(Java、C#或Ruby)紧密相关的一类DSL。它基于通用编程语言实现。...例如,Rails框架被称为基于Ruby的DSL,用于管理Ruby开发的Web应用程序。...Rails之所以被称为DSL,原因之一在于Rails应用了一些Ruby语言的特性,使得基于Rails编程看上去与基于通用目的的Ruby语言编程并不相同。...外部DSL 外部DSL跟通用编程语言(GPL)类似,但是外部DSL更加专注于特定领域。 创建外部DSL和创建一种通用的编程语言的过程是相似的,它可以是编译型或者解释型的。

2.4K10

第10章 使用 Kotlin 创建 DSL第10章 使用 Kotlin 创建 DSL

DSL 有内部 DSL 跟外部 DSL 之分。例如 Gradle、Anko 等都是我们使用通用编程语言(Java 和 Kotlin)创建的内部DSL。...内部DSL 内部DSL是指与项目中使用的通用目的编程语言(Java、C#或Ruby)紧密相关的一类DSL。它基于通用编程语言实现。...例如,Rails框架被称为基于Ruby的DSL,用于管理Ruby开发的Web应用程序。...Rails之所以被称为DSL,原因之一在于Rails应用了一些Ruby语言的特性,使得基于Rails编程看上去与基于通用目的的Ruby语言编程并不相同。...外部DSL 外部DSL跟通用编程语言(GPL)类似,但是外部DSL更加专注于特定领域。 创建外部DSL和创建一种通用的编程语言的过程是相似的,它可以是编译型或者解释型的。

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用selenium自动化验收测试

    用 Selenium 自动化验收测试 如何使用 Selenium 测试工具对 Ruby on Rails 和 Ajax 应用程序进行功能测试 文档选项 将此页作为电子邮件发送 讨论 样例代码 拓展...文中还给出了一个例子,以演示如何将 Selenium 应用到现实中使用 Ruby on Rails 和 Ajax 的项目上。...背景知识 在讨论 Selenium 之前,我要介绍关于以下三个话题的一些背景知识,因为这些话题虽然不是本文的主题,但是和本文密切相关: 持续集成 Ajax Ruby/Ruby on Rails...Rails 的目标是使现实中的应用程序编写起来需要的代码更少,并且比 J2EE 和 XML 之类的语言更容易。所有层都能够无缝地一起工作,因此可以使用一种语言编写从模板到控制流乃至业务逻辑的各种东西。...回页首 现实中的需求 在接下来的两节(现实中的需求 和 现实中的用例)中,我将描述如何在现实场景中使用 Selenium,并针对用 Ruby on Rails 和一点儿 Ajax 技术编写的一个简单的股票报价查看器应用程序编写

    7.6K30

    RubyOnRailsStart —— Ruby on Rails 入门最佳开源实战项目

    无论你是零基础入门 Ruby on Rails,还是想通过 Demo 快速回顾 Rails 开发流程,这个仓库都能帮你快速上手,并且方便随时查阅、参考和复用。...为什么选择 RubyOnRailsStart 完整章节覆盖 —— 从 Hello World 到复杂的 RESTful API,全流程演练。...项目内容亮点D01 ~ D03 基础篇创建项目并成功运行(rails server)使用 特殊标签在视图中嵌入 Ruby 代码设置应用默认首页D04 ~ D05 数据与 MVC 篇快速生成...开发)Ajax 请求与 Rails API 无缝对接 运行与开发环境语言:Ruby框架:Ruby on Rails开发工具:RubyMine / 命令行数据库:SQLite / 其他兼容数据库系统环境...:支持 Windows、macOS、Linux(提供 Windows 特殊优化经验) 适合人群刚接触 Ruby on Rails 的新手想巩固 Rails 开发全流程 的进阶学习者希望获取 开箱即用的

    7610

    ajax中参数traditional的作用

    在使用ajax向后台传值的时候,有的时候一个字段需要传多个值,这种情况下会想到用数组形式来传,比如: $.ajax({ type: "post", async: true, data: {..."records": ["123","456","789"] }, url: "xxxxx", error: function(request) {}, success: function...需要调用jQuery.param序列化参数,jQuery.param(obj, traditional )默认情况下traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby...on Rails框架,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:     records: ["123", "456",..."789"] => records=123&p=456&p=789 随即,我们就可以在后台通过request.getParameterValues()来获取参数的值数组了,如下: $.ajax

    71130

    使用 Mastodon 搭建个人信息平台:调优篇

    因为我们使用的是容器中的 Mastodon,为了保证“打补丁”的程序和运行中的一致,可以从运行容器中将所需要的文件复制到本地。..." 和上文一样,使用命令将文件拷贝出来: docker cp app-web-1:/opt/mastodon/vendor/bundle/ruby/2.7.0/gems/paperclip-6.0.0...前者不光是印象 Streaming 的行为,同时会影响它引入的各种外部框架和软件包的行为;后者则默认会根据你运行环境的 CPU 数量来做一个资源分配,对于个人用户而言,有一个 Worker 就足够了。...应用资源使用概览 一通操作下来,在使用一阵 Mastodon 后,我们可以看到各个容器对资源的具体使用情况,除了两个 Ruby 大户比较吃资源外,可以看到其他的应用的内存消耗都在 100MB (多数远远低于这个数值...其他 如果你希望更深入的调整和优化这个 Ruby 项目,可以参考我之前的一篇文章进行操作:《Ruby 应用容器封装踩坑记录(Lobsters)》。 最后 写到这里,本篇文章的目的就达到了。

    3K11

    Github 移除 JQuery 的过程

    为了方便使用自动化,我们创建了eslint插件jquery,如果有人试图使用jquery特性(例如$.ajax),它将使CI检查失败。...许多旧代码都与pjax和facebox jQuery插件的外部接口有显式耦合,因此我们保持了它们的接口相对相同,而在内部使用vanilla JS替换了它们的实现。...大量与rails行为接口的旧代码,我们的Ruby on rails适配器采用“不引人注目”的JS方式,将AJAX生命周期处理程序附加到某些表单: 我们不必一次将所有这些调用站点重写为新方法,而是选择触发假...我们维护了一个jQuery的定制版本,当我们发现不再使用jQuery的某个模块时,我们会将其从定制版本中删除并发布一个更精简的版本。...这意味着我们将尽可能多的内容保存在标记中,并且只在标记上添加行为。

    2.5K10

    Rails 7 中引入 Bootstrap 5

    中有两种不同的工具可以用来管理前端的 CSS、JavaScript 以及 images 等资源,分别是 “Sprockets” 和 “Webpacker”,“Sprockets” 除了 Rails 应用外很少使用...在 Rails 7 中静态资源的管理已经从 “Webpacker” 改为了 “Import Maps”,用来简化基于 JavaScript 的工具和包管理器 Webpack、Yarn 或者 npm 的使用...Rails 7.0: Fulffilling a vision本文将使用 Ruby 3.0 和 Rails 7.0 环境,创建 Rails 7 应用,并在该应用中引入 Bootstrap 5。...图片第一种方式:仅引入 Bootstrap创建 Rails 项目首先使用 rails new 命令创建 Rails 项目:图片图片如果创建项目的时间过长,可以考虑更换 Ruby 的 Gem 源,使用 RubyChina...第二种方式:引入 Bootstrap 和 jQuery添加 Bootstrap 和 jQuery 的 Ruby Gem创建一个新的项目 rails-bootstrap-jquery,之后再项目的 Gemfile

    3.9K50

    Rails 7 中引入 Bootstrap 5

    Rails 应用外很少使用,但是 “Webpacker” 不仅在 Rails 中,在其他应用框架中也被广泛的使用。...在 Rails 7 中静态资源的管理已经从 “Webpacker” 改为了 “Import Maps”,用来简化基于 JavaScript 的工具和包管理器 Webpack、Yarn 或者 npm 的使用...Rails 7.0: Fulffilling a vision 本文将使用 Ruby 3.0 和 Rails 7.0 环境,创建 Rails 7 应用,并在该应用中引入 Bootstrap 5。...第一种方式:仅引入 Bootstrap 创建 Rails 项目 首先使用 rails new 命令创建 Rails 项目: 如果创建项目的时间过长,可以考虑更换 Ruby 的 Gem 源,使用 RubyChina...第二种方式:引入 Bootstrap 和 jQuery 添加 Bootstrap 和 jQuery 的 Ruby Gem 创建一个新的项目 rails-bootstrap-jquery,之后再项目的 Gemfile

    3.4K20

    使用Ruby on Rails和Bootstrap开发社交网络平台的详细教程

    在这篇博客中,我们将深入介绍如何使用Ruby on Rails(RoR)框架和Bootstrap前端框架共同开发一个简单而功能丰富的社交网络平台。...步骤1:安装Ruby on Rails首先,确保你的系统已经安装了Ruby和Ruby on Rails。...db:create步骤4:生成用户模型和控制器使用以下命令生成用户模型和控制器:rails generate scaffold User name:string email:stringrails db...通过这个简单的例子,你可以深入了解如何使用Ruby on Rails和Bootstrap开发一个社交网络平台。...随着你的学习深入,你可以添加更多功能,例如用户认证、用户间关系、帖子、评论等,以创建一个更加完整和实用的社交网络应用。祝你在Ruby on Rails的开发之旅中取得成功!

    2K10

    Web 开发会用到的20款优秀的开源工具

    编译过程可以设置,例如结果文件格式和形式(压缩,嵌套)。Prepros也有一个内置的静态 HTTP 服务器,为了测试任何 Ajax 请求。...Brimir Brimir 是一个开源免费的票务程序,使用 Ruby on Rails 构建,以及前端开发框架——Foundation。Brimir 允许你通过友好的用户界面发送和接收邮件。...包括标记,类以及内联样式,另外输出也可以客制化(缩进功能)。这个工具在快速建立具有内联样式并且生成对于的样式表的html文件时很有用。外部css也是开源的,只针对客户端编写。...DebugBar DebugBar 是一个免费开源程序,可以嵌入到任何的 PHP 项目中,收集,展现预先处理好的数据,他没有依赖性,支持 Ajax,需要并且包括通用数据收集者和熟悉的常用库。...StackEdit StackEdit 是一个免费和开源的 Markdown 编辑器,它基于 PageDown ( Stack Overflow 所使用的库)。

    1.8K00

    慢的不是 Ruby,而是你的数据库

    这个例子展示了从表中获取一条记录的操作,虽然它并非关系型数据库所擅长的领域,但它揭示了 ORM 存在的实际性能问题:缺乏连接、排序、过滤和计算等操作。...从内存和代码中填充某个数组,然后从数据库中填充该数组,速度仍然要快一千倍或更多。正如我在第一段中所展示的那样。 所以,该怎么办呢?我采用的一些经验法则是: 在可以避免的情况下,不要使用数据库。...这也是 Ruby 很少在 Rails(和 / 或 Web)之外使用的原因之一。 [7] 令人惊讶的是,从内存中的 SQLite 中查找比从数据库中查找要慢。...因此负载是分布式的:在 SQLite 和我们的内存示例中,一个 Ruby 线程完成了所有的过滤、获取和提升。对于外部数据库,这是偏移量。根据你的设置,Ruby 线程甚至可能在数据库进行查找时继续工作。...在这种情况下,经过优化以过滤和获取数据的 Postgresql 可以比 SQLite-inside-ruby 更快地完成这项工作。在典型的生产设置中,Postgresql 更适合这一点。

    2.4K30

    总结Web应用中常用的各种Cache

    框架默认使用Rack::ETag middleware,它会自动给无etag的response加上etag,但是和fresh_when相比,自动etag能够节省的只是客户端时间,服务器端还是一样会执行所有的代码...; } Nginx首先会用请求的uri作为key去redis里面获取,如果获取不到(404)就转发给unicorn进行处理,然后改写generate_static_file和delete_static_file...,文本数据等,同时还要生成meta,keyword等seo数据,而这些内容又是和其他动态内容交叉,片段缓存就可以分开多个: - cache "trips/show/seo/#{@trip.fragment_cache_key...meta name="keywords" content="..."...不同,rails自带的片段缓存是不支持条件的,比如说我们想未登陆用户给他用片段缓存,而登陆用户不使用,写起来就很麻烦,我们可以改写一下helper就可以了: def cache_if (condition

    5.6K40

    CICD:CentOS 下 GitLab 安装

    GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过 Web 界面进行访问公开的或者私有的项目。...修改 GitLab 配置 vi /etc/gitlab/gitlab.rb 修改 GitLab 访问地址和端口,默认为80,改为8082 external_url 'http://192.168.56.9...获取 GitLab 镜像 docker pull gitlab/gitlab-ce 下载完毕后,先不急着运行 GitLab,为了避免容器运行时数据丢失,需要使用Docker volume(容器卷)方式来将数据映射到本地...) external_url 'http://192.168.56.9:80' # 在gitlab创建项目时候ssh地址的host gitlab_rails['gitlab_ssh_host'] = '...sshd 端口,git 使用默认配置就会出现问题,这里将主机的 sshd 端口从 22 端口改为其他端口,比如 2280。

    2.3K20

    三分钟让你了解什么是Web开发?

    浏览器从服务器请求文件,服务器端起它并关闭连接。 HTML是一种用于创建web页面的标准标记语言。换句话说,它是一个带有标记的简单文本文件,帮助浏览器找到如何显示信息的方法。...通过进行某些处理从服务器获取信息。 从客户端读取POST信息,并进行一些处理以存储/推送该信息。 像C和Java这样的典型编程语言可以从数据库中写入和读取,但是它们不能直接在web服务器上运行。...流行的服务器端脚本语言是PHP、Perl、JSP、Ruby on Rails等等。...可以使用任何服务器端脚本语言读取POST值。服务器脚本(PHP、Ruby on Rails、Python等)从表单读取值并将其推送到数据库。...我们可以使用以下三种重要的方法来请求web服务器: GET:获取请求的资源作为响应。 POST:向服务器提交表单数据,或者通过Ajax提交任何数据。

    7.8K30
    领券