V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guyeu  ›  全部回复第 19 页 / 共 31 页
回复总数  620
1 ... 15  16  17  18  19  20  21  22  23  24 ... 31  
2020-04-02 10:35:40 +08:00
回复了 rizon 创建的主题 程序员 gradle 项目 打包时如何把 git 版本号写入配置文件
写一段 groovy 代码把版本号查出来写到配置文件里。。
2020-04-01 21:26:00 +08:00
回复了 DinoStray 创建的主题 程序员 日志的格式化, 大家有什么最佳实践么
了解一下转义。。
2020-03-31 20:12:45 +08:00
回复了 kkkkkrua 创建的主题 程序员 问个事,你们有用内存数据库做业务逻辑处理的吗?
用 redis 做。。
2020-03-31 18:31:52 +08:00
回复了 jdz 创建的主题 程序员 为什么分布式软件一般都使用心跳包而不适用 tcp 的保活机制呢
1. 默认配置和分布式服务的需求差异比较大;
2. 调优难,往往需要修改操作系统参数,而这会影响一堆服务;
3. 扩展难度大,比如很多分布式服务的心跳包会带数据;
4. 只能检测连接的活性,而无法检测服务的可用性;
5. 处理事件不方便,很多语言的标准库提供的 API 很难用;
6. 没有收益,TCP 自带的保活相比应用层自己实现,没有效率优势;
2020-03-30 22:17:59 +08:00
回复了 amiwrong123 创建的主题 Java 对 HashMap<Integer, String>调用 get(byte 变量) 为何取不到值?
@amiwrong123 #15 你这样写没办法出发自动类型转换(你这个只不过是把 HashMap 自带的 get 方法换了个写法)
2020-03-30 16:31:16 +08:00
回复了 amiwrong123 创建的主题 Java 对 HashMap<Integer, String>调用 get(byte 变量) 为何取不到值?
因为 HashMap.get(Object)接受任意类型的参数,当传入基本数据类型时,会触发自动装箱。

如果你声明一个这样的方法,用来替换 HashMap.get ,就会先触发类型转换,然后触发自动装箱;

```java
static <T> T get(HashMap<?, T> map, int key) {
return map.get(key);
}
```

java 貌似不支持同一个位置既自动类型转换又自动装箱。。
二婚市场?
2020-03-27 11:13:24 +08:00
回复了 noble4cc 创建的主题 Java Java 中并发请求多个接口怎样才能效率最高呢?
@noble4cc #22 是的,线程池在并发量大的情况下不如协程。所以这种情况下会做一些设计,比如把发消息和收消息分开,一个线程池专门发,一个线程池专门处理收消息,也就是 NIO 的思路。。
2020-03-26 16:28:15 +08:00
回复了 noble4cc 创建的主题 Java Java 中并发请求多个接口怎样才能效率最高呢?
CompletableFuture 自带一个线程池,自己写的话可能比协程别扭一点,但是效率差不多
2020-03-26 16:23:43 +08:00
回复了 noble4cc 创建的主题 Java Java 中并发请求多个接口怎样才能效率最高呢?
线程池+CompletableFuture+聚合操作
2020-03-25 10:09:01 +08:00
回复了 javaWeber 创建的主题 Java 请教下 java8 的 Optional。。
@javaWeber #1 如果不知道用什么好,就用 orThrow,抛出异常。
2020-03-25 10:06:58 +08:00
回复了 hheedat 创建的主题 Redis 为什么 Redis 只提供了 RPOPLPUSH 却没有提供 LPOPRPUSH 呢?
有人已经写了一个 pr 。。。
2020-03-23 16:46:04 +08:00
回复了 pinews 创建的主题 程序员 开源的意义和不足,我的一点思考
@pinews #24 给你举几个一旦闭源就会失去生命力的顶级软件例子;

