V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  TommyLemon  ›  全部回复第 18 页 / 共 34 页
回复总数  669
1 ... 14  15  16  17  18  19  20  21  22  23 ... 34  
2018-12-13 16:03:48 +08:00
回复了 bluesky139 创建的主题 Linux Makefile 编译编到一半死机,继续编是否安全?
先备份数据,最好再拷到其它磁盘或外接存储。
如果还不放心,可以再备份系统。
然后关机重启、清除缓存重试。
2018-12-12 15:10:38 +08:00
回复了 CUMTProgrammer 创建的主题 程序员 有什么好的方法在 SQL 里面生成一段时间吗?
一堆语言一个 for 循环就搞定的事情非得放 SQL 里做?
如果说配置运行环境麻烦,写一个 html 里面 script 标签嵌入 js 代码用 log 输出日期,
然后浏览器打开去控制台复制结果就行了
2018-12-09 22:55:51 +08:00
回复了 poorcai 创建的主题 问与答 那些非 CRUDers 每天的工作是什么?
@janus77 @mmixxia @izoabr
自动化 CRUD
https://github.com/TommyLemon/APIJSON

自动化接口回归测试(机器学习),自动静态检查,自动生成文档与注释
https://github.com/TommyLemon/APIJSONAuto
2018-12-06 22:01:45 +08:00
回复了 jerrry 创建的主题 程序员 如何优雅的 Rename 后台接口字段,供前端项目使用
@jerrry 还是得像上面说的那样做,只不过从 Client/Browser 转移到了 Server
2018-12-05 10:43:52 +08:00
回复了 jerrry 创建的主题 程序员 如何优雅的 Rename 后台接口字段,供前端项目使用
@jerrry
除非领导明确表示能承担重构的风险,否则原来的代码就不要改了,
稳定第一,难看但能很好地工作的代码 好过 优雅但有重大问题的代码。
后面写的接口可以规范起来。
2018-12-04 17:40:01 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@TommyLemon 不过这些不能算 bug 了,只能算功能缺失,而且都在后续更新中加入了
2018-12-04 16:51:11 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@nutting 毕竟内部实现有改动很正常,还有 JDK 8 及以下是不能通过反射拿到成员变量的名称的,
@ApiModelProperty(value="id" ,required=true)
private Integer id;
所以 Swagger 等注解里面还得手写名称等,其实本身就已经声明了变量名为 id。JDK 9 还是 10 已经加入了。
JDK 7 比 6 在多了一个 getAnnotation(Class<T> c) , 之前只能 getAnnotations() 拿到所有注解再过滤。
2018-12-04 16:44:59 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@zjp 是这样,所以才会导致 bug
2018-12-04 16:44:03 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@Kaiv2 因为写博客时已经无法复现了,所以 Exception 也记错了,确实应该是 ClassCastException,不过也不排除 get 里面抛的是其它的,毕竟代码也找不到了,唉。
工作压力大,平时还有开源库要维护,所以平均两个月才能写一篇,今天刚发一篇
发现 JDK 的 3 个 bug
https://www.v2ex.com/t/514093#reply2

首先保证是原创,有自己独立思考的地方,然后注意下排版,最后挑选合适的平台、时间点来发布。
发了后分析了阅读量、收藏量、访问来源等,然后总结并针对性优化。

开源中国最适合 Android 和 Java ;掘金与 V2EX 最适合前端与 Android ;博客园最适合 C#和 Java ;简书最适合前端和 Android,但已经废了。
内容、排版等可以参考我在开源中国的博客
https://my.oschina.net/tommylemon
2018-12-04 15:30:16 +08:00
回复了 jerrry 创建的主题 程序员 如何优雅的 Rename 后台接口字段,供前端项目使用
业务多种多样,各种字段本来就不统一,几乎没法抽象,最多配置一个规则表,就是你说的 Map<原字段,替换字段>,
但是同一个名称的字段在不同接口里的意义很可能不一样,又得根据接口(Map<URL, Map<原字段,替换字段>>)或者模型来区分(Map<ModelName, Map<原字段,替换字段>>)

