V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yesterdaysun  ›  全部回复第 2 页 / 共 5 页
回复总数  89
1  2  3  4  5  
我稍微尝试代入一下你领导的视角: 你这个设计太没有前瞻性了, 我见过太多"按需求白描"的设计了, 优惠券这种东西我太清楚了, 以后肯定要大改, 为啥不一次性弄好, 我们系统其它地方都是按照一定余量一定灵活度设计的, 你为啥不照着那些来, 这才不是什么"过度设计", 而是有前瞻性的规划, 现在那些人说试验性需求, 过两天立马加大力度要你改, 看你到时候怎么办
我也尝试代入一下你的视角: 产品都说是小需求了, 加两张表足够了, 反正就两张表, 出问题改起来也容易, 字段不多, 没什么复杂的东西, 需求来了改起来轻轻松松, 余量刚刚好, 反正产品也要迭代的, 我这是"敏捷"的做法

以上纯属 YY, 反正我看来大概是沟通问题, 你们并没有一些共识, 你可能看不惯系统其它地方的"过度设计", 这次尝试一下"刚刚好的设计", 然后被领导发现, 就被批了, 那可以就这个机会讨论一下, 到底其他人怎么看待"过度设计", 如果能说服别人最好, 最差也可以知道其他人到底是怎么想的, 是真的碰到过坑, 小心谨慎的做法, 还是纸上谈兵, 夸夸其谈, 这个时候也不必说服对方了, 做你该做的就好了, 可以迫于领导压力, 按她的做, 也可以吸收你觉得好的设计用上, 也可以尝试坚持自己的做法.

我一般不上来把人想的太坏, 先当他是个"理性人", 看看确实有没有一些道理, 当然不排除最坏的情况, 就是领导看你不爽, 如果最终你的结论是这个, 那就只有第 36 计了
2022-12-13 21:56:02 +08:00
回复了 yurong3333333333 创建的主题 程序员 大家在什么业务场景使用对象作为 HashMap 的 key?
有时会用在缓存的 key 上, 比如这个缓存需要一个一个 id 加另一个 id 才是唯一的, 之前可能会要字符串连接之类的, 换成对象就比较好, 不过只是纯感觉, 没有测过两者性能有多大差, 更多是为了类型安全和简单性可读性, 反正有 lombok 或者 record, equals 和 hashcode 都是自动的
2022-07-18 09:44:46 +08:00
回复了 LeeReamond 创建的主题 问与答 请问有什么适合搜索峰值的算法吗?
试试 python 的 peakutils
2022-05-10 00:57:37 +08:00
回复了 anxn 创建的主题 MySQL SELECT COUNT(*) 查询如何优化?
如果总条数不是特别重要, 可以考虑只精确查询特定数量以下的条数, 比如 10000 条, 10000 条之上统一显示 10000 或者提示超过 10000, 之下才精确计算

可以先用 select 1 from t where xxx limit 10000,1 确定是不是超过 1 万条, 超过则 total 直接写 10000
如果没超过再 select count(1) form t where xxx

1 万条可能大了点, 可以换成 1 千条之类的, 应该可以提高一点 count 的速度, 但是效果可能不会很好, 有条件还是上 ES 吧
2022-05-08 00:31:44 +08:00
回复了 ojh 创建的主题 程序员 关于 Java 笨重一说
我觉得相比老的 j2ee, Spring/SpringBoot 已经算轻的了, 虽然离云原生的标准还差了不少, 但是毕竟也是有其他优势的, 就是生态好, 工具 /社区丰富, 也隐藏了一些复杂的底层细节, 所谓"笨重"应该不是首要考虑的问题

此外, Getter/Setter 我觉得是必要的, 如果是真纯数据类型, 已经有 record 类了, 如果要加上一些行为的话, 隐藏在 Getter/Setter 后面是最方便自然的了, 如果只是怕麻烦, 可以用 lombok, 很方便

