为什么两个 android App 执行同一个 js,执行结果不同

问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同!

 

Jione · 2 天前 · 1658 次点击

问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同! 我用手机浏览器画的 canvas 转 base64 用 A app 执行 js 画 canvas 转 base64 没问题和浏览器画的一致 用 B app 执行 js 画 canvas 转 base64 和浏览器不一致

执行 js 是用的同样的代码!

17 条回复    2021-10-18 10:28:28 +08:00

Jione
    1

Jione   2 天前

问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同!
我用手机浏览器画的 canvas 转 base64
用 A app 执行 js 画 canvas 转 base64 没问题和浏览器画的一致
用 B app 执行 js 画 canvas 转 base64 和浏览器不一致

执行 js 是用的同样的代码!

fugui2
    2

fugui2   2 天前

show your code
Jione
    3

Jione   1 天前

@fugui2 应该不是 js 代码和调用 js 的这个代码问题吧,
MonkeyD1
    4

MonkeyD1   1 天前

webview 的内核版本不同? webkit 版本内核 之类的
InDom
    5

InDom   1 天前

之前有个 利用 Canvas 画板计算用户指纹来识别跟踪用户。
Jione
    6

Jione   1 天前

@MonkeyD1 都对比了是一样的
Jione
    7

Jione   1 天前

@InDom 对我是正在做这个,但是不知道两个同样的 app 执行两个同样的代码结果不一样
stardust21
    8

stardust21   1 天前

原因应该就是 4 楼说的,不同的 APP 用了不同的 webview 内核
deplivesb
    9

deplivesb   1 天前   ❤️ 3

到现在也没见到代码,全靠广大网友猜
又一个悬丝诊脉
damao2250
    10

damao2250   1 天前

悬丝诊脉
Jione
    11

Jione   1 天前

@stardust21 两个 app 的运行 js 代码
String js = “”;
try {
InputStream is = null;
is = getAssets().open(“main.js”);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
js = new String(buffer);

} catch (IOException e) {
e.printStackTrace();
}
JsEvaluator jsEvaluator = new JsEvaluator(this);

jsEvaluator.callFunction(js,
new JsCallback() {
@Override
public void onResult(String result) {
// Process result here.
// This method is called in the UI thread.
MyLog.loge(“result:”+result);
MyLog.log(“md5:” + md5(result));
}
@Override
public void onError(String errorMessage) {
MyLog.log(“errorMessage:” + errorMessage);

// Process JavaScript error here.
// This method is called in the UI thread.
}
}, “webglFp”);

Jione
    12

Jione   1 天前

@deplivesb 代码已发
WebKit
    13

WebKit   1 天前 via Android

手机版本?还是说同一个手机装的两个 app ?如果是国内的 app,可以试试卸载腾讯系软件,然后卸载重装这两个 app 试试
ruri
    14

ruri   1 天前

webview 你就别指望不同设备执行结果会一样了,这也是为什么现在很多 APP 会集成腾讯 x5 的主要原因,就是为了让自己的 APP 在每个设备上运行结果相同,减少开发调试精力。
其实较新版本的谷歌官方或 AOSP webview 都没什么毛病,但你架不住有些国内厂商会魔改自己手机系统里的 webview,哪怕是微调一些 webview 的默认参数,都会导致你的代码运行效果和原版大不一样。
lisongeee
    15

lisongeee   20 小时 56 分钟前

@Jione 你发的是 java 代码,还有 js 代码呢?
zoharSoul
    16

zoharSoul   18 小时 22 分钟前

@Jione 要的是 js 代码, Java 代码有啥好看的
Jione
    17

Jione   2 小时 35 分钟前

@ruri 两个 app 都是我自己的 app ,没有集成其他内核

有了解逆向或者 Android 逆向的吗?

本人 android 开发三年多,*近技术主管问我愿不愿意做逆向方面的工作,目前公司需要做 pc 端的逆向,后期做 Android 端的逆向。我是转专业做的开发,编程语言学过 Java,kotlin,大学学过汇编和 C (已遗忘),我具体有两个问题想请教各位大佬:

1 、做逆向的前途怎么样? 2 、我目前的技术栈,转逆向好转吗?

27 条回复    2021-10-18 11:18:20 +08:00

bunnyblueair
    1

bunnyblueair   1 天前

PC 不了解 android 逆向挺窄的,曾经的业务从业者

2 把 看你兴趣 兴趣大就行,smali 语法还是很 easy 的 ,汇编*好好好掌握下,不然很受限

lxxiil
    2

lxxiil   1 天前 via iPhone

1 逆向只有灰产赚钱,写挂找数据破解软件。2 逆向要从 0 开始
XD2333
    3

XD2333   1 天前

正向做久了应该会接触一点逆向了。Android 的话是 smali,反编译软件生成出来的就是 Java,二进制就是汇编了,生成出来就是 C 代码。
逆向岗位不是很多。相对开发岗少很多很多。你 android 逆向可以了解一些,应该问题不大。
顺便找个工作,求捞。
BrettD
    4

BrettD   1 天前 via iPhone

安卓逆向应该需要学 ARM 汇编
mlsnatalie
    5

mlsnatalie   1 天前

@bunnyblueair 我对逆向不是太感兴趣,之前想的是能多学点东西也好,如果学逆向花费的时间,用来学点数据结构,算法,设计模式之类的对技术提高更好的话,我更愿意学点算法之类的知识。
mlsnatalie
    6

mlsnatalie   1 天前

@XD2333 主要是公司目前做的逆向,只要是 pc 端的,说后期会做 android,不知道以后会不会做。不知道你是做什么技术的?我公司招聘 java,大数据,算法,web,不过我公司不是什么大厂,技术人员两百人左右。
mlsnatalie
    7

mlsnatalie   1 天前

@lxxiil 听起来风险很大,如果从 0 开始的话,感觉没有学习的必要。
mlsnatalie
    8

mlsnatalie   1 天前

@BrettD 我看主要是学习 arm,c++,然后就看经验了。
bunnyblueair
    9

bunnyblueair   1 天前

@mlsnatalie 作为一个 developer 我之前经常被抓去给做逆向 因为我是之前部门里面做逆向*好的。短则一周,长则数月。很多产出是别人的,业务实际上跟我们没毛关系。通常产出 sdk,算法,文档。比较苦恼的是答辩的时候没法说,东西你虽然搞了,但是你不知道那个东西的业务产出是啥,ppt 自然也没法说 一季度三个月,一个月被抓去临时做逆向,绩效想象就不咋地。仅作参考,我比较失败
closedevice
    10

closedevice   1 天前

Android 你想没必要做,性价比太低,来自从经玩逆向玩到吐的娃~
mlsnatalie
    11

mlsnatalie   1 天前

@closedevice 看来都是真知灼见啊,谢谢
XD2333
    12

XD2333   1 天前

@mlsnatalie 逆向,还有安全开发。有坑的话我好发个简历看看。
mlsnatalie
    13

mlsnatalie   1 天前

@bunnyblueair 可能这个方向的确投入大产出小,我想我应该拒*这个建议。
mlsnatalie
    14

mlsnatalie   1 天前

@XD2333 我帮你留意,如果他们还招人,我就 @你。
playniuniu
    15

playniuniu   1 天前

安卓逆向分两部分,Java 部分代码的逆向,一般看看 Smali 的代码就行,比较简单。SO 部分代码的逆向,需要反汇编。现在主流 APP 的所有加密都是写在 SO 里面的,而且加壳的技术也越来越好,所以对于初学者来说,入门曲线非常陡峭,需要处理的东西很多,脱壳,反调试,Ollvm 反混淆等等,还必须熟练一些常用的工具,比如 IDA Pro, frida,unidbg,androidemu 等等。

