avatar
文章
71
标签
58
分类
21

主页
标签
分类
链接
关于笔者
玲辰书斋
搜索
主页
标签
分类
链接
关于笔者

玲辰书斋

RubyConf China所想
发表于2023-08-21|Ruby
时隔三年Ruby China大会在上海再次举行,也趁着这个机会去上海逛了两天,收获许多。 Ruby在如今中国已经是一个非常小众的语言了,大家都在争先恐后的学习: Java Go Python 我能想到的原因就是大部分的公司在用这些语言,大部分人在用这些语言,如果这时候你选择学习一门小众且岗位极少的语言,也就意味着你在偏离"主流",在浪费时间。当你进入一家使用小众语言的公司,你也会担心这是否会影响今后长远的发展。而当你顺应追随"主流"时,你会想我选择了一个最保险的选择,公司都在招聘它。而当所有人都这么想时,主流中便涌入大量的人力,尤其是在中国。而数量的上升,与岗位的减少,让大家只能提高自己的质量,或想想其他出路。 而主流的人越多,支流的人也就越少,小众语言的公司负责人也会因为招人难而担心后续的发展,进而选择技术转型,甚至是在最初决策时,就转向使用人数最多的语言,而不是最适合场景的语言。这也就导致了一个恶性循环,最终主流上的人更多,支流上的人更少。 在我最初学习Ruby时,是因为看了《码农翻身》《程序员修炼之道》时,作者都在提及这个优雅的语言,让 ...
Turbo Rails Tutorial-第十一章
发表于2023-07-02|Turbo-Rails
​ Adding a quote total with Turbo Frames本章节中,我们将添加一个包含quote总价格的sticky bar,每当我们创建,修改,删除一个line item,总价都会被更新。 What we will build in this chapter总价格会在下面的情况中更新: 一个line item被创建,修改,删除 一个line item date被删除,而一个line item date中可能有多个items 下面的草图,将会展示我们的quote编辑器长什么样子: 现在需求明确了,敲代码吧。 **Note: **现在我们已经体验过很多次Turbo Frames了,让我们来讨论一下什么时候使用<turbo-frame> 或是 <div> 当我们需要使用Turbo去拦截点击链接或者表单提交时,我们必须使用Turbo Frame比如line_items/_line_item.html.erb局部页面的内容必须被嵌套到Turbo Frame中,因为当我们点击line item的”Edit”按钮时,我们希望Turbo ...
Turbo Rails Tutorial-第十章
发表于2023-07-02|Turbo-Rails
​ Nested Turbo Frames这一章,我们为line items构建最后的增删改查代码,而line items是嵌入到line items dates中的,为此我们需要使用Turbo Frames去解决一些有趣的挑战。 What we will build in this chapter本章中,我们会大致敲定quote编辑器,通过增加line item到line item date中,每一个line item都拥有名称,可选的描述,单价,数量。 这一章的的挑战是我们将会有大量的嵌套Turbo Frames,我们将讨论如何在操作LineItemDate and LineItem增删改查时,并Quotes#show页面的状态。 在敲代码前,我们在看一下线上的示例:final quote editor,让我们创建一个quote并且进入对应的Quotes#show页面,让每位创建几个 line item dates and line items,来对我们最终的产品有一个确定的概念。 当我们清楚了最终产品的样子,我们就开始吧,我们会先不用Turbo Frames and Tu ...
Turbo Rails Tutorial-第九章
发表于2023-07-02|Turbo-Rails
​ Another CRUD controller with Turbo Rails本章节中,我们将构建quotes中的日期数据的增删改查,这是一个很好的机会去练习我们之前学习的内容。 What we will build in the following three chapters现在用户可以创建,修改,删除quotes数据,是时候让我们的quotes编辑器做一些更有用的事儿。 接下来三章,我们将在Quotes#show页面中构建,当本章结束时,我们的用户可以为每个quotes添加多个日期,而每个日期里有多个条目,每个条目拥有名称,可选的描述信息,数量,单价。 在动手之前,我们可以再在线上实例中体验一下:quote editor on hotrails.dev,创建一个quote,进入Quotes#show页面,我们可以创建多个日期,并在日期里添加多个条目,当我们创建,修改,删除条目时,quote的总额也会被更新。 What we will build in this chapter我们还是在不使用Turbo Frames和Turbo Streams的前提下构建日期数据的增 ...
Turbo Rails Tutorial-第八章
发表于2023-07-02|Turbo-Rails
​ Two ways to handle empty states with Hotwire本章节中,我们将会学习两种方式去使用Turbo控制空状态页,第一种使用Turbo Frames and Turbo Streams,第二种使用 the only-child CSS pseudo-class. Adding empty states to our Ruby on Rails applications空状态页是我们系统中最重要的一部分,当我们第一次访问页面时,页面上没有任何提示让我们知道这个页面能干嘛。所以如果当一个新用户访问我们系统时,显示一点儿图片或者几句话可以更好的表达页面可以操作什么。 如果我们删除了所有的quotes数据,我们的页面也就只剩下标题和按钮了,所以当数据为空时,使用空状态页也会是一个好的选择。让我们开始吧 Empty states with Turbo Frames and Turbo Streams在敲代码之前,让我们花点儿时间,用草图描述一下将要干嘛。当一个用户没有数据时,我们想展示包含提示信息的空状态 如果用户点击header中的New qu ...
Turbo Rails Tutorial-第七章
发表于2023-07-02|Turbo-Rails
​ Flash messages with Hotwire​ 本章节,我们将学习如何添加 flash messages 通过Turbo,并且如何通过Stimulus做出好看的动画效果。 Adding flash messages to our CRUD controller现在我们Quote模型的增删改查已经正常运转了,现在我们想添加flash message去提高系统的可用性。 在使用Turbo增加flash message之前,我们需要先来用不使用Turbo的版本,也就是Rails7之前的方式,而为了做到这一点,我们需要禁用Turbo在整个项目中。 // app/javascript/application.js import "./controllers" // The two following lines disable Turbo on the whole application import { Turbo } from "@hotwired/turbo-rails" Turbo.session.drive = false 这样我们 ...
Turbo Rails Tutorial-第六章
发表于2023-07-02|Turbo-Rails
​ Turbo Streams and security 本章我们将学习如何安全的使用Turbo Stream 和 避免广播数据到非法的用户。 Understanding Turbo Streams and security在将Turbo Streams放在线上环境前,我们必须知道如何保证安全,如果把含有私密数据的HTML发送到了不该接收的人那里,这会是一个很大的问题。 让我们想象一下我们的quote编辑器被一个公司使用,公司内有很多的员工,如果有天我们的数据被一个不属于该公司的人获取到了,那这就是个很大安全事故了。 我们将使用Devise gem对用户操作,模拟现实生活来对Turbo Stream security进行学习,并且我们将展示如果我们不够足够重视,将会出现哪些安全问题。 What we will build我们将画一个草图来说明本章结束时系统的样子,我们将对没有登录的用户展示登录页面链接 然后用户通过输入用户名,密码进行登录 我们的用户在登录后跳转到首页,在导航栏中我们将根据电子邮件地址显示公司名称和用户名称,当点击View quotes按钮时,他们便可以操作 ...
Turbo Rails Tutorial-第五章
发表于2023-07-02|Turbo-Rails
​ Real-time updates with Turbo Streams本章节,我们将学习如何使用Action Cable 广播 Turbo Stream templates,来让我们的页面进行实时跟新。 Turbo Stream format 可以仅用几行代码就与 Action Cable结合,来让我们的页面实时更新,当然与:群聊,通知,邮箱服务是类似的。 让我们用邮箱服务来举例,比如当我们收到一封新的邮箱,我们不想去手动的刷新让它显示,相反我们希望它能自己在页面上更新,而不需要我们操作什么。 而实现这一功能对于Rails来说很容易,因为在Rails5时就发布了Active Cable。本章将要讨论的Turbo Rails的一部分是建立在Action Cable之上的,而实现该功能,也就更加简单了。 我们要做什么来想象一下,如果有许多人同时使用我们的quote编辑器,他们更希望实时看到同事们都写了什么。 在Quotes#index页面: 任何时候一个成员创建了新的quote,我们希望该quote立刻被加到我们的quotes列表的最上面 任何时候一个成员修改了一个quot ...
Turbo Rails Tutorial-第四章
发表于2023-07-02|Turbo-Rails
​ Turbo Drive这一章我们将解释Turbo Drive是什么?它是怎么转化Link clicks和Form submissions为Ajax请求来加速Rails系统。 是什么?Turbo Drive是Turbo的第一部分,已经被Rails7默认引入了,可以看一下Gemfile和application.js # Gemfile # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev] gem "turbo-rails" // app/javascript/application.js // Entry point for the build script in your package.json import "@hotwired/turbo-rails" import "./controllers" 通过Turbo Drive,HTML页面不会被完全重新渲染,当我们的Turbo Drive拦截一个link clikc or a form ...
Turbo Rails Tutorial-第二章
发表于2023-07-02|Turbo-Rails
​ 实现简单的增删改查 这一章,我们将要创建quote模型,并关联Controller通过Rails的约定 我们先通过Excalidraw来画一些草图,来描述我们要做的事儿 在Quotes#index页面中,我们将展示quotes集合,并且每个quote都有详情,修改,删除的按钮,并且也有增加的按钮。下面是样式图: 当点击New quote按钮时跳转到Quotes#new页面: 当点击Create quote时跳转到Quotes#index页面,显示存储的数据,并按照时间排序。 当你点击Edit按钮时,就会跳转到Quotes#edit去更新已有的数据 当点击Update quote,还是跳回Quotes#index页面 当点击quote的标题时,则跳转到Quotes#show,现在我们仅仅显示标题,后面增加其他内容。 在开始之前,我们先创建一些测试用例去确保我们构建的内容正常 测试 测试是软件开发的基础部分,如果没有一个强有力的测试,我们将会引入bug,并无意间影响以往的功能。 创建测试文件 bin/rails g system_test quotes 编写 ...
1234…8
avatar
庚辰
要么读书,要么旅行,身体和心灵总有一个要在路上.
文章
71
标签
58
分类
21
Follow Me
最新文章
警惕AI
警惕AI2025-04-06
Ruby元编程实战
Ruby元编程实战2025-02-09
RSpec 测试示例与技巧说明2025-01-12
位运算 & (与)实际应用2024-12-08
Zed动态查询2024-12-03
分类
  • JVM5
  • Java4
  • LSP1
  • Linux2
  • Redis2
  • Ruby9
  • Spring4
  • Turbo-Rails11
标签
AI AQS锁 Filter IOC IO流 Interceptor JavaScript LSP Mysql OOP Promis RMI RPC Rails Ruby SDK SQL Servlet Shell SpringMVC SublimeText Zed electron jdbc mysql opencv orm ruby rubyGem turbo 事务 二叉树 位运算 元编程 内存分配 内存溢出 加密,https 博客搭建 反射 垃圾回收
归档
  • 四月 20251
  • 二月 20251
  • 一月 20251
  • 十二月 20242
  • 十月 20241
  • 八月 20241
  • 七月 20241
  • 六月 20241
网站资讯
文章数目 :
71
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By 庚辰
框架 Hexo|主题 Butterfly
陕ICP备2022014054号
搜索
数据库加载中