封面图

狗在兔年 —— 边城的 2023

2 月 1 日
阅读 2 分钟
978
封面图

回忆第一份工作,不积跬步无以至千里

2023-07-16
阅读 2 分钟
1.1k
作为一个天秤座的人,“纠结”是对这个星座最起码的尊重。所以看到“第一份”这个限定的时候,我就开始纠结了 —— 到底哪一份才算是第一份呢?如果说第一份签署劳动合同的工作,那应该是大学毕业后找到的第一份工作,不过那时候我至少已经有 3 年的编程经验了。
封面图

羡慕 C# 的 switch 表达式不,JS 也可以有

2023-04-19
阅读 4 分钟
4.5k
对于 C/Java 语系的语言,都有 switch 语法。switch 语法用于多分支是一个标准的用法,但这个分支语法的各分支之间存在穿透性,所以需要 break 来切断逻辑,这也成为 switch 语法中最重要的一个替在缺陷来源。此外,由于 switch 语句中各 case 的代码是在同一个作用域中,也会对代码造成一些不便。

封面图

JS 根据汇总结果过滤

2023-04-06
阅读 5 分钟
4.4k
有如下这样一组学生成绩的数据,需要把 7 年级的优秀学生(所有科目成绩大于等于 80 分)找出来,按数学成绩从大到小排序,如果数学成绩一样则按姓名排序。
封面图

在前端使用 JS 进行分类汇总

2023-04-02
阅读 9 分钟
5.9k
最近遇到一些同学在问 JS 中进行数据统计的问题。虽然数据统计一般会在数据库中进行,但是后端遇到需要使用程序来进行统计的情况也非常多。.NET 就为了对内存数据和数据库数据进行统一地数据处理,发明了 LINQ (Language-Integrated Query)。其实 LINQ 语法本身没什么,关键是为了实现 LINQ 而设计的表达式树、IEnumerab...
封面图

树,计算父节点的值

2023-03-20
阅读 8 分钟
4.4k
前段时间回答了一个类似的问题,产生了写一篇博客的想法。这个问题确实存在一些常见的的应用场景,比如一个多层组织结构中,已知每个员工的绩效分,希望计算各级部门的绩效分以便对部门评优。
封面图

给 .NET 程序加个「设置开机启动」

2023-02-27
阅读 5 分钟
1.5k
前几天写了个「干掉微信只读」的程序,用来解决微信更新 3.9 以后收到文件会自动设置为只读的问题。微信这个设计可以有效地保证收到的原始文件安全性,避免被无意改动。但确实有违某些用户的习惯性操作。「干掉微信只读」从技术角度研究了用 .NET 程序解决问题的手段,同时也提供了 Demo 程序。有用户返回 Demo 很好用,...
封面图

Loading ... done

2023-02-26
阅读 3 分钟
5.2k
在前面界面开发的过程中,为了增强在与后端交互过程中的用户体验,通常会显示 Loading 动画。Loading 动画会在与后端交互结束的时候关闭。这是一个很常规的需求,技术实现也不复杂。
封面图

写个 .NET 程序解决 Windows 版微信 3.9 收到文件“只读”的问题

2023-02-17
阅读 3 分钟
2.4k
Windows 版微信升级到 3.9 之后,接收到的文件都变成了只读属性,对需要经常修改微信接收文件进行交流的人来说极为不便。虽然从业务功能上来说,需要频繁交流的文档还是用在线协同(比如腾讯文档)比较好一些,但从技术的角度来看,应该如何解决这个问题呢?
封面图

2022,二着二着又混过一年

2022-12-23
阅读 2 分钟
1.5k
收到思否小姐姐的活动提醒,才发觉又到了年底,该写“总结”了。说起总结,总有些倦——每天工作要写日报、项目上要写周报、月底要写月报、季度还有季总结,当然还有半年总结和年终总结……一年大约是 250 个工作日、50 个工作周、12 个月、4 个季度,算下来,光日常工作总结就要写 320 篇左右,平均每篇半个小时 —— 天啊,这...

从 Java 到 Kotlin - 介绍 Kotlin