总结一句话,就是需要熟悉计算机操作系统底层原理,尽量吃透安卓底层代码,熟悉各种脱壳技术,还要有非常多的耐心进行反调试和反混淆,收益不高,风险性大,如果不是特别爱好,不建议入坑。

ch2
    16

ch2   1 天前

我看刑
mlsnatalie
    17

mlsnatalie   1 天前

@playniuniu 我对逆向并没有什么爱好,看这么多大佬的发言,已经打消了我的想法了。
mlsnatalie
    18

mlsnatalie   1 天前

@ch2 看来不行啊,好可怕。
ch2
    19

ch2   1 天前

2 、我目前的技术栈,转逆向好转吗?
先问问你大学汇编学的如何?编译原理觉得难不难?
密码学成绩怎么样? C++熟不熟?计算机网络会的怎么样?
逆向对计算机基础知识要求是很高的,你基础如果真的很扎实完全可以找到薪酬前途更好的职位
mlsnatalie
    20

mlsnatalie   1 天前

@ch2 好心虚,这些学的都不咋样,并且现在也都基本忘光了。
muzuiget
    21

muzuiget   1 天前

我看刑,日子有判头。
ysc3839
    22

ysc3839   1 天前

个人只是业余爱好逆向,觉得前途不好,因为不太合法,其次感觉难度也挺大的,建议还是当业余爱好吧,如果连作为业余爱好都不喜欢的话建议放弃。
IsaacYoung
    23

IsaacYoung   1 天前 via iPhone

会掉头发 不搞
LinShiG0ng
    24

LinShiG0ng   3 小时 50 分钟前

不是热爱逆向的话不建议搞
XCG0000
    25

XCG0000   3 小时 12 分钟前

如果未来想走安全的路,可以搞逆向;纯业务开发类的公司,逆向通常是锦上添花,而且逆向前还有个很重要的动作叫脱壳,这个就难倒了 99.9%的人了;而且,逆向本身是被法律禁止的!
component
    26

component   2 小时 59 分钟前

牢里估计不少?
aino
    27

aino   1 小时 46 分钟前

是一条走向财富自由的路,少年你要不要选?

安卓系统 便签/备忘录 哪家强?

安卓系统 便签/备忘录 哪家强?

 

revalue · 2h 3m ago · 337 views

便签的话,主要是手机上能比较顺手记录下来 临时想到的东西或者灵感,打开速度必须要快。

还有做一些项目管理和目标管理,要“二次编辑”排粒度比较细的优先级,所以以前果断抛弃滴答清单,和各种清单工具。
只能说清单工具适合加入那种,“今天要做的事”、“要买哪些东西”、“要刷哪个网页”、“五分钟要做的事”,清单这种形式比较适合短期的目标管理。
对于“二次编辑”,清单的确是不太顺手,不能从大局纵览细粒度对比出哪些是优先做的。

*近在换手机,可以不限于换到各种安卓系统自带的便签。
其实华为云备忘录,挺好用的,能够白嫖云存储,就能在电脑网页上编辑备忘录了。比起很多某象笔记,某道云笔记要轻量,打开速度更快。
垃圾的是没有发现它任何备份和保存快照的能力,哪天服务器抽风,数据就永久全丢了。(抽风基本上是手机硬件厂商的云的通病)

1 稳定性:墙内、能备份不依赖唯一的云
2 启动快:打开和创建速度得快。手机 app 首屏五秒广告肯定慢的
3 互通:安卓和电脑互通
4 尽量是备忘录的形式,一条记录能容下多行文本;*好避免只有“清单”的形式
5 文件夹管理 标签管理
6 无费用或者低费用

12 replies    2021-10-18 12:46:42 +08:00

zbatman
    1

zbatman   1h 54m ago

你干脆点名 oneNote 得了

如果手机系统支持换桌面,用微软桌面+负一屏便笺组件就可以了,数据可以跟 Windows 上的便笺同步

putaosi
    2

putaosi   1h 53m ago via iPhone

用 joplin,然后自部署服务器
SenLief
    3

SenLief   1h 46m ago

onenote 全平台同步
revalue
    4

revalue   1h 33m ago

@zbatman
@SenLief 没了解过 oneNote 在墙内的手机和电脑系统上是什么运行效果
nzd
    5

nzd   1h 30m ago

obsidian
RRRoger
    6

RRRoger   1h 28m ago

滴答清单 满足轻量记录
crayygy
    7

crayygy   1h 22m ago   ❤️ 1

@revalue #4 OneNote 配合 OneDrive 国内使用没有任何问题,要是想上 O365 的车的话我这还有位置 ? 可以看我之前发的贴
janus77
    8

janus77   1h 22m ago

如果抛弃*条 感觉 google keep 可以?
私有备份的话我不太清楚 可以找一找开源项目然后自己接 webdav 备份 开源项目一般都挺简单和简洁的
V9NN
    9

V9NN   1h 6m ago

你要做目标管理的话,滴答清单是个好东西。
记便签,我现在转到 notion 了,虽然也不是十分满意。如果你有功夫折腾——自己弄或者找模板,notion 几乎可以应付所有笔记+事项管理的任务。

iOS 的话苹果自带的足够了。

llanc
    10

llanc   35 mins ago

good keep
revalue
    11

revalue   30 mins ago

@RRRoger 是的,我也是用滴答来做轻量的记录。
一条条清单 横向对比来看太吃力。主要是如果是重点要做的事,我没办法短期内解决,在清单列表上长时间挂着
YUyu101
    12

YUyu101   18 mins ago

微软的便签,没办法谁让我用的 windows 呢

google play 的关键字查询的机制是什么?

google play 的关键字查询的机制是什么? 为什么我输入 ticktick, 搜出来的结果中却出现了 todoist, 按照我网上查询的资料, 输入相关的关键字, 要想让自己的应用匹配这个关键字, 至少存在下面一种情况: 1 ) 名称中包含有该关键字 2) 包名包含有该关键字 3) 描述中包含有该关键字

但是打开 todoist 后的整个页面中, 并没有找到 ticktick 这个关键字, 包名也没有包含有 ticktick, 而输入 ticktick 进行搜索, todoist 确实被搜出来了, 而且还排在前几位, *要命的是, 他们是竞争对手, 这是神马逻辑?

有知道的 V 友能说下啊?

7 条回复    2021-10-14 09:07:12 +08:00

benjix
    1

benjix   6 天前 via Android

ticktick:Todo List Planner
然后 Google play 把所有 todo list 类型的 app 都展示出来了
oldshensheep
    2

oldshensheep   6 天前

ticktick 和 todoist 都是 ToDo List 类的应用.相同类型的应用会出来
你搜索 QQ 音乐会出来 Spotify, Youtube MUSIC 等等, 这对用户有什么不好的?
应用商店的常见需求就是搜索同类的应用,你用国内的应用商店也会得到类似的结果
oldshensheep
    3

oldshensheep   6 天前

你用酷安搜索 bilibili 他会显示哔哩哔哩,腾讯视频,西瓜视频,优酷……这不很正常吗
ncepuzs
    4

ncepuzs   6 天前

同类应用推荐呗,且 ticktick 确实排在搜索结果*个,而不是像国内某 UI 应用商店一样将正确的搜索结果夹在两个广告之间
wanlion
    5

wanlion   6 天前

@ncepuzs 大家这么说, 我明白了, 不过我又确认了一遍, 输入 ticktick, ticktick 不是在*位, 而是第三位, 我觉得他不应该在第三位, 应该在*位, 毕竟完全匹配了关键字!
ncepuzs
    6

ncepuzs   5 天前

