1
Quest 2011-09-10 22:32:09 +08:00
选择你喜欢的,而不是听别人的。当然我觉得coding使用纯粹的编辑器而不是IDE让获得了更多乐趣和自由。
|
2
Mr_Vangogh OP @Quest 不是,我是比较困惑文本编译器那些怎么调试,怎么追踪代码。并不是要选择什么:)
|
3
vayn 2011-09-10 22:34:11 +08:00
关于如何使用编辑器调试已经有太多的文章了,Google is your best friend, ever
|
4
kaichen 2011-09-10 22:54:55 +08:00
debug的话可以用gdb或者print,看过<coders at work>的话,你会发现大牛们几乎都用print。
|
5
webgeekman 2011-09-10 23:00:37 +08:00
@kaichen 能否详细说一下?
|
6
kaichen 2011-09-11 00:06:14 +08:00
|
7
roamlog 2011-09-11 00:44:10 +08:00
关于调试,我写 ruby 或 rails,从来不调试,都是写测试代码。。。
|
8
chloerei 2011-09-11 02:38:47 +08:00
能行,因为大型程序不是靠人去调试的,而是机器自动调试的,生成调试逻辑的代码就叫做测试代码。
|
9
Mr_Vangogh OP @chloerei 就是说在程序中加一些log一样的东西,然后分析log文件来找到代码中的问题?那追踪代码呢?比如一个地方用到了一个函数,然后你需要找到这个函数的定义,不能直接跳过去,万一文件多了怎么找呢?
|
10
reaky 2011-09-11 09:09:59 +08:00 via Android
不是有tag文件嘛
|
11
holmesabc 2011-09-11 09:50:52 +08:00
其实也应该 看你写什么吧。
文本编辑器感觉写脚本,网页很不错。 如果要写java之类的,估计会把人玩死。 调试方面,我还没有看见周围的人怎么去调(主要是python,偶尔会有ruby),他们都是用的print类似的东西测试,看输出。 断点,单步什么的,都没看他们用过,据说要用的话也是用eclipse去下断。 这也主要是这些脚本语言测试起来方便,特别是web,写好了,F5一下就可以看到效果。 |
12
bhuztez 2011-09-11 10:09:21 +08:00
到底有多少会是大型程序
|
13
lanisle 2011-09-11 10:18:20 +08:00
这真的是个人喜好,不同的工作场景用不同的工具。工具是提高效率的得力助手,但不要被工具套牢啦~
|
14
qiao 2011-09-11 10:58:34 +08:00
@Mr_Vangogh 一般写 C 或 C++ 程序都会使用 ctags,然后给 vim 装上 c.vim 插件,之后便可以非常方便的在函数内跳转。此外还有 tagbar 等插件用于显示函数列表。所以你的这个问题完全不必担心。
|
15
Mr_Vangogh OP @qiao 嗯,我明白啦:)
|
16
chloerei 2011-09-11 13:33:45 +08:00
@holmesabc 对测试还有误解,自动测试跟log是完全不同的。自动测试是写一套代码,去检测程序代码的逻辑。测试的地位在国内还是被低估的,推荐这本书 http://book.douban.com/subject/1230036/ 测试驱动开发(中文版)
不过如何调试跟是否用IDE其实是两个话题,编辑器可以用命令行工具调试,IDE可以写自动测试。到最后决定性的还是看个人喜欢用单独的工具还是喜欢IDE打包。 除了一个例外:Java,整个社区就是假设工作在IDE下的。 “这里的语法设计是不是繁琐了点?” “没事,他们有IDE,让IDE的人写个代码生成工具” “XML不好读不好写啊” “没事,他们有IDE,让IDE的人写个图形编辑工具” 结果出来的东西没有IDE根本玩不转。我的选择是远离这些东西。 |
17
Droog 2011-09-11 13:51:59 +08:00
原来也在这上面纠结过。
感觉那种强烈推荐vim以及其他一些文本编辑器做IDE,是一种误区(当然VIM已经不能算作一个简单意义的文本编辑器了),常常也会有筒子举例,大牛们只用VIM,或者其他的编辑器,但,这里有几个大牛呢。 “君子善假于物”,既然有方便的IDE,能提高效率,何乐而不为呢。 至于所谓的,什么没有了IDE就吃不开,这个根本就不用担心。难道有公司说,IDE是禁止使用的,那不是天方夜谭吗。 |
18
args 2011-09-11 14:16:00 +08:00
这个真的是个人喜好问题。我用vim的原因就是方便简单,不用去理会其他编辑器那繁多的配置和复杂的操作,而这个可能恰恰是别人不用vim的原因。
至于调试追踪,或许随着自己经验的增加会趋向于使用更简单的方式来完成,比如我刚入门写c程序的时候极喜好用gdb,但后来发现有时即使使用gdb一个简单的if中赋值的bug也会让我调试一天的时间。而现在大多靠经验和打印定位bug,以至于gdb的那些命令都全忘了。 |
19
oldman 2011-09-11 16:05:04 +08:00
我觉得这一方面是个人喜好问题,另一方面也是解决问题的思路问题。
一般情况下你有可视化的调试器(比如说vs调试器)时,遇到问题的第一反应就是“咦,怎么会这样呢,我调试下看看”。于是就开了调试器,打上断点,跑一下。 这样的话就是往往你会一头扎到实现里去,只见树木不见森林。其实应该先静下心来想想这样为啥会出问题,为啥出了这个问题我只是靠分析一点结果都拿不到(而一定要靠调试),如果需要调试的话再来调试,同时思考一下这种情况以后是不是可以不通过调试来解决。 还有ide的问题,我觉得用vim和vs(原谅我,windows开发,没办法)最大的区别就是vim写代码让我思路更清晰(因为没有一堆的提示打扰),但是相反,如果我今天就想让它给个提示的时候,它有些时候提供的就不全了。反正各有利弊吧,看自己把握了。 |
20
chuck911 2011-09-11 23:11:38 +08:00
不方便测试的程序不是好程序
项目越是大型,越要注意松耦合、面向接口,也就是方便测试 虽然我不是先写测试再写程序,但也深受TDD的思路影响 |
21
rebolomo 2011-10-25 11:36:44 +08:00
|
22
WarWithinMe 2011-10-25 11:53:51 +08:00
Vim和其他文本编辑器的初衷都只是用来编辑文本,所以IDE肯定是需要的。
个人比较喜欢在VS下面安装一个VsVim的插件。Vim的基本功能有了,IDE也可以有了。 |
23
bl0ck 2011-10-25 17:00:31 +08:00
要看做什么平台了,ruby/python这种解释性的语言,确实没必要IDE,如果是java平台,cocoa平台的话,IDE还是有必要的
|
24
AngusLiony 2011-10-25 17:11:23 +08:00
= = 表示一直用这些东西,除非必要非要用IDE,例如apple的开发者xcode基本是必备的吧。
|
25
ultragtx 2011-10-25 18:44:38 +08:00
有官配ide的肯定用ide啊
|
26
tsuibin 2011-10-26 19:53:37 +08:00
VIM配好了很好用的,可以设置很多快捷键,可以很方便的查文档,也有代码提示等;
调试用GDB,IDE的调试只不过是给GDB加了个UI界面。 |
27
rebolomo 2011-11-17 19:31:12 +08:00
|
28
Ricepig 2011-11-17 20:15:27 +08:00
其实IDE比VI,Emacs这些编辑器的优势除了调试之外,工程组织方面也是不可忽视啊,另外,还有代码提示和代码完成,这个还是很不错,可以减轻很多记忆负担。
再另外,所谓VIM配置好了~~~Emacs配置好了~~~这些莫要再提了,举个例子:搞定javascript的缩进和高亮,诸位可以列出“可用”的配置吗?据我所知,配置极其麻烦... 最后,莫提神马ctags。请问,我如果新增加了几个类文件,ctags要进行怎样的操作才能识别呢?也莫提什么IDE调试只是给GDB加了个UI界面,请问哪个VIM或者Emacs的GDB调试能够看到模版容器里的内容? |
29
RainFlying 2011-11-17 20:32:07 +08:00
为什么不行?在全屏幕编辑器出来之前程序员用的可是行编辑器,那是怎样的概念?你用用 ed 就知道了。
|
30
poshboytl 2011-11-18 01:44:13 +08:00
everybody loves GDB....
|
31
poshboytl 2011-11-18 01:47:29 +08:00
@roamlog 这是两回事.... 写了测试就不用调试了? TDD, BDD 通常是覆盖你预期(或者叫需求)的情况... 往往需要调试的时候是你遇到了非预期的情况...
|
32
hq5261984 2011-11-18 01:48:33 +08:00
notepad++有调试插件。
|