avatar
文章
71
标签
58
分类
21

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

玲辰书斋

警惕AI
发表于2025-04-06|开发工具
警惕AI​ 2022年年底时,Chatgpt横空出世,让每个使用过它的人发出赞叹,大家都在提问各种问题,程序员可能是最早一匹去接触与尝试的群体了。大家都想看看这个小玩意儿能迸发出多大的力量,要是能帮我干活儿就好了。给我写代码!!! ​ 但那时AI还像个小孩子,对于简单的问题能快速回答,但稍微复杂的问题,我们称之为一本正经的胡说八道的人工智障。但这并不影响我们非常看好它。再后来Github推出copilot以及一大堆AI提示工具,你第一句代码还没写完,AI就已经提示出你下一句话可能是什么。如果不对,你可以继续写原本的代码,它会根据新增的信息再去调整与生成。这用起来很方便,目前为止你的副驾驶有一位很棒的伙伴。 ​ 再后来的cursor,你更多的是像产品经理一样提出你的需求,它会尝试着自己去考虑所有的问题,并进行代码编写,很多简单的需求,或从零到一的小项目,几分钟后运行的结果如你想象一致,而这在过去可能会花上你半天甚至更长的时间。当然遇到大型,复杂项目它仍然会有各种问题,你知道它无法代替你,因为里面有很多内容是AI不清楚的,如架构,特定用法,DSL等等。但它已经足够棒了,如 ...
Ruby元编程实战
发表于2025-02-09|手写系列
本文主要介绍一些元编程的使用技巧 Hash映射对象将Hash转成对象,键值对转成对象的方法,灵活的通过函数调用来获取值信息 module ActsAsField def self.included(base_class) base_class.instance_variable_set(:@all_fields, []) # 一个常见的技巧,通过钩子函数,当模块引入时动态扩展 base_class.include Instance_Methods base_class.extend Class_Methods end module Class_Methods # 声明变量信息,并自动生成实例方法 def field(name, path) instance_variable_get(:@all_fields) << name.to_sym define_method(name.to_sym) do case path when String ...
RSpec 测试示例与技巧说明
发表于2025-01-12|Ruby
RSpec 测试示例与技巧说明本文档整理了多个 RSpec 测试示例,并详细说明了每个示例中使用的技巧和代码示例。这些示例涵盖了常见的测试场景,包括基本断言、异常处理、状态变化、依赖注入、以及使用 spy 和 double 进行测试。 目录 基本断言 异常处理 状态变化 依赖注入与 double 使用 spy 进行测试 模拟日期和时间 基本断言示例代码RSpec.describe 'Assertion' do describe 'expect equality' do it do foo = 1 expect(foo).to eq(1) end it do foo = [1, 2, 3] expect(foo).not_to equal([1, 2, 3]) end end describe 'expect Truthiness' do it { expect(1 + 1 == 2).to be true } end describe 'match a ...
位运算 & (与)实际应用
发表于2024-12-08|数据结构
疑问? 在linux系统中,我们经常使用chmod进行文件权限修改(读,写,执行) 比如我要对some.sh赋予权限: chmod u=rwx,g=rx,o=x some.sh u=rwx: u 表示文件所有者(user)。 rwx 表示读(r)、写(w)和执行(x)权限。 这意味着文件所有者将拥有读、写和执行权限。 g=rx: g 表示文件所属组(group)。 rx 表示读(r)和执行(x)权限。 这意味着文件所属组将拥有读和执行权限,但没有写权限。 o=x: o 表示其他用户(others)。 x 表示执行权限。 这意味着其他用户将只有执行权限,没有读和写权限。 可以看到我们分别对文件所属人,文件所属组,其他用户赋予了读,写,执行的权限,那这些信息实际存储是什么样子的呢?难道是一个数组? u: [r, w, x], g: [r, x], o: [x] 这种看起来最直观,但有没有更优雅的方式,比如用一个数字就能表示所有的权限信息,u: 7, g: 5, o: 1,经常用这个命令的人知道,上述的写法可以使用chmod 751 some.sh直接表示 那为什么我通 ...
Zed动态查询
发表于2024-12-03|开发工具
尝试过nvim的人应该都对telescope这种文件查询风格很喜欢,当在输入时能自动进行重新查询,并通过上下键进行翻阅 我目前在使用另一款编辑器Zed,它目前内置的查询并无法做到类似的操作。但通过内置的Terminal+fzf+bat+rg也能做到类似的效果 fish function function search_and_edit # 使用rg进行文件搜索,并使用fzf进行预览 set -l selected_file (rg --column --hidden --line-number --no-heading --color=always --smart-case --glob '!**/.git/' --glob '!**/node_modules/' . | fzf --ansi --delimiter : --preview 'bat --style=numbers,changes,header --color=always --highlight-line {2} {1}' --preview-windo ...
Electron分享
发表于2024-10-09
背景 我想开发一个桌面应用,可以记录任务待办,统计完成情况,计时器(番茄钟),系统通知等功能,其中前三点都可以通过Web开发完成,而系统通知功能(底层交互)无法满足。所以想在2024用最小的努力开发一个小APP。最好一次开发,跨端使用,在Windows和Mac上都能用。 最终我确定了Electron 结果分享:https://github.com/GengCen-Qin/tomato-todo 是什么? 官方文档 官方地址:https://www.electronjs.org/zh/docs/latest/tutorial/quick-start Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 简单来说就是:如果你会前端开发,通过Electron可以开发出跨平台应用。通过 Chromium(用于显示网页)和 Node ...
Promise异步学习
发表于2024-08-25|前端
是什么?promise 是一个对象,它可能会在未来的某个时间产生一个值。并且你可以声明 未来获取到值时应该怎么做 如果出现异常怎么做 不论结果如何都要干的事情怎么来的? 回调是怎么回事儿? article on callbacks错误使用 const getData = function() { // go fetch data from some API... // clean it up a bit and return it as an object: return data } const myData = getData() // 需要注意由于请求数据是异步操作,所以并不会等待获取到数据了,才执行下面这句话。 // 最终结果即使 myData 是undefine const pieceOfData = myData['whatever'] 正确使用 const myData = getData() // if this is refactored to return a Promise... // 通过Fetch会返回一个Promise对象,我们告 ...
LSP探索
发表于2024-07-28|LSP
是什么官方定义:https://microsoft.github.io/language-server-protocol/overviews/lsp/overview/ 为编程语言实现自动补全、定义跳转或在鼠标悬停时显示文档等功能的支持是一项重大工作。传统上,这项工作必须为每个开发工具重复进行,因为每个工具提供的实现相同功能的API都不同。 LSP的理念就是通过一种协议,与开发工具交流,实现功能。通过中间层,来做到一个语言服务器服务多个开发工具。 怎么用 意识就是开发工具会捕捉一个个事件点,与语言服务器进行交互,比如这里的:打开文档,编辑文档,用户执行定义跳转,关闭文档等。 可以具体看一下定义跳转的交互 请求: { "jsonrpc": "2.0", "id" : 1, "method": "textDocument/definition", "params": { "textDocument": { "uri": "file:///p%3A/mseng/VSCode/Playgrou ...
SublimeText Web开发
发表于2024-06-22|开发工具
SublimeText Web开发在2024随着LSP和AI发展的越来越完善,SublimeText也可通过各类插件享受到新的福利,最近尝试使用ST4(SublimeText4)作为主开发工具,体验上还是很爽的,所以想给想尝试的朋友一些推荐。 为什么不用Vscode,Jetbrains等主流IDE工具? 老实讲我感觉ST概念比较简单,很快,按钮少,但是功能上IDE肯定更全面,对新人更友善。每个人有自己在意的点,如果喜欢原先的开发工具也完全OK,目前我通过插件将ST改成了一个简略版IDE,对一些基础操作:git,sql,terminal,代码补全,定义/引用查找等功能已经集成的不错了,觉得ST是大家选择开发工具中的一个可选项。 Zed也很不错,不过还不太完善,所以感觉还等一段时间,很期待。 Plugins插件统一通过Package Control下载即可 主题视觉效果看着舒服是很重要的一个点,我目前尝试了:ayn,Material插件,感觉都不错,不过可能有些小细节,希望能自定义一下,比如注释代码的颜色,侧边栏字体大小,滚动块儿样式等等。 可以通过PackageResourceVie ...
Rails N+1
发表于2024-04-16|Ruby
Rails N+1 问题是什么?# Get all posts posts = Post.all # For each post, a new author query will be triggered posts.each do |post| post.author.name end 我先获取了所有的帖子,然后想知道每个帖子的作者名称,实际执行时相当于每个帖子都执行了一遍SQL查询这个帖子的作者信息。如果有1000个帖子,则会执行1000条SQL 在什么时候发生?当我们使用Rails的ORM框架操作聚合关系的操作,比如:has_many | belongs_to 这极大的影响了我的系统性能 如何解决?三种方式:Preload,includes,Eager load,joins PreloadUser.preload(:posts).to_a # => SELECT "users".* FROM "users" SELECT "posts".* FROM "posts" WHERE "posts"."user_id" IN (1) 在默认情况下,includes也是这么 ...
12…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号
搜索
数据库加载中