首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员应该写文档吗?

80% 的文档都是无效的,所以多数情况下,程序员都不用写文档,原因如下: 多数文档都是代码的点缀或者静态的记录已经实现的代码,懂代码的开发人员会直接看代码,不懂代码的开发人员压根不会看。...服务代码常变而文档基本很少更新,程序员经常在屎上雕花,却很少有程序员帮助别人更新文档。究其原因代码是要运行的,文档不用运行,错了也没人关心。所以文档和代码牛头不对马嘴经常是喜闻乐见的事情。...一个完全成熟的架构,你拿过来写一篇文档,美其名曰:架构设计文档,你觉着有什么意义上吗?当然有些传统软件公司可以用这个来忽悠老板和甲方爸爸。...你可能觉着我在胡说八道,不写文档,你的代码以后怎么维护,谁看得懂? 写了就看得懂了?确定还用维护?就当今这个软件的就业形势,招一个人都想劈成 3 半用,正常功能都完不成,写的好么?写了用来误导别人?...现在很多编程语言大多支持代码中的注释自动生成文档,如果能坚持更新注释内容不失为一个生成文档的好方法,对于初学者有一定帮助;但如果你把注释当成代码的一种补充和辅助,那就是耍小机灵了,代码都说不清楚的事,你觉着注释可以吗?

