如何练习有逻辑的写代码?

最近学js,每次写代码实现某个功能,都是写一步想一步,比如说想到用某个变量在在前面添加一个变量,写完以后哪里有问题在删删改改,最后虽然能实现,但是我自己看着都觉得恶心,我想问一下是不是都这么过来的,或者我就不是这块料?应该怎么练习?每次写之前先构思好?但是不先写点东西我就构思不下去。还是说先打个草稿?

阅读 15.3k
11 个回答

我觉得编程就相当于学习一门“类自然语言”,有无逻辑取决于你的思考方式,当然,代码逻辑还和你对这门语言的认知有关系 —— 大部分清空下你都找到的原生的实现方法,熟读手册不如熟查手册。
对于思路,我个人的做法是:

  • 学习阶段多写多想,逐步巩固,短期熟练;

  • 实战阶段多想少写,深思熟虑,构思缜密,不断实践;

  • 学会把抽象的东西具象化思考 - 如下图;

  • 简化思路,编程世界里没有太复杂的东西,即便是很复杂的算也都不过是一个公式就可以解决的问题,所以,不要被结果难倒了,你就反推着去拆分,一直拆分到最小单元,例如游戏,看着一个场景很复杂,实际他就是一个平面上各个点在动 —— 只不过这个点可以切换显示为 点 或 RP。

把抽象的东西具象化思考

设计模式很重要,不说熟知,最起码要懂得一些常见的模式案例,这样你写代码或读代码都能很轻松,甚至当你解决一门新的语言也能很快上手 —— 跑不出最基本的架构原则!

SF 里有不少同学在描述问题的时候语言都是混乱的,其实他就是思考问题的方式有问题,语言表述混乱导致其写代码也是混乱的 —— 当然这个也取决于入门这个阶段,所谓姿势不正确,上梁不正下梁歪!——没有贬低谁的意思,只是觉得要想思路清晰,最起码要有一个清晰的表述能力,我写代码的时候是会边嘟囔边写,代码就像是从嘴里出来的,只是让自己有个清晰度思路,旁若无人,一吐为快。
另外,我个人的编码原则是:

  • 尽量不用简写名称,任何一门语言都是,练习的时候也是,不懂的词汇查字典;

  • 使用正确的语法,例如:HTML 单标签不省略, <input>错、<input />对,再例如一些逻辑语句,严格按照官方的结构,少简写,不省略,尤其是 switch和复杂的运算;

  • 注释齐全,编译器可以帮我去除大部分的注释,所以,源码尽量写注释;

  • 归类索引,项目目录、文件命名、类名、方法名、属性名以及图片名都尽量不简写,尽量使其易于索引(A-Z0-9排序)、易于查找(如:.app-header-*.app-body-*)、易于维护(如:变量-逻辑-结果的上下文关系),可以参考《现代汉语词典》,它一开始是索引(变量),然后是正文(方法、逻辑),最后有附录快查(结果);

  • 大部分情况下使用单引号;

  • 大部分情况下逻辑快之间空行,方法块之间空格,根据实际情况,不省略结束符;

有人称编码为禅道,虽有装X的嫌疑,但最起码,大部程序员还是任何整洁代码的,当然,符合规范的代码编译器也会觉得无压力!

建议可以去学学设计模式 design-pattern,很多设计模式懂了以后,才能让你更好的敲。
还有就是多看看优秀的框架实现原理,为什么。新手到大神都是从读代码开始。

1.想清楚要实现什么
2.尽量把有可能需要的参数都提前封装定义好
3.多看看优秀项目的源码,看别人怎么封装调用的
4.多练就好了,,,没什么是不是这块料,首先能实现功能,然后再优化,吸取经验,提升。

加油,祝好。

这里建议多学习一下设计模式,推荐几个逻辑性强的:组合模式,适配器模式,命令模式。
分享一个设计模式的博客:http://blog.csdn.net/lovelion...
相信你理解了这些设计模式,并且可以自己写出来,运用到你的项目当中的话,你应该是一个能写出逻辑性很强的代码的人了。

我想问一下是不是都这么过来的,

不是。

或者我就不是这块料?

不一定。

应该怎么练习?

多写。

每次写之前先构思好?

不一定,自下而上,自上而下都是一种可行的方式,根据场景不同适用性不同。

但是不先写点东西我就构思不下去。还是说先打个草稿?

基础太差,先补课吧。

都是这样的,写多了,就熟练了

唯手熟尔

你可以照着一些小程序画流程图。多画几次。

写代码需要悟性,写多了就有逻辑了,需要不断锻炼突破,才会慢慢成长

结合自己体会:
1.多看别人的优秀代码,在github上有很多优秀的代码。
2.在写代码之前理清思路,然后在动手。
3.写代码的时候跟着数据走,记住数据类型的变化。
4.多写

新手上路,请多包涵

写久了就好了,其实是很多“模式”还没吃到骨子里去。
刚开始的时候,要练套路,规范你的代码,防止你跑偏。
不过,练拳不练功,到老一场空。工作三四年,筋骨打熬好了,就该学习内功了。程序员的内功是什么?数据结构,算法。
内力深厚了,江湖地位也提升了,却也厌倦了江湖厮杀,想过点平静的生活。这时候,也不在意什么模式不模式了,草木竹石皆可为剑。
此时你早已见心明性,不需要谁给你指出道路了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进