1
MyComputer 2023-11-23 13:56:21 +08:00
问问 chat gpt 4.0
|
2
tool2d 2023-11-23 14:36:05 +08:00
感觉挺难的,不同软件项目差异巨大。
因为开发需求不同,别人项目的痛点,对你来说可能并不是。 对我自己来说,能做好模块分层和解耦已经很不错了,代码量一旦堆到某个程度,想做点什么都会复杂化。 |
3
jones2000 2023-11-23 14:40:58 +08:00
来需求, 先跟提需求的业务人员沟通,了解为什么要加这个需求,用户的痛点在哪里, 然后找竞品,看其他家是怎么做的, 然后在开始动手设计。
|
4
sordidclown 2023-11-23 15:00:40 +08:00
取之于 V ,用之于 V:《面向对象分析与设计》
|
5
xuanbg 2023-11-23 15:19:51 +08:00
理不清思路,画思维导图。遇事不决,也能画思维导图。总之,画思维导图就对了。
|
6
sleepm 2023-11-23 15:24:09 +08:00
《大象:Thinking in UML 》 不是特别推荐,因为太多了,而且现在还有函数式编程,面向切片编程,但是感兴趣可以看看
《你的灯亮着吗? : 发现问题的真正所在》 没有捷径,看书,看代码,敲出来,实验,理解 模拟一个需求,拆分,先实现个 MVP 最小可行产品 完善/加功能,优化,继续搭积木 再复盘,理解本质,优化的时候也会思考,哪些可以复用,有哪些实现方式,优缺点是什么 测试,灰度,架构,高可用,链路,那些可以像打怪样的一级一级来 |
7
sleepm 2023-11-23 15:24:36 +08:00
工欲善其事必先利其器
|
8
xloger OP @MyComputer 嗯我问了一下,它的回答是:
《代码大全》:这是一本非常经典的软件开发书籍。从需求分析、设计到编码实现,再到测试和维护,书中都有深入的讨论。书中还强调了代码质量的重要性,给出了很多实用的代码优化技巧。 《重构:改善既有代码的设计》:这本书主要讲解如何通过重构技术改善已有代码的设计,使其更易于理解和维护。书中提供了很多重构的实例,可以帮助你进一步理解和掌握重构技术。 《敏捷软件开发:原则、模式与实践》:这本书从原则和模式两个角度介绍了敏捷软件开发方法。书中讲解了很多设计模式和编程原则,可以帮助你更好地设计和实现代码。 《软技能:代码之外的生存指南》:这本书讲解了很多软件开发之外的知识,包括职业发展、学习方法、人际交往等。这些知识对于提升你的软件开发水平也非常有帮助。 阮一峰的网络日志:阮一峰是国内知名的程序员,他的博客中有很多关于软件开发的文章,包括编程技巧、设计模式、前沿技术等,都非常值得一读。 陈皓的博客:陈皓是 CSDN 的创始人,他的博客中有很多关于软件开发的文章,从软件开发的基本原则到设计模式,再到软件开发的最佳实践,都有涉及。你可以从他的博客中学到很多实用的知识。 这几本书我觉得不太适合我的地方在于: 前两个,我这其实不是代码层面的技巧了,而是靠一些“工程意识”去辅助写代码。而敏捷开发的问题在于,我改变不了整个项目的开发流程,我只能也只打算管好我自己,那这些需要配合的策略不适合我。 那本软技能就是一些面试之类的其他技巧,有点偏了。 |
9
xloger OP @tool2d 是啊,我也觉得很难,不同项目、岗位的差异都是很大的。所以我的思路是学习后取其对我有用的,比如“可监控、可回滚、可灰度”,这里面我身为 Android 客户端开发,是完全没有回滚灰度需求的(靠版本控制而不是代码控制了)。
但是我觉得这种意识对我的平常开发帮助还是很大的。如正文所说,我会在开发时有意识让我的代码是“可回滚”,可以方便地切换新旧逻辑供调试(而不是频繁切换 Git ),“可监控”就是让我有意识地让代码的逻辑完整,比如对一些不可能的逻辑不直接 if xxx return ,而是会加个埋点,如果真的发生不该走的逻辑能及时发现。 模块分层确实是永远的难点,这个我就确实不指望能学到啥就能一劳永逸了,只能靠经验分析,成长。这个我当初看到过一个文章对我的帮助还是挺大的:<https://www.maguangguang.xyz/layered-architecture> @jones2000 嗯是的,这些目前是有的,不过侧重点在产品那边。我司现在的产品他们需求分析做的挺好,竞品对比也很完整,不用我太操心这些。我现在困扰的地方在于需求到代码之间的这个桥梁,如何用更好的工具和文档辅助。 @sordidclown 谢谢,大概扫了一眼,很全面很理论。书应该是好书,我努力看看能不能看下去吧 @xuanbg 我个人(个人观点)一直不太习惯思维导图,因为我感觉思维导图承载的信息量有点小,我个人更习惯 h1 、h2 、h3 这样的一个一个列下来,然后顺着目录看也挺方便。当然我们的思路是一致的,靠工具来辅助自己梳理思路,工具适合自己习惯就行。 |
10
xloger OP @sleepm #6 好的,谢谢,那本 UML 我看了下目录,有部分章节应该对我有帮助,我到时候挑着看看。
《发现问题的真正所在》这本不错,对日常分析问题估计也有帮助,我仔细看看。 是的,您说的这些是实在的锻炼方式,我也在这样努力。然后就感觉自己分析的时候如果没有更优质的经验学习,那往哪个方向就不太明了了。就像我刚毕业那几年自己会琢磨怎么写代码比较好,直到某次阅读了 Effective Java 惊为天人,很多我苦苦思索也不知道哪样更好的东西,它清晰完整地解释出来了。 路肯定是要自己一步一步走的,但有前人的经验肯定能走得更好。 当然,对我来说如果有这么一个理想的能让我受益匪浅的资料是惊喜,没有那我也还是慢慢锻炼总结吧。 |
11
niceyuri 2023-11-23 17:55:44 +08:00 1
强烈安利《 the Object Primer 》,作者 Scott W.Ambler 就是 UML 的发明者。这本书应该能解决你所有疑问。、
|
12
py2ex 2023-11-23 21:21:44 +08:00
"大学学的软件工程早忘了,而且实用度也不高"
翻来翻去你会发现大学大部分讲过的,直接找国外大学软件工程的公开课来看吧 |
13
johnhuangemc2 2023-11-23 21:38:42 +08:00
试试 C4 模式: https://en.wikipedia.org/wiki/C4_model
|
14
LBLK 2023-11-24 01:20:35 +08:00
架构整洁之道 ddd
|
15
xloger OP @niceyuri 好的,我昨晚搜了一下这本书,看着确实很适合。不过完全没啥电子版不能先预览一下,不过我看当当京东有卖,到时候买来看看,但又要考虑凑单好烦...
@py2ex 虽然软件工程的内容我忘得差不多了,但是当初我上课的回忆还在脑海: 教我们各种图怎么画,继承用这种箭头,组合用这种箭头,实现用这种箭头。然后论文这里写啥那里写啥,每个类你要写个表格把属性返回值全列上。 甚至整个流程都是在我写完了代码后对着代码画出来的。我觉得是完全起不到辅助我改善代码质量的作用。 当然,我知道这更可能是我这个辣鸡学校的问题,国外的公开课应该会好一些。但是我个人担心这类又太基础(面向的都是学生),不能针对我的痛点“程序员自身希望能靠学习些工程知识辅助我更好地编写高质量代码”。 相比之下我觉得楼上推荐的那些书籍的部分章节应该会对我有帮助,因为面向的本身就是程序员。 当然也谢谢你的建议,等我先看看那几本书,之后再找点公开课查漏补缺。 @johnhuangemc2 谢谢,目前简单看了一下,似乎对模块拆分之类的很有帮助,我之后仔细了解一下。 @LBLK 谢谢,这确实是一本知名的但是我还没看的书。刚刚瞄了几眼面向对象和函数式相关的阐述,确实很透彻,加深了我对一些做法的理解。比如可变性的隔离和事件溯源。 |