Tuesday, September 14, 2021

V2EX - 技术

V2EX - 技术


golang 中私有结构体包含公有字段的目的是什么?

Posted: 14 Sep 2021 04:29 AM PDT

在那种应用场景下使用?

微软又在搞事情?

Posted: 14 Sep 2021 04:28 AM PDT

https://twitter.com/brunoborges/status/1437573246275047428 好像评论也不知道什么回事,难道开玩笑?

图片注释

工厂函数返回指针的原因除了提高传输效率外还有其他原因吗?

Posted: 14 Sep 2021 04:25 AM PDT

go 结构体中的字段, 那种情况下定义为私有, 那种情况定义为公有?

Posted: 14 Sep 2021 04:24 AM PDT

因为私有字段也可以通过 字段+ get set 公有方法实现. -- Java 不都这么干吗?

但是我在翻 golang 开源项目中发现,似乎两种情况同时存在.

迷茫了...

有在南昌做开发或想回南昌做开发的吗?速来,在线等!

Posted: 14 Sep 2021 04:22 AM PDT

本人目前在深圳,目前规划想回南昌做开发,由于不了解南昌是什么样的一个情况,想问一下各位大佬是否有在南昌工作的,能否透露一下南昌的薪资水平,公司是否正规,行业机会是怎样的,房租,生活开销等等等,如果不了解清楚就回到南昌可能也不太好,有打算回南昌的也可以一起探讨,谢谢各位!

被 ORM 折磨, sql 1 分钟写好, ORM 想了一个小时,没写出来��

Posted: 14 Sep 2021 04:17 AM PDT

救救孩子吧

select d.id,d.created_time,(select count(*) from word where word.dictionary_id=d.id)     as word_count,        (select account from user where user.id = d.creator_id) as username,        d.dictionary_name         from dictionary     as d where d.thesaurus_name='professional' 

预算 1~ 2 W,配置一台什么样的主机?

Posted: 14 Sep 2021 04:16 AM PDT

已有 4K 显示屏一个,想配置一个高性能主机。主要使用:写前端,java,QT 等代码

PS:只想要一台不会发光的主机……

最近你们都在看什么新的前沿的技术?

Posted: 14 Sep 2021 04:15 AM PDT

前端,后端都可以。

想拥有人生第一台 macbook pro,我是买 2020 款还是等 2021 款?

Posted: 14 Sep 2021 04:12 AM PDT

手上有一台用了 2 年左右的 Windows,是惠普战 66 二代。看着身边同事一个个都用 mac 敲代码,有点安耐不住也想入手一台。主要是用来敲代码和看电视用,不玩游戏。

接收者那种情况下定义为指针,那种情况下定义为类型?

Posted: 14 Sep 2021 04:06 AM PDT

可不可以笼统的理解为, 全都定义成指针, 方便一点?

关于大数据(千万级,亿级)的查询问题

Posted: 14 Sep 2021 04:03 AM PDT

现在有两张表,一张工商表 6000 万数据,一张工商变更记录表 1.5 亿数据,工商表和变更记录表是一对多的关系,没有物理外键
需要用工商 6000 万的表同步一张新的表,
在同步的过程中需要去查变更记录表,算一些衍生数据,现在就是批量查变更记录表特别慢,
传 1 万个"公司 id"去变更记录表都查要十几分钟,"公司 id"在变更记录表已经建了索引,但是还是慢
已经尝试过分表,"公司 id"去 hash 分表 查询速度不是很明显

工作几年后再申请海外硕士项目,申请的时候还会看重本科学习成绩吗

Posted: 14 Sep 2021 03:55 AM PDT

楼主魔都某 TOP2 高校非 CS 相关专业,大三本科在读,学积分可以保研,但是不考虑在国内读研了,因为觉得这样浪费时间

打算毕业后直接转码,工作几年后看情况如果需要的话想去新加坡或者美国读研,也有移民的打算

问题:

  1. 毕业几年后,申请读研的话,是否对工作经历更加看重,而不那么在乎本科成绩?

  2. 我的本科成绩和 CS 无关,对申请是否有意义?(不过我自己选了不少 CS 的课,成绩都挺高的)

  3. 如果本科成绩对申请没用,那么我现在是否应该放弃无意义内卷学积分(大三还有一年,要保研还是得卷学积分),专注转码跑路?