1. java,无论是 jvm,还是基础库,都有甲骨文、谷歌、微软、华为等顶级开发商的卓越贡献,除了开源,没有其他因素能得到这么多公司的贡献,而 java 的类库天然就是开放源代码的,没有开源,就没有现在的 java 生态;
2. Linux,任何人都可以放心使用 Linux,因为每个人都知道 Linux 的代码被无数程序员 review 过无数次,这显然是开源的好处;
3. Chromium 和 AOSP,Chrome 和 Android 的成功离不开这两个开源项目,它们繁荣的插件和扩展生态更是和开源密切相关;

我不想争论开源和闭源的优劣,一个显而易见的事实是闭源更能赚钱,如果说运营的话,只有能赚钱的东西才有运营的价值。看不懂你这个`运营`是指什么,如果是指社区的话,那开源天生就有优势。


"""
说白了,开源就是运营和竞争能力不足,去争取比他们还差的人
"""

这句话暴露了你的无知和自大,开源软件的作者和社区的贡献者,大多数也在商业公司开发闭源软件,他们本人的能力如何可以通过他们提交的代码得窥一二,他们编写的开源软件的社区运营和市场竞争力,显然并不比商业软件稍逊。
2020-03-23 14:10:55 +08:00
回复了 pinews 创建的主题 程序员 开源的意义和不足,我的一点思考
`说白了,开源就是运营和竞争能力不足,去争取比他们还差的人`。。。

这句话完全是错的,鲜有能和顶级开源软件抗衡的同类商业软件。
2020-03-21 16:01:17 +08:00
回复了 amiwrong123 创建的主题 Java NIO 中 检测到 channel 连接断开后的处理方法?
程序退出是因为运行到了终点。。。你可以起一个线程池来处理事件。。
@also24 #33 我回顾了一下我的措辞,我觉得还是比较准确和中肯的。

楼主原话是`改 bug 的方式`,已经发现了有 bug,甚至开始尝试定位,这种情况下断点调试的效率很高。

我从没有说断点调试是优于日志的 debug 方式,只是在改 bug 的时候效率更高。

楼上有很多人认为日志有助于提高系统的可维护性,很大程度上日志有变量监视器和注释的作用,我也并没有否认,我只是说,放弃使用调试器,想要单凭日志来 debug,甚至追求那些所谓的`额外收益`,是一件南辕北辙的事情。

我看到有位仁兄 @ybw 觉得调试要一行一行看,觉得很难定位到一个问题存在的范围,可能代表了某些人的想法。可是能知道在那个地方添加日志,怎么就想不起来在那个地方下断点呢?断点相当于一个运行期间可以随时修改,完整打印所有变量内容甚至堆栈细节的日志,所以说 debugger 的效率比查日志高。

而你所说的,基本上是废话,每个人都知道日志不可或缺,甚至在有些场景是唯一的方案。对代码熟悉的人,可以更精确的下断点,但只看日志就确定问题的人,一定熟悉代码。

查 bug 的常规思路,知道某个地方有 bug,然后开始浏览日志试图定位问题,可能 40%的 bug 就能看出来了。看不到问题,开始复现 bug,剩余 90%以上的 bug 都是可以复现的,对可以复现的 bug 而言,断点调试是效率最高的调试方式了,剩下的 bug,属于疑难杂症,需要结合各种手段。

而你所谓`日志为主的处理思路`,对真正的疑难杂症毫无作用,所谓的`整体性`,是以程序运行的效率为代价的,`更多额外的收益`只是臆想,任何应用广泛的软件设施,对日志的使用都是很克制的。
@ybw #29 真的行,用自己的脑子重新思考一下,结合日志,你可以的。
@ybw #24 另一个事实是,如果程序崩溃了,崩溃点和问题所在点也不见得有日志,因为日志系统是程序的一部分。
@ybw #24 所以没必要一行行停下来啊。。停在你认为可能出问题的代码就行了啊。。。
@ybw #20 事实是,你可以。你总能把问题定位到一个范围,然后在几十行代码里跳转。
1 ... 15  16  17  18  19  20  21  22  23  24 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3600 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 10:59 · PVG 18:59 · LAX 02:59 · JFK 05:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.