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

2019-06-19 15:57:53 +08:00
 Frank2
13787 次点击
所在节点    程序员
135 条回复
rdonly
2019-06-20 13:47:36 +08:00
明确需求
SuperMild
2019-06-20 13:55:48 +08:00
@Frank2 说了半天,你这是设计模式的问题啊。这个只能重构啊。比如网页前端 js 各种库和框架百花齐放,不断推陈出新,这里很多人鄙视前端说太多新花样去解决老问题,其实就是解决你说的问题。

那些库和框架搞来搞去,最核心的要解决的就是让代码更合理地组织起来。建议可以多看各种库的官方文档,不是学用,而是注意看它们究竟想解决什么问题、如何解决。
Frank2
2019-06-20 14:03:44 +08:00
@SuperMild 设计模式算属于一种编程思想,之前读过 jquery 源码,设计思想很好,现在主要是代码思路的问题,比如当开发一个功能点的时候无从下手,没有自己的编程思路,以前经常模仿别人的代码去改,但不是自己的思路 怎样培养锻炼自己的编程思路呢 遇到开发问题的时候有一个大体的解决思路。
xuanbg
2019-06-20 14:11:20 +08:00
@Frank2 很简单呀,譬如我们要做一个用户模块,可以先分为“用户管理”和“用户登录”两个部分。

然后用户管理下面又可以分为新增、编辑、删除、列表查询、用户详情、绑定手机号、解绑手机号等等功能;用户登录下面有根据用户账号、手机号查询用户、生成 token、刷新 token、销毁 token、验证 token 等等功能。

