如何提高书写代码(编程)的能力?有无相关教程推荐?或经验分享?

2023-07-12 09:45:38 +08:00
 shinelamla
工作四五年了,最近做一些需求时,老觉得代码无从下手。实现方案是有的,但是如何组织代码,恰如其分地分层,封装,抽象代码这块还是经常纠结。

也看过一些设计模式,但是真正能结合到实际的很少。

看别人需求写的代码,又觉得别人好厉害,分层得当,保留了扩展性,但是如果让我从 0 开始写我是想不到这些的。

所以想请教下各位大佬,大家是怎么提高自己编写代码能力的?是否有相关的书籍 / 教程 / 经验 可以分享呀?

想突破下,不想经常纠结怎样写代码才比较顺畅了...
3896 次点击
所在节点    程序员
37 条回复
KratosOmega
2023-07-12 11:43:35 +08:00
@WngShhng +1
总之还是多学多写吧。
我学生时期练 OJ 题,然后看了一些书,工作后除了自己的业务也会学习一些开源框架。
简单的业务没必要分层啥的,做好抽象与代码复用。稍微复杂一些的业务,可以先根据 [业务分块] 来抽象,比如登录注册业务,可能根据你的需求就可以分成 [验证码] 与 [普通接口请求] 两块。
然后随着业务越来越复杂,也要注意重构,原先的 [小的业务分块] ,可能会越来越大,这时候就需要拆分。
shinelamla
2023-07-12 13:18:48 +08:00
@utfs8889 练也得要知道怎么样写才更合理吧?现在感觉就是需求是能做,但是读起来难受,扩展性也不够
shinelamla
2023-07-12 13:19:44 +08:00
@yule111222 好的我去看看
shinelamla
2023-07-12 13:19:57 +08:00
@air8712 感谢推荐
shinelamla
2023-07-12 13:20:54 +08:00
@FallenTy 只是知道不对劲,但是应该怎么改,我经常就是在纠结这个,不知道怎么改才是好的,无从下手
shinelamla
2023-07-12 13:22:24 +08:00
@veike 低耦合高内聚,这个道理明白。但是要怎么做到信手拈来,「要具备抽象思想,学会如何构建模型」大佬的这些能力是怎么提升的?可否分享下~
blacktail
2023-07-12 14:16:59 +08:00
都是工程能力,就是多写多练。
BinaryDH
2023-07-12 14:26:08 +08:00
- 工程架构
- 学习代码如何合理分文件
- 学习代码如何合理分包
- 学习代码如何合理分工程
- 多利用面向对象的思想,以及一些设计模式作为辅助,做适当的抽象
- 封装
- 继承
- 多态
- 多看看成熟的开源代码
- ...
humpy
2023-07-12 14:47:03 +08:00
说真的,找一个自己会用到的开源项目,不用特别知名的那些,给它贡献代码(自己使用过程中一定会有某些痛点,去实现这些 feature )。

书的话,代码整洁之道是一定要看的。我再另外推荐一本书,UML 和模式应用,我看这本书最大的收获是,知道了各种方法、函数应该放在什么地方。
BreakInto
2023-07-12 14:52:49 +08:00
我觉得初学者很重要的是了解需求,针对需求写需求用例,根据需求分层
yjxjn
2023-07-12 15:31:57 +08:00
1.无从下手原因在于不知道整套业务流如何运行。
2.对于代码的组织,我一般是这么干的。隔几个月再去根据业务知识看看这个代码这么写合理不?效率高不高?是不是可以封装成一个类,一个方法等等,切记,在自己极度确信不会改出 bug 的前提下,再去改代码。。。否则不要动~
3.楼上说看书,其实我觉得不可取,原因在于你都不知道如何下手,按照书中的条条框框,会阻碍你初期编程的。
记住:先跑起来再优化。。
miaotaizi
2023-07-12 16:47:07 +08:00
一个清晰的需求 可以省去你 近千行代码
SharkRazor
2023-07-12 17:28:53 +08:00
review ,一个月后再看一个月前的代码进行重构思考,甚至可以久一点半年,你回头看自己的代码就会感觉当年怎么这么写一坨屎然后就知道怎么写会更好了
shinyruo2020
2023-07-12 22:54:56 +08:00
推荐《重构》和《从重构到模式》
ruoxie
2023-07-13 00:43:38 +08:00
屎山糊的不够多
crazyTanuki
2023-07-13 01:41:12 +08:00
从来不看书籍设计模式,都是通过不断重构自己的代码,根据自己的第一直觉,觉得怎样易维护就怎么写,慢慢把自己的代码技术迭代上去
iorilu
2023-07-13 16:00:07 +08:00
也没啥好方法

无非是多练多写, 这是前提

第二是基于一个项目或产品, 不断优化, 有目的的那种

不要到处造重复轮子, 没意义

你做好一个项目或产品, 可以获得远远造 100 个轮子的价值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/956053

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX