avatar
文章
75
标签
62
分类
23

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

玲辰书斋

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 # => # 查找所有user数据 SELECT "users".* FROM "users" # 根据上面的users的所有id,再获取对应的posts缓存起来 SELECT "posts".* FROM "posts" WHER ...
Web Server & Application Server解惑
发表于2024-04-16|Ruby
Web Server & Application Server解惑 参考文章与书籍 ruby网络编程 构建你自己的Web服务器 为什么我们需要Ruby中的应用服务器(比如Puma)? rack探索 Puma 源代码分析 码农翻身2 如果你使用Java或Ruby开发过Web项目,你一定了解过Tomcat和Puma,他们本质上都是一种容器,具有监听端口,返回文件或动态内容的服务。但这样的表述有点儿抽象,SpringBoot 和 Rails 为什么不自己去做所有的事儿?而是需要在内部嵌入这么个玩意儿。我们从历史进程中一点点看。 Web服务器的历史版本1最初Web服务(Web Server)是一个很简单的玩意儿,在端口上监听,解析HTTP请求,把请求对应的文件返回。 实际上只要了解socket编程与HTTP网络协议,就能很简单的制作出一个玩具Web服务器。参考这篇文章:构建你自己的Web服务器。 版本2很常见的一个需求,鉴权操作。我需要通过解析请求,知道对方是谁,并从数据库中查询一下对方是否有权限,我们称为应用服务(Application Server)。 但是版本1中的服务不 ...
求上得中,换工作的小故事
发表于2024-03-20|个人经历
求上得中,换工作的小故事转眼间在程序员这个行业已经工作一年多了,一年前我兴奋的写下:勇闯SAP失败,勇敢转行成功,现在结合这一年来发生的故事,想再写点儿有意思的事儿。 去年入职后,我在一家创业团队里负责java后端开发,工作中遇到的问题都感到新奇。每一天都过的充实开心,在业余时间也会经常看看书,比如: 《码农翻身》,《程序员的职业素养》之类的,我发现作者们都提到了一种优雅的编程语言:ruby,相信大部分人可能都不知道这个名字,而市面上主流的培训机构也没有这门语言的身影,从就业情况来看,在Boss直聘上西安使用它的公司仅有三四个。而使用java的公司已是成百上千。好吧,那看来学习它完全是在浪费时间。但能被这么多优秀的作者说起的语言,肯定不是一个无名之辈吧,我尝试着去了解它。 随着了解的越深,我越发现它的有趣性,但由于国内的资料少,便找来国外的资料教程学习,并翻译出来。发布在了RubyChina上(这是我们目前看到的国内最好的语言社区)。而随着这一路的探索,我也发现了很多意料之外的领域和知识。随着我在社区的活跃,也让很多人看到了我的文章。其中一位就是西安一家公司的大佬,邀请我去他们公司看看 ...
加密算法的演化过程
发表于2024-02-16|演化过程系列
加密算法的演化过程阶段1(明文):A 和 B在网上聊天,但是双方完全使用明文的方式传输信息,那如果有一天,A问B要游戏账号和密码,B发送了过来,这时候信息一旦被第三个看到,信息直接泄露。 阶段2(对称加密):A 和 B商量一下,以后咱们说话,先通过一个工具加密一下,比如每个字母往后3位,等你收到了信息,再利用工具,把每个字母往前3位,这样就保证信息即便被人看到了,也不知道说什么这个也叫对称加密,即加密和解密来自于一个秘钥。但这里仍有个问题,这个加密解密方法(秘钥)怎么安全让对方知道,别人都知道咱们是怎么加密解密的了,那即使发送的加密信息也没用啊,除非A跑到B他们家,给出秘钥。但全球范围内的通讯,不能这么搞吧。 阶段3(非对称加密):A 和 B又发现了新方法,咱俩一人创建一个公钥和私钥,然后交换对方的公钥,这个公钥即使被人看到了也无所谓,当你要给我发消息时,你用我的公钥进行加密,然后发给我,我在我这里用自己的私钥再解密即可,这样私钥只在我一个人手上,就不担心信息泄露了。这也叫做非对称加密但是用了一段时间后,A和B都感觉和对称加密比起来,非对称加密太慢了,已经严重影响沟通了啊。 阶段4(加 ...
TDD In SpringBoot
发表于2024-01-27|测试
参考资料: 文章讲解TDD 视频讲解TDD 测试驱动开发在项目中的实践 TDD的概述代码示例说明这里我根据github的代码,进行简要的说明和讲解,最后我们会自己来写一遍测试。从接口层开始编写测试,从上至下,从接口到数据访问的顺序编写测试Controller层测试@WebMvcTest(controllers = PokemonController.class) @AutoConfigureMockMvc(addFilters = false) @ExtendWith(MockitoExtension.class) public class PokemonControllerTests { @Autowired private MockMvc mockMvc; @MockBean private PokemonService pokemonService; @Autowired private ObjectMapper objectMapper; } mockMvc:用来模拟HTTP请求 objectMa ...
2023年度总结
发表于2023-12-31
2023年度总结成长二月份入职后,整个生活节奏快了很多,最初是先熟悉公司的系统框架,然后是梳理公司的业务流程,封装一些第三方的接口,后来领导看我熟练后,开始将一些简单的新业务让我来设计去做,我觉得这也算是小型公司锻炼人的一点,因为什么都要做,人员就那么几个,只要自己能力够,很快就能接触核心业务,而业务范围并不会太广。 这期间当然也犯了很多错误,不论是写新的业务还是维护老的代码,感谢领导和老板对我的包容,也因此让我对代码产生敬畏心,有一个好的代码规范十分重要,这体现在各个角落中:命名约定,条件判断,异常处理,代码组织方式上。这是我们在学习时最基本的课程,却也是工作中最重要的一部分,当维护一个有八百行的函数时,改哪里都是心惊肉跳的,每次上线都在心中默默祈祷千万别出问题。 今年没有花太多时间去学那些高大上的技术,因为完全用不到,也越发感受到不要过早将事情复杂化。主要精力还是集中在编写好的代码上,直到现在我才渐渐有意识的使用面向对象思想,其中两点让我印象深刻:异常处理,职责划分。 比如在看代码时,我们都不希望行数过多,因为这代表代码的职责也就越多,往往希望一个函数只做一件事。当函数在做处理并需 ...
Effective Ruby
发表于2023-12-23|Ruby
熟悉Ruby第一条:ruby中的True与False 在Ruby中,除了false和nil,其他值都为true,包括数字0 true和false并不是关键字,而是一个全局常量但不遵守命名规范和赋值规范 不遵守命名规范是因为,它没有以$开头 不遵守赋值规范是因为,无法写ture = something true.class => TrueClass false.class => FalseClass 既然不是关键字,true和false就有着对象方法 如false和nil都代表 false,那我们怎么进行区分? 这一点在表示配置信息对象中会贯穿始终,因为false一般代表禁用,nil代表未赋值,使用默认值等。 最简单的方式是 obj.nil? 判断是否为nil 还可以使用 false == obj 来进行判断,在一般常规语言中,我们倾向于把不变量放到左边,但这里我们有着功能性上的考虑,因为false是一个对象,而FalseClass定义了==方法,也就是说这里实际执行为 false.==(obj)。这也太牛逼了。比如一个类也定义了==方法,则可能就会出现混乱的样子,比如 ...
123…8
avatar
庚辰
要么读书,要么旅行,身体和心灵总有一个要在路上.
文章
75
标签
62
分类
23
Follow Me
最新文章
利用 Delegated Types 与 Self Joins 设计高扩展性系统
利用 Delegated Types 与 Self Joins 设计高扩展性系统2026-01-05
kamal 部署加速
kamal 部署加速2026-01-01
Vue 组件间通信方案:实现 Drawer 单例模式
Vue 组件间通信方案:实现 Drawer 单例模式2025-10-09
Rails层级设计演化
Rails层级设计演化2025-07-09
警惕AI
警惕AI2025-04-06
分类
  • JVM5
  • Java4
  • LSP1
  • Linux2
  • Redis2
  • Ruby10
  • Spring4
  • Turbo-Rails11
标签
AI AQS锁 Filter IOC IO流 Interceptor JavaScript LSP Mysql OOP Promis RMI RPC Rails Ruby SDK SQL Servlet Shell SpringMVC SublimeText Vue Zed electron jdbc kamal mysql opencv orm rails ruby ruby,rails rubyGem turbo 事务 二叉树 位运算 元编程 内存分配 内存溢出
归档
  • 一月 20262
  • 十月 20251
  • 七月 20251
  • 四月 20251
  • 二月 20251
  • 一月 20251
  • 十二月 20242
  • 十月 20241
网站资讯
文章数目 :
75
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By 庚辰
框架 Hexo|主题 Butterfly
陕ICP备2022014054号
搜索
数据库加载中