V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xylophone21  ›  全部回复第 3 页 / 共 23 页
回复总数  447
1  2  3  4  5  6  7  8  9  10 ... 23  
安卓端如果涉及大量的 native 开源代码,又没有完全转成兼容 android studio 的 cmake (环境变量、工具链等),你会感觉到 mac 的好
2021-12-31 17:33:53 +08:00
回复了 totoro52 创建的主题 Java 练习两年半的同事写的代码
看到很多人说异常,异常了全局捕获然后返回规范的 ApiResult 不行吗?
2021-12-21 12:17:45 +08:00
回复了 glumess 创建的主题 程序员 Window 下 FFmpeg 和 LibX264 的编译和配置
@coderluan 这样编译出来 configure 生成的那些代码就没有了,也许 ffmpeg 里有默认的(不确定)导致你仍然可以用,但这是基于 ffmpeg 的 make 系统比较简单

BTW ,这就是为啥 Windows 不好用的原因之一
1 为什么不在 PR 里做呢?先推到个人分支,然后在个人分支里检查,检查通过再找人工走读,最后 merge
2021-12-13 12:38:07 +08:00
回复了 RuLaiFo 创建的主题 程序员 单元测试有必要吗?
说重构的,问一下你们重构的时候,只重构单个函数吗?否则如果函数改了,单测不一样要跟着改?除非是核心模块,保持一定的稳定性,但一个项目中,能有多少是核心代码呢?甚至有没有核心代码呢?

最近在看 Apple 、Google 开发的 Matter (一个物联网协议)的代码,CI 里确实配置了一大堆 test ,但基本上也是集成测试为主,客户端给服务端发一个什么包,期待收到一个什么回复之类的。mock 了做单测的,几乎没有。虽然在代码走读的过程中,他们会非常重视这个代码可否做单测。
2021-11-30 12:05:11 +08:00
回复了 qin20 创建的主题 FFmpeg 程序 FFmpeg 准确切割视频问题,请大神指教?
copy 模式下,开头不是关键帧怎么播放呢?

切两次呗
2021-11-17 09:44:08 +08:00
回复了 seakingii 创建的主题 Linux 是否有这样的定时任务开源软件?
曲线一下, Jenkins, Github action 似乎都可以
2021-11-16 19:11:42 +08:00
回复了 x97bgt 创建的主题 程序员 开闭原则(open/closed principle)到底是啥意思?
一看你的客户是谁,二看你的业务这么开展.

@fkdog 的例子就很好, 你做支付的,经常性的接一个新的支付(夸张了)就是你的业务, 对接的这个人就是你的客户. 让他们每次干活的时候不需要修改你的代码.

但你的代码里, 假设原来用的是 mysql,你要切到 postgresql, 当然可以改你的代码.

再深入一步, 你当然也可在设计之初,就想好, 如果后面要改数据库, 我是不是可以不修改, 留好扩展. 但这不是你的业务, 想多了就是过度设计了. 除非你做这个支付系统的目的, 就是为了测试各种不同的数据库系统. 或者说以及有现成的轮子了, 用起来几乎没有代价 (比如这个换数据库的例子,从某种意义上来说,就是有轮子的情况)

再进一步, 换数据库虽然不是你的业务, 但他其实是框架的业务, 比如对 Spring Data JPA 来说, 他的一个目标就是不论他的用户用什么数据库, 核心流程都差不多. 那么换数据库就是他的业务.
2021-11-13 14:47:29 +08:00
回复了 dzdh 创建的主题 程序员 现如今的开源代码请谨慎使用
其实一直不理解,像这种'xx 系统'这种业务层面的开源,其抽象程度真的能满足真实业务场景需求吗? 如果要改, 不是比自己重写还难受?
2021-11-12 09:46:08 +08:00
回复了 V392920 创建的主题 程序员 老铁们,来求个智能开关的解决方案!感谢
另外,这种改装的,如果原开关关闭以后,用 WiFi 还能不能打开最好问一下,因为原开关是物理带状态的, 如果还能打开物理状态会错乱,所以样式和功能,可能只能二选一
2021-11-12 09:42:13 +08:00
回复了 V392920 创建的主题 程序员 老铁们,来求个智能开关的解决方案!感谢
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22454015630.31.4619339fnY862v&id=596771503698

之前买过他们家的开关用起来还行, 改造模块也也,但没试过
2021-10-25 20:21:21 +08:00
回复了 lazy21 创建的主题 推广 让后端开发写个 API 文档就有那么难吗?
为什么 API 文档要后端写?
2021-10-25 11:39:40 +08:00
回复了 f2ck 创建的主题 问与答 各位工程师们,你们用 obsidian 还是 notion 去保存代码片段?
只有代码片段,没有背景,适用范围,总结,注意事项,心得,流程吗?
2021-10-21 10:00:00 +08:00
回复了 cxp 创建的主题 问与答 程序员如何比较规范的整理资料
》》但是苦于不同平台的不同代码,记录的时候总会产生分支

这个是你代码没有把相同的流程统一,而是 DRY 了,文档是无从解决的
当然,这不是你的问题,你们公司选择了直接使用 SDK,在上面修改。而不是自己实现 SDK,把硬件差异抽象出来。