迫于想换 fold3,求问安卓端的 pdf 漫画阅读器

Posted: 14 Sep 2021 03:42 AM PDT

虽然一直都是半年一换手机 现在该换新的 iphone 了
不过前两天去三星体验店摸了一下 fold3 之后感觉蛮不错的 可能今年不买 iPhone 了
求各位推介一下安卓端的 pdf 漫画软件 最好还能兼具 epub 阅读功能
感觉在外用 fold3 内屏看漫画应该很爽

关于 RBAC 设计优化的问题

Posted: 14 Sep 2021 03:31 AM PDT

采用常见的五表法实现 RBAC 模块( user 、role 、permission 、user-role 、role-permission ),leader 表示每次鉴权都要:user → user-role → role → role-permission → permission,这样做的复杂度略高。现在想了两种方案优化:

  1. 联表查询。存在的问题:因为这个 RBAC 模块同时需要适配 MySQL 和 MongoDB,MySQL 还好处理,MongoDB 的聚合查询有点复杂而且性能不佳。
  2. 加新的表 user-permission 。存在的问题:当用户绑定角色 or 角色绑定权限时,每次都要更新 user-permission 表,写的消耗很大,而且有很多的冗余数据。

请问 uu 们有没有其它更好的优化方法呀?

请问有逆向大佬可以帮忙分析一下 VOCALOID 声库的文件结构和加密方式吗?找不到任何相关资料,研究了好几天没有任何进展,如果能提供一下思路也很感谢。

Posted: 14 Sep 2021 03:17 AM PDT

想自制声库,不想用 UTAU,听说 VOCALOID 声库有加密,但既然使用不需要联网,那解密也应该是发生在本地,应该能找出密钥,如果要验证签名应该也可以绕过。网络上找不到任何相关资料,于是打算自己试试。VOCALOID5 编辑器是用 C#.NET 写的,没有混淆,拖进 dnSpy 发现合成部分调用的应该是这个 C++ 写的 vsm.dll 。但我没有任何逆向经验,用现学的 IDA 发现有壳,研究了好久还是脱不掉。

vsm.dll drive.google.com/file/d/1mvdsRBCOOlYNThfv62BpUtm8G1oyphnc/

你们的 AS 有没有突然运行按钮变黑的情况

Posted: 14 Sep 2021 03:16 AM PDT

https://i.loli.net/2021/09/14/TzlR7i9AJgYQx5P.png

没有任何后台任务,需要重启 AS 或者 close project 重新打开一下才行,经常出现

Android Studio Arctic Fox | 2020.3.1 Patch 2
Build #AI-203.7717.56.2031.7678000, built on August 27, 2021

求助线程进程问题, IPy 处理 IP 网段

Posted: 14 Sep 2021 03:11 AM PDT

使用 IPy 模块做 ip 和网段包含的判断 官方样例 from IPy import IP IP('192.168.1.12') in IP('192.168.1.0/24')

因为 IP 地址和网段很多,所以写了函数

def ipcompare(): ip_list=[] ip_net=[] result=open(r'D:\Python\IP 地址处理\results.txt',"w+") with open(r'D:\Python\IP 地址处理\iplists.txt','r') as lists: for line in lists: ip_list.append(line.rstrip("\n")) with open(r'D:\Python\IP 地址处理\ipnets.txt','r') as nets: for line in nets: ip_net.append(line.rstrip("\n")) for i in ip_list: for n in ip_net: if IP(i) in IP(n): print(f'{n} nets include ipaddress {i}',file=result)

这么写的执行好慢,要 25 分钟才出结果 10 万个 IP 地址,400 个网段,相当于要做 100000*400 次套用 IP('192.168.1.12') in IP('192.168.1.0/24') 来做判断 抄了网上几段 threading 和 multiprocessing 来尝试加快执行速度,但是都没有效果 求助大佬,要怎么写才能让执行时间缩短?

mysql 关联表

Posted: 14 Sep 2021 02:56 AM PDT

mysql 如何复制关联表的外键,使用create table new_table linke old_table,出来的只有索引没有关联外键。 或者 mysql 如何查看有哪些表关联当前表?

PHP 并发请求有没有更好的方法

Posted: 14 Sep 2021 02:52 AM PDT