@wanlion 你要找的 ticktick 不是这个?滴答清单海外版

%title插图%num

FATEQiang
    7

FATEQiang   4 天前

不仅仅 google play 要吃饭,搞流量模式的也要吃饭。所以有 ASO 优化的策略,甚至是官方买量策略。举个例子,Match3 系列的游戏可以在 gp 上搜索出很多个,你依然可以开发一个类似的游戏,然后通过优化买量做到搜索 match3 就能显示你的游戏。我试过完全搜索我的 APP 的名字,结果根本搜索不出来,全是同类的其他竞品,原因就是我没有花一分钱买量。
三七互娱就是靠买量做起来的,说白了,买量的手段吃像真的难看,基本上磨灭了游戏的创造性,游戏没有资本进来很难走下去,不过也让一些人赚得盆满钵满。

手机系统应用的权限有什么管理办法吗

mirrorside · 4 天前 via Android · 948 次点击

手持三星 s20+,权限一直在用 appops 管理,一般下载的 app 除了必要权限基本都是关闭,今天突然想起我权限设置里一直都是选的不显示系统应用,打开一看,一个权限至少有几十个上百个系统应用正开启着呢

问题来了,除了一些名字上一看就知道用不上某些权限的系统应用,*大部分系统应用我完全不熟悉,没法下手管理。。。这咋整

11 条回复    2021-10-15 11:54:43 +08:00

SenLief
    1

SenLief   4 天前 via Android

换手机
mirrorside
    2

mirrorside   4 天前 via Android

@SenLief 这 个人觉得是个手机应该都会有这问题
dingwen07
    3

dingwen07   4 天前

操作系统要获取权限不要太简单。
不过你可以阅读你使用的操作系统的隐私政策。
mirrorside
    4

mirrorside   4 天前 via Android

@dingwen07 算了。。几百个系统应用基本不可能管理的了了。。主要是这次不小心打开了系统应用的权限显示一下子搞得我强迫症犯了。。

想了想还是把这个显示关掉当作不存在吧。。。

SenLief
    5

SenLief   4 天前 via Android

@mirrorside 权限问题确实 ios 好些
Karonheaven
    6

Karonheaven   4 天前

如果不想解锁 BL 刷第三方系统的话,基本上内置程序都有点隐私毛病
或许可以试试在设置里面禁用一些用不上的内置应用,或者用 IceBox 冻起来( MIUI 可以禁用,不知道三星是否可以)
mirrorside
    7

mirrorside   4 天前 via Android

@Karonheaven 系统应用太多了,大几十个,许多根本不知道是什么东西,搜都要都半天才知道,而且也不知道禁用权限会不会出问题,算了,把显示系统应用权限关掉,眼不见心不烦吧。。。
cheng6563
    8

cheng6563   3 天前

得了吧,系统应用可以随时提升到 root,AppOps 里面那几个遮羞布有什么用
psklf
    9

psklf   3 天前

系统应用且你看不懂,一般不管。
mirrorside
    10

mirrorside   3 天前 via Android

@cheng6563 是的。。我想想后也懒得管了。。
alittlecat
    11

alittlecat   2 天前

虽然跑题但是..我就是因为和这些应用斗智斗勇到心力憔悴 一票否决了安卓机的

Android 内网使用高德定位问题

Android 内网使用高德定位问题

 

icetea12138 · 18 小时 55 分钟前 · 770 次点击

各位大佬公司有个需求是这样的
我们有一些安卓的平板平时是在一套内网里的,这个内网限制还很多,现在要使用高德定位,可以在内网部署一个前置代理,把安卓端定位的请求转发到外网,但是安卓端如果拦截高德的请求并转发给我们的前置代理完全没思路,高德的都是 sdk 封装好的,也不知道是用的什么做的网络请求,求各位大佬帮忙

16 条回复    2021-10-14 22:26:55 +08:00

xieqiqiang00
    1

xieqiqiang00   18 小时 49 分钟前

直接改网络代理不行吗?
icetea12138
    2

icetea12138   18 小时 40 分钟前

@xieqiqiang00 安卓系统里的那个吗?那个不行,因为不是所有请求都要转发到代理服务器里的
masterclock
    3

masterclock   18 小时 33 分钟前

高德定位是什么?高德地图?
一定要高德吗?
AoEiuV020
    4

AoEiuV020   18 小时 32 分钟前

感觉应该在路由器处理,
murmur
    5

murmur   18 小时 23 分钟前

高德不是支持离线么,sdk 也可以离线
icetea12138
    6

icetea12138   18 小时 17 分钟前

@murmur 是需要定位功能,高德只有地图支持离线的
icetea12138
    7

icetea12138   18 小时 17 分钟前

@AoEiuV020 路由器不受我们控制啊没有办法加
maskerTUI
    8

maskerTUI   18 小时 16 分钟前

装一个高德地图不就可以了吗?再下载个全量地图包
also24
    9

also24   18 小时 11 分钟前

听起来主要的目的就是按域名分流部分请求?这不就是某一类工具*常用的功能么?
icetea12138
    10

icetea12138   18 小时 4 分钟前

@also24 是那个意思,但是要在同一个 app 内实现这个功能
hentailmm1
    11

hentailmm1   17 小时 51 分钟前

安卓的话连个笔记本热点抓个包看看呗
AoEiuV020
    12

AoEiuV020   17 小时 46 分钟前

@icetea12138 纯 app 实现要么 root 防火墙转发要么 *Service 拦截整个手机流量,
机制上就不允许随便拦截网络请求,除非高德 sdk 本身允许,预留了什么方案,这样的话官方文档应该会说,没有就放弃吧,
sujin190
    13

sujin190   17 小时 43 分钟前

完全内网的话,直接 dns 劫持高德的域名应该是比较方便的了,也不行就直接把高德 sdk 里的域名改成你代理的域名就是了呗,还不行的话如果安卓设备就几个有限用用就 root 下,然后转个防火墙软件重定向下高德的流量应该也可以,当然能 root 的话改 hosts 就是了啊,哈哈
jetpy
    14

jetpy   17 小时 36 分钟前

可以在路由器里使用 iptables 做转发
gam2046
    15

gam2046   17 小时 0 分钟前

高德本身可以下载离线地图,使用时可以不使用网络进行定位、导航。只是没有路况信息而已。
v2yllhwa
    16

v2yllhwa   11 小时 20 分钟前 via Android

@AoEiuV020 *service 在本地实现类似 DNAT 功能有现成的轮子么?

android 电视上有什么浏览器推荐?

android 电视上有什么浏览器推荐?

 

youyoumarco · 22 小时 6 分钟前 · 1202 次点击

各位,暂时不想投屏解决,还是想看看浏览器有什么推荐吗?

15 条回复    2021-10-14 21:04:22 +08:00

NEVERCODE
    1

NEVERCODE   21 小时 59 分钟前

我用的 via,加一个无线鼠标……
NGUTHONG
    2

NGUTHONG   21 小时 58 分钟前

都不好用,建议电视直接接 PC
alittlecat
    3

alittlecat   21 小时 56 分钟前

有办法在电视上看 b 站直播加弹幕吗
有一个古老的 b 站客户端 有弹幕 不支持直播
官方*新的云视听支持直播不支持弹幕
alittlecat
    4

alittlecat   21 小时 55 分钟前

手机版的安卓客户端 横屏支持的太差
chrome 直接播放 电视 cpu 撑不住 特别卡
好*望
lucher
    5

lucher   21 小时 45 分钟前

@alittlecat 接个迷你主机,比如 intel NUC
yinzhili
    6

yinzhili   20 小时 39 分钟前

VIA 可以试试
Leez088
    7

Leez088   19 小时 57 分钟前

