`
saybody
  • 浏览: 913023 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

个人对中国编程技术的感慨

阅读更多
前些天, 我和公司的一位同事在聊天, 谈到了技术上的东东.
他是做LINUX内核方面的, 而我是做WINDOWS服务器方面的. 

他问: 你工作多长了?

我回: 4年多.

他说: 那么短.

我说: 还短吗? 觉得挺长的.

沉默了一会.

我问: LINUX下, epoll是怎样用的? 怎样实现采用多线程的方式的?

他回: 采用线程池啊

我说: WINDOWS下, IOCP说是跟epoll差不多, IOCP直接跟外部的线程进行绑定的, 有消息处理的时候, 线程就会在函数中返回.

他说: epoll跟线程没关系的, 它只是一个select模型的进阶版本, 什么东西都是自己判断自己写的.

我说: 那你的意思是指所有SOCKET对应的accpet, close, recv, send都是自己检测了?

他回: 是的. 

我说: 那你认为怎样写一个服务器会是比较高效率的.

他回: 视实际需要情况.

我说: 服务器其实只做三件事: 接收数据, 处理数据, 回复数据. 没有实际需要也照样的, 采用服务器群组也好, 不采用也好, 只要每个服务器都是高效的, 自然组建起群组来说也不会太低效率, 除非群组架构出问题.

他回: 你这样问也很难回答到你的问题啊.

我说: 那么采用流水线的方式的话, LINUX下怎样实现一个线程写, 一个线程读, 而且较高效率的一个列表. 

他回: 你这样问我也回答不出你的问题, 具体怎样写, 是不是采用列表, 都是视实际需求而定的...(后面一大堆理由)

我说: 什么实际需求不需求的, 现在就是要求这样的一个功能而已.

他回: 你说出具体需求我就会设计, 不说出具体需求我就不会设计了.

我无语.......

非常明显的. 他没写过服务器. 然而更让我得知一点: LINUX内核的编写, 只是挂个名. 有什么可能内核的编写不需要考虑线程的安全和抽象, 有什么可能内核的编写不需要考虑各种高效的数据处理模型.

像原子锁, 异步读写, 并发读写, 这类网上评论N多的线程安全模型, 居然还需要实际需求才能够设计. 

然而, 这些不是我最感慨的地方. 最让我感慨的地方是: 中国, 实在太多所谓的资深技术人员连什么叫功能, 什么叫业务都不能够明确划分, 总是喜欢把什么东西都混在一起. 弄得功能和业务紧密偶合起来. 而最可悲的是: 懂得的人总是要做善后工作.而最痛苦的是: 因为这个工龄的问题, 有技术得到的工资, 还是比没技术的人低...

我已经工作过四家公司, 有两家公司, 是存在架构的, 但架构较差, 都存在一个单元有几万行代码. 有一家公司, 是完全没架构的, 每个业务单元都存在几千行代码. 而现在这家, 业务较为单一, 只是业务逻辑较为复杂, 功能最初有划分, 现在的就把业务不多不少都偶合在功能里面了. 

中国, 现在还是处于那种只要做得到, 不要做得好, 只要可以用, 就不会创造新的阶段, 所以才导致中小型软件公司不论发展多少年, 还是中小型. 唉, 中国, 什么时候才会可以领着世界走在软件技术的前端...
3
3
分享到:
评论
5 楼 hexulin 2011-07-15  
不光 是 软件行业 其他各个行业都这样,这与 中国现在那种崇洋媚外的思想和全能人才的教育分不开的 ,中国大多数人都还坚持什么国外的都是好的想法。
4 楼 vigorsoft 2011-06-30  
都知道,就是不会改。。。
3 楼 j_butterfly 2011-06-29  
嗯 中国软件公司需要转型 需要创新!不会很久的,如果真没有,自己来做~
2 楼 juda 2011-06-29  
现象大家都能看得见,就看你怎么干了
1 楼 wmswu 2011-06-29  
引用
中国, 现在还是处于那种只要做得到, 不要做得好, 只要可以用, 就不会创造新的阶段, 所以才导致中小型软件公司不论发展多少年, 还是中小型. 唉, 中国, 什么时候才会可以领着世界走在软件技术的前端...

起码这一百年不会变.........

相关推荐

    VC++编程技术600个大型项目源码.rar

    vc++编程技术600个大型项目源码(一).doc vc++编程技术600个大型项目源码(二).doc vc++编程技术600个大型项目源码(三).doc vc++编程技术600个大型项目源码(四).doc vc++编程技术600个大型项目源码(六).doc vc++编程...

    《医学图像编程技术》光盘

    《医学图像编程技术》是医学图像编程的入门级教材和参考书。《医学图像编程技术》通过一个个由浅入深的编程范例,介绍了如何使用三维可视化工具箱VTK和医学图像分割与配准工具箱ITK进行三维医学图像编程。《医学图像...

    网络安全编程技术与实例.pdf

    由于提供的文件信息中不包含实际的文本内容,而仅仅是与文档打印相关的URL和时间戳,无法从中提取有关网络安全编程技术的具体知识点。因此,为了回答您的要求,我将基于标题和描述中提到的“网络安全编程技术与实例...

    Visual C#网络编程技术与实践

    《VISUAL C# 网络编程技术与实践》详细介绍了利用Visual C# 2005进行网络编程的方法和技巧。全书共分13章,主要内容包括网络编程原理、Visual C# 2005的套接字以及多线程的开发、基于各种不同协议的网络编程应用模块...

    游戏中的网络编程技术及应用.pdf

    根据提供的信息,我们可以深入探讨“游戏中的网络编程技术及应用”这一主题,特别是与游戏开发相关的网络编程基础知识、核心技术以及实际应用案例。 ### 一、网络编程基础 #### 1.1 网络编程概述 网络编程是游戏...

    计算机网络高级软件编程技术(配套光盘)

    本光盘为《计算机网络高级软件编程技术》的配书光盘,内容包括书中所有编程训练的参考答案与完成编程所需要的背景知识、工具与参考资料。 本光盘程序包括代码和可执行文件,部分程序不提供完整代码。

    SAS编程技术教程(朱世武)数据集ResDat及全书程序集合(第二部分)

    SAS编程技术教程(朱世武)数据集ResDat及全书程序集合,由于此包比较大,所以分为2部分下载,下载后自解压合并2部分即可.

    下载 多线程编程技术开发资料 高清完整PDF版

    由于提供的部分链接和内容是对文档的重复提及,并未提供实际的多线程编程技术的内容,以上知识点主要基于标题、描述及一般多线程编程知识进行阐述。对于实际编程技术的学习,需要参考相关的编程书籍、在线课程或官方...

    明日编程词典个人版注册文件

    【明日编程词典个人版注册文件】是一款集成了VB(Visual Basic)、VC(Visual C++)和Delphi等编程语言知识的工具,旨在为程序员提供一个便捷的代码查询和学习平台。这款软件提供了丰富的编程词汇、语法解释以及实例...

    《OSEK/VDX汽车电子嵌入式软件编程技术》附书光盘

    《OSEK/VDX汽车电子嵌入式软件编程技术》一书附带的光盘包含了丰富的资源,旨在帮助读者深入理解和应用OSEK/VDX标准于汽车电子领域的嵌入式软件开发。OSEK(Open System for Embedded Automotive Engineering)和VDX...

    ABB机器人RAPID编程技术参考手册

    ABB机器人RAPID编程技术参资料,包含《ABB PC SDK文件》 (开发C#上位机所需要环境)、《RAPID语言概览》、《RAPID指令、函数和数据类型》,用RAPID编程ABB机器人所需查的手册基本都在里面了。

    中国象棋棋子图片(供编程用)

    在中国象棋棋子图片资源包中,包含了用于编程的各种中国象棋棋子的图像文件,这对于开发中国象棋游戏或教学软件来说是非常重要的素材。这些图片可以被编程语言中的图形库或者游戏引擎所调用,以生动形象地展示棋局...

    vc++编程技术600个大型项目源码(七).

    【VC++编程技术与大型项目源码学习】 VC++编程技术是Microsoft公司开发的一款强大的C++集成编程环境,尤其适用于Win32平台的基础应用程序开发。它以其强大的图形界面编程能力和高效的代码执行受到开发者喜爱,可以...

    VC++编程技术600个大型项目源码【免费下载】

    《VC++编程技术600个大型项目源码》是一个极具价值的学习资源,它涵盖了大量由经验丰富的VC++工程师在实际开发大型项目中积累的技术精华。这个集合中的每一个项目源码都是精心挑选的经典实例,旨在帮助学习者深入...

    游戏之旅——我的编程感悟

    《游戏之旅——我的编程感悟》通过云风的亲身体验和感悟,串联起了游戏开发的过去、现在和未来,不仅对游戏开发者提供了宝贵的技术和经验分享,也为更广泛的读者群体提供了洞察游戏开发世界的机会。通过这本书,读者...

    从零开始学习音视频编程技术(二十一) 录屏软件开发之最终完善

    从零开始学习音视频编程技术(二十一) 录屏软件开发之最终完善 这是Qt的工程,建议使用Qt Creator 打开 Qt的版本是4.8.4,当然是用Qt5也是没有影响的,不过编译器记得使用Mingw。 FFMPEG的版本是2.5.2 记得将...

    从零开始学习音视频编程技术(十三) 录屏软件开发之屏幕录像

    从零开始学习音视频编程技术(十三) 录屏软件开发之屏幕录像 记得将ffmpeg/bin目录下的dll文件拷贝到编译生成的exe所在的目录下,否则会无法运行。 关于代码的解释 请参考: ...

    Java网络高级编程

    《Java网络高级编程》是一本专注于Java网络编程的教材,涵盖了从基础到高级的各种网络编程技术和概念。根据描述,本书共分为11章,每一章都详细介绍了网络编程中的不同知识点。以下是对本书内容的详细介绍: 在第1...

    从零开始学习音视频编程技术(十一) FFMPEG Qt视频播放器之美化界面

    从零开始学习音视频编程技术(十一) FFMPEG Qt视频播放器之美化界面 FFMPEG的版本是2.5.2 SDL的版本是2.04 记得将ffmpeg/bin目录下的dll文件拷贝到编译生成的exe所在的目录下,否则会无法运行。 关于代码的解释...

    单片机原理及接口技术(C51编程)张毅刚

    通过学习《单片机原理及接口技术(C51编程)》,读者不仅可以掌握单片机的基本工作原理,还能熟练运用C51语言进行程序设计,同时对各种接口技术和系统设计有深入的理解。这为从事嵌入式系统开发、物联网应用、自动化...

Global site tag (gtag.js) - Google Analytics