PHP 请求多个 URL,除了用 curl_multi 函数,有没有效率更高的方法,感觉 curl 是 fork 进程来请求,效率感觉不是很高

有什么小众的语言或框架,是值得学习 ?

Posted: 14 Sep 2021 02:29 AM PDT

[请问有什么小众的语言或框架,是值得学习 ? 或者他们有哪些闪光点值得学习的?谢谢!]

平时总是在自己熟悉的领域编程,平时忽略了很多优秀但冷门的框架语言

感觉偶尔学习一下其他领域的知识,对自己熟悉的领域也有很大帮助.

由于领域不同还麻烦大家详细介绍一下,比如:

学习 Google Android 开发的库 Flow\LiveData 处理数据.

Reactive Extensions(Rxjava Rxjs 等)库了解 Reactive Programming 编程.

学习.NET 的 TAP 、EAP 、APM 异步编程模型,对封装多线程操作很有帮助。

多少流量才算高并发 ?

Posted: 14 Sep 2021 02:05 AM PDT

RT

100 ? 1000 ? 10000 ?

在超算(处理速度极快)中 1000 流量,可能造成并发问题 ?

和服务器计算能力、业务逻辑、IO 能力等都有关系,请问大牛们有关于这个问题的探讨吗 ?

能否通过代码直接调起 iOS 系统的截屏功能?

Posted: 14 Sep 2021 01:47 AM PDT

App 想做一个截屏的小功能,主要是截屏的时候,还可以有笔刷稍微绘制一下,具体功能如下:
1. 截屏页面,并可拖动设定截屏区域。
2. 有画笔 /橡皮,可以简单编辑 /绘制截图区域。
3. 最后,获取到最终图片的 UIImage 数据。

而这些功能正好是系统的截屏功能(除了第 3 点,系统截屏是直接保存文件)。所以我就想有没有办法直接通过代码的方式,来调起 iOS 系统的截屏功能,用户处理完后能够拿到图片数据。

关于 iptables mangle 表 fwmark 标记实现分流 操作中的 RETURN target 问题。

Posted: 14 Sep 2021 01:46 AM PDT

RT, 用 fwmark 做分流操作,

iptables -t mangle -N GFW iptables -t mangle -F GFW  iptables -t mangle -A GFW -d 0.0.0.0/7 -j RETURN iptables -t mangle -A GFW -d 10.0.0.0/8 -j RETURN iptables -t mangle -A GFW -d 127.0.0.0/8 -j RETURN iptables -t mangle -A GFW -d 169.254.0.0/16 -j RETURN iptables -t mangle -A GFW -d 172.16.0.0/12 -j RETURN iptables -t mangle -A GFW -d 192.168.0.0/16 -j RETURN iptables -t mangle -A GFW -d 224.0.0.0/4 -j RETURN iptables -t mangle -A GFW -d 240.0.0.0/4 -j RETURN  #此处省略 8 千行 ....  #add mark iptables -t mangle -A GFW -j MARK --set-xmark 0x400  # 追加到  mangle prerouting 链 iptables -t mangle -A PREROUTING -i br0  -j GFW  #route table 400 ip rule add fwmark 0x400 table 400 ip -4 route add 0.0.0.0/0 dev wg0 table 400  

实际使用过程中,打开网页很慢。 如果不加 return , 让所有流量都通过 wg0 走,会很快,秒开。 请问 是 mangle 表 对 return 支持度不够,还是 route 表记录太多导致的问题?

oauth2 流程疑问

Posted: 14 Sep 2021 01:45 AM PDT

大家好,最近在看了 oauth2 的流程。在第一步确认授权,从开放平台获取到 code 后,客户端会被重定向到一个之前设置好的 redirect_uri,这个一般是我们自己应用的后端服务地址,然后由这个后端服务带上 app_id 、app_secret 和 code 向开放平台请求获取 token 。自己的后端服务得到 token 后,其实就已经完成了登录流程,这期间 token 对客户端是不可见的。

问题 1:是否需要通过重定向的请求回复客户端 token 、openid ?

问题 2:后端服务从开放平台获取到了 token 就完成了登录,那如何收集客户端的设备、版本信息呢?难道是将 token 、openid 告诉客户端,通过另外下一个请求来上传客户端信息?

oauth2 流程图:

image

