Skip to content

其他问题

实习中遇到的困难

最开始上手写代码的时候,对整个项目不太熟悉,一些常用的api,几个模块的作用也不清楚的时候。

比如修一个BUG,都会在bug的任务描述上写清楚了这个bug因为什么什么...怎么触发的出现了error,那么就去debug,找相关的代码研究哪里出错了,但是一开始对设计不熟悉的话,可能都不知道去哪里打断点,然后后来就找我领桌的同事给我讲这个项目每一层什么作用,然后我自己也去debug...去调用的流程图。

我第一个CP,有30多条comments。

实习收获

最大的收获是知道自己以后想从事的工作吧,虽然在西门子做的软件方向和互联网有一点不一样,但是大家其实都是程序员,只是技术栈上可能有些不同。每完成一个小任务,看到在软件上功能正常运行了,会感到很开心,所以我想以后也从事软件开发的工作,然后因为是应届毕业生嘛,本身也对互联网大厂有些向往,所以XX也是我心仪的公司吧。

然后是与人交往这一块,一年多的相处,和同事们的关系都很熟了,不仅是工作上,生活上的很多事情大家都会聊,也得到了很多帮助吧,还有英语也提高挺多的,以前看英文都会感觉有点疲惫像做阅读理解一样,但是因为本身工作环境就是全英文的,所以现在几乎就对于看英文没什么排斥感了。

一年多的通勤感觉也是一种磨练吧,提前体会到这种春夏秋冬都正常通勤的感觉,以前融入工作环境也应该会很快。

我主要做了什么

我们做敏捷开发,每两周的sprint planning都会和PO讨论下一个spint做什么,把要做的任务拉到敏捷看板上来,然后我们会给每个任务估计工作量也就是时间,然后感兴趣的人会说这个我来或者指定给谁。

我主要是作为团队的一员正常的和大家一起完成每个sprint的任务,也不会因为我是实习生就特别安排其他任务,也许做的会慢一点也没关系,大多数情况都会在期限内完成。

开始的时候我对这些任务都不太了解,所以是同事说这个我觉得可以给......后来的话是我自己会提出说我要做什么什么。

其实这个项目的每个地方不会说就是某一个人从头做到尾,也许会有一个主导人,但是其实大家都会参与,就比如一个文件的历史里面有好多人的修改记录一样。

反问

主要业务是什么

培训机制

职业规划

提高C++的专项能力,因为对这门语言的执着还是挺深的,之后应该也会穿插着学习一点其他语言。

有一套自己的知识体系图吧,像技能树那样,遇到问题能独立思考解决。

理论转化为实践,多去参与开源项目或者自己业余写一些demo。

富客户端

富客户端技术充分利用本地机器的处理能力来处理数据,而不需要把某些数据发送到服务器处理,充分利用了本地机器的资源。

富客户端,没有服务端

release周期不一样,我们半年一次,他们可能每周都是

我们基本上都是本地的,都在内存里面,各个模块通过API联通,而互联网需要联网的,通过网络协议联通

网络协议和api的区别在于网络模型,TCP/IP协议里面应用层和我们这里是一样的,但是应用层以下,网络是网络,我们是本地内存api

另一大区别是数据库,有专门的数据方面的模型,通过网络连接后,可以独立存在和开发。

本地计算机强调cpu、内存、存储,对应计算机系统的指令和数据

互联网里面只是增加了协议,多了要考虑的模型交互问题,等于是将一般的软件模型肢解成了独立的部分,衍生出来的各种问题都是网络I/O替代了本地I/O带来的问题。同样的设计模式和架构也从集群式向分布式发展。

windows消息循环的详细过程:

Windows系统和Windows下的程序都是以消息为基础,以事件为驱动。

  1. 我们创建完win32应用程序,当用户通过对鼠标,键盘操作应用程序时,由于Windows一直监控着I/O设备,该事件首先会被转化成消息,由windows系统捕获,存放于系统消息队列。

  2. Windows系统知道该消息应由哪个应用程序处理,然后拷贝到相应的应用程序消息队列。同时将该消息从系统消息队列中删除。

  3. 应用程序的消息循环不断在执行,此时,调用GetMessage()从消息队列中查找消息,发现了该消息,GetMessage()将返回一个正值,并获取到了该消息Msg;PS:如果消息队列为空,程序将停止执行并等待(程序阻塞)。

  4. 然后取出消息(Msg)并将其传递给TranslateMessage()函数,这个函数做一些额外的处理:将虚拟键值信息转换为字符信息。这一步实际上是可选的,但有些地方需要用到这一步。

  5. 上面的步骤执行完后,将消息MSG传递给DispatchMessage()函数。DispatchMessage()函数将消息再给windows系统,由windows系统找到目标窗口并分发给该窗口,调用消息对应的窗口过程函数,既窗口的WinPro函数,让WinPro函数处理。WinPro函数可以允许我们对不同的消息做特定的处理,若不处理的话,则会调用DefWindowProc函数,做默认处理,所以为什么默认代码中WinPro的类型是CallBack(回调),因为不是我们主动调用的,是系统回调的
  6. 一旦一个消息处理完成,窗口过程WinPro函数返回,DispatchMessage()函数返回,应用程序的消息循环继续while循环,Window系统继续监控各类消息,重复上述步骤

windows和linux下编程有什么不一样