@alittlecat b 站前段时间出了安卓 pad 版本,你可以用这个,我之前安装过,手机大会员可用,不过*好买个带飞鼠的蓝牙遥控器,我电视盒子上爱优腾装的都是安卓 pad 版,可以和手机共用 vip,就是有些操作得用鼠标
jowan
    8

jowan   19 小时 49 分钟前

飞视浏览器
MLawliet
    9

MLawliet   17 小时 40 分钟前 via Android

Firefox TV 版
alittlecat
    10

alittlecat   17 小时 27 分钟前

@Leez088 感谢 晚上试一下
suixn
    11

suixn   15 小时 48 分钟前

百度贴吧 bilibilitv
电视版本,有弹幕
suyuyu
    12

suyuyu   15 小时 27 分钟前

chrome 怎么了吗?
burby
    13

burby   15 小时 12 分钟前 via iPhone

apple tv 就没有这个烦恼,因为根本没有浏览器
ccloudk
    14

ccloudk   14 小时 50 分钟前

fire TV 自带的 silk browser 挺好用,不过局限于 Amazong 产品了。
试试 Firefox,有鼠标就用 EDGE
Cielsky
    15

Cielsky   12 小时 41 分钟前 via Android

鉴于有播放视频需求,alook 吧,横屏也凑合。
纯浏览 via 就够了

如果存储运算形成的“中间量”

如果存储运算形成的“中间量”

 

gossip · 13 小时 21 分钟前 · 863 次点击

断断续续接触 python 其实有一年了,没拿它干过重活儿,还是非常新手的状态。但是进来有个问题让我思考更多:
楼主本身背景经济学,我们经常用的软件包括 R,Stata 这种。笔者更熟练用 Stata

现在在用 python 做点题目,问题描述如下:
好比说我有两个 python 文件 A 和 B,由于两个功能的完全不同,而且为了以后逻辑清楚,特意分成了两个文件写

A 执行之后经过复杂的运算会产生一个列表 m, 我的 B 文件就从 m 开始继续加工 m

这样一来,我只需要运行 B 就行了,想知道如何让 A 中运算产生的 m 在运行 B 的时候自动就当做已知的(当前那环境中就有的)

就好像 A 和 B 连起来一起执行一样?

————————————————–
我遇到这个问题,就在想我貌似之前很少碰到这个问题,于是回想了下这种情景用 Stata 是如何处理的。
是这样的:
一般 A 文件先参与运算,算完之后打开 B 文件,只要 B 文件开头不写清空当前内容,那么 A 得到的结果自然在内存中,接着用就是了。
又或者:
A 文件先参与运算,算完了之后把整个结果(通常是数据集,类似于 python 中的 dataframe )保存成 Stata 的 dta 文件就行,运行 B 的时候,开头调入整个 dta 文件,就 OK 了。

这个问题麻烦在于,我 A 生成的是一个列表,如果我选择 with open…. write 一个文本文件当然可以,然后再从 B 中写一个 with open 读出来用一个列表接收,当然可以,但总觉得“不是那个味道”。

所以感觉 python 这种没有一个变量框全局地储存变量还是与数据软件挺大的不同呢,但今晚遇到问题了,才更有理解一些。

但我觉得,应该是更大的问题是我不太懂 python 的所谓“模块”的概念,既然一切 py 文件皆是模块,我是否可以在 B 中引入 A 中的结果呢,我知道可以引入 A 中的函数等,但是通过 A 运算得到的 m 有没有好的办法呢?

(我的 A 文件就类似于一个面向过程的流水账,一步步计算出结果的这种)
—————————————————-
话比较啰嗦,谢谢大家了

18 条回复    2021-10-15 09:26:33 +08:00
zk123
    1

zk123   13 小时 2 分钟前

共享内存?一个双向队列解决?看了两遍,没太清楚要解决的关键点在哪里
acmore
    2

acmore   13 小时 0 分钟前

其实 with open 用文件才是*正统的风格( Unix ),你的系统盘里就有一大堆这样的中间临时文件。
不过这个问题是不是可以用一个 main 函数来解决,main 调用 A 得到结果再传给 B,一切都在内存里发生。

Python 的模块引用的都是代码,而不是运行的结果。

GeruzoniAnsasu
    3

GeruzoniAnsasu   12 小时 58 分钟前

> 感觉 python 这种没有一个变量框全局地储存变量还是与数据软件挺大的不同呢

有。

正经编程语言会有「作用域」的概念,参与运算的变量会分层暴露在各自的「作用域」里,越「内部」或者说越「局部」的变量,就越不可能被外界看到。

与之相反的,如果一个变量处于「全局作用域」中,那就可以在全局范围内引用,跟引用函数 /类 是一样的。

假设 A 文件有一个计算过程 calcNumA,*后得出来一个临时结果,你可以把临时结果直接放到文件*外面,比如

ACache = None
def calcNumA(args):
“…
“global ACache
“ACache = results

然后引入它:

import A

if A.ACache=None:
“A.calcNumA(…)

但良好的程序设计会遵循一定的设计规范和*佳实践,不会像这样直接暴露变量。此处展开就太多了,这个问题可以先不管,建议以后代码写多了慢慢填

GeruzoniAnsasu
    4

GeruzoniAnsasu   12 小时 57 分钟前

至于列表,不是有{}和[]吗
rpman
    5

rpman   12 小时 57 分钟前 via iPhone   ❤️ 1

假设你是写好文件然后跑 .py ,一般做法是用 pickle 把对象存成文件,然后下一个脚本载入对象
如果要模仿统计软件里的体验,*简单方法是用 jupyter notebook,想跑哪个 cell 就跑哪个 cell,变量在同一个 notebook 里共享
ch2
    6

ch2   12 小时 56 分钟前

需要有“进程”这个概念
你的问题本质上是一个进程执行完之后如何让中间结果留给下一个进程接着用
还额外蕴含了一个信息:*次执行完毕后你想让进程驻留,只保留数据,第二次运行还要使用新的代码,这是很难以方便直观的方法做到的
一次代码的运行会创建一个进程,它可以使用多个源代码模块。但是两次代码执行之间想要互通数据就得借助于外部手段,写文件是其中一种
如果你不想借助外部方法,就得把多次运行改进成一次运行,这样始终只会创建一个进程,就不需要走进程共享这一套流程了
rpman
    7

rpman   12 小时 53 分钟前 via iPhone

至于真正生产代码,都会把功能都封装成函数,脚本只负责调用
nuistzhou
    8

nuistzhou   12 小时 52 分钟前 via iPhone

不需要啥临时文件。这…在 B 里直接调用 A 的函数就好了啊。具体来说,你在 A 里的计算逻辑写成一个 返回结果(对你来说这里是可能是 df )的函数,然后在 B 里调用 A 的这个函数并运行,结果自然就可以作为一个 B 里的变量直接用。
SenLief
    9

SenLief   12 小时 49 分钟前

模块?
jmc891205
    10

jmc891205   10 小时 32 分钟前 via iPhone

把 A 里的逻辑封装成函数 在 B 里调用返回 m
Livid
    11

Livid   V2EX Moderator   10 小时 32 分钟前 via iPhone

https://github.com/redis/redis-py
kilasuelika
    12

kilasuelika   7 小时 47 分钟前 via Android

看你的表述,你需要应该是在同一个环境下执行 2 个文件:
exec(open(“filea.py”).read())
exec(open(“fileb.py”).read())

这样 fileb 中可以直接用 filea 中的变量

dangyuluo
    13

dangyuluo   6 小时 26 分钟前

如果 AB 是不同进程的话,一定不想存到文件里,可以考虑一种 IPC
ruxuan1306
    14

