1
myrual 2011-02-09 09:32:42 +08:00
编程9年了,我觉得自己还是没啥编程思想。
面向对象的编程思想不懂,设计模式不懂。 目前仅仅坚持一下几个原则: 先做一个简陋的,然后慢慢丰富。 先用笨方法实现,然后用高科技重构一下。 随着丰富的过程,不断的把代码按着业务逻辑分成模块。 不断的重新回头看代码,然后把不好的地方修改掉。 |
3
roamlog 2011-02-09 09:57:08 +08:00 via iPod
我觉得个人的编程思想还是比较难形成的,大部分人只是掌握了一些编程方法或叫编程理论,oop、设计模式、重构和测试驱动开发等等都是前人总结的方法或理论而已,无需太过纠结于此
|
4
dreampuf 2011-02-22 13:44:13 +08:00
编程思想能否理解为"编程经验".只有有了经验,慢慢得才会形成思想.
|
5
imstand 2011-02-22 13:48:10 +08:00
两个视角,从硬件看代码,从需求看代码。让信息流在你眼里透明。
|
6
zhouhua97 2011-02-22 15:33:56 +08:00
你朋友的思想不知道是什么思想,但是觉得不管什么思想还是要从实践中来。
|
7
zhaiduo 2011-02-22 15:34:12 +08:00
感觉编程思想应该是经验的总结吧,很多新手一开始就去学设计模式,这个不太合适啦。
|
8
WarWithinMe 2011-03-01 12:33:47 +08:00
@dreampuf 同意。。。思想从经验来。。@zhaiduo 个人觉得设计模式更在于实践,大摇大摆的说自己懂设计模式的人,其实是说他能背出其中内容,未必就能灵活应用到实际的问题中。
|
9
welling 2011-03-11 19:31:24 +08:00
我的理解是,复用复用,再复用.
|
10
momo5269 2011-03-18 05:55:12 +08:00
我觉得编程思想是通过长时间接触和大量实际运用得到的经验,而这些经验能够告诉你编程语言作为“语言”的本质是什么,可以用来干什么。不同的语言是不同的思维模式,编程语言也一样:是不同的表达方式和解决问题的办法。
不过我不是程序员,你可以无视我的话。 |
11
obiwong 2011-03-20 01:39:57 +08:00
我想你朋友的意思是建议你不要去钻语言的奇淫技巧,比如C语言的「c+++++c+++c++值是多少」诸如此类问题,而多去关注解决问题之道,比如「清晰胜于机巧」、「策略同机制分离」等。
不过我认为「语言自身层面」和「编程思想」谁更重要是个见仁见智的问题,两者并不具备可比性:谁能证明出乘法和加法哪个更重要呢。不管哪方面,能做到极致就是大师。 「语言自身层面」是指的是某一种语言的的特性,上面举的c+++++c+++c++例子比较极端。不那么极端的例子是C++的机巧or取巧模版元编程或者是perl那如诗般or晦涩的代码: C++: template<unsigned n> struct factorial { static const unsigned value = n * factorial < n-1 > ::value; }; template<> struct factorial<0> { static const unsigned value = 1; }; int main() { std::cout << factorial<6>::value << "\n"; return 0; } perl: #!/usr/bin/perl APPEAL: listen (please, please); open yourself, wide; join (you, me), connect (us,together), tell me. do something if distressed; @dawn, dance; @evening, sing; read (books,$poems,stories) until peaceful; study if able; write me if-you-please; sort your feelings, reset goals, seek (friends, family, anyone); do*not*die (like this) if sin abounds; keys (hidden), open (locks, doors), tell secrets; do not, I-beg-you, close them, yet. accept (yourself, changes), bind (grief, despair); require truth, goodness if-you-will, each moment; select (always), length(of-days) # listen (a perl poem) # Sharon Hopkins # rev. June 19, 1995 |
12
ray58750034 2011-03-20 02:57:09 +08:00
思想是自己的事情; 重构和设计是团队的事情。
如果只是编程思想,那就是自己对写代码的积累和认识, 我觉得只要是从学习阶段转为了创造阶段的程序员都是有思想的,只不过有的人想的更深一点而已。 你朋友和 @obiwong 说的对,千万不要局限在语言本身。 就我个人感受而言,最重要的还是需求理解,然后是解决问题的手段,最后才是实现技巧。 而语言只是实现技巧的细节。 |
13
morganjaw 2011-03-20 08:02:46 +08:00
将个性融入代码,将技术变为艺术,其他只是一些技巧而已
|
14
elfkid 2011-04-02 13:09:47 +08:00
我觉得还是要往底层挖掘..深入到机器语言,然后再深入到硬件层,要是有物理基础可以深入到微观粒子层(当然这个可以只限于思想实验)。最后再一步步递归上来形成的一样类似代码的东西一定很有趣。
|
16
Kid 2011-04-02 13:49:14 +08:00
道可道,非常道。編程思想若能寫下來,自然也就成書了。
至於怎麼獲得這項“技能”,@elfkid 的觀點很有趣,我也強烈建議能夠從上到下的瞭解一下基本原理,下到布爾邏輯和門電路應該就差不多了。 |
17
mxfli 2011-04-08 00:18:25 +08:00
踏踏实实写代码吧。思想在代码和语言之中,又在语言和代码之外。反者,道之动,弱者,道之用。
|
18
dbfox 2011-04-17 16:42:12 +08:00
呃,我写代码 2 年了,也不知道啥是 面向对象,比如写javascript
我总是喜欢 用 function $(_id){ return document.getElementById(_id)} 但是有时候会和 其他的 js 框架 冲突,如 和prototype 冲突 这个时候,我就只有 使用 $G 来标识,很烦 |
19
soulhacker 2011-04-17 17:54:04 +08:00
思想比较难说,一般提的较多的是编程范式(paradiagm),也有叫范型或者模式的,比如:imperative、functional、dynamic、meta-programming、declarative、parallelism 等等,每种 paradigm 都是针对某些问题的一种思考和经验汇集,作为编程者需要不断实践,并且在实践中去了解和熟悉这些 paradigm(当然未必需要全都了解)。我觉得这是最接近“编程思想”这个词儿的东西。
|