作为一个已经写了十几年代码的老司机,在写代码之余还会写点技术感受,或者分享一些编程心的,几年下来也积攒了几万粉丝,也有一些对于技术不是很懂的小伙伴,在交流过程中经常说出这样的话,开发一个类似qq的软件需要多长时间,需要花费多少资金。软件这种东西可以说的很大,也可以说的很小。就拿简单的聊天功能其实就是简单的网络通讯功能直接掌握socket编程就能完成数据接收和发送,现在经常在局域网内传输文件的飞秋软件就是这个基本功能,不过现在这个软件功能做的越来越多了,已经不是仅仅是简单的数据传输那么简单的功能了。
![2fa5b27f8bc4302573b87d39187aa5f6d00792e6](https://yqfile.alicdn.com/2fa5b27f8bc4302573b87d39187aa5f6d00792e6.png?x-oss-process=image/resize,w_1400/format,webp)
真要分析qq的功能,这种就不是单纯的数据传递这么简单的事情了,首先要有强大的服务器集群支撑,现在只是qq上面缓存的图片以及视频在服务器里面的集群处理就是一种技术难度不低的技术,而且这么多服务器之间需要协调配合好,一旦一个出现安全问题别的服务器是不是能够及时启动安全预警功能,当然这只是对于服务器局部的一些功能的举例,还没有说到qq客户端一些技术,这个主要分为windows版本,苹果系统版本,安卓版本等等,每项几乎都需要对运行环境非常熟悉,而且开发对应的编程语言。
如果只是简单的数据传送,初学者在清楚socket机制的情况下,基本上就能搞定,至于要能对qq功能落实到底,基本上都不是个人考虑的事情,而且不同的平台上使用的编程语言的种类还不一样,实现的方式还是多少有些差异,针对楼主的题目利用java开发小程序。
其实这个另外的深层含义,如何知道自己是不是能够成为一个标准的java程序员?
1.首先要把java基础知识搞定,这点只要是从事java开发都绕不开的问题
2.java高级编程,掌握如何判断内存以及性能问题,多线程,网络编程,反射机制等基本功能
3.如何在服务端开发需要掌握至少一种框架,并且尝试在这个框架上实践项目
编写任何代码都需要有一个扎实的基本功, 初学者在找不到实践项目的情况下能做的就是打好基础。
原文发布时间为:2018-10-5
本文作者:东辉在线