迫于总是错过优惠信息,创建了一个 `v2ex 优惠信息 新帖推送` 频道

Posted: 14 Sep 2021 01:24 AM PDT

channel link: https://t.me/v2ex_deals

由于该节点帖子一时间不会增加很多,甚至可以说有点"冷门",相对于 问与答Apple 等节点来说。于是目前一小时(整点)请求一次 API,然后推送优惠信息的帖子给用户,如果这一个小时没有 优惠信息 帖子创建,频道将不会打扰用户。

代码还在整理,频道名称:v2ex 优惠信息 新帖推送,link: https://t.me/v2ex_deals

欢迎关注,欢迎对频道 enable notifications.(因为大家的频道、群组太多,基本上都设置免打扰了吧)🤣

希望优惠信息的帖子不会打扰到你,努力的打工人,乐此不疲的薅羊毛人,心甘情愿的打开推送!

example:

4kvTat.png

有没有英语水平不错的小伙伴?招 base 瑞典的 JS,非远程,至少 25 天带薪年假,免费医疗教育, 480 天带薪产假病假、申请绿卡、家属随行...

Posted: 14 Sep 2021 01:19 AM PDT

Workload: Fulltime (100% x1)
工作量:全职 (100% x1)


We need a full stack engineer to help the customer build a brand new feature in our Consumer App.
我们需要一名全栈工程师帮助客户在消费者应用程序中创建一个全新的功能。



The feature is high profile, and will be heavily marketed in multiple markets during the upcoming year.
这个功能备受瞩目,会于未来一年中在多个市场进行大力推广。



The engineer will join the already established feature team, and we will take responsibility for providing adequate onboarding.
所招募的工程师将加入已经建立的功能团队,我们将负责提供充足的入职培训。



● Refine work based on requirements from Product Manager
根据产品经理的要求改进工作
● Deliver high quality code in collaboration with other engineers.
与其他工程师合作,提供高质量的代码。
● Help with testing, monitoring, troubleshooting and deployment of the team's features.
帮助测试、监测、排除故障和部署团队功能。
● Handle bug reports together with stakeholders in our organization
和公司中的利益相关者一起处理错误报告


Required skills:
所需技能:
● Individual Contributor.
个人贡献者。
附:个人贡献者是没有管理责任的专业人士,他独立地为组织做出贡献,帮助支持组织目标和使命。尽管他们通常必须向组织内的某个人报告,但个人贡献者不负责管理除自己之外的任何人。他们可能是一个流程或项目的经理,可以作为团队的一部分或单独完成工作,但不负责管理团队。
● Ability to deliver consumer facing features in both client (react native) and backend (node.js + express).
可以在客户端( react native )和后端( node.js + express )中提供面向消费者的功能。
● Familiarity with typescript is a must.
必须熟悉 typescript 。
● Having worked with AWS S3, Lambda, Cloudformation, RDS, Aurora, Elasticache & Cloudfront is a bonus.
有 AWS S3 、Lambda 、Cloudformation 、RDS 、Aurora 、Elasticache 和 Cloudfront 经验者优先考虑。
● Having worked in the KLAPP monorepo previously is a huge bonus.
有 KLAPP monorepo 经验是一个非常有说服力的加分项。


福利:
️● 至少 25 天带薪年假
️● 享受等同于瑞典公民的福利,如免费医疗教育,480 天带薪产假病假,照顾生病孩子的假期等
️● Base 斯德哥尔摩、哥德堡、马尔默等主要大城市
️● 工作满 4 年可申请绿卡


注:
● 候选人至少需要具备 5 年软件相关行业工作经验
● 英语口语可以满足日常工作交流 (不需要雅思或托福成绩,以雇主面试为准)
● 有意愿前往瑞典工作至少一年半时间


详情请咨询 VX:八〇九三〇六六九六


Wish you a Brilliant Career!

代码架构问题

Posted: 14 Sep 2021 01:01 AM PDT

lz 最近在改造产品代码, 现在有一些逻辑是依赖页面的生命周期或者是某个业务事件的(例如支付成功事件), 这种你们是怎么组织的代码呢?
我现在的想法是建一个单例的对象作为 EventBus 订阅者,接收 /分发应用内的所有关键事件。 有没有什么更好的实践方案?

Android App 编译构建知识的小调查

Posted: 14 Sep 2021 12:55 AM PDT