2022-11-28
阅读 2 分钟
4.7k
可空对象(和 C# 的 <Nullable>enabled</Nullable> 相似) Int 和 Int? 是两种不同的类型;String和 String? 也是两种不同的类型(前者是后者的子类型) {代码...}
封面图

switch 有四样写法你知道么

2022-07-01
阅读 5 分钟
6.3k
我所知道的 JavaScript 的 switch 语句只有一种写法。但要说到对分支的处理,写法可就多了去了。if 分支写法可以算一种,switch 分支写法可以算第二种,第三种是使用策略模式,如果要把条件运算符也算上的话,嗯,刚好四种。
封面图

esbuild 构建油猴脚本

2022-06-27
阅读 3 分钟
7.3k
前段时间思否十周年,搞了个问答打卡活动。参与打卡活动的人需要在回答问题的结尾加一个“小尾巴”。加小尾巴本身并不难,但是由于官方没有提供快捷方式,每次都需要自己从某个地方拷贝过去,稍嫌繁琐。正好前不久刚装了油猴插件,就想:自己给编辑器注入一个按钮用来添加小尾巴如何?
封面图

从数据集中随机抽取一定数量的数据

2022-03-16
阅读 4 分钟
6.1k
假设有 n 个数据保存在一个列表 source 中(在 JavaScript 中是数组),需要随机抽取 m (m <= n) 个数据出来,结果放在另一个列表 result 中。由于随机抽取是一个重复过程,可以使用一个 m 次的循环来完成,循环体中每次从 source 中选一个数出来(找到它,并把它从 source 中删除),依次放在 result 中。用 JavaScr...
封面图

JavaScript 数据处理 - 映射表篇

2022-03-06
阅读 8 分钟
9.3k
由于 JavaScript 的动态特性,其对象本身就是一个映射表,对象的「属性名⇒属性值」就是映射表中的「键⇒值」。为了便于把对象当作映射表来使用,JavaScript 甚至允许属性名不是标识符 —— 任意字符串都可以作为属性名。当然非标识符属性名只能使用 [] 来访问,不能使用 . 号访问。
封面图

JavaScript 数据处理 - 列表篇

2022-03-04
阅读 8 分钟
5.8k
程序中的常用数据集合无非两类,列表 (List) 和映射 (Map)。在 JavaScript 的语言基础中就提供了这两种集合结构的支持 —— 用数组 (Array) 表示列表,用直接对象 (Plain Object) 表示映射(属性键值对映射)。

C# 官方文档导读及推荐书单

2022-01-27
阅读 3 分钟
5.9k
由于长期积累,C# 官方文档提供的内容较多,但比较杂乱,对初学者来说并不是很友好。而对已经学习了 C# 的人,作为参考和知识点查找工具来说是非常有用的。但是,官方文档提供了最全、最详细的学习内容,初学者可以跟随导读,在这里学习 C# 的基础知识。
封面图

平平淡淡又一年 | 边城在思否的 2021 年总结

2021-12-29
阅读 4 分钟
4.3k
又到了年末写总结的时候。我不断地提醒自己过去这一年是 2021,不是 2022 —— 是的,作为一个使用了 VS2022 好几个月的人来说,感觉已经在 2022 好久了。然而, 2022 只是即将来临。回往昔,我都干了啥?
封面图

小失误,大问题 —— 为已发布的接口更名

2021-12-08
阅读 3 分钟
2.5k
写代码难免出现失误。在对某些已经发布的库进行升级或者审查的时候,就有可能会发现一些接口名称需要变更。比如,早期命名不符合特定规范,或者出现了难以发现的拼写错误等。有错当然是要改的,但是直接更名会影响到已发布的接口。粗暴的名称变更本质上是删除了旧接口,创建了新接口,对 API 用户来说极具破坏性 —— 用户...
封面图

给 Java 造个轮子 - Chain

2021-12-04
阅读 5 分钟
4.5k
在前不久发的「Java 中模拟 C# 的扩展方法」一文中给 Java 模拟了扩展方法。但毕竟没有语法支持,使用起来还是有诸多不便,尤其是需要不断交错使用不同类中实现的“扩展方法”时,切换对象非常繁琐。前文也提到,之所以想到研究“扩展方法”其实只是为了“链式调用”。

介绍 DotNet 库 - Viyi.Strings

2021-11-22
阅读 4 分钟
1.9k
Viyi.Strings 是一个 .NET 库,支持 .Net Standard 2.0 和 .Net 5。从名字就能看出来,这个库的主要目的是解决对字符串和文本的一些操作。总的来说,Viyi.Strings 目前的版本提供了如下一些功能:
封面图

Java 中模拟 C# 的扩展方法

2021-11-21
阅读 6 分钟
5.3k
我平时主要使用 C#、JavaScript 和 TypeScript。但是最近由于某些原因需要用 Java,不得不再捡起来。回想起来,最近一次使用 Java 写完整的应用程序时,Java 还是 1.4 版本。
封面图

考虑时区了吗?

2021-11-20
阅读 3 分钟
3.7k
2023-09-17 更新,补了张截图前端工程师们,在拿到一个日期/时间数据的时候,你是怎么处理的呢?有没有考虑时区的问题呢?也许你会说:嗯,没怎么关注时区,不过我测过,没问题。我能怎么说呢?可能你还没遇到国外的用户吧!被偷走的一天如果拿到一个日期字符串 "2021-11-17",为了方便计算和处理数据,可能会...
封面图

分享边城的 Typora 主题

2021-11-19
阅读 1 分钟
3.9k
今天不想写技术,给大家分享一下我的 Typora 主题。有图有真相,先上图:看完这些图,心动了!那么,哪里能拿到这两个主题呢?源码(主题源码是 Less 文件):边城/typora-extension - Gitee直接下载主题文件:typora-jamesfan-theme.zip 下载页再补充一下,对 Mermaid 的修改是通过注入脚本实现的,源码中含相关代码,...
封面图

网页弹框的异步行为分析

2021-11-18
阅读 7 分钟
4.6k
网页弹框是个很常见的功能,比如需要告知用户消息的时候 (Alert),需要用户进行确认的时候 (Confirm),需要用户补充一点信息的时候 (Prompt) …… 甚至可以弹框让用户填写表单 (Modal Dialog)。
封面图

可以中断的异步操作

2021-11-17
阅读 8 分钟
7.5k
前面我们聊到了可能超时的异步操作,其中提到对 fetch() 异步操作的“中断”处理。这次我们就来聊一聊“中断”异步操作。由于 JavaScript 的单线程特性,能在 JavaScript 中进行的异步场景其实不多,大概有如下一些:setTimeout() / setInterval()事件Ajax部分对 Native 方法的调用……中断 Ajax 操作Ajax 处理基本上也可以归...
封面图

处理可能超时的异步操作

2021-11-16
阅读 4 分钟
9k
自从 ECMAScript 的 Promise ES2015 和 async/await ES2017 特性发布以后,异步在前端界已经成为特别常见的操作。异步代码和同步代码在处理问题顺序上会存在一些差别,编写异步代码需要拥有跟编写同步代码不同的“意识”,为此我还专门写了一篇「异步编程需要“意识”」,不过看的人不多,可能确实“无趣”。

请别误用 TypeScript 重载函数类型

2021-11-03
阅读 2 分钟
7k
TypeScript 允许定义重载函数类型,采多连续多个重载声明 + 一个函数实现的方式来实现。比如 {代码...} 示例中的 func() 函数有两个重载:(number) => void(string, number) => void它的实现部分,参数和返回值声明要兼容所有重载,所以第一个参数可能是 number 或者 string 即 first: string | number;而第二个...

把程序做成系统服务

2021-11-02
阅读 5 分钟
10.3k
写程序,难免会遇到需要做成系统服务的需求。Windows 下写系统服务需要实现一些特定的接口,做起来有一定难度,所以不少程序采用了 近似的备选方案 —— 做成带系统任务栏图标的桌面应用。但是,服务之所以是服务,就在于他有一个非常重要的特点:可以开机自启动,而且不需要用户登录。要不然每次重启还得人工去登录,是件...
封面图

过滤/筛选树节点

2021-09-27
阅读 7 分钟
11.5k
又是树,是我跟树杠上了吗?—— 不,是树的问题太多了!🔗 相关文章推荐:使用递归遍历并转换树形数据(以 TypeScript 为例)从列表生成树 (JavaScript/TypeScript) 过滤和筛选是一个意思,都是 filter。对于列表来说,过滤就是丢掉不需要的,留下需要的。但对于树来说就得分情况了。如果想“过滤掉”(丢掉)某些节点,会把...

尝试对 jsjiami 加密结果手工解密

2021-09-25
阅读 7 分钟
11k
看了下 jsjiami,简单的一个 console.log("James"),加密出来的结果居然有 3K,说明这个加密转了不知道多少弯在里面。如果要把真正一段业务代码拿来手工解密,应该会挺累的,但是本文不研究工作量的问题,只是尝试一下手工解密,向各位读者介绍一下分析方法和工具应用。
封面图

从列表生成树 (JavaScript/TypeScript)

2021-07-13
阅读 8 分钟
10.1k
多数情况下,从服务端拿到用于树形显示的数据,本身是平面的,也就是列表。这是因为关系型数据库是以“行”为单位保存数据,所以它保存了每一个节点的数据,而这个数据中包含了它与父节点之间的联系(比如 parentId)。
封面图

我与思否,七年之痒 | 思否 9 周年

2021-06-15
阅读 2 分钟
8.8k
思否 9 周岁了 🎂🍾🎈!隐约记得我在思否的时间不短,去查了查,是 2014 年 9 月,教师节的前一天注册的,算下来在思否也有 7 年了。然后去查了下我在思否的第一篇博文,是篇「备忘」。所以一开始我是并不是冲着思否的专栏系统来的,而是冲着问答系统来的……
封面图

简述 Java 图形用户界面设计 (Swing)

2021-05-11
阅读 19 分钟
9.4k
2003年5月发在 CCW-I 社区2006年9月般至 CSDN,略做修改2021年5月使用 Markdown 重新排版,略作补充,转至 SegmentFault。所有代码在 VSCode + Java Extensions Pack、JDK11 环境下重新排版并试运行成功。由于旧版 JDK 界面呈现的 BUG 被修复,重新截图将不能匹配原文内容,所以仍然使用的原版截图,但在相关位置进行了...
封面图

安全地在前后端之间传输数据 - 「3」真的安全吗?

2021-04-26
阅读 6 分钟
10.2k
在「2」注册和登录示例中,我们通过非对称加密算法实现了浏览器和 Web 服务器之间的安全传输。看起来一切都很美好,但是危险就在哪里,有些人发现了,有些人嗅到了,更多人却浑然不知。就像是给门上了把好锁,还派了个人盯着,却没发现坏人已经从窗户潜进去了。