写代码的时候没有思路 不知道如何写起,请教如何培养训练编程思路 谢谢!

2019-06-19 15:57:53 +08:00
 Frank2
13784 次点击
所在节点    程序员
135 条回复
ahao99
2019-06-20 09:39:30 +08:00
看了你的回复我明白点了,你这不叫没有编程思路。
是你抽象概括能力不行,国外面试有个步骤叫 System design 就是像购物车这样的需求怎么做一个好的系统
来对这样一个需求进行很好的抽象。这种能力需要经验的积累,和相关业务能力有关。
什么叫没有编程思路呢?比如说你去做 leetcode 上的题目做不出来,这个叫没有编程思路。
不能混淆,不同的能力有不同的提高方式。
no1xsyzy
2019-06-20 09:43:32 +08:00
@Frank2 #19 依我拙见,和思维能力无关,只是你慌了,需要提高的是自信而不是能力。
顺便,UML 是个好工具。
Frank2
2019-06-20 09:44:34 +08:00
@ahao99 抽象概括能力还可以,主要是做项目开发实现具体的功能的时候没有思路 想法 ,如果有编程思路 代码实现起来就不难了
notreami
2019-06-20 10:03:22 +08:00
@Frank2 说白了,就是先把思路写出来,再写代码。
不管是做算法,还是项目功能。是不是有已知条件、有边界、有目标。然后你的思路是不是有先后条件,需要先做到什么,然后再做到什么,最后才能得到想要的结果。每一个做到,是不是有实现的方式,就这样一步步列出来,思绪是不是清晰。写代码的思路是不是有了?
darknoll
2019-06-20 10:08:24 +08:00
其实大部分人都是复制粘贴的
charlie21
2019-06-20 10:10:55 +08:00
尝试直接写 SDK,想着:写好之后卖出去,作为某个通用问题的通用解决方案,比如 aspnetboilerplate.com 等各种 web 框架
这样你会去从 API designer 的角度去考虑,而不是从 API caller 的角度去考虑

然后,深刻理解 “依赖注入” 这一设计模式,大量现代 web 框架不约而同地选择了 “依赖注入”,不是没有原因的。
https://juejin.im/post/5c4e86fe6fb9a049dc02a1b1

-
charlie21
2019-06-20 10:13:59 +08:00
关于 “依赖注入” 在代码组织解耦方面的优越性
juejin.im/post/5c4e86fe6fb9a049dc02a1b1
www.jianshu.com/p/cb0693dd8d2e
Doragd
2019-06-20 10:19:18 +08:00
曾经我也问过类似的问题。。。最后发现,就“多刷,多思考”
charlie21
2019-06-20 10:29:49 +08:00
typo -> 关于 “依赖注入” 在 ( 静态类型 强类型编程语言 ) 代码组织解耦方面的优越性
7gugu
2019-06-20 10:31:42 +08:00
先写点好玩的吧
Frank2
2019-06-20 10:32:54 +08:00
@notreami 嗯,实现功能的话首先要想明白实现的原理,然后再琢磨代码实现的思路 化繁为简 有一个问题 假如你遇到一个功能模块开发 一般思路是怎么想的,之前我经常看别人的代码 明白他们代码的思路,但是自己实际遇到开发功能的时候就没有思路了 主要是卡在实现这个功能的原理这儿了 了解实现原理后不是才能有实现思路么
glfpes
2019-06-20 11:19:40 +08:00
感觉把握几个原则就好:
1,尽量想想能否减少 IO,可以引入本地缓存
2,业务要尽量抽象,把能复用的逻辑尽可能抽出来,确保 1 个工程里不出现相同的代码。
3,最好维护几个内部或是自己的工具类集合,多次使用也多次优化,越来越健壮。
4,边界要划清,微服务挺好,自己负责自己的服务,服务间就走 rpc
5,服务的降级得准备好,任何依赖都是可能出问题的。虽然有监控,但是尽量给自己多点时间。

感觉能够应付绝大多数问题了。。。复杂度很高的目前也没接触过
FrankHB
2019-06-20 11:45:06 +08:00
@zephyru 设计模式跟你说的没关系。
硬说有关系,就是挤不出代码瞎凑工作量的干活。
securityCoding
2019-06-20 11:51:06 +08:00
说明你还没琢磨清楚需求
Frank2
2019-06-20 12:04:25 +08:00
@securityCoding 需求是肯定明白,主要是代码实现的思路不清晰,不知道从哪方面入手
Him
2019-06-20 12:07:50 +08:00
张嘴问
动眼看
用手写
动脑想
SuperMild
2019-06-20 12:17:23 +08:00
@Frank2 其实你可以随便从任何一个点入手,比如你上面说的

1.商品管理, 2.商品目录管理, 3.商品类型管理, 4.品牌管理, 5.商品评论管理

其中很明显不能从 5.商品评论管理 开始,剩下的 1234 可以随便抓住一个开始写,过程中发现需要别的项配合,就转去写需要配合的部分。

简单来说,就是先看成一堆不关联的散件,缺哪个做哪个,慢慢的思路就会清晰起来。
Frank2
2019-06-20 12:48:12 +08:00
@SuperMild 嗯嗯,项目上当您遇到某个功能点开发时,是如何想到这个思路的呢?怎么样才能有一个编程思路,我写程序时,总是没有思路,看别人的代码写的思路没有任何问题,自己实现起来比较难
xuanbg
2019-06-20 13:06:28 +08:00
画思维导图,把要做什么一层层分解下去就知道怎么做了。
Frank2
2019-06-20 13:32:15 +08:00
@xuanbg 思维导图和编程代码思路怎么样联系起来呢?每次写代码实现某个功能,都是写一步想一步,比如说想到用某个变量在在前面添加一个变量,写完以后哪里有问题在删删改改,最后虽然能实现,但是我自己看着都觉得恶心,想问一下大家是不是都这么过来的

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

https://tanronggui.xyz/t/575511

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

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

© 2021 V2EX