不久前写了篇文章《 Google I/O 21 Android Gradle Plugin 更新总结》,今天被 Google 的 "Android 开发者" 转载了。不过今天收到了一些反馈是:能不能也写写 Gradle 和 AGP 基础的文章。确实我接触过的绝大多数 Android 开发者都对 Android 构建方面的知识有种敬畏感,Gradle + Android Gradle Plugin ( AGP )的组合复杂度不低,而互联网上能找到的系统性资料稀少(英文都不多,中文就更少啦),大家有时候想学也难以下手,比如看看下面这些底层工具技术以及架构应用:

底层技术:Gradle 、AGP 、Annotation Processor ( AP )、AAPT 、D8&R8 、ByteCode modification 、Dex modification 、Kotlin Compiler 、ZIP&APK&AAR&AAB 、IDE Plugin 、etc.

架构应用:依赖注入、组件化、插件化、多渠道包、SDK 按需接入、白牌应用、多维度测试(单元、集成、功能测试)、安全防护(混淆、加壳、native 加密...),Jetpack Compose 、CICD 以及更多其他的自动化流程;

编译构建的知识不仅是为了加快构建速度,还包含了自动化、架构优化的诸多方面,甚至与运行时的合作联动。也因此,我一直在思考对于这类文章的广度和深度应该怎么样去调整——啊,想破脑袋不如找广大的开发者们投个票好啦。AB 才疏学浅,下方的选项仅基于个人的理解来编写,有不足之处欢迎私信我提建议~

  1. "仅基础使用"(初级):我能读懂、修改 build.gradle(.kts),对 Gradle 、AGP 有基础的认知,例如了解 Gradle 的任务机制,但碰到非 App 源码的编译错误有点不知所措;
  2. "实现高效自动化、工程化"(中级):我对工程化、自动化有一定的认知、追求,可以通过构建脚本拆分、自定义 Task 来实现日常事务的优化,例如使用 buildSrc 模块抽取并统一管理依赖、使用自定义 Task 组合 CICD 的流程,运用一些最佳实践来提高编译构建效率;
  3. "编译构建增强"(高级):我可以通过查阅 Gradle 文档、Debug AGP 、编译期的 Profiler 日志,来自定义 Annotation Processor 、Gradle Plugin 等解决一个项目碰到实际问题,抽象成一套可复用的工具;
  4. "对编译构建有较为全面的理解"(资深):我了解编译构建的主要环节实现,常见架构应用的原理,实践过多个编译构建增强工具,对项目的基础架构梳理得井井有条;
  5. "深度参与"(垂直领域专家):我了解 Android App 编译构建的前沿发展,积极参与社区 Discussion 、Proposal 、PR 、Review,灵活运用、修改各类工具,对于不同类型的问题、需求能给出优解、多解。

由于 V2 没有投票功能,还麻烦大家扫个码或者用 wx 点这个链接投~

Tech (and JS) events are back! ��

Posted: 14 Sep 2021 12:02 AM PDT

你好!

如果您曾经参与过我们的活动,不妨了解一下我们活动的一些最新消息:

旁注:如果你热爱 Node.js 、React 或 Go,请不要错过文末处我们目前在上海、武汉和深圳招聘的职位。如果你成功推荐一位朋友,我们还为你提供高达¥8,888 的内推奖励 。

我们去年曾说过:我们不再会组织大规模的活动了。对一个团队来说,为 1200 人组织一场大型活动的工作量实在是太大。

不过我们目前正在筹备的活动,也请擦亮双眼瞧一瞧:

  • Digital China Meetups:我们每个月都会为我们的 Digital China Meetups 交流社区组织一场大型的活动。下一场的主题是数字化产品,不过之前的活动也涉及了技术、数据和其他数字化主题(上一场是关于设计)。
  • Wiredcraft Talks:我们每个月都会在我们的上海办公室举行一次直播技术讲座,下一期讲座是关于 "监测客户旅程",而且还将讨论 Prometheus 和 ELK 和 Grafana 和 Telegraf 。
  • Digital China 迷你研讨会:我们每年会组织两次大型活动(最多 200 人),涵盖技术、设计、数据和战略等主题。迷你研讨会囊括了 Javascript 、微服务以及所有你在 JSConf China 活动中喜欢的内容,并在主题和技术层面进一步升华。 如果您对以上感兴趣并希望收到更多信息,请点击:https://wiredcraft.com/blog/digital-china-meetup-september-2021/