ruxuan1306   6 小时 8 分钟前

看描述感觉你好像是在用 Matlab 、PyCharm 那种交互式的、可以保持上下文的执行工具。

模块化的做法是:
A 文件里内容写成一个大函数,B 文件里内容也写成一个大函数,然后建立一个`main.py`文件,导入 A 、B 文件内的两个函数,于是你就可以先执行 A 先获得中间结果:`data = A()`,再将中间结果喂给 B:`result = B(data)`。

未来直接运行`main.py`即可。

iceheart
    15

iceheart   1 小时 14 分钟前 via Android

用 mq 啊
zjsxwc
    16

zjsxwc   1 小时 6 分钟前

python 保存 session 状态还是很简单的,仅仅只需要对 globals()进行操作就行。

https://stackoverflow.com/questions/2960864/how-to-save-all-the-variables-in-the-current-python-session#answer-2961077

oott123
    17

oott123   58 分钟前

我倒觉得你需要的是一个 Jupyter Notebook
gaint97
    18

gaint97   19 分钟前 via iPhone

我也是小白,感觉把 Adefine 个函数可行

升级了 windows11,看到个熟悉的字符

升级了 windows11,看到个熟悉的字符

 

nuxio · 23 小时 50 分钟前 · 7409 次点击

a.png

windows11 

66 条回复    2021-10-15 09:42:30 +08:00

Xusually
    1

Xusually   23 小时 43 分钟前   ❤️ 2

烫烫烫烫烫烫烫烫烫烫烫
shyrock
    2

shyrock   23 小时 39 分钟前   ❤️ 1

期待锟斤拷
yyt6801
    3

yyt6801   23 小时 30 分钟前   ❤️ 25

手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘
chonger
    4

chonger   23 小时 22 分钟前

win 这中文字体的渲染还是一如既往的一言难尽……
Dragonphy
    5

Dragonphy   22 小时 57 分钟前

@chonger 和显示器分辨率关系蛮大的,楼主应该是 1080P
UnitTest
    6

UnitTest   22 小时 38 分钟前

@chonger 我 mac 和 win 同时使用, 4K 下都挺好看, win 的字体现在很好了. 1080p 及以下的时候, 对于屏幕看文字和代码而不是做设计的话, 比起 windows 差太远了, 实在是太模糊了.
qq73666
    7

qq73666   22 小时 32 分钟前

烫嘴?
weiceshi
    8

weiceshi   22 小时 27 分钟前   ❤️ 8

说 win 字体渲染差的,你拿 mac 接低分屏拍张照发上来比比呗
mac 接低 ppi 显示器,字糊成啥样,心里没点数吗?

%title插图%num
现在桌面屏幕分辨率 1080P 以下的占比过 9 成
也就 mac 有脸这样干

nil333
    9

nil333   22 小时 21 分钟前   ❤️ 12

@weiceshi macos 用户:不会还有人 mac 还连接 4k 以下的屏幕吧,不会吧不会吧,现在连 air 都上了 retina,不会还有人用没钱换新款的吧,不会吧不会吧
marcong95
    10

marcong95   22 小时 3 分钟前   ❤️ 1

@weiceshi #8 请顺便点一下你那网站的 OS Market Share,macOS Market Share on Desktop Platform 不到 16%,你用所有 desktop monitors 的分辨率分布来评论市占不到 16%的系统真的合适吗?

更何况大部分合法的 macOS 设备都自带 retina 屏幕,在这前提下,macOS 用户的低分屏比例那就更加低了,系统开发的时候有所取舍真的那么“不要脸”吗?

dcsuibian
    11

dcsuibian   21 小时 48 分钟前

@weiceshi 完全同意。mac 接高分屏确实非常牛逼,但对低分屏的支持简直差到令人发指。不支持 2k 屏,强开 hidpi 又会有问题。(我有 4k 屏,只是想用 2k 作副屏)
不知道是不是我的错觉,但上次看同事在 ubuntu 上用 1080p 屏幕逗比 macos 上用 1080p 的清晰。
相对来说,windows 对各种分辨率的支持度都非常好,而且 4k 下的体验比不上 mac 的那种惊艳,但还是挺不错的,字也是挺清晰的。
Biwood
    12

Biwood   21 小时 47 分钟前

还是原来的配方,还是原来的味道
Biwood
    13

Biwood   21 小时 40 分钟前   ❤️ 2

@chonger
讲真,相同 ppi 屏幕上面,windows 的显示效果是远远好过 macOS 的,之前尝试过给台式机安装黑苹果,发现 macOS 在没有视网膜屏或 4K 屏幕加持的情况下,字体显示非常模糊。而 windows 因为有 ClearType 技术,即便是 1080p 屏幕,字体也是非常清晰的。

之所以很多人觉得 macOS 渲染好,其实不是软件的功劳,而是视网膜屏显示器的作用,还有一点就是 macOS 的界面设计相对美观一些。

agagega
    14

agagega   21 小时 23 分钟前 via iPhone

APFS 还是专门为 SSD 设计的呢,有什么问题吗?现在的 Mac *大部分就是 SSD 啊
chendy
    15

chendy   21 小时 16 分钟前   ❤️ 1

从烫烫烫歪楼到字体渲染也是没话说……
Tyanboot
    16

Tyanboot   21 小时 14 分钟前   ❤️ 36

MacOS 低分辨率糊:取舍

Windows 低分辨率糊:垃圾

jackmod
    17

jackmod   21 小时 10 分钟前

烫还行,有点怀疑它的编码是啥……
yinzhili
    18

yinzhili   20 小时 42 分钟前   ❤️ 24

@Tyanboot 果粉便涨红了脸,额上的青筋条条绽出,争辩道, “苹果低分辨率字体糊不能算糊……取舍的事,能算糊么?” 引得众人都哄笑起来:店内外充满了快活的空气。
weiceshi
    19

weiceshi   20 小时 24 分钟前

@marcong95
我就不像楼上那些人取笑了
我认真回答你一下:
> 更何况大部分合法的 macOS 设备都自带 retina 屏幕,在这前提下,macOS 用户的低分屏比例那就更加低了,系统开发的时候有所取舍真的那么“不要脸”吗?

是的,就是不要脸
因为不需要取舍,完全可以像 Windows 那样 HiDPI LowDPI 全优化
像素点多就直接渲染保证美观;像素点少 Hinting + 纵向抗锯齿,放弃美观保证清晰,保护狗眼

weiceshi
    20

weiceshi   20 小时 20 分钟前   ❤️ 2

PS:
Windows 11 (改个右键菜单 + 任务栏合并 ) :放弃用户习惯,垃圾
Mac (直接砍掉 32 位应用 + 每个小版本升级一堆软件无法运行) : 放弃历史包袱,优秀
marcong95
    21

marcong95   20 小时 4 分钟前

@weiceshi #19 那你要这么认为的话,那我倒挺支持苹果在这问题上不要脸的。毕竟作为一只程序猿,在果断放弃向下兼容这事情上,很难不共情。

我也 PS 一个,我对 Win11 的新右键菜单十分感兴趣,但是迫于在用一代 Ryzen,暂时无法更新,十分忧伤。

auvt
    22

auvt   19 小时 56 分钟前 via iPhone

还没敢升,怕烫?
weiceshi
    23

weiceshi   19 小时 55 分钟前   ❤️ 17

@marcong95
所以你也知道“向下兼容”有多难有多麻烦
每次软件做版本,对于旧版本的文件支持和配置项迁移,几乎要花掉一大部分精力
软件有边际成本,只占整个软件功能比例百分之一的兼容性,要付出百分之五十的工作量
所以谁都想“放弃向下兼容”

