V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  LancerComet  ›  全部回复第 8 页 / 共 40 页
回复总数  789
1 ... 4  5  6  7  8  9  10  11  12  13 ... 40  
2021-10-11 12:36:28 +08:00
回复了 skfu 创建的主题 信息安全 1password 太烂了,为何这么多人开车?
1password 使用方式难道不是离线授权的桌面客户端 + 浏览器插件么
2021-10-08 15:29:10 +08:00
回复了 josephok 创建的主题 汽车 开车的乐趣是什么?
车是工具,没意思
车是爱好,有意思
2021-10-08 15:20:10 +08:00
回复了 mason961125 创建的主题 宽带症候群 Windows 用来检测网络连通性的 IP 似乎被劫持了
这个问题影响了 UWP 使用,怎么弄都弄不好,一怒之下昨天晚上升级了 Windows 11,升级完之后还是这样,但我在设置里设置为手动 DNS 又设置回自动,然后就好了,非常莫名其妙
2021-10-05 13:59:10 +08:00
回复了 flynaj 创建的主题 分享发现 找回 windows 11 的开始菜单
@fs418082760 我也觉得 Vista 是比 Windows 7 精致,在色彩方面更丰富一些,7 在状态栏图标和一些界面简化了设计,但少了丰富感
2021-09-29 13:01:23 +08:00
回复了 fewspider 创建的主题 程序员 宣传一下自己封装的 NPM 库-处理 JSON 数据
@LancerComet 格式炸了 😢
2021-09-29 13:00:23 +08:00
回复了 fewspider 创建的主题 程序员 宣传一下自己封装的 NPM 库-处理 JSON 数据
@xieqiqiang00 JSON 正反序列化器最重要的意义是保证类型安全,然后在此基础上加一些工程特性,比如 JSON 字段与 Model 字段名称映射,规则校验等

但对于切图仔来讲有点尴尬的是,JS 如果要做类型安全,那么 API 设计的就比较丑陋,一般需要声明一个 Schema,然后人工维护字段关系,这样就比较繁琐,而且代码不是那么随意抽插;如果要学习类似 JSON.NET 的声明式注解,虽然 API 会好看很多,感觉有点像 AOP,但项目一定要上 TypeScript 并且打开 emitDecoratorMetadata,因为要用到反射,但某些时候项目已经不能支持,或者类似 Vite 这样 ESBuild 的工具链,如果为了这一个特性就大动干戈就比较难受.

我觉得切图仔对 JSON 正反序列化器也是有需求的,我自己仿造 JSON.NET 的 API 做了一个序列化器,然后在公司项目中大规模使用了,公开的版本在这里 https://github.com/vuevert/Vert-Serializer,不过是需要 TS + 装饰器 + emitDecoratorMetadata 环境的.

这个我在项目里一般和数据访问层结合,然后 API 大概可能长这样:

```ts
@Serializable()
class User {
@JsonProperty()
name: string = ''

@JsonProperty('user_age') // 数据源字段名称可以和 Model 不一样,比如接口里为 user_age.
age: number = 0 // 如果接口返回的不是 number 则取 0 作为默认值.
}

function getUserData (id: string) {
return HttpService.get({
url: '/user',
data: {
id
},
type: User
})
}

getUserData('1') // Promise<User>
```

这样就可以直接把 JSON 变为 Model.

另外我个人喜欢在项目中将各个功能集成在 Model 上以便查找,避免分散代码:

```ts
@Serializable()
class User {
@JsonProperty()
@IsString(1, 20, '请填写用户名,长度在 1- 20')
name: string = ''

@JsonProperty('user_age')
@IsInt(0, 120, '请填写正确的年龄.')
age: number = 0 // 如果接口返回的不是 number 则取 0 作为默认值.
}
```

然后直接在视图中使用:

```tsx
const userValidator = getValidator(User)

<Textfield rules={userValidator.name} />
<Textfield rules={userValidator.age} />
```

这样视图中就不需要再额外写验证器逻辑了.

其实这些设计非常传统.
2021-09-15 16:20:30 +08:00
回复了 vvzhao 创建的主题 汽车 新车是否有必要贴隐形车衣,咨询下各位 V 友的意见
有用,只是钱的问题,我贴了
2021-07-31 10:42:32 +08:00
回复了 hedeqiang 创建的主题 全球工单系统 极客时间虚假举办活动、随意更改规则
楼主这种情况在互联网产品中屡见不鲜,都是因为活动途中发现实际效果没有达到绩效预期,然后一顿操作,比如改规则、改中奖概率、自刷榜单等等,互联网产品就是坑蒙拐骗自欺欺人,美其名曰冲到好数字才好拿出去做商业合作,本质对用户和自己都没什么好处,骗着骗着自己都信了
2021-07-28 23:55:00 +08:00
回复了 realPipiz 创建的主题 职场话题 你们说,我要接受这个 offer 吗
楼主已经不想做了,所以跟钱没关系
第二辆三十万非家用车,那就是玩具啊,Mini 、A35 走起
2021-06-09 01:30:53 +08:00
回复了 rockyliang 创建的主题 Web Dev 公司内部人员使用的 web 后台需要前后端分工吗
分,后台是生产力工具,地位和 C 端项目没有区别
2021-05-10 17:02:08 +08:00
回复了 cheny95 创建的主题 旅行 五一自驾出游江浙皖路线完美结束,特来与大家分享。
@cheny95 我 5 月 1 日从上海开车去舟山想吹海风,然后舟山就一条高速过去,直接堵死,然后扭头去了宁波,第二天起床看地图上还在堵,白天转了下宁波发现还可以,四明山除了跑山附近风景也不错,回上海之后去金山的小海滩上假装去了大海边
2021-05-10 15:03:23 +08:00
回复了 cheny95 创建的主题 旅行 五一自驾出游江浙皖路线完美结束,特来与大家分享。
不完美,没海,然后你要去舟山的话,你会在高速上睡三天
2021-05-07 00:25:33 +08:00
回复了 Pogbag 创建的主题 问与答 你们的 NAS 上都跑了什么服务
群晖,以前一堆东西,现在就剩下一个 DownloadStation 跟 Docker,Docker 起了个自己用 .NET Core 写图片素材管理服务,设置反代后很好用
2021-05-06 18:01:17 +08:00
回复了 BoringTu 创建的主题 JavaScript 为什么你们要选择 TypeScript?
@LancerComet 但对于这个东西,我认为楼主的疑问应该载入,明明是个切图项目,还搞这些花里胡哨的玩意,不应该动态弱类一把梭吗
2021-05-06 18:00:20 +08:00
回复了 BoringTu 创建的主题 JavaScript 为什么你们要选择 TypeScript?
我来说一个 TypeScript only 的特性,TS 带一个能力很弱的反射,我平时在项目里用这个特性实现两个东西,一个是接口字段映射 + 类型安全的 Serializer,一个是在 Model 上做注解的表单验证器,这两个东西让切图也可以像其他语言一样以 Model 为中心;另外还有一个是服务容器,要实现一个根据类型注入实例的服务容器,只能用 TS
埋在坟墓里的 WinJS
1 ... 4  5  6  7  8  9  10  11  12  13 ... 40  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3544 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 10:33 · PVG 18:33 · LAX 03:33 · JFK 06:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.