然后每个功能下面又可以分下去入参要哪些,返回什么数据,处理什么业务等等。。。
qq1004108488
2019-06-20 14:14:42 +08:00
@Frank2 建议去慕课网买一两个实战的课程学习,首先说明,我不是推销的。里面课程里的老师,都是大公司的大佬,项目偏向于实战而不是讲原理讲架构,代码风格有自己的东西,每次我看他们的代码,都觉得很优美,这种优美不是那种觉得很高深的优美,是那种你改几个参数名,封装几个类就能感受到的优美。你跟着做一个项目就有感触,你不想花钱,可以看那些实战课程老师出的免费课,就能感受到他们的编码风格。
Frank2
2019-06-20 14:16:05 +08:00
@xuanbg 这应该是业务逻辑,具体开发的时候代码实现思路怎么想到的呢?有什么具体培养锻炼编程思路的方法啥的么?之前总是借鉴别人的代码 但终归是别人的代码实现思路
BCy66drFCvk1Ou87
2019-06-20 14:17:22 +08:00
ctrl c ctrl v,又不是不能用(逃
xuanbg
2019-06-20 14:20:48 +08:00
@Frank2 你先把这个思维导图画出来,对于要做的事情有了全面认知,自然就有编码的思路了。
qq1004108488
2019-06-20 14:20:51 +08:00
@Frank2 你的问题在于,写的项目太一般,写的项目也太少。甚至一直在写垃圾代码垃圾项目。
github 上面的项目虽然不错,但是不太适合你,因为这些项目你只看到了别人的结果,但是看不到别人的过程。
你跟着课程做几个项目,必须跟着写,而不是只看。你就会慢慢的知道过程应该是怎么样的了。我一开始都是跟着慕课网上面的老师一行一行的敲,一行一行的注释。后面慢慢就有了自己的风格。慢慢的,现在基本在公司,我写出来的代码,改动基本为零。随手就知道哪里该封装。
等你有了自己的风格,你再看 github 上面的项目,就会有了对比,才能很快思考出彼此的优缺点。不然你现在看 github 上面的项目,除了看,也就只能看了。很难吸收到有用的东西,或者说吸收的很慢。
Frank2
2019-06-20 14:38:25 +08:00
@qq1004108488 之前看过不少视频教程,听的很明白 老师讲的思路也很清晰 但是自己实际项目开发中遇到功能点开发没有自己独立的编程思路 不知道第一步 第二步先写哪里 后写哪些 思路不是很清晰 经常会漏掉某一点 想的不是很全面,有什么好的方法推荐么?培养锻炼自己的编程思路
@qq1004108488
Frank2
2019-06-20 14:47:19 +08:00
@qq1004108488 谢谢你的建议 有几个问题想请教一下 就是当时你在慕课网上面看代码编程视频教程的时候 老师讲解的时候一般都是他们自己实现的项目思路 自己听的时候应该很清楚 你是怎样形成了自己的思路的呢 当时就是一步一步跟着教程里面的代码学着写 但是在实际工作里面如果遇到比较难的功能点的时候 自己是怎么去分析解决的 代码思路当时是如果想到的哈 我之前看过一些视频教程 问题就在于听的很清楚明白 如果转化成自己的思路不知怎么入手
Frank2
2019-06-20 15:10:40 +08:00
@xuanbg 恩 画思维导图之前应该想明白要实现的原理 在实际项目中遇到相关功能点开发的时候经常卡在 知道需求 脑子里面没有大体的实现思路 之前参考别人的实现方法和思路解决过问题 形成不了自己的思路
kevin1852
2019-06-20 15:21:38 +08:00
多看看别人的代码,有时间回头看看自己之前写的烂代码,想想人家为什么这么做,自己当时为什么这么做,有没有优化的空间,用户量大了如何优化,并发高了如何优化,业务流程是否合理。
总之多思考,时间会给你答案
xuanbg
2019-06-20 15:44:09 +08:00
@Frank2 无论做什么事情,都应该勤于思考。但人跟人不一样,有的人在脑子里面就能把一件事情的相关的方方面面都梳理得一清二楚,有的人想半天也想不明白,与其说在思考问题,倒不如说是在胡思乱想。怎么破?其实很简单,就是不要胡思乱想,要抓住头绪,一点点地去梳理,多花点时间,总能弄得一清二楚。思维导图的作用,就是帮助你抓住那个头绪,然后一点点分解、一点点地把相关的事物关联进来,并且理顺它们之间的关系,最终做到用图来准确地描述事物,让你看到这个图就能清晰地、正确地理解认知事物。

所以不要想太多,先上手画图才是正经。等你想明白做什么、怎么做后,再写代码就不会不知道怎么写了。哪怕经验少不会写,也能知道该百度什么东西,该 copy 什么代码来实现你的需求。
encro
2019-06-20 16:04:16 +08:00
适合 80%场景的 MVC 模式:
1,设计原型或者前端 HTML,确定需求( View )
2,定义 Model (数据库设计,模型字段)
3,编写 Controller (实现 MV 交互,同时完善 MV )
encro
2019-06-20 16:10:45 +08:00
关于以上的说明:
View:不一定要用原型工具,可以在草稿上手绘出来
Model:先只定义字段
Controller:先根据 View 分解 Action,然后根据 Action 里面先用注释实现伪代码,然后根据注释填空代码
Test:人工测试,自动化测试,外部测试
Tool:学习掌握一些高效率的框架( Yii,django,bootstrap,springboot,ror 等等),自己编写一些工具,写 Blog 记录和备忘
jzmws
2019-06-20 16:19:05 +08:00
@Frank2 我一般喜欢用笔直直接画 ,这样的效率最高
Frank2
2019-06-20 16:19:30 +08:00
@xuanbg 恩 思维导图的作用是梳理知识点和功能点 我们部门的产品经理经常用它画产品功能和产品设计 具体到写代码实现功能上 可以举几个例子么 实现思路 怎么通过画图表示出来 之前尝试过在纸上用大白话文字的形式写步骤 具体到功能点代码开发 就不知道从何下手了 先写哪个功能点 后写哪一个 编程过程中的思路不是很清晰 导致后面修修补补很多
Frank2
2019-06-20 16:23:34 +08:00
@jzmws 是用笔直接在纸上画代码的实现原理还是步骤呢 比如咱要实现一个功能 比如转盘抽奖功能 首先要明白实现的原理 其次在想实现的思路 如果不清楚原理 直接上代码写 没有思路 经常就是卡在这 不知道如何才能建立起代码编程实现思路来
Frank2
2019-06-20 17:10:11 +08:00
@qianji201712 请教一下写一个程序的整体思路是什么样的? 看别人写的程序基本都能看明白,但自己写的时候,思路有点混乱,不知道先写什么,后写什么!逻辑前后联系在写程序之前,好多都考虑不到。

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

https://tanronggui.xyz/t/575511

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

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

© 2021 V2EX