所以你知道 Windows 11 右键兼容性就能完美打开 20 几年前为 windows 98 写的程序的可贵了吧
所以你知道 Mac 只用支持自己那几套固定硬件配置要省多少事了吧,所以你知道 Mac 不用管向下兼容性有多容易了吧
所以你知道在这种情况下,Mac 还有那么多 Bug 有多烂了吧

weiceshi
    24

weiceshi   19 小时 51 分钟前

其实对个人来说,才真的是取舍,你喜欢什么都无所谓
但马上 2022 年了,还有人对着 LowPPI 截图说 Windows 字体渲染,真的是让人无力吐槽
zzm88104
    25

zzm88104   19 小时 46 分钟前 via iPhone

变巨发来贺电
Suigintou
    26

Suigintou   19 小时 34 分钟前 via iPhone

Windows 对高分屏失陪扎心。
linhongye
    27

linhongye   18 小时 24 分钟前

当人们说 win 不支持高分的时候…
mac 直接不支持 4K 以下…
用新的软件的话, win 在 4K 下也是很爽的, 所谓不支持主要是一堆旧软件, 但是微软又一直给他们支持….
我自己基本没啥久软件… 有时候要用上古软件… 反正 mac 上也没有… 没得比…
murmur
    28

murmur   18 小时 16 分钟前   ❤️ 1

@marcong95 对,mac 用户不需要外接屏幕,买外接屏幕的都是买 mac 装 windows 的
zhaidoudou123
    29

zhaidoudou123   17 小时 26 分钟前

我回想起以前给 MacBook 装 Windows8.1 的时候的音乐应用里的图标都是这个的恐惧
haiironezumi
    30

haiironezumi   15 小时 30 分钟前   ❤️ 2

Windows 11 的中文界面几乎没有进步,甚至在某些地方退步了,一个*明显的是欢迎界面直接变宋体。

说到字体我可就不困了,首先低分屏上很难渲染的比较好,Windows 和 macOS 只是采取了不同策略,Windows 用了很重的 hint,维持了一个扭曲的像素化的字体。macOS 则是几乎没有 hint,基本没有字体变形,但是存在很糊的情况。两者都没法完美,这是硬件 bug.
在高分屏上,macOS 几乎没什么问题。有人说 Windows 在高分屏上字体渲染好,我只能说呵呵。首先是*明显的,字体容易回退到宋体,这个字体在高分屏上是就是灾难,小字号*细,大字号勉强能看,和 UI 一点都不协调。然后就是微软雅黑,微软雅黑基本上是为低分屏设计的,在高分屏上过于拥挤,而且由于 Windows 奇怪的渲染策略,在高分屏上的渲染明显偏细,特别是 Chrome 里,简直是灾难,几乎没有 legibility.
说白了中文界面 Windows 进步的太慢了,不知道哪儿来的自信说用高分屏一定能 fix 中文界面的问题。

GiftedJarvis
    31

GiftedJarvis   14 小时 59 分钟前

@weiceshi 我用 Mac, 但公司给配的显示器是 1080P 的, Win 在 1080P 上显示效果确实比 Mac 好 ??
dx5594206
    32

dx5594206   14 小时 32 分钟前

烫和字体渲染有啥关系?
这不是没初始化内存么?
ruri
    33

ruri   12 小时 24 分钟前

兼不兼容旧程序是操作系统开发的策略问题,这怎么就跟 Mac 烂不烂扯上关系了?
再者说,兼不兼容上古旧版本系统和操作系统的 BUG 多不多也没有直接关系,Windows 也不能兼容所有的上古软件。
另外,现在都 Windows11 了,我觉得一个操作系统还在兼容 20 多年前的软件并不是什么值得称道甚至是吹嘘的事情,相反,这种状况对操作系统上的软件生态环境只有一大堆弊端,这种历史包袱早就该甩掉了,只不过微软想甩也甩不掉罢了,根本就不是什么微软能力很强或者 Windows 非常优秀。
还有,Mac 基本上不需要兼容低分辨率,唯一的场景也就是公司配给的屏是 1080P 分辨率这种情况了吧?我觉得这个不应该怪苹果吧?苹果可没推荐用户用低分辨率屏幕,这就像 Android 用户 root 以后把手机整出毛病怪 Android 不稳定一样好笑。
操作系统和设备都是商品,踩一捧一实在没有必要,不喜欢完全可以不买不用。
另外,Windows 的字体渲染清晰归清晰,但微软的这种字体渲染策略我实在是喜欢不起来——字体间距不一、宽窄不一、高矮不一、粗细不一,一眼看上去就难受,无论你换再高分辨率的屏幕,这些毛病始终存在,因为 Windows 的字体渲染策略就是如此,特别是当 Windows 显示非内置字体的情况下就更加惨不忍睹了,所以大多数 Windows 端涉及到图形视频处理的应用,都会内置一套字体渲染引擎,*不会用 Windows 自带的字体渲染程序,我觉得这应该足够说明 Windows 的字体渲染策略有多蠢了吧?还是说有些人自信满满认为自己比那些专业做图形和视频处理软件的大型商业公司更聪明?
就比如上面那个截图的字体,“音乐”两个字的高矮都不一样,我看着浑身都难受。
单纯只是在显示屏上看的话,Windows 的字体渲染策略倒是有可取之处,因为确实很清晰,没有那种毛毛躁躁的模糊感。但这纯粹就只是个人认知和喜好的问题,就像如今 OLED 屏幕的手机满街都是,但依然有很多人喜欢 LCD 屏幕,因为确实有部分人的眼睛受不了 OLED 的低频 PWM 频闪现象。
noparking188
    34

noparking188   12 小时 16 分钟前

-> 水深火热
haiironezumi
    35

haiironezumi   12 小时 9 分钟前   ❤️ 1

贴几张典型对比图,取自 Chrome 维基百科
Windows 200%缩放
![Windows2x]( %title插图%num)
macOS 200% 缩放
![macOS2x]( %title插图%num)
Windows 100%缩放
![Windows1x]( %title插图%num)
macOS 100%缩放
![macOS1x]( %title插图%num)
YvesX
    36

YvesX   11 小时 57 分钟前

既然已经歪到字体渲染上去了,朋友们,用过 XBOX 吗?高低对齐都费劲。
zartouch
    37

zartouch   11 小时 36 分钟前

macos 比起 win 目前我喜欢的点还真就是字体渲染。

首先 win 上面微软雅黑的设计早期是为了低分屏,高分屏上看起实在是臃肿。 第二就是 win 的字体一定要是 200% 这种整数放大,150% 175% 的放大就会导致字体显示很奇怪。 而在 32/27 4k 屏上开 200%又太大了,所以导致中文字体一直很怪。直到我买了 amd 显卡开了超采样了才好起来。况且还有各种时不时跑出来的宋体。win 上面的中文体验就是不如 mac 好吧。

silencil
    38

silencil   10 小时 54 分钟前 via iPhone

没见过用个系统还要争个高下的
CatCode
    39

CatCode   10 小时 50 分钟前   ❤️ 2

我明明是进来看烫烫烫的,结果你们这歪楼歪成什么样子了
xiadong1994
    40

xiadong1994   10 小时 41 分钟前 via iPhone

看文字、写代码用 4k 分辨率以下的显示器不是给自己找罪受吗……
weiceshi
    41

weiceshi   10 小时 32 分钟前   ❤️ 2

@xiadong1994
to 果粉
租房子,坐地铁的人不是给自己找罪受吗?
不是的,请看上面的统计图,世界上有 90%的显示器分辨率在 4K 以下,请果粉们注意常识
weiceshi
    42

weiceshi   10 小时 26 分钟前   ❤️ 3

