问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Windows程序员如何转linux开发

发布网友 发布时间:2022-05-31 04:55

我来回答

1个回答

热心网友 时间:2023-10-09 08:44

原文如下:我从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
通过TikTok赚钱原来这么简单! TikTok直播小白入门,从账号运营-带货全流程 新手入门TikTok,从0-1账号运营指南! 试样溶液浓度过大或过小,对测量有何影响 睡觉时头上出汗是怎么回是 EXCEL怎么同时设置多个工作表页码(页码非连续?  2010版本表格制作里同时打印多个工作表双面,页码要连续怎么打... 网易考拉如何取消退货申请 退货退款方法 华铭智能什么时候复牌 华铭智能公司做什么 藁城区九中小学英语每周几节课 藁城市第九中学体育特招生标准是多少 藁城市第九中学最近有招聘地理教师吗?具体要求是什么 河北省石家庄区藁城高中有那些 河北区海门路菜市场内下水管道严重冐臭水污染环境向哪个部门投诉我 从石家庄火车站到藁城市第九中学怎么坐车 我是76年出生想改个名字 藁城有哪几所高中? 怎么在设置一应用一微信一权限中开启存储空间权限一正常用微纹 藁城市第九中学的师资 藁城九中初中部可以住宿吗 藁城八中和九中初中哪个好 给藁城市第九中学初中部能不能住宿 藁城市第九中学的录取分数线是多少 藁城市第九中学的介绍 属龙76年农历11月初8子时出生用什么名 字旺自己? 藁城市第九中学怎么样 藁城市第九中学的简介 河北石家庄市藁城区有几座重点初中? 关于秋天的诗—短一点的 一个人可以注册几个 一个人能注册几个? 一个人可以注册几个? 古韵轩和古越堂哪个更适合做古玩店名 古韵养生馆店名两个字 一个人可以实名两个吗? r9000p一开蓝牙wifi就卡 一个人是否可以有两个? 一个微信可以注册几个 r9000p热点连上了没网 同一个手机可以注册几个 一个身份证号码可以注册几个 手机没有红外线功能怎么获得 一个身份证号码可以注册几个 你知道一个可以注册几个企业? 一个人手机可以申请几个 一个可以注册几个 一个手机号可以注册几个2022 一个可以注册多少个全民号 一个人可以注册几个?
  • 焦点

最新推荐

猜你喜欢

热门推荐