戏里戏外的一出好戏
戏里戏外的一出好戏
使用 VSCode 作为 SourceTree 的 Diff 和 Merge 工具 文章讨论了 SourceTree 作为 Git 可视化工具与命令行 git 命令配合使用的优势,包括界面舒适度和易用性。作者比较了 Git 工作流中的两种主流模式:官方推荐的五个分支的 Git Workflow 和 GitHub 上流行的 PR(Pull Request),指出它们各有优劣。作者强调了需要一个优雅的 Diff 和 Merge工具的必要性,并分享了如何将 SourceTree 与 VSCode 结合使用,通过配 SourceTree 使用VSCode 作为外部 Diff 和 Merge 工具。文中还提供了 Git 配置使用 VSCode 作为默认 Diff 和 Merge 工具的命令,使 Git 操作更加便捷和友好。
记通过 EF 生成不同数据库 SQL 脚本的一次尝试 本文讨论了使用 Entity Framework(EF)生成不同数据库 SQL 脚本的方法。作者首先介绍了数据库和面向对象之间的天然阻抗,以及 ORM 和 SQL 之间的争论。他提出了使用 ORM 生成 SQL 脚本的解决方案,并详细讨论了在 EF6 和 EF Core 中实现这一目标的不同方法。对于EF6,作者展示了如何通过继承 DbCommandInterceptor 类并重写方法来创建拦截器,从而记录 ORM 生成的 INSERT 和UPDATE SQL 语句。对于 EF Core,由于缺乏拦截器,作者介绍了如何通过实现 ILogger 接口和 ILoggerProvider 接口来注入自定义日志记录器,以捕获 EF 生成的 SQL 语句。文章最后总结了使用 EF 生成SQL 脚本的好处,并提出了对日志记录功能的进一步应用,如数据库的主从复制和读写分离,这些将在后续博客中讨论。
漫谈前端进化史之从 Form 表单到文件上传 本文探讨了文件上传相关内容,从HTTP协议的角度讨论了multipart/form-data的实现和变化。讲述了Form表单在HTTP请求中的作用以及不同的Content-Type编码方式。详细分析了文件上传的原理和HTTP与文件上传的关系,强调了multipart/form-data的重要性。最后,介绍了前端文件上传的新思路,包括使用FormData对象和不同的文件上传方式。总结强调了Form表单和FormData对象之间的联系,指出它们可以相互转化,形成了一个完整的文件上传的讨论。
基于 WebSocket 和 Redis 实现 Bilibili 弹幕效果 本文作者 Payne 介绍了使用 .NET Core 和 Vue 构建基于 WebSocket 的聊天室的进阶项目——一个弹幕系统。由于项目需要实时数据推送以完成图表展示,作者选择了 WebSocket 和 Redis 技术。文章首先展示了服务端消息推送的实现,通过中间件循环从消息队列中取消息并群发至客户端。接着,作者讨论了使用 Redis 作为消息队列的原因,解释了不使用 RabbitMQ 和发布-订阅模式的理由,并展示了简单消息队列的实现。在前端实现部分,作者使用了 Canvas API 来绘制弹幕,并提供了前后端分离设计和静态文件中间件使用的示例。文章最后总结了通过这个项目引出的技术话题,如部署和跨域等。
长安不见使人愁 作者在离职后的反思中表达了对时间和人生的感慨,回忆了在城市中生活两年多的经历,感慨时间的流逝和朋友的变化。叙述了自己对家庭的思念,对故乡的牵挂,以及对未来的不确定感。作者通过观察周围人的生活,思考了现代社会的多样性和个人选择的困惑,同时反思了自信、人际关系和对幸福的追求。通过文化作品的引用,作者探讨了生活的多重意义和个人在社会中的位置,表达了对生活意义的探索和对未来的期待。
使用 .NET Core 和 Vue 搭建 WebSocket 聊天室 本文介绍了 WebSocket 的基本概念和应用。WebSocket 是建立在 HTTP 协议基础上的双向通信协议,弥补了 HTTP 协议请求-响应模型的不足,使客户端和服务器可以实现双向通信。文章以构建WebSocket 聊天室为例,展示了如何在 ASP.NET Core 中实现服务端 WebSocket 和使用原生 WebSocket API 和 Vue 实现客户端功能。另外,文章还介绍了 ASP.NET Core 中间件的概念和作用。通过实例展示了 WebSocket 握手请求和响应的过程,以及服务端如何响应 WebSocket 请求。文章深入浅出地解释了 WebSocket 的原理和应用,为读者提供了全面的了解和实践指导。
草食系程序员的穿搭指南
邪不压正:本我的发现之旅 而杀了李天然,日本人可以随时除掉朱潜龙;唐凤仪,一个愿意陪着朱潜龙做皇帝梦的女人,习惯了被男人驱使和奴役,可被李天然恶作剧般在屁股上以后,她终于明白,自己在朱潜龙心中不过是一个玩物,尤其是六国饭店里的那场戏,看似不露痕迹地打朱潜龙耳光,实则这个敢爱敢恨的女人形象立了起来,回敬李天然的“凤仪之宝”,通过关巧红给李天然通风报信,日军进城时城墙上的一跃,都是这个角色留给人的深刻印象;这一次姜文饰演的蓝青峰,这个角色在我看来相当复杂:想要除掉朱潜龙和根本一郎,但私底下跟这两个人都有来往
声明式 RESTful 客户端 WebApiClient 在项目中的应用 项目采用敏捷开发后出现“联调”任务,由于前后端分离导致团队分成前后端组,前端负责展示数据,后端提供服务接口,但存在沟通困难。讨论三方面原因:设计不当、进度不一、沟通不畅。介绍前后端分离思想,客户端产品采用Native+Web技术架构,通过JSBridge实现Native和Web通信。详述WebApiClient库在.NET平台下类似Retrofit的作用,通过声明式方式定义接口调用。讨论上传下载接口、过滤器与OAuth2,以及可配置与动态化。强调前后端职责分离重要性,提出通过代理类调用后端API的想法。最后介绍WebApiClient的应用,提倡契约式接口声明,以更快速应对后端变化。
米花之味:永远相信美好的事情
米花之味:永远相信美好的事情 《米花之味》是一部深刻探讨传统与现代、信仰与现实碰撞的国产剧情片。电影以清新的风格呈现了留守儿童的生活现状,通过细腻的情感描写,展现了母女间的冲突与和解,以及个体在社会变迁中的无力感。影片中,观众可以看到社会问题的缩影,如广场舞大妈、致富梦想、学校老师接受贿赂等,这些真实的人物和事件构成了故事的背景。同时,影片也提出了关于信仰和传统价值在现代社会中地位的思考,通过角色之间的互动和内心挣扎,引发观众对于生活本质的反思。
基于 Docker 构建 .NET 持续集成环境 项目团队正努力实现持续集成(CI)和持续部署(CD),以提高自动化水平。目前,虽然基于 Docker 实现了自动化部署,但部署包的构建仍依赖人工,且每次版本更新需通过邮件通知相关人员。文章详细介绍了使用 Jenkins 和 Docker 实现项目自动化构建的过程,包括代码编译、单元测试、静态检查和版本发布等环节。介绍了在 Linux 环境下使用 MSBuild、Nuget、Sonar 和 NUnit 等工具的方法,并通过 Dockerfile 构建了整个 CI 环境。尽管项目最终因与 Windows 关联过深而放弃该方案,但文章为搭建私有 Linux 构建环境提供了宝贵经验。同时,作者对 DevOps 实践中的一些现象提出了批判和反思。
一个由服务器时区引发的 Bug 本文讨论了时区对工作和数据库操作的影响,以及不同数据库中日期/时间类型的存储方式。介绍了UTC时间、GMT时间、本地时间和Unix时间的区别,以及Python和C#中处理时区问题的方法。文章深入探讨了日期格式化和时区处理的复杂性,提出了统一使用UTC或GMT时间,并在必要时进行时区转换的建议。文章以案例入手,逐步展开详细解释,涵盖了多个相关概念和技术细节。
关于电影《暗杀》背后的故事和想法 文章深入分析了韩国电影《暗杀》的背景故事和主题思想。电影由全智贤主演,以19世纪30年代的抗日战争为背景,讲述了一个刺杀日军驻朝鲜司令官及卖国贼的任务。文章讨论了影片中的历史背景,如韩国临时政府设在上海的原因,以及与甲午战争和朝鲜半岛被占领的历史联系。同时,文章还评价了演员的表演,特别是全智贤的颜值和演技,以及李政宰饰演的反派角色。影片结尾提出了对战争、和平与人性的深刻反思,呼吁人们思考战争带来的长远影响和对和平的追求。
爱情像一场霍乱