IService/ServiceImpl 这个应该是如果是接口的话, 底层就会用 JDK 动态代理实现, 如果是有一个 Service 的话, 用的 CGLIB, 据说性能稍微差一点, 反正我的话, 如果接口有多个实现, 就用接口, 如果只是单个实现, 就不要接口

你说一个请求要好几层的话, 这个和接口什么的没有关系, 是设计的问题, 要看你的项目架构怎么设计和定义的了, 一般都得分个请求层 /服务层 /数据层之类的, 如果说 3 层都闲多, 要目你的项目太简单是真不需要, 要么就是还没遇到合在一起遇到的麻烦事.

如果说的是单 Service 层有好几层, 那要看具体情况了, 如果只是单单说是公司规定, 全是模版代码, 我建议如果不能说服老大, 那自己做一个模版代码生成器会方便很多
2022-05-07 10:19:58 +08:00
回复了 luffy 创建的主题 程序员 有点意思的话题: 程序员认知相关
空数组下这个 if (list)也不对吧, 我选择 if (list?.length)

顺便我也说一个应该算得上你说的这种认知问题的:

Java 中很多人说不要 object.equals("test")而要"test".equals(object), 但是我一直觉得后面的写法读起来顺序很怪很反人类, 所以我宁可用 Objects.equals(obj,"test")代替, 但是其他人选择"test".equals(object)
2022-04-26 17:56:23 +08:00
回复了 yesterdaysun 创建的主题 Java 求助 Java 大量任务分布式处理的问题
@git00ll 说的不清楚, 其实是一个长流程, 比如请求一个报告, 但是不会立即返回, 需要等第三方处理好, 才能拿到, 中间就每隔 1-2 分钟去轮询一次看看报告有没有好, 通常都要 10 分钟左右, 关键不是每种任务都是这样的, 如果单为它建一个线程池又感觉有点过了, 想搞个通用的解法

上面的我都研究了一下, 我这个系统比较简单, 本身就是个单体, 并不是分布式的, 这次也只是想要把这个后台任务独立出去搞多机并行, 感觉我这个还不到动用 akka/协程之类的方案的地步, 应该还是简单点, 一个简单的调度系统加动态线程池就足够了, 美团开源的那个动态线程池看上去比较适合, 我先研究一下试试看
2021-10-22 14:35:08 +08:00
回复了 komorebi12138 创建的主题 程序员 请教以下 JavaWeb 后端学习路线
外包也没啥, 做个 1-2 年再跳甲方就好了, 来得及, 关键是要抓住机会学习打基础, 借助项目, 学习框架基础, spring mysql 可以好好学学, 这些是很难替代的, 其他框架都有很多替代品, 学习项目中会用就好了, 还得学一点编程基础技术, 语言无关的, 比如单元测试 /设计模式 /测试驱动 /领域驱动 /算法 /数据结构 /重构, 不要像我遇到的一个小伙子, 做了几年了, 写个求最大值的都能写错. 其他人说的微服务, 分布式啥的如果项目有用到, 就学学, 没用到靠自学比较难领悟, 基础打好了在向上爬这些技术, 你是大数据出生的, 还可以积极一点把学到的用到项目上, 说不定做出成绩来, 地位上升, 就能接触更多的重要的功能模块, 项目经验可是跳槽时被看中的最大的影响因素了

此外如果你对当前的行业领域比较感兴趣, 还可以多了解一点行业领域的业务知识, 将来跳槽的公司如果也是相关行业的话, 也是很大的加分项
2021-04-25 15:20:36 +08:00
回复了 yesterdaysun 创建的主题 Java 请教一个 Spring 的 RequestMapping 的问题
2021-03-12 10:31:17 +08:00
回复了 sdushn 创建的主题 Python 是否有合适的 Python 库实现一组采样数据的尖峰检测呢
之前用过 peakutils
2021-03-01 15:50:33 +08:00
回复了 yesterdaysun 创建的主题 Java 请问一般简单的线上服务自动重启的最佳实践是怎样的?
又搜了一圈, 发现这个帖子里面说的 Docker Healthcheck 可能是我想要的东西
https://stackoverflow.com/questions/57515333/how-to-do-health-check-of-a-spring-boot-applications-which-is-running-in-docker

