问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

windows程序员怎么快速转入linux下做开发

发布网友 发布时间:2022-05-02 21:30

我来回答

1个回答

热心网友 时间:2022-06-27 10:12

原文如下:我从csdn学习大本营得到您的信息。不好意思打搅您。我现在用c++在linux下开发大型应用程序。我想请教是否值得深入学习linux kernel。我没有特别多的时间。另外我有多年Windows下开发应用程序的经验。我的回答:呵呵,我感觉这还是一个学习方向的问题。Linux这几年,发展越来越好了,至少在很多应用服务器市场,Linux已经取代Windows成为第一选择,另外,在嵌入式环境,Linux也是逐渐成为主流。这导致很多原本是Windows的程序员,由于工作需要,逐渐走向Linux开发,这中间当然涉及到一个学习的问题。我本人也算其中一份子吧。我本来一直做Windows开发,在这之前,在DOS下用过gcc开发,还翻译了djgpp的库函数手册,也算有点基础。不过,在07年公司安排我在Linux下正式开发商用服务器的时候,我心里还是很打鼓的。因为也面临着一个学习的问题。看看市场上的书籍,很乱,我当时花了一整天在汉唐书城,仔细分析Linux开发相关的书籍,我发现分几种,首先是shell编程,这个我看了有半个小时,就觉得没用,这貌似给网管员用的,我做传输服务器用不到,连带着,正则表达式,我觉得对我用处也不大。真的要做复杂条件筛选,我的习惯是写个词法分析程序,自己来分析,也花不了多少时间,所以,我一直就没学正则表达式,呵呵。然后是C和C++编程相关,我仔细看了,发现一说到开发,就讲到Linux kernel,这部分显然是操作系统的知识,我仔细想了想,发现自己的问题并没有得到解决。就算我知道了kernel怎么工作,里面有什么开发技巧,对我的工作并没有什么帮助。我当时做的是分布式数据库的传输服务器部分,这部分讲究多线程,高效能,但还是局限在应用层,并没有多少涉及到kernel的东东。我觉得用处不大。反而我觉得我有必要对socket编程重新补一补了。经过挑选,我给自己选了一本《UNIX网络编程》的第1卷网络通信篇,第2卷是进程间通讯,我觉得我的程序用多线程跑已经很好了,线程本身就是共享内存的,无需考虑太多异步通讯,而且,我的习惯,进程间通讯,一般直接使用socket,这个放之四海皆真理,而且,好处是我的进程可以跨机器随意部署,只要我提供IP地址,进程间就可以互相通信,协同工作。所以,我只买了第1卷,就是专门讲socket的,这是好书,我现在没事还要拿出来看一看。另外,我又给自己挑了一本《Unix编程艺术》,这本也是好书,我以前就发现,Dos程序员有Dos程序员的习惯,Windows的有Windows的习惯,这些方言,习惯,教科书是没有的,必须找有经验的程序员问,而这本书恰好就是专门讲这些问题的。比如DOS时代,硬盘通常很小,用户分盘又很乱,我们要是想向磁盘存个临时文件,最好找C盘,连D盘都是很多计算机没有的。而Windows下系统提供了服务,可以通过api查询系统临时文件目录,就好多了,而Linux下呢,是约定俗成,大家都用/var来做临时目录,这就是风俗。嗯,这本书我看了以后,遵守了一半,呵呵,也没全遵守,它强调程序都是过滤器,从信息流中过滤自己有用的信息,加以处理,但是,不准破坏信息流,并且强调信息流无缝流转到下家,这个我很同意,这也是我这几年逐渐领悟到的一个程序设计原则。不过,它强调搭积木我就不太同意了,Unix的程序员,有个坏习惯,对管道很滥用,这就造成了很多程序都是小程序,通过管道勾搭到一起,完成一个强大的功能,这个呢,见仁见智,在某些场合合用,但我的开发领域,我强调强大的系统分析能力,一体化的系统设计思考,强调从系统设计阶段就杜绝很多潜在的逻辑bug,简单说,我对系统各个模块之间的和谐性看得很重,因此,这条我就没有遵守。嗯,还有就是它强调简洁开发,我呢,也只同意一半,把程序写简洁,每个函数,每个类,都很简单,减少bug,这个我是同意的,不过,简介到变量名函数名都净是缩写,人都看不懂,就太离谱了。呵呵,我的习惯就这样,别人的东西好,对我有用,我就用,我觉得有异议,并且认为自己的理由更站得住脚,我就坚持自己的。并且,一切从实践中看,计算机是最公平的,乱写程序,就算是大师也照挂,小心翼翼地写程序,即使是刚入行的小弟,也能写出很漂亮的程序。就这样,我借着这两本书慢慢看,然后,大多数习惯还是Windows的,到现在我开发,都是VC下编辑程序,然后写个makefile,ftp到虚拟机去编译执行,也走到今天了。后来发现,我没有学习shell,我没有学习kernel,我没有学习很多教科书上规定必须学习的东东,我的程序居然也完成了,我们的工程在去年,9轮测试,只发现51个bug,属于C和C++这边的bug,只有7个,这就是我坚持我自己无错化程序设计方法的威力。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
同龄人早发育好还是晚发育好 小孩晚熟正常吗? 女孩子身体发育的早晚跟童子身有关系吗? 自喷漆如何晾干 自喷漆一般几分钟能干 自动静电喷塑流水线 玫瑰茉莉薄荷茶有什么功效 平面磨床哪家的好 十大名牌平面磨床 手机病毒查杀软件推荐选择最好的手机病毒查杀软件 如何通过搜索优化引爆淘宝店铺流量 如何爆发手淘搜索?淘宝的权重是什么,小伙教你操作 问下,我在飞卢发书,五万多字才200多收藏,要不要切掉,只有更新的时候涨十几二十个 淘宝店铺引流的手段有哪些? 作为一名卖家新手,如何才能手淘店铺的搜索流量? 如何在windows操作系统下直接转入linux? 新书在飞卢上传了一万字,转到起点,起点会给签约么,飞卢那边目前已经断更了 800作文 严于律己,宽以待人 飞卢小说网。如何将已经写完的书(连载)改为已经完本? 飞卢发书三个多小时一个收藏都没有 严于律己 宽以待人的事例6则 如何将Win格式文件转Linux格式 飞卢小说网不给删除上传章节怎么破? 飞卢书架如何批量删除藏书 飞卢上的小说怎么感觉很多内容删掉了,前后看的不连贯? 梦见别人车子部件被偷 自己车子没事 我的小说在飞卢上发了,小说没有签约,编辑说不能删,我想去起点写,起点表示我在其他的网站发过 关于飞卢网删除小说章节 如何彻底删除飞卢小说网上发表的文章? 飞卢怎么删书重发 诸葛亮教育后代“勤以修身,俭以养德”,在现实中有真实的例子吗? 有人认为西游记中的故事告诉我们做人应脚踏实地任劳任怨严于律己宽以待人请精? windows下的文件如何转移到linux下?我机器上有虚拟机 如何写一篇严于律己,宽以待人的文章要100字 小学生严于律己宽以待人的事例 苹果6 手机进水了 进入了耳机模式 怎么办啊? 苹果6掉水里以后不插耳机也是耳机模式? 苹果6掉水里,变成耳机模式怎么处理 苹果6掉水里变耳机模式 苹果6进水导致耳机模式怎么调回来 iphone6plus进水了显示耳机模式怎么回事 “你可知‘妈港’,不是我真姓,我离开你它就了母亲”这句歌词里得 妈港 值得是哪?? 下面是什么歌的歌词?谁写的? 你可知macau,不是我真姓/我离开你太久,母亲/但是他们掠去是 你可知“妈港”不是我的真名姓? "你可知"妈港"不是我真姓,我离开你太久了,母亲!"这首歌的名字叫什么? java连接oracle导出表 澳门回归“你可知macao,不是我真姓”那首歌叫什么 七子之歌——澳门 你可知妈港不是我真姓, 我离开你太久了母亲。 你可知妈港,不是我真名姓,我离开你太久了母亲,但是他们……叫啥歌球 七子之歌,澳门这首诗中的第二句是什么意思