@xiadong1994
2022 年了还有这种“何不食肉糜”的言论,真不知道是卖萌还是真蠢
lin559671
    43

lin559671   10 小时 7 分钟前 via Android

硬件闭源的生态和硬件开源生态对比,其实没得什么好比的。求同存异,纯纯的用户就买 Mac 视网膜,开箱即用,没得喷点。但凡玩 Windows 就是冲着 PC 的硬件搭配自由度超高,所以多少也要有点取舍,字体变形我觉得还可以接受吧。玩 windowsPC 的人就是喜欢折腾
binux
    44

binux   9 小时 47 分钟前 via Android

@ruri 对对对,用不起高分屏都是用户的错,穷人不配用高贵的 macOS,能让你们这些低端用户接上低分屏不原地爆炸就应该感恩戴德,还在这 JJYY 不清晰?
luckycat
    45

luckycat   8 小时 54 分钟前   ❤️ 2

天天吹 Mac 的都是穷逼。讲究人都是 Windows,Linux,Mac 都摆桌上的,各种操作系统的笔记本好几台,iPhone Android 旗舰好几台,不同场合用不同系统。

这三个系统都有好处,也都有缺点。

非要说 Mac 是完美的 Windows 是垃圾,都是从小穷惯了惹的祸,自己省了几个月工资用上个 Mac 了不起了,瞬间就高大上,高人一等了。

就好像喝了瓶依云矿泉水就看不起喝可口可乐的人一样滑稽。

luckycat
    46

luckycat   8 小时 44 分钟前

要秀优越就说说你开的什么车,住的什么房,存款几个 M,老婆漂亮不,孩子上的什么学校。
一个几万块的破电脑有什么优越可秀的,越秀越说明自己的社会阶级低下,拿个刨地的金锄头就不是农民了?
都是农民工,相煎何太急?
supertiny
    47

supertiny   8 小时 30 分钟前

@luckycat 吃个肯德基就看不上华莱士,有本事我们比比用什么牌子的手机

真是标本

MrKrabs
    48

MrKrabs   7 小时 44 分钟前   ❤️ 1

“看文字、写代码用 4k 分辨率以下的显示器不是给自己找罪受吗……”
凭这句话就来个”to 果粉”,互联网真是太精彩啦
luckycat
    49

luckycat   7 小时 15 分钟前 via iPhone

我举的那些例子目的只是要让这些爱秀的人明白,自己以为优越的地方可能在别人眼里一文不值。如果有伤到你自尊那我抱歉。
bao3
    50

bao3   6 小时 46 分钟前 via iPhone

没啥好争论的 我永远记得 2015 mbp 装了 windows 8.1 后那个样子,同样的视网膜,不一样的感受。再也没用 bootcamp 装过 win 了。
Mirage09
    51

Mirage09   5 小时 31 分钟前

@luckycat lmao,现实版*帝的金锄头
xinhaiw
    52

xinhaiw   1 小时 18 分钟前

都什么年代了,还有人用 4k 以下的屏幕啊?
liugn
    53

liugn   1 小时 10 分钟前

Working on updates 25%
请保持计算机打

计算机可能会重

anguiao
    54

anguiao   59 分钟前

@haiironezumi 那是字体本身的问题,不是字体渲染机制的问题。当然了*后体现的效果确实就是不行,不知道微软什么时候能换个字体了。
jy02201949
    55

jy02201949   48 分钟前

什么时候能出个锟斤铐大战烫烫烫的动画片就好了
inhons
    56

inhons   43 分钟前

@haiironezumi 30 楼讲得对。可能很多人都忘了还有个点阵字体了,补个链接,感兴趣的可以看 https://www.bilibili.com/read/cv9476253
pansongya
    57

pansongya   35 分钟前

mac 远程也是五星渣
rrZ2C
    58

rrZ2C   32 分钟前

Windows 4K 屏幕的字体看着很舒服的….
inhal
    59

inhal   30 分钟前 via iPhone

@chonger 是字体问题,而并非字体渲染。你把微软雅黑放其它系统接个低分屏也差不多这样。
felixcode
    60

felixcode   20 分钟前 via Android

这年头,连 16G 内存做顶配的电脑都有呢,比起来,显示器到不了 4K 就不是个事。
inhal
    61

inhal   16 分钟前 via iPhone

我来苦一句:上面在讲 macOS 和 Windows 到底谁更清晰的依据是字体糊不糊。拜托,清晰不清晰难道不是要硬件自身够优秀么,拿个字体来比实在是局限,苹方看起来就是比思源黑体舒服,你能说是 iOS 渲染比 Android 好么?
datou
    62

datou   14 分钟前

https://tvax4.sinaimg.cn/large/001B7jiPgy1gvfqjohqwsj61aj18946k02.jpg

在同样的 3840×2160 200%缩放下

win10 的字体还行

但是 win11 的中文字体显示就是倒退了

win11 的设置里面出现了低 DPI 横竖粗细不一样的雅黑(红框处)

感觉回到了 windows mobile 6.x 的低 DPI 字体时代

inhons
    63

inhons   7 分钟前

@datou 你把微软雅黑在 Word 上调到相同字号,分别在 Windows 10 和 Windows 11 上对比看看,我猜还是微软雅黑的问题。
haiironezumi
    64

haiironezumi   5 分钟前

@anguiao
@inhal
我这就贴一张微软雅黑在 macOS 上的表现
1x 缩放比
%title插图%num
2x 缩放比
%title插图%num
首先微软雅黑本身是挺不错的,但是不够「现代」,现代一点的字体不回这么拥挤。
其次 macOS 和 Windows 在低分屏上的缩放表现,我实在不明白为什么有人说 Windows 远好于 macOS
BestQueffEver
    65

BestQueffEver   3 分钟前

@haiironezumi 中文字体比较复杂,就拿你举的例子,细不一定差,粗也不一定好。对于比较简单的字形,粗一点更好看,但对于复杂的字形,渲染太粗就会显得臃肿糊成一团。
haiironezumi
    66

haiironezumi   几秒前

@datou 这个其实是 DirectWrite 灰度渲染的时候仍然读取了字体 hinting 导致字形扭曲。你如果放大,你会发现笔画和像素对齐了,但是视觉上不对齐、粗细不一。

很喜欢 Echo 框架

很喜欢 Echo 框架
balabalaguguji · 15 小时 15 分钟前 · 2409 次点击
个人比较喜欢简洁的框架,*近看了下 go 的 web 框架 Echo,非常喜欢它的设计,看上去挺像 koa2 的。

支持分组中间件,路由中间件,这个很棒。

*近才开始学习了下 Go,感觉很棒,方法前面加一个 go 就变成了协程运行,不过用 chan 来做数据交互可读性确实没有 async/await 好。

另外 Go 的 defer 也很棒。 *棒的是 Go 的程序可以直接生成二进制文件,无需其他依赖直接跑。

还有什么好特性或者不好的地方,大家评论分享下

echo 框架 协程 二进制42 条回复 • 2021-10-15 09:35:46 +08:00
cmdOptionKana 1
cmdOptionKana 15 小时 1 分钟前
Go 用来做一些小项目确实是个非常优秀的选择,官方提供的工具链很好用,web 框架(不止 Echo,其实其他的 Go web 框架都是)很灵活、高效。

而且,小项目就算没有泛型之类的语言特性也无所谓,一共也没多少行代码,简平快硬写就行,啥编程模式之类的在小项目中体现的好处并不算大。