44230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    优秀的程序员真的不写注释吗?

    我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我们程序员同行。...在我看来,Java 源码的作者绝对是这个世界上最优秀的程序员,连他们都写注释,那些声称“请停止写注释”的号召者是不是要啪啪啪地打脸,直到打肿为止。 ?...我可能属于记忆力不好的那一种,隔个十天半个月,再去回头看那些我自己敲的代码,有时候真有点见着陌生人的感觉:“这代码是我写的吗?怎么有点面生啊?” 大部分人写的代码都要升级重构,对吧?...即便是你的代码已经优雅到不需要注释,那只是在你的层面上。对于你的同事,你代码后来的负责者,就不一定了。...总之一点,注释并不会妨碍你写出优雅简洁的代码,它只是程序固有的一部分而已。 ------------------

    65010

    用C#写的CGM解析程序

    由于cgm格式设计得较早,虽然许多理念很不错,设计的图形元素复杂,但还是有一些先天不足,其中最大的问题是对中文的支持,再就是支持多种版本(V1到V4),并且还可以定制,称为profile,而一些公司出于成本的考虑...,通常只支持V1或V2,一些复杂的元素就不再考虑了。...所以自己用C#编程来解析CGM也是一个可能的任务了。 看到许多刚刚参加工作的学生很快就会遇到此类问题,估计也要动手尝试自己解析CGM格式,这里把一些主要思路介绍一下。...可以从网上借鉴的一些相关源代码有: (1)cgmviewer-1.00-java.rar,一个人用JAVA的Applet写的浏览cgm的小程序,功能很弱 (2)ralcgm.rar 这个源代码内容很多很全...,但确实不容易看懂,也不容易移植 (3)胜利油田的一个朋友在工作站上用c语言写的读写cgm的程序,代码较乱,注释也很少,可以输出cgm (4)Larson的CGMLibrary,1998 larson公司做的一个开放源码的

    1.4K70

    用 C++ 和 Java 写算法,有差别吗?

    所以在本文里,我非常详细的讲述了用 Java 或 C++ 写算法时候的优劣势,你可以参考一下来判断自己喜欢用哪种语言写算法。...另一个需要注意的是 long 类型,C++ 的 long 是不可移植类型,在不同的系统上其长度不一样,可能是 32 位,也可能是 64 位,所以 C++ 程序员应尽量避免使用 long。...也有一些半吊子 C++ 程序员会在 C++ 代码中混用 C 语言的 printf() 打印输出信息。...为了适应它的这个小个性,C++ 程序员通常会在后面跟一个 get,将结束符读出并丢弃掉,所以代码看起来有点怪怪的: ? 理解了这一点,看懂 C++ 代码也就不难了。...以 Bucket 类为例,构造函数第二个参数默认值是 0,即在构造 Bucket 对象时,可以只确定一个参数 capicity,也可以在确定 capicity 参数的同时,确定 Bucket 的水量,比如

    2.4K10

    只看Java视频资料能成为Java程序员吗

    不说别的在培训视频的绝对量上,Java几乎占据了半壁江山,很多刚接触Java的同学直接从网上搜到一些教程视频,然后制定好计划开始了Java的学习,开始对着视频学非常有意思,但是慢慢的学到一半,发现离了视频就不知道怎么写代码了...写一些很常见的程序也是别别扭扭的才弄出来,全然没了看Java视频的那种自信满满的感觉。 俗话说磨刀不误砍柴工,无论学习什么语言,都还是要讲究一些技巧,那么如何学Java?...首先,确定学习Java的决心,万事开头难,其实对于编程来说,开头并不是那么难,因为开始学习编程的同学基本上都有兴趣点,有一腔热血挺过入门问题不大,学习编程只靠一腔热血还是不够的,贵在坚持,很多人都是倒在坚持的路上...看别人的代码一个学习风格,还主要学习为什么这么去做,因为一旦写代码就涉及到内存和性能的问题,这两块在大型的项目中,公司一般都设置性能组专门追踪解决项目里面的代码写的不好的小伙伴。...想当一个合格的Java程序员,就按上述要求去规范自己。

    56670

    写算法,用 C++ 还是用 Java ,差别大吗?

    因为这篇文章非常详细的讲述了用两门语言在写算法时候的优劣势,非常值得一读。 如果你刚好在学习算法,那么文末也贴心的为你准备了王晓华的算法课程,算法真的很好玩! 全文大约3000字。...字符串 很多 C++ 程序员喜欢的用 char* 或 char 类型的数组存储字符串,这其实是 C 语言用户带过来的习惯,我给出的 C++ 算法实现对字符串一般都用 std::string,对应 Java...也有一些半吊子 C++ 程序员会在 C++ 代码中混用 C 语言的 printf() 打印输出信息。...为了适应它的这个小个性,C++ 程序员通常会在后面跟一个 get,将结束符读出并丢弃掉,所以代码看起来有点怪怪的: ? 理解了这一点,看懂 C++ 代码也就不难了。...以 Bucket 类为例,构造函数第二个参数默认值是 0,即在构造 Bucket 对象时,可以只确定一个参数 capicity,也可以在确定 capicity 参数的同时,确定 Bucket 的水量,比如

    2.8K20

    在S3C2440烧写程序

    ---- 以JZ2440开发板为例,烧录程序到S3C2440。可以使用dnw软件进行烧录。在windows下,一般dnw的驱动都装不好,一般需要禁止数字签名才能装好。...再次输入: nand erase 0 80000 擦除0x80000字节大小,为准备下载的程序腾出空间 再次输入: nand write 30000000 0 80000 这是把刚刚下载的bin文件复制到...当然,如果想烧到Nor Flash上,也是可以的: tftp 30000000 xxx.bin 其中,30000000为SDRAM 的起始地址,先把程序放到SDRAM 。...30000000 fs_mini_mdev.yaffs2 nand erase.part rootfs;nand write.yaffs 30000000 260000 889bc0 还可以使用nfs烧写程序...cp.b 30000000 0 80000//把程序复制到NOR的0地址上,复制0x80000个字节 当然,也可以用我们熟悉的J-link下载,不过J-link只能下载到Nor Flash上 需要在

    1.1K20

    在Linux上用Eclipse写C++程序

    我厂很多同学使用VC在windows上编写linux的C/C++程序,然后再传的开发服务器上,然后再编译和调试。如果有修改,可能会直接用vi去改了,然后再把源代码同步回来。其实这样做挺折腾的。...也有大神全盘vim设置emacs写,想来也是极好的。 但是,也有另外一个方案,就是在 Linux上安装个写C/C++程序的IDE,这样可以直接编写、编译、运行、上传SVN,非常方便。...但是一般共享文件夹的权限是vboxsf,而你的登录帐号没权限看,每次都要sudo很麻烦,所以不如把自己加入到那个组中:sudo adduser yourname vboxsf,然后重启一下虚拟机就生效了...注意Eclipse有很多个包,如果只写C/C++程序,就直接下Eclipse CDT这个套件好了,省了还要下支持JAVA开发的东西。 ?...对于写服务端代码的同学来说,绝对值得尝试!

    3.4K70

    写操作系统只能用汇编和 C 语言吗?

    因为目前所有的语言的开发环境里,C语言能做到编译成不依赖操作系统的形式二进制代码,C语言的各种脱离系统的库最丰富,最完整,C语言用来开发操作系统的工具最多。...如果有人使用Pascal实现了Pascal标准库里的大部分功能,并且都不依赖于操作系统,那么用这个环境就可以用来开发Pascal写的操作系统。...商用操作系统用C语言开发是因为工具齐全开发成本低,仅此而已。 JNode[2],一个用Java写的操作系统。 这个世界上有很多闲人,他们一直在做着各种稀奇古怪的事情,就包括用各种语言开发操作系统。...最后我再补充一下:一个语言的第一个版本肯定是用别的语言写的,但以后的版本就不一定了。这像是一个先有鸡还是先有蛋的问题,但实际不是。...举个例子吧:C语言的最早的编译器肯定不是C写的,但用最早的编译器环境里的C语言是可以做出更复杂的编译器的,更复杂的编译器再做出支持更复杂语法的C,不停的迭代就可以了。

    1.6K20

    最美的C语言程序流体,你会做吗?

    最美的C语言 流体 阅读须知 1 编译器:vs 2 图形库插件 3 四肢健全者 4代码段 全局变量 代码段 主要函数 主函数 mian函数 效果 初学者一个建议: 想好好学C语言,尽量不要单一的只是看书...在学习时,一定要理解的核心是,通过学习C语言来理解编程的思想,一种思路。这些东西不仅仅只是在编程时会用到的。 学习本来就是一个融会贯通的过程。...教你三步简单快速掌握C语言! 首先,有一本入门书,看懂原理和程序分析。 推荐《C Pramer Plus》,简称CPP。 其次,最重要的是敲代码。照着书上或者网上的例程,一个标点符号都不要错。...最后,和志同道合的小伙伴一起学习;与高手交流;在你能够自己解决问题之前,程序遇到错误时有师兄师姐能给你一些指导。

    67900

    main函数真的是C程序的开始吗?

    我们在学习和编写C程序时,都是从main函数开始,main函数作为入口函数已经深深地印在我们的脑海中,那么main函数真的是C程序的入口函数吗?带着这个问题我们先来看下面一段代码。 1....实验程序 示例代码 #include #include static void __attribute__ ((constructor)) beforeMain...怎么和我们刚开始学习C程序时说的不一样呢?从运行结果中,我们可以看出来beforeMain是在进入main函数之前被调用的,这对于C语言的初学者来说似乎有点难以理解。...而最终的可执行文件除了我们编写的这个简单的C代码以外,还有大量的C库文件参与了链接,并包含在了最终的可执行文件中。这个链接的过程,是由链接器ld的链接脚本来决定的。...\n"); return 0; } 总结 C程序中__attribute__ ((constructor))和__attribute__ ((destructor))类似于C++类中构造函数和析构函数

    53610

    论程序的成长—— 你写的代码有生命力吗?

    做了五年多的程序员了,回过头来看了看以前发的一些帖子,颇有一番感想。...这是在和一个网友的交谈中感觉到的。...他一开始访问数据库也是用的自己写的方法(函数),和我的思路也基本差不多,但是当他遇到SQLHelp 后感觉自己写的没有SQLHelp 好,于是就放弃了自己的代码,转而使用SQLHelp 了。...比如在写乙项目的时候,要实现一个功能,这个功能已经在甲项目中很好地实现了,那么您会怎么做呢? 1、把甲项目里的对应的代码copy过来,然后改一改,OK。...3、可以很方便的修改,只替换一个DLL,甲项目就升级了。 如果能做到第三种情况该多好哇! 这样收益就是双向的,甲的优点可以让乙受益,反过来这个优点在乙中得到了提升之后又可以让甲也受益。

    62560

    互联网公司可以只靠一个程序员来运转吗?

    在互联网公司混过几年,倒是遇见过几个产品经理围绕着一个程序员做产品的事情,而且这位技术同事住的地方距离公司有单趟坐地铁需要将近两个小时,开始还能坚持着去做应付这些功能,后来就坚持不住了就辞职了,互联网公司很多产品技术开发人员相对不多...,但并不代表着靠几个技术人员的就可以搞定一切了,更何况只是靠一个程序员就能搞定一切了,即使只是开发一个简单的应用,也不是一个人的事情,现在的app也不是只是做客户端一个方向,还需要有后端的支持,这也是不是一个人能做的事情...技术部门,会根据产品的大致功能进行框架搭建,然后又技术主管分解功能模块到具体的研发人员 测试部门,不要小瞧这个部门,因为现在产品机型非常多,需要测试人员在有限的条件下进行各个功能的测试,确保发布出去的版本能稳定使用...主要互联网公司主要开支就在人员上,在产品方向框架明确的情况下,在编码领域流传着这么一句话,万事俱备只差一个程序员了,也证明程序员在互联网公司的占比,但仅仅一个人是远远不够的,但互联网在创业初期人手相对来讲数量都不大...,但互联网的加班也是有目共睹,经常过年休假期间都需要有人值守,特别是运维人员,虽然互联网工资高,基本上也是加班加点换回来的,相对来讲在互联网公司的程序员付出更多一些。

    68020

    【编程基础】C语言从源程序到可执行程序

    二.文本信息到可执行程序 不论是.c, .cpp 还是.h文件,所有的这些我们称之为程序的东西都是文本信息。他们都无法被计算机认识。...计算机只认识0和1.所以要让计算机执行我们用文本信息表示的程序,必须将这些文本信息表示的程序翻译成计算机认识的01代码串。...预处理过程会把所有包含的头文件的具体内容插入到指定位置,并把所有的宏展开。...gcc下,用 gcc helloworld.c -o helloworld.o -c 可以得到汇编后的用01指令集表示的信息文件,我们称之为可重定位的目标文件。...2.虚拟地址空间 32-bit的CPU,虚拟地址空间范围从0到0xffffffff线性增长。我们在程序中操作内存时使用的是虚拟地址。操作系统负责将虚拟地址映射到物理地址空间。

    1.2K40
    领券