或者又查到 K8S 里面也有类似的机制, 也许搞个单机的也行, 不过就像上面一位大哥说的, 还是要先排查问题, 已经在研究 Arthas 了.
2021-03-01 13:12:59 +08:00
回复了 yesterdaysun 创建的主题 Java 请问一般简单的线上服务自动重启的最佳实践是怎样的?
@NoahNye @xcc880 @theOneMe 如果我理解的没错, 这种守护进程型的东西必须是服务进程退出才会生效, 但是现在很多时候是服务挂起, 就是进程还在但是 request 无响应, 这种情况应该没用吧

倒是 @tianshiyeben 说的监控系统有点像, 但是这和 SpringBootAdmin 差不多, 也只是做到了告警, 但是无法自动操作重启应用啊? 有这样的东西吗?
2020-08-13 10:43:32 +08:00
回复了 BenWang 创建的主题 程序员 [编程问题] 如何给 所有子类的 同个父类属性 赋值。
难道不是吧 ref 去掉就可以了? RequestBase 本来就是引用类型的对象
2020-06-11 10:51:21 +08:00
回复了 ob 创建的主题 分享创造 分享个 JetBrains 家的工具集插件 Toolset
@ob 平时习惯用 MacbookPro 15 寸开发, 不用大显示器...

顺便说一下我的看法, 没有这个插件的时候, 我使用工具就是在浏览器常驻打开一两个工具页面, 要用的时候直接切换过去, 或者用 alfred wokflow, 所以快捷性方面感觉这个插件并没有提升多少, 但是因为这个插件长期缩在下面, 而且我是小屏幕, 所以感觉反而不如网页之类的宽敞.

但是这个插件确实看到了一些之前想要但是又没有现成的集成的好用的工具网站, 确实是有价值的, 比如 cron,httpserver 之类的, 之前都没有找到顺手好用的, 确实不错, 加油
2020-06-11 10:24:57 +08:00
回复了 ob 创建的主题 分享创造 分享个 JetBrains 家的工具集插件 Toolset
@ob 重启了好了, 但是好像菜单 tab 显示有点问题, ![image.png]( https://i.loli.net/2020/06/11/Cl3kyQ46rFdBsUf.png)
2020-06-11 09:36:36 +08:00
回复了 ob 创建的主题 分享创造 分享个 JetBrains 家的工具集插件 Toolset
看插件介绍有个 30 天试用, 但是安装了还是说需要授权?
分子
2020-05-07 10:56:56 +08:00
回复了 lukeshawn 创建的主题 问与答 关于闭包的一个面试题, 这是为什么啊
因为最开始穿进去的 0, 作为 n, 在 a.fun 的调用中, 又被传到外面的 fun 作为 o 了
2020-05-05 22:53:52 +08:00
回复了 mitu9527 创建的主题 程序员 对于重构有几个疑问,希望能过来人能解答一下!
我的理解就是重构是需要反复刻意练习的, 就是有的时候对着一段代码刻意的练习怎么重构的更好, 练多了, 平时自然而然就能用上, 忘了是哪本书提到的概念了, 代码的坏味道 code smell, 当你能意识到一些坏味道的时候, 如果之前有练过相应的重构方法, 自然就能用上.

具体的话还是用 IDE 现成的重构工具, 比如 IDEA 的全套工具, 基本上改名, 提取方法之类的最常用, 其他的多少也会用到, 但是全用到也不太现实.

但是上面有人提到的测试也很重要, 能保证重构的时候即使步子大一点, 也能确保功能没有被破坏掉.

可以找一些讲 TDD 的资料看看, 那里重构应该用的挺多的, 但是可以先不管 TDD, 那个确实还是有点难的
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   776 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 21:07 · PVG 05:07 · LAX 14:07 · JFK 17:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.