只是做大项目的话,Go 在 web 方面底蕴还是比不上 php 和 java 。
balabalaguguji 2
balabalaguguji 14 小时 54 分钟前
@cmdOptionKana #1 做大项目应该也不成问题吧,自己可以灵活搭配,不过还没试过,不知道具体有什么比不上 php/java 的
liuhan907 3
liuhan907 14 小时 53 分钟前
@balabalaguguji 比方说,没有好用的 ORM
kidlj 4
kidlj 14 小时 49 分钟前 via iPhone
@liuhan907 Ent.
robert233 5
robert233 14 小时 47 分钟前
echo xorm 满足了小项目需求
liuhan907 6
liuhan907 14 小时 45 分钟前
@kidlj 我说的是没有好用的,不是没有能用的。
iPhone9 7
iPhone9 14 小时 44 分钟前
@liuhan907 为什么要用 orm,直接 sql 不香吗
balabalaguguji 8
balabalaguguji 14 小时 27 分钟前
@liuhan907 #3 个人不是很喜欢 ORM,都是直接操作数据库,感觉直观点,也不用那么麻烦的整天搞映射
liuhan907 9
liuhan907 14 小时 21 分钟前
@balabalaguguji 我喜欢 ORM 是因为很多时候真的不需要性能,而我又不想手写 update 语句。
liuhan907 10
liuhan907 14 小时 20 分钟前
@iPhone9 那肯定没有我直接修改内存数据然后 save 一下了事香啊
iPhone9 11
iPhone9 14 小时 17 分钟前 ❤️ 1
@liuhan907 菜鸡才喜欢 orm
skye 12
skye 14 小时 16 分钟前
@balabalaguguji 大项目需要更多的轮子,新兴语言一般的轮子没有老语言多。
liuhan907 13
liuhan907 14 小时 12 分钟前
@iPhone9 菜就菜吧,但是它节省了我的时间啊。
mxT52CRuqR6o5 14
mxT52CRuqR6o5 14 小时 8 分钟前 via Android ❤️ 1
@iPhone9 就喜欢这种自信的言论
lovedoing 15
lovedoing 14 小时 7 分钟前 ❤️ 4
菜鸡才喜欢 orm 还行 ? 差不多得了
aitaii 16
aitaii 13 小时 51 分钟前
真正的高手都是通过手动控制 cpu 高低电位运行程序的,拉闸合闸不香吗
BeautifulSoap 17
BeautifulSoap 13 小时 46 分钟前 ❤️ 1
@iPhone9 像你这种菜鸡才喜欢写 sql,强者都是手写数据库
cmdOptionKana 18
cmdOptionKana 13 小时 36 分钟前 via Android
@balabalaguguji 底蕴主要有两方面,对于大项目来说,PHP 和 Java 积累了非常庞大的人才库,大项目需要考虑人员流动,另一方面是积累了大量的解决方案以及*佳实践之类的业界共识,可以减少很多讨论时间。

go 是可以灵活搭配,但灵活对于大项目来说弊大于利。而且,项目越大,go 自身的优势就越不明显,比如单个二进制文件部署、占用内存低之类的,大项目不怎么考虑这些因素了。
abersheeran 19
abersheeran 12 小时 52 分钟前
好家伙,看到分组中间件、路由中间件我犹豫了一下,想着不会是那个意思吧,结果一查还真是。和我在一个 Python Web 框架里设计的,不谋而合……哈哈哈,和业界典范想到一起了还挺开心。

https://index-py.aber.sh/stable/route/#_5
https://index-py.aber.sh/stable/route/#_13
SenLief 20
SenLief 12 小时 41 分钟前
@BeautifulSoap 强者用什么数据库,都是脑子记住。
Zchary 21
Zchary 12 小时 30 分钟前 via iPhone
js 转 go 的*个 web 框架不应该是 fiber 吗? just kidding
balabalaguguji 22
balabalaguguji 12 小时 30 分钟前
@abersheeran #19 这个是我的强需求
iPhone9 23
iPhone9 12 小时 3 分钟前
@BeautifulSoap 一看你就是不会 sql 只会 orm 的菜鸡
liuhan907 24
liuhan907 11 小时 33 分钟前
@balabalaguguji 其实还有一个我不喜欢的地方,因为 go 没有 attribute 或者 annotation 类似物,所以路由基本都是集中式。但是我非常不喜欢集中式路由。外加没有依赖注入,我不喜欢手动管理一大堆(指十几二十种以上)的依赖组件,这简直是折磨人。。。
lscho 25
lscho 11 小时 15 分钟前
以前经常用 nodejs 的表示也很喜欢 echo 。
upwell 26
upwell 10 小时 49 分钟前
echo 写小项目确实快,之前写过一个小项目,很快就能搞好。不知道现在 go web 框架主流的是什么,一般公司正式的项目用什么框架?求教一下
abersheeran 27
abersheeran 9 小时 2 分钟前
@liuhan907 用中间件,把数据挂到 context 上不也一样吗?像依赖 Annotation 来自动注入的应该就 Java 和 Python 了吧。
abersheeran 28
abersheeran 9 小时 0 分钟前
@balabalaguguji 哈哈哈,其实如果没有给指定分组增加中间件的功能,还可以用 PATH 来绕开,只不过比较麻烦。我当时也是灵机一动,觉得这个能解决中间件的适用范围问题就加上了。
FrankFang128 29
FrankFang128 8 小时 59 分钟前
这些 web 框架有什么很大的差异吗?
liuhan907 30
liuhan907 8 小时 42 分钟前 via Android
@abersheeran 主要是这得手动搞,依赖一多很烦。另外注入的话另一个好处是免去手动构造对象,在参数变化的时候少一点麻烦。其实说白了就是我懒,自动档开惯了不喜欢手动档。
kkocdko 31
kkocdko 4 小时 8 分钟前 via Android
@iPhone9 这位老哥的号是换人了么,记得几个月前似乎不是这个语气
wzw 32
wzw 2 小时 16 分钟前
goframe 这个也很赞
fox0001 33
fox0001 1 小时 21 分钟前 via Android
楼上一堆人身攻击,无意义啊…ORM 作用是屏蔽数据库操作。当一个代码文件混合了几种语言,维护起来很痛苦,优化也是个麻烦。小项目随便写吧,大项目要规范,否则到了后面维护就是自己挖坑自己填了。
xinhaiw 34
xinhaiw 1 小时 15 分钟前
ehco 垃圾中的战斗机
wowbaby 35
wowbaby 43 分钟前
@balabalaguguji 应该是开发效率、生态成熟度问题,比如用户管理,账号登录,手机登录,邮箱注册,手机注册,找回密码,基于 go 要多久?基于 php 我只要几个小时,mvc 网页、api 都可以出来。

比如缓存依赖,缓存标签,数据库我也可以自由切换 mysql,mssql,postgres 等等。

go 优势应该是搞性能吧,部署方便。
BeijingBaby 36
BeijingBaby 39 分钟前
https://gofiber.io/
BeijingBaby 37
BeijingBaby 35 分钟前
@BeijingBaby GoFiber 香,只是提供基本工具链。
其实更好的是只用一些 router 工具
qq1340691923 38
qq1340691923 26 分钟前
我首选 fiber,其次 gin
abersheeran 39
abersheeran 24 分钟前
@liuhan907 Golang 是做不到你想要的这个,忍忍或者换语言?
2i2Re2PLMaDnghL 40
2i2Re2PLMaDnghL 23 分钟前
@BeautifulSoap 像你这种菜鸡才喜欢手写数据库,强者都是直接使用 Wolfram 理论的图计算模型编写等效变换
qq1340691923 41
qq1340691923 23 分钟前
go 怎么就不适合做大型项目了,字节跳动,bilibili,七牛云都被你吃了?大型项目应该是微服务,多语言合作的
marcosteam 42
marcosteam 4 分钟前
@Zchary Fiber 真的香