此外,后端开发、全栈开发和运维工程师们,欢迎加入我们在上海、武汉或深圳的团队!

如果你热爱 Node.js, React, Go 和 k8s 并讨厌 996 生活,赶紧加入我们🎉

📣 再次强调,如果你成功推荐一位朋友加入我们团队,我们还为你提供高达¥8,888 的内推奖励。📣

我们期待在活动上(或在我们办公室)见到你!

你都关注了哪些开发者大 V?

Posted: 13 Sep 2021 11:48 PM PDT

最近工作不饱和,想看看大 v 们的文章,大家都关注了哪些大 v ?分享一些给小弟吧,多谢啦!

[react 新手向] 做了一个新手参考的 react 计算器,内附详细注释~

Posted: 13 Sep 2021 10:55 PM PDT

填了早期的坑,用 react + mui 做了一个简单的 react 计算器,支持键盘操作,想入门的童鞋可以参考一下~

https://github.com/toy-playground/react-calculator

不同 terminal 中如何共享同步 snippets

Posted: 13 Sep 2021 10:26 PM PDT

有使用许多 snippets 的需求,而且有存在使用不同 terminal 的情况,目前使用的付费 termius 客户端能实现,但有需要用其他的 terminal, 这个时候 snippets 就用不上了,要用也得去 termius 里边复制过来,请教下万能的 v 友, 有什么好的办法在不同的 terminal 上使用且能同步和管理 snippets 吗?

使用 swagger-codegen 生成后端代码可行吗

Posted: 13 Sep 2021 08:20 PM PDT

有没有大佬实践过使用 swagger-codegen( https://github.com/swagger-api/swagger-codegen) 来生成后端代码?

看代码库中有一些示例,比如: https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/go-server

这样开发流程就变成了:

  1. 通过 swagger 定义接口文档
  2. 基于接口文档生成接口 handler 函数和 request 、response model
  3. 在 handler 函数中调用业务逻辑的实现

这种方式有什么坑吗?有没有实践案例或者相关文章推荐?

问个需求写法问题

Posted: 13 Sep 2021 07:41 PM PDT

我有一个顶部 navbar 组件,有个 logout 的 router-link,我想要点击之后进入一个 logout 页面,在这个页面的 mounted 里处理一些逻辑,比如清除 localstorage 。然后我还想要修改 navbar 组件里的变量,也就是让 navbar 显示退出登录后的菜单。

这应该怎么写呢?

当前市场是否缺少一个解决租赁双方信任,以及便捷周期性支付/收取租金的产品?

Posted: 13 Sep 2021 04:04 PM PDT

中国人多,产品多,收入提高了,闲置吃灰的东西也多,于是就有了闲鱼、转转、拍拍二手等等。这类 APP/网站主要解决一次性出售二手物品。

那么长期性、周期性租赁产品,是不是一个市场空白?

假设有一款产品 X,能够满足以下几点

因为 X,承租方能够很快找到出租方,价格透明,租赁条款清晰简单

因为 X,承租方相信出租方收了押金不会跑路

因为 X,承租方可以方便地周期性支付给出租方租金,比如微信服务号提醒账单,随手一键支付。

因为 X,出租方可以走某月某天方便统计 /查看众租客是否租金到位,是否需要做二次催缴。

因为 X,……

市场上是否缺少这样的一款产品?谁去做?

A 是闲鱼等 APP 立马跟进,拓展租赁业务

B 趁着市场空白,某团队及时跟进,找投资圈大佬烧钱投入,抗住阿里、腾讯等围堵和打压模仿,终获市场认可。就算不收手续费,掌握的大量押金(沉淀资金),单单放银行存利息,也是收入不菲。或者最终被阿里、腾讯收购,实现财务自由

想法很简单,代码也不是最难的

获取投资圈大佬的烧钱支持才是关键,并且能在阿里、腾讯等夹缝中生存并且发展下来是非常难得的,期待出现这么一款产品,实现价值,服务社会。

我 dagouxiong 的代码水平很 low,甚至还算不上码农,只站在一个软件用户的角度思考,比较浅显,大家不要笑话我哈

No comments:

Post a Comment