80% 的文档都是无效的,所以多数情况下,程序员都不用写文档,原因如下: 多数文档都是代码的点缀或者静态的记录已经实现的代码,懂代码的开发人员会直接看代码,不懂代码的开发人员压根不会看。...服务代码常变而文档基本很少更新,程序员经常在屎上雕花,却很少有程序员帮助别人更新文档。究其原因代码是要运行的,文档不用运行,错了也没人关心。所以文档和代码牛头不对马嘴经常是喜闻乐见的事情。...一个完全成熟的架构,你拿过来写一篇文档,美其名曰:架构设计文档,你觉着有什么意义上吗?当然有些传统软件公司可以用这个来忽悠老板和甲方爸爸。...你可能觉着我在胡说八道,不写文档,你的代码以后怎么维护,谁看得懂? 写了就看得懂了?确定还用维护?就当今这个软件的就业形势,招一个人都想劈成 3 半用,正常功能都完不成,写的好么?写了用来误导别人?...现在很多编程语言大多支持代码中的注释自动生成文档,如果能坚持更新注释内容不失为一个生成文档的好方法,对于初学者有一定帮助;但如果你把注释当成代码的一种补充和辅助,那就是耍小机灵了,代码都说不清楚的事,你觉着注释可以吗?
我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我们程序员同行。...但不是每个程序员在一开始都能写出“高标准”的代码的,就好像不是所有君王和百姓都能搞清楚孟子的治国齐家理念的。 在我刚回洛阳的那段时间,过得非常痛苦。...在我看来,Java 源码的作者绝对是这个世界上最优秀的程序员,连他们都写注释,那些声称“请停止写注释”的号召者是不是要啪啪啪地打脸,直到打肿为止。 ?...我可能属于记忆力不好的那一种,隔个十天半个月,再去回头看那些我自己敲的代码,有时候真有点见着陌生人的感觉:“这代码是我写的吗?怎么有点面生啊?” 大部分人写的代码都要升级重构,对吧?...总之一点,注释并不会妨碍你写出优雅简洁的代码,它只是程序固有的一部分而已。 ------------------
重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux。...具体参见之前的博客 虚拟机Linux桥接模式下设置静态IP 新建一个Linux控制台项目,VS主页会有教程,于是迫不及待地写了份使用POSIX线程库的代码 ?...原因是VS没有自动把Linux的头文件包含进来,因此需要手动把Linux系统的/usr/include、/usr/local/include目录复制到VS的linux头文件路径下,我的VS安装路径把默认的...然后程序参数也要修改 ? 之后就是F7组建、F5调试了,注意要在控制台显示结果必须打开Linux控制台(菜单:调试-Linux控制台) ?...结果如图,程序运行成功了,但是中文字符乱码,原因是VS2017默认编码模式并不是UTF-8,这里需要安装插件 菜单:工具->扩展与更新->联机,搜索UTF找到最顶上这个插件,下载 ?
Linux,一切皆文件,那么在Android系统本身,也是Linux+java罢了,也是在Linux的运行环境下。 通常,我们在调试程序的都会使用printf。...在Android中,我们会去使用logcat,现在,给大家介绍一种常用的调试方法,debug写文件调试法。...在Android系统中,调试一个C应用程序可谓是极其不方便,为了保存log的完整性,于是,写文件调试法可以发挥重大的作用,下面给出一个例子: #include FILE * wirte_debug_file...int main(void) { int i ; char buf[100]; for(i = 0 ; i < 10 ; i++) { sprintf(buf,"i:%d\n",i); //写调试信息
我厂很多同学使用VC在windows上编写linux的C/C++程序,然后再传的开发服务器上,然后再编译和调试。如果有修改,可能会直接用vi去改了,然后再把源代码同步回来。其实这样做挺折腾的。...也有大神全盘vim设置emacs写,想来也是极好的。 但是,也有另外一个方案,就是在 Linux上安装个写C/C++程序的IDE,这样可以直接编写、编译、运行、上传SVN,非常方便。...其实要做到这点,也很简单: 你需要一个虚拟机来运行一个带GUI的LINUX,这样IDE才能运行起来,当然也可以直接在开发服务器上安装GUI程序,然后WINDOWS的办公PC这里设置个SSH的X转发,装个...注意Eclipse有很多个包,如果只写C/C++程序,就直接下Eclipse CDT这个套件好了,省了还要下支持JAVA开发的东西。 ?...对于写服务端代码的同学来说,绝对值得尝试!
如果你已经把代码弄得一团糟,不要花时间写注释来解释,而是要花时间梳理代码。如果每次写注释的时候,你都冥思苦想,觉得自己的表达能力不足,那么最终你就会写出简洁明了的代码,完全没有必要写注释。...我们不是都在使用源码控制吗?所以我们不需要保留旧的代码。我们可以跳到任何我们想要的版本。 噪音注释 有些注释毫无意义,纯粹是噪音。...考虑一下下面的例子,其中的注释提供了很多价值吗?...返回月份的天 # @return: 月份的天 def get_day_of_month() return day_of_month 用编写干净代码的决心取代制造噪音的诱惑,你将成为一个更好、更快乐的程序员...*/ 小 结 我并不是提倡不写代码注释,只是建议不要过于依赖注释,这样可以使代码更干净、更有表现力,这也能提高开发人员的水平。
编译:Python开发者 - Jake_on 英文:Quora http://python.jobbole.com/85986/ 有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/...本文摘编了 3 个国外程序员的多个小项目,含代码。 Manoj Memana Jayakumar, 3000+ 顶 更新:凭借这些脚本,我找到了工作!...一个电影爱好者还能够要求更多吗?:) 源代码在 GitHub:imdb 3. theoatmeal.com 连载漫画下载器 ? 我个人超级喜欢 Matthew Inman 的漫画。...我写这个有趣的脚本,目的是为了分类图片,很像 Facebook 做的那样(当然这是一个不够精确的算法)。...我不明白他们这样做的目的是什么,难道仅仅是为了愚弄他们自己吗?
Unix、Linux、Windows三大帝国集团发表《关于比特宇宙推进经贸合作的联合声明》的消息很快传遍整个比特宇宙,位置偏僻的NextStep帝国也收到了这条消息。...很快,Steve召集研发部门进行需求宣讲,由首席程序员Tim牵头着手来实现通过因特网来进行文档传输。...“可以举例说明下吗?” “比如你看啊,对文件不一定是下载,也可能有上传功能,或者修改功能,你不能只有下载,虽然简单但扩展性太差”。 “咱不就是做个文档在线浏览吗,怎么会上传修改这些呢?”...而Chrome公司和Firefox公司则在Linux帝国、Windows帝国、OS X帝国都开拓了市场。 网站市场的竞争同样激烈,而笑到最后的是Apache、Tomcat和nginx几家巨头。...由于Windows帝国制度的管控,这几家跨国集团都重点发展自己在Linux帝国集团的实力,曾经败在Windows帝国集团的Linux集团凭借Web业务的发展,打了一个漂亮的翻身仗。
---- 在现代操作系统中,程序访问的地址都是虚拟地址,硬件MMU结合操作系统创建的页表会在进程私有虚拟地址和全局物理地址之间做映射,当程序访问一个虚拟地址的时候,该映射会将这次访问转换成到物理地址的访问...这可能会对程序数据造成严重的伤害。 因此有必要人为规定一个 非法地址 ,这样在程序中就可以做判断了,只要不是人为规定的那个非法地址,那就是合法的。...这个很简单,写一个内核模块,把NULL开始的一个page和calloc返回的used开始的一个page映射到同一个物理页面即可。...下面该写内核模块了,为了简化操作,这里采用Guru模式的stap脚本来进行编程: // mapNULL.stp%{#include #include #include #include #define DIRECT_MAP_START 0xffff880000000000
做了五年多的程序员了,回过头来看了看以前发的一些帖子,颇有一番感想。...他一开始访问数据库也是用的自己写的方法(函数),和我的思路也基本差不多,但是当他遇到SQLHelp 后感觉自己写的没有SQLHelp 好,于是就放弃了自己的代码,转而使用SQLHelp 了。...我也遇到了同样的问题,我也是先写的自己的访问数据库的函数,但是当我遇到SQLHelp 后,并没有放弃我自己写的函数,而是修改我自己的函数,让她更加的强大!这就是代码的成长! 为什么要说这些呢?...比如在写乙项目的时候,要实现一个功能,这个功能已经在甲项目中很好地实现了,那么您会怎么做呢? 1、把甲项目里的对应的代码copy过来,然后改一改,OK。...在写乙项目的时候又学习了一些新的技巧,可以提高效率,而且这种方法不仅适合乙项目,而且对宇甲项目也是适用的,那么乙项目写好了之后,会不会应用到甲项目? 1、不会修改甲项目。
一、前言 在 Linux 上写下一个简易的进度条小程序。 成品展示 : 今天的内容比较轻松,只需要了解两个知识点,这个小程序就很容易写出来了,让我们开始今天的学习。...而在我们平时打字时,一行写满了需要换行,但是新起一行有很多种,例如: 这样虽然新起一行了,但是不是我们想要的结果。...1、提出问题 首先先了解一下两个库函数: sleep :Linux 下的休眠函数,单位是秒。...3、解答与拓展 解答: 问题 1:代码 1 好像是先执行了 sleep ,在执行 printf ,是这样吗? 当然不是。...sleep 睡眠后,当程序退出,shell 打印提示符时,就覆盖了字符串。 拓展 : 数据真的是临时保留在缓冲区里的吗?光标如何理解?
在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除错...现在,如果你刚好也很喜欢 Visual Studio,你可以不必改变习惯,用 Visual Studio 写程式、然后远端送到 Linux 上编译、甚至还能接上 gdb 来除错。...这个对于开发像是嵌入式系统、或是 IoT 装置的程序等等就可以多多利用 Visual Studio 强大的 IDE 能力。 图: 应该有不少在 Linux 上写程式的开发人员是这么工作的吧? ...图: 使用 VS GDB 扩充套件的教学 首先在项目上按右键选择内容,设定侦错的环境,像是远端主机的位址、然后认证用的 pub/private key,还有连接的方式(ssh 或 plink)等等,...接下来你就可以开始撰写程序了,然后就像在 Visual Studio 里写其它程序一样设定中断点,但是执行时选择 Remote GDB 就可以开始进行远端侦错了。
你需要每天写代码吗? 就像运动员每天锻炼一样,每天练习写代码可以成就更优秀的你。 最近我看过的博客,基本上每篇都有提到,“你需要每天写代码”。什么主题不重要,关键是要养成每天写代码的好习惯。...如果你想擅长编程,那么你就必须每天写代码。代码写得越多,你才会觉得它越容易,并且越擅长于编程。就像我在本文中列出的其他任务一样,每天写代码,即使你已经习以为常,却依然很难保持住这个习惯。...“我应该写什么?”这个问题的答案是因人而异的,但这却是你用自己的方式每天写代码所必须先克服的障碍。通常人们编写代码是用来解决问题的,但不是每个人都有问题需要解决。这就像著名的鸡和蛋的问题。...这样疯狂的练习写代码让我变得更善于发现问题。例如,大概几周前,我决定用go写一个Web服务器(类似于nginx/apache)。我想要一个又合适又易于使用的配置文件来定义设置。...最后,“每天编码”这个挑战不是为了每天写一些有用的东西,而是为了每天学习新的东西。学习新的语言,学习新的框架,学习拆开和组合。每天写代码,每天学一点新的东西。
ChatGPT出来半年多了,用GPT编码的程序员有多少?虽然没有数据支撑,但我感觉用AI编码程序员并不多。我问过几个朋友,他们的回复是,AI没办法完成他想要完成的任务,最终还是得靠自己去写。...GPT真的没办法帮助程序完成任务吗?我感觉不是。但为什么会造成这样现象?我总结有2个原因 prompt的问题,比如把需求描述的不够细,AI在不了解细节的情况下只能猜。...你就跟自己写程序一样,一个方法就是一个问题。其次,就是学会把出现的问题反馈给AI,让它去修正。...如果是以前,我可能需要自己写。但用GPT,一分钟不到,初版的程序就写好了。虽然第一次返回的结果里有个小BUG,但就一句话,改完后就能正常运行了。 总用时不到5分钟。...如评分>= 8,询问:「你想运行此提示吗?」 - 附带选项「嗯」和「no 」。如果我说表示肯定,请运行你建议的最后一个提示。否则,请为我生成更好的提示。
大家好,上次我们学习了Apifox 发送请求的功能。日常测试过程中,我们除了验证状态码,还会验证接口的其他结果。今天我们就来学习下如何使用Apifox 校验...
Linux,一切皆文件。通常,我们在调试程序的都会使用printf。在Android中,我们会去使用logcat,它的功能很强大,既可以调试C/C++。...现在,给大家介绍一种更简单的调试方法,debug写文件调试法,下面给出一个案例,将变量的信息重定向到一个文件中。...char buf[100]; 19 for(i = 0 ; i < 10 ; i++) 20 { 21 sprintf(buf,"i:%d\n",i); 22 //写调试信息
程序员这份职业被社会认可并推崇,很多人都认为这个岗位能赚很多钱,真的是这样吗? 程序员写的软件极大促进企业生产力的提升,让一个月才能做完的活可能只需要一两天或者瞬间就完成了,这份价值确实是巨大的。...程序员把自己写软件的事情基本上当成一份工作更多一点,一个完整的项目要经历需求分析、软件模块分析、数据库建设、界面设计、逻辑开发、各种算法、软件测试、软件文档和用户手册等,要做的事情实在太多了,所以才需要团队来完成...但是这样的生活,程序员真的喜欢吗?...作为经常写代码的自己来说,并不是很喜欢,只有在为自己写框架或软件的时候才是最快乐的事情,其他都是工作,而工作必定是需要付出辛苦的,做一些不是自己意愿却要完成的软件,并且要在规定的时间内完成!...个人为人,一个成功的程序员是每天为自己心中的那个软件不停开发开发更新,获得他人和社会认可,并产生相应回报,这样的程序员就算成功的!
由于在网络上关于VS 2013 使用InstallShield Limited Edition 打包的教程感觉都有些不完善的地方,所以编写这篇博客,希望对大家有帮助。...他们是C# 程序的打包,而我是以MFC 以例编写的教程。本文也适用于Console(控制台)程序。 步骤 1.创建一个MFC 的项目 详细步骤如下图所示: ? 图01 创建MFC 程序 ?...图02 MFC 程序属性设置 2.生成你的MFC 项目 你需要在Debug 模式下生成(F7)你的MFC 项目,确保你的程序是没有Error 的,要注意的地方如下图所示: ?...图07 新生成Release 文件夹 4.创建InstallShield Limited Edition 因为VS 2013 默认是没有安装InstallShield Limited Edition...图17 Installation Interview 信息设置 10.打包.NET Framework 因为我的这个程序需要使用.NET Framework 4.5,所示我需要将这个打包到程序中,确保程序在其他的机子上能够运行
---- Linux 的设计 Linux 的开山始祖是来自一位名叫 Linus Torvalds 的芬兰小伙子,他在 1991 年用 C 语言写出了第一版的 Linux 操作系统,那年他 22 岁。...完成第一版 Linux 后,Linux Torvalds 就在网络上发布了 Linux 内核的源代码,每个人都可以免费下载和使用。...这个特点决定了 Linux 操作系统不会有某个 CPU 单独服务应用程序或内核程序,而是每个程序都可以被分配到任意一个 CPU 上被执行。...Monolithic Kernel Monolithic Kernel 的意思是宏内核,Linux 内核架构就是宏内核,意味着 Linux 的内核是一个完整的可执行程序,且拥有最高的权限。...,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序; Linux 的内核设计是采用了宏内核,Windows 的内核设计则是采用了混合内核。
想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty...
领取专属 10元无门槛券
手把手带您无忧上云