所以这个在前端做是代价高收益小,本来就是后端的问题,应该让后端解决。
要么后端自己改过来,要么用更好的工具,例如 APIJSON。
为什么要用 APIJSON ?前后端 10 大痛点解析 里面第 2 点:各种奇葩的缩写、混乱的命名
github.com/TommyLemon/APIJSON/wiki/
2018-12-04 15:23:04 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
最后一个用例写错了
```java
Integer i = list == null || list.isEmpty() ? null : list.get(0); //Exception cannot cast String to Integer
```
应该改为
```java
Integer i = list == null || list.isEmpty() ? null : list.get(1); //Exception cannot cast String to Integer
```
基于角色的自动化权限管理,了解下
juejin.im/post/5b13cda1f265da6e4a6bcfee
2018-12-04 15:17:07 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@27 以上所有用例都是简化版本,实际业务代码里都不是这么直接的写出 null 值的,而是 变量 /方法返回值 等,
例如
```java
int quantity= response == null ? 0 : response.getInteger("quantity");
```
getInteger 返回 null 就会导致问题 2,fastjson 可以用 getIntValue 来避免.

另外改用 Integer 只能保证在这里是不会出错,但很多时候我们需要把变量传到其它方法里,例如
```java
public static String formatNumber(int num) {
//把 12345678 转换为 12,345,678
}


Integer quantity= response == null ? 0 : response.getInteger("quantity"); // getInteger return null
String text = formatNumber(quantity); //抛异常 NullPointerException
```

Java 的隐式类型转换是一定要谨慎使用的,调用方法也要注意看参数类型和返回值类型。
2018-12-04 15:07:17 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@sorra
1.代码注释里有提到:
“如果在注解内的位置不是最前的,会导致被注解的类在其它类中 import 报错。”
其它情况就不报错,运行时在注解里拿到的值始终是空数组,但是非注解的地方拿到的值又是正常的(例如打印)。
都是同一个 1.8 版本的 jar 编译的

2.发博客前测试时会有报错的,具体看 #2 楼我的回复。

3.都没任何提示,运行直接抛异常。

以上 bug 都是在我个人的设备上发现的,具体的设备信息、环境信息等,只能等回去再看看。
2018-12-04 11:19:03 +08:00
回复了 TommyLemon 创建的主题 Java 发现 JDK 的 3 个 bug
@Kaiv2
我当时的环境下,就是能正常编译通过,并且只在运行到 get 时崩溃。
后面写博客时,自己再试已经无法复现,所以就在文中加了备注:
“注:后面多次测试,已无法复现。”
但是可能部分其它开发者的环境下也会有这种问题,所以还是发出来更好。

源码是 Object 类型,泛型本来就是用 Object 存,编译时静态检查,通过后擦除泛型,然后取出时强转,你看看原理以及 ArrayList 的代码就知道了。
当时导致这个 bug 的原因是 ArrayList 构造函数是
```java
public ArrayList(Collection<?> c) { //还是 Collection<? extends Object> 来着,记不清了,但肯定是两者中的一个
...
}
```
后面我再次测试,以及在 Android SDK 中看到的都是
```java
public ArrayList(Collection<? extends E> c) {
...
}
```
然后就标记错误,无法编译通过了。
2018-11-30 15:25:32 +08:00
回复了 TommyLemon 创建的主题 Android Android 快速开发框架 ZBLibrary 19.0 发布, Star 数已达 3K
@ForkGagHub 这种纯粹发泄情绪的评论居然还有 5 个赞?
2018-11-30 11:31:27 +08:00
回复了 TommyLemon 创建的主题 Android Android 快速开发框架 ZBLibrary 19.0 发布, Star 数已达 3K
@Blanke 主要还是 XML 内字符转义的问题,
Vue 支持 raw string,在 HTML 里 if,show 等标签里插入 userId && userId > 0 等判断不用转义,
DataBinding 写 XML 就得 userId &amp;&amp; userId &gt; 0,写法繁琐,还不方便阅读
2018-11-30 11:20:11 +08:00
回复了 TommyLemon 创建的主题 Android Android 快速开发框架 ZBLibrary 19.0 发布, Star 数已达 3K
@siyehua 是的,其实主要还是因为 XML 限制以及实现的问题,像 Vue 在 HTML 标签里内嵌一些判断等代码就很好用
2018-11-30 10:38:53 +08:00
回复了 TommyLemon 创建的主题 Android Android 快速开发框架 ZBLibrary 19.0 发布, Star 数已达 3K
@tanranran DataBinding 的 XML 里面转义字符,以及 bug 难调试等问题确实很烦
1 ... 14  15  16  17  18  19  20  21  22  23 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3126 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 10:59 · PVG 18:59 · LAX 03:59 · JFK 06:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.