如果一定要解决,我建议是整理协议这些更稳固的东西,而不是整理 SDK,你正在整理的 SDK,可能就是别人抱怨的 x 山
如果一定要整理,那就只能忍着,想想你在整理 x 山就好了
2021-10-08 09:37:47 +08:00
回复了 b00tyhunt3r 创建的主题 程序员 怎么防止用户自己调用网站 API 发送 POST 请求篡改数据
可以看一看钉钉是怎么防虚拟定位打卡的
传统的
1. 客户端各种加密,防止非官方 App
2.客户端各种检测,防止 root 、虚拟机等模拟 GPS
以及比较狠的
1. [传说] 发现问题不报错,但是在后台标记,等着管理员找你
2021-09-22 15:07:40 +08:00
回复了 FATEQiang 创建的主题 Android Android 单元测试如何规范
@ahao99 然而在 Android 端,一般来说业务并不是很多?
2021-09-15 11:40:47 +08:00
回复了 yuhangch 创建的主题 程序员 感叹一下,花括号换不换行真能把人难受死哈哈
用 golang 吧
2021-09-13 18:20:57 +08:00
回复了 xlsepiphone 创建的主题 程序员 H.264 编码的视频能同时被 mov 和 mp4 进行封装?
score 越大,可能性越高

```c
static int mov_probe(const AVProbeData *p)
{
int64_t offset;
uint32_t tag;
int score = 0;
int moov_offset = -1;

/* check file header */
offset = 0;
for (;;) {
int64_t size;
int minsize = 8;
/* ignore invalid offset */
if ((offset + 8ULL) > (unsigned int)p->buf_size)
break;
size = AV_RB32(p->buf + offset);
if (size == 1 && offset + 16 <= (unsigned int)p->buf_size) {
size = AV_RB64(p->buf+offset + 8);
minsize = 16;
} else if (size == 0) {
size = p->buf_size - offset;
}
if (size < minsize) {
offset += 4;
continue;
}
tag = AV_RL32(p->buf + offset + 4);
switch(tag) {
/* check for obvious tags */
case MKTAG('m','o','o','v'):
moov_offset = offset + 4;
case MKTAG('m','d','a','t'):
case MKTAG('p','n','o','t'): /* detect movs with preview pics like ew.mov and april.mov */
case MKTAG('u','d','t','a'): /* Packet Video PVAuthor adds this and a lot of more junk */
case MKTAG('f','t','y','p'):
if (tag == MKTAG('f','t','y','p') &&
( AV_RL32(p->buf + offset + 8) == MKTAG('j','p','2',' ')
|| AV_RL32(p->buf + offset + 8) == MKTAG('j','p','x',' ')
)) {
score = FFMAX(score, 5);
} else {
score = AVPROBE_SCORE_MAX;
}
break;
/* those are more common words, so rate then a bit less */
case MKTAG('e','d','i','w'): /* xdcam files have reverted first tags */
case MKTAG('w','i','d','e'):
case MKTAG('f','r','e','e'):
case MKTAG('j','u','n','k'):
case MKTAG('p','i','c','t'):
score = FFMAX(score, AVPROBE_SCORE_MAX - 5);
break;
case MKTAG(0x82,0x82,0x7f,0x7d):
case MKTAG('s','k','i','p'):
case MKTAG('u','u','i','d'):
case MKTAG('p','r','f','l'):
/* if we only find those cause probedata is too small at least rate them */
score = FFMAX(score, AVPROBE_SCORE_EXTENSION);
break;
}
if (size > INT64_MAX - offset)
break;
offset += size;
}
if (score > AVPROBE_SCORE_MAX - 50 && moov_offset != -1) {
/* moov atom in the header - we should make sure that this is not a
* MOV-packed MPEG-PS */
offset = moov_offset;

while (offset < (p->buf_size - 16)) { /* Sufficient space */
/* We found an actual hdlr atom */
if (AV_RL32(p->buf + offset ) == MKTAG('h','d','l','r') &&
AV_RL32(p->buf + offset + 8) == MKTAG('m','h','l','r') &&
AV_RL32(p->buf + offset + 12) == MKTAG('M','P','E','G')) {
av_log(NULL, AV_LOG_WARNING, "Found media data tag MPEG indicating this is a MOV-packed MPEG-PS.\n");
/* We found a media handler reference atom describing an
* MPEG-PS-in-MOV, return a
* low score to force expanding the probe window until
* mpegps_probe finds what it needs */
return 5;
} else {
/* Keep looking */
offset += 2;
}
}
}

return score;
}
```
2021-09-13 12:05:31 +08:00
回复了 xlsepiphone 创建的主题 程序员 H.264 编码的视频能同时被 mov 和 mp4 进行封装?
ffmpeg
2021-09-09 23:15:23 +08:00
回复了 KageroY 创建的主题 C# VScode 配置 c 语言环境求助
是的,实际工作中很少看到有人用 codeblocks
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2896 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 03:16 · PVG 11:16 · LAX 20:16 · JFK 23:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.