pysjp :
1、其实随着软件行业的发展,我们为了加快开发速度,是少不了使用一些IDE开发环境,关于楼主的疑问,我个人觉得没有什么,其实在现在,很多知识只需要 去检索,根本不需要去记忆,有时候,知道怎么做比知道具体的细节更重要,很多开发语言都会给我们提供SDK的帮助文档,一定程度上,并不是我们不知道这些 接口,而是不知道在什么情况下该如何合理的使用这些接口,这才是需要我们花更多的时间去学习的东西,而不是花在去记忆这些接口名称上面。
2、在代码大全或者好多编程书籍中,都提到不要再使用匈牙利命名法,这个命名办法已经过时了,而且也不容易记住。
关于编程习惯问题:
我个人比较忌讳的有以下几点:
1、到处复制和粘贴代码,以提高开发速度,这个做法其实在一定程度上并没有提供速度,反而把我们陷入改原有代码的泥潭中。最好手动去编写代码。
2、通过数据直接通信,尤其在C或者C++中,为了简单起见,定义很多全局变量或者静态变量来保存各种数据状态和数据本身,在各种接口间共享这些变量,我们应该尽量避免用数据通信,而是通过接口本身通信。
3、定义自以为足够的buf来保存的数据,我们总喜欢使用一个常量来直接给出一个缓存区的大小,而不考虑是否有溢出或者过剩的情况。
4、没有良好的设计就直接开始编码,这个也是我们最常见的问题,遇到一个实际问题时,稍加思考就直接开始编码,没有考虑在整个设计中架构和逻辑,其实个人觉得,编码只是软件开发中很小的一部分,而系统的设计和接口的设计甚至是数据结构的设计才是最重要的组成部分
5、没有重视安全编码,在C或者C++中,我们经常会使用一些C库中的字符串处理函数,比如strcpy/strcmp/sprintf...这些不安全 的函数,微软多次提到系统的许多安全漏洞都是由使用了这些非安全函数造成的,我们应该尽量使用CRT的安全API,尽管有时候我们确定它不会导致缓存溢 出。
以上属于个人观点,欢迎拍砖补充
yuanhong2910:
程序员八荣八耻:
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以出错不报为耻。
以局部变量为荣,以全局变量为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以定义常量为荣,以魔法数字为耻。
以总结思考为荣,以不求甚解为耻。
weichen2005:
“代码重用”历来就是YY的代名词:在“代码重用”上耗费的时间和精力,往往
远大于自己去“重新发明轮子”
“多态应用”在c++界早期被看做一种拙劣的OO方式,和垃圾差不多,如果你用c/c++
那么应该记住其精髓肯定不是OO
“单元测试”被滥用后往往使你找不着北(软件的总体功能要么被忽略要么被钉死)
更重要的问题是:大家对软件质量形成一个一致和可行的方法,对什么应该去测,
什么应该合理避开形成一种习惯