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

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

他问: 你工作多长了?

我回: 4年多.

他说: 那么短.

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

沉默了一会.

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

他回: 采用线程池啊

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

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

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

他回: 是的. 

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

他回: 视实际需要情况.

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

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

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

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

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

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

我无语.......

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

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

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

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

中国, 现在还是处于那种只要做得到, 不要做得好, 只要可以用, 就不会创造新的阶段, 所以才导致中小型软件公司不论发展多少年, 还是中小型. 唉, 中国, 什么时候才会可以领着世界走在软件技术的前端...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值