V2EX sicauxeon 的所有回复 第 1 页 / 共 1 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    sicauxeon    全部回复第 1 页 / 共 1 页
回复总数  14
2020-03-21 00:20:10 +08:00
回复了 1oNflow 创建的主题 程序员 什么样的代码是 maintainable 的?
仔细维护的注释、有意义的方法和变量名、SOLID 六大原则、单测覆盖、控制抽象层次使得代码像文章那样结构严谨层次分明。

语言特定的话,最好 team 里大家都遵守同一份 best practice,例如阿里巴巴 Java 开发手册中那样的规约

Bob 大叔的《代码整洁之道》和 Martin Fowler 的《重构》是非常不错的参考
2020-03-20 21:32:38 +08:00
回复了 oushile 创建的主题 问与答 本科计科专业大三杭州实习自己租房值得吗
先准备春招,拿到靠谱的实习 offer。尽量去比较知名的互联网大厂吧,相比于租房耗费你的学习成长的价值更大,而且这些公司的实习薪资一般 cover 租房吃饭费用没什么问题。
2020-03-20 21:27:38 +08:00
回复了 razios 创建的主题 Apple PDD 买东西还是慎重吧...
在 PDD 百亿补贴上买过 bose 降噪耳机、iPhone 11 还没翻车过。
2020-03-20 21:24:03 +08:00
回复了 LudwigWS 创建的主题 Java 重名方法怎么命名?
方法名和参数表都一样的情况下,而且不打算重构。那么可以方法名加个 V2 后缀,当然这绝对不是最优的解决办法,但是比添加时间后缀要好。

更加强烈的建议是,为你新的方法取一个更加有意义且自解释的名字。
不会写很多,理想的情况下你所写的代码应该是自解释的。

控制代码的抽象层次,通过重构将代码整理成像文章那样顺畅的形式。可以参考《代码整洁之道》一书中对注释的建议。
2020-03-20 00:16:31 +08:00
回复了 ybw 创建的主题 程序员 对程序员这个工作的感想
本来想举个例子的,但是你说 “95%” 和 “绝大多数” 感觉又无法说明问题。

就我这边观察到的话,开发们对自己的代码应该有认真的态度和好的品味,当然这也需要一些像 code review 这样的过程建立起来,通过提升代码可测性和增加单测用例来控制千行代码 bug 率。经常线上遇到的问题,光看所用到框架的文档和教程是不够的。真实线上的流量和复杂的服务间依赖关系,排查问题可能要依次去定位到某个实例的锁争用、缓存系统、DB、任务调度等,而这又需要向下展开逐步定位到更细的位置。

某个服务告警了,排查出是上游服务的抖动带来多个下游服务的告警,继续排查是因为某个实例 CPU 占用率不规则跳动,问题可能需要深入到虚拟机 GC 算法。。。so on and so on
2020-03-19 23:51:34 +08:00
回复了 dycc2010 创建的主题 程序员 Java 要懂的东西太多了,面试复习感受到了绝望!
尝试把自己所学到的知识,整理成有条理的层次结构,可以用像 Xmind 这样的思维导图软件。

对于 Java 服务端开发来说,除了基本的 JVM 和代码技巧、CS 基础知识外,重点看看一些业务上必须要用到的框架,以及他们的使用场景和实现原理。
2020-03-19 21:06:49 +08:00
回复了 ybw 创建的主题 程序员 对程序员这个工作的感想
“整个职业生涯不会有一次和算法、数学打交道的机会”

作为程序员照理应该去熟悉所使用的技术和框架,特别是当遇到问题和异常时,如果理解不足那问题就会很棘手。同时在解决一个问题或是实现一个功能的时候,有多个路径可以选择,那么这个时候怎么选择也是需要精细化的分析在里面的。那在这个过程中,我理解的熟练掌握经典算法应该是基础中的基础。

“至于设计整体架构什么的,更多的是直觉或经验,而非智商”

错把软件架构模式当成了一门手艺。

“数学和算法”和“细心”,“直觉或经验”和“智商”,这两者所相对照的概念,并不在一个层次上。所以讨论 要 A 而不是 B,或更多的 A,而非 B,并没有太多的意义。
经典的 C10K 问题。但是看你具体的使用场景,如果不行的话,就负载均衡做吧。
MIT 6.824 B 站搬运课程 https://www.bilibili.com/video/av87684880
比较大的工程除了项目本身实现上的困难外,也需要关注建模的难点。

首先,实现上需要注重代码质量,有没有 code review,项目是否接入单测,单测的质量,ci、cd 等基础设施。

项目的领域模型是否科学合理,这是架构师层面关注的。

互联网产品关注业务的数据,业务产生的数据如何高效接入内部的大数据平台,供数据分析和运营同学使用。是否接入了监控中心,服务是否有完善的告警及时通知到开发。

估计项目的流量,以及未来的增长,评估机器的开销。是否已经有在使用的缓存、消息队列、存储、LB 等资源,机房可供扩容的机器数量。这里可以对服务压测,监控整条链路上机器的水位,服务的平响。

然后你列举的代码注释、日志、异常处理看看其他公司的 best practice,比如阿里的那份。
2020-02-15 14:08:33 +08:00
回复了 Geekerstar 创建的主题 Java SpringBoot 项目多模块拆分的问题
使用一个启动类完全可以,你启动时把相应的 Java bean 都加载进来即可
2020-02-15 14:01:11 +08:00
回复了 Geekerstar 创建的主题 Java SpringBoot 项目多模块拆分的问题
一般我们在代码层面上是拆分成 core、facade、repository、api、common、util 等这几个包,通过 gradle 或者 maven 等工具管理项目的生命周期。不要试图按照业务来拆分代码到多个模块上,你的核心领域模型应该放在一个模块中。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4287 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 28ms UTC 01:00 PVG 09:00 LAX 18:00 JFK 21:00
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86