精华内容
下载资源
问答
  • 是谁用Python弹奏一曲东风破

    万次阅读 多人点赞 2020-03-10 21:10:08
    实话说, 我也没看, 具体可以参考微软的API文档, 还是上面的那一个, 自己找找吧, 我不在这里再贴一遍了. 到这里, 我们终于可以直接用Python弹奏一曲东风破了, 上代码. if __name__ == '__main__': time.sleep(3) for...

    是谁在用Python弹奏一曲东风破

    最近闲暇之余, 逛B站, 发现那些大神们用计算器, 用各种东西, 弹曲子, 那是弹得一个好, 作为一个手残人士, 虽然也想尝试一下, 但是吧, 我发现, 我的脑子里面想的挺好的, 可是手它, 它不听使唤啊, 一张图表达我的心情.

    本着不扰民的原则(内心害怕被打), 然后决定放弃了, 但是作为程序员的我, 虽然我的手, 可能不听使唤, 但是代码, 总是听使唤的吧, 因此, 决定, 咱用Python弹奏一曲东风破. 此处是不是应该有掌声, 哈哈哈.

    软件准备

    • Python: 这还用说吗, 那是肯定要有的啊.
    • Everyone Pinao: 一款虚拟钢琴软件, 当然, 你也可以选用其他的, 能响的应该都可以. 但是要注意键位, 我的谱子是根据我目前的键位来写的, 因此, 如果您的键位和我的不一样的话, 那就自己对应一下吧.

    贴一张我的键位图:

    过程

    下面, 简单写一下, 我写这个程序的历程, 感觉可能我写的挺无聊的, 哈哈.

    刚开始的失败

    最开始, 我心想, 这个我直接用Python来写一个模拟键盘按键的脚本不就好了吗, 然后我果断的想到了pynput, 利马安装, 迅速编码, 然后我的心情是这样的.

    懵逼表情包

    这里为什么不行, 为什么没有模拟成功, 哎, 我太难了.

    中间的探索

    不过, 就这点困难, 怎么能难到我呢, 本着不抛弃, 不放弃的原则, 我开始了一顿的查(寻)阅(问)资(度)料(娘), 然后我发现, 主要原因是, 由于pynput这种能控制键盘的层面太浅了. 我们需要调用驱动级的键盘才有用, emmm, 然后我突然豁然开朗, 想到了一个绝妙的方案. 嘿嘿, 这里卖个关子, 来张图, 大家想想我用的什么.

    一马平川

    我直接用Python的winapi, 这样, 难道你还能不让我控制, 小样儿, 说干就干, 利马 pip install win32api, 不过实话说, 这个库我早就装过了, 嘿嘿, 所以这行命令, 我没执行.

    果然, 这样就成功了, 非常的顺利, 下面先贴出我的键盘谱子.

    成功的喜悦

    乐谱

    这个是我根据五线谱, 手动敲的, 可能有错的地方, 反正我也不改了, 哈哈哈, 实话说, 我也听不出来, 下面贴出代码

    def keydown(num):
        map_virtual_key = ctypes.windll.user32.MapVirtualKeyA
        time.sleep(0.4)
        win32api.keybd_event(num, map_virtual_key(num, 0), 0, 0)
        time.sleep(0.2)
        win32api.keybd_event(num, map_virtual_key(num, 0), win32con.KEYEVENTF_KEYUP, 0)
    

    简单说明一下上面的代码.

    我们需要直接在硬件层面模拟, 因此我们需要一个MapVirtualKey的东西, 来获取实际对应的编码. 用法也很简单

    win32api.keybd_event(虚拟码,扫描码,0,0)
    

    对于虚拟码, 可以参考微软的官方文档: https://docs.microsoft.com/zh-cn/windows/win32/inputdev/virtual-key-codes 我们只需要找到软件中需要的键位的对应码就可以了.

    第三个是参数是作为判断按下与抬起的标识,按下时为0即可,因为键盘的全过程是按下与抬起,所有两个keybd_event才是一个完整的过程,其中一定要给其中添加一个时间暂停的,不然还是无法使用,因为时间太短, 听不出来, 因此, 我们要对按下和弹起做一个小的延时.

    第四个参数, 传0就好了. 实话说, 我也没看, 具体可以参考微软的API文档, 还是上面的那一个, 自己找找吧, 我不在这里再贴一遍了.

    到这里, 我们终于可以直接用Python弹奏一曲东风破了, 上代码.

    if __name__ == '__main__':
        time.sleep(3)
        for i in music_score:
            if i != '\n' and i != ' ':
                keydown(kay_map[i])
            else:
                time.sleep(0.5)
    

    个人感觉还是不错的, 完整的代码 GITHUB

    展开全文
  • Linux C/C++ 学习路线

    万次阅读 多人点赞 2019-07-04 20:41:56
    一、秋招 Linux C/C++ offer 情况 ...Linux C/C++ 从零基础到大神的学习路线,自己的真实学习路线,干货很多,建议收藏,认真阅读。 在校期间,我一直走的都是 Linux C/C++ 学习路线,历经暑期实习、秋招决战、校...

    一、秋招 Linux C/C++ offer 情况

    二、Linux C/C++ 方向的一些思考

    三、计算机基础知识的梳理

    四、C++ 方向的深入学习路线

    五、项目 + 亮点 + 面试的一些思考

    六、总结

    前言

    Linux C/C++ 从零基础到大神的学习路线,自己的真实学习路线,干货很多,建议收藏,认真阅读。
    
    在校期间,我一直走的都是 Linux C/C++ 学习路线,历经暑期实习、秋招决战、校招期间投的大部
    分岗位都是 Linux C/C++ 后台方向,对于这个方向,有着自己的理解。
    
    从接触 C++ 到我现在正式工作,大概有 2 年多的时间,对于这个方向的学习路线、以及学习编程的
    方法摸索出来了一些,看完本文,希望对于正在走 Linux C/C++ 路上的同学能有所帮助。
    

    一、秋招 Linux C/C++ offer 情况

    本人就读于双非院校、非科班本科学生,专业是偏硬件的(学校课程只有一门 C 语言与编程相关,
    其余的课程跟编程一点点的关系都没有),在校期间也没拿过什么大的奖项。
    
    计算机基础为零,大二上学期接触 C 语言,大二一年学了 C 语言和数据结构,大三在学校的实验
    室开始学习计算机基础和学习 C++ 方向,一路自学编程,始终相信自己,也是拿到了大厂 offer。
    

    秋招 offer 情况:

    腾讯 后台开发工程师(实习转正)
    百度 手百 feeds 流,软件研发工程师
    美团 后台开发 (C++ 方向面试)
    作业帮 后台开发工程师
    好未来 后台开发工程师
    迅雷 后台开发工程师
    盛大游戏 C++ 开发工程师
    
    2017 年暑期实习腾讯,2018 年初实习百度,校招拿了十几个 Linux C/C++ 方向的 offer,
    最终的选择也很玄学,去了自己想去的公司,从事自己喜欢的岗位,现在在编程的路上越
    走越远。
    

    二、Linux C/C++ 方向的一些思考

    1、

    对于方向的抉择,很多人都选择了 Java 或者 Python 方向,Java 或者 Python 方向确实学的人多,
    岗位需求很多,入门能比 Linux C/C++ 方向容易一些,但是往深了学,各有各的难度,先敲定了方
    向,再深入学习。
    
    Linux C/C++ 方向,国内真正掌握的人,其实是极少数,这个方向的学习人数也是相对比较少的,入
    门一般首选 C 语言或者 Python,C、C++ 在编程排行榜也是经久不衰的,排名靠前,如果喜欢,有兴
    趣,走这个方向是可以的。
    
    Linux C/C++ 方向,国内很多大公司都有招聘这个方向的岗位,BAT 都有,尤其腾讯,底层架构都是 
    C++ 写的,百度核心搜索很多模块也是 C++ 写的,阿里云也在招聘 C++ 方向的工程师,这个方向,
    学的不错的,根本不用担心找工作的问题,如果学的一般的,其实哪种语言就都比较难找了,毕竟都
    知道it行业是技术竞争,优胜劣汰。
    
    Linux C/C++ 的效率是比 Java、Python 快一些的,更偏向于底层,能直接操作内存,对于编程思维、
    逻辑能力的提升是有帮助的;其实学习这个方向,是有一点枯燥的,不像 Python 爬虫、Java、前端能
    做出一些有趣的东西,小程序开发出一些产品,都能很快用于实战,获得编程的乐趣,进一步刺激自己
    学习。
    
    C++ 方向没有那么多有趣的东西可以做,在很长的一段时间内,要靠自己的兴趣去坚持学习。
    

    2、

    我在大三的时候,用 C++ 写过五子棋、内存监控工具、压缩工具、以及实现一些比较复杂的数据结构,
    实现网络编程的并发模型;当你学习 Linux C/C++ 方向到一定程度的时候,你会找到这个方向的乐趣,
    跟其他方向完全不一样的乐趣。
    
    不过,前期真的很难,有一段时间极其痛苦,是要经过很长一段时间的学习,才能有一定的效果,如果对
    这个方向,真的没有啥兴趣,最好选择走前端、Java、Python 等是最好的选择。但是如果你已经是从业L-
    inux c/c++开发几年了,那就继续吧,技术提升没你想的那么难!
    
    Linux C/C++ 方向,入门稍微难一点,一旦选择了要走 C++ 方向的,在心态上面,要做好准备,一定不能
    有畏难心里,做好接触底层、复杂逻辑的分析、以及具备面向过程 + 面向对象的思想;就是退一步讲,我
    学习了 Linux C/C++ 方向,具备了编程思维和熟悉了 C++ 语言,以后去公司上班了,也能很快的上手 Jav-
    a、Python 等方向(我说的上手指的是语言基础很快的学习,要想深入,还得花大把的时间),这也是c/c++
    的优势所在。
    
    按照目前身边人找工作的情况,普遍来说,Java、Python、前端、数据分析、测试方向都要比 C++ 好找一些
    ,更容易找到工作,虽然我是走的 Linux C/C++ 方向,但是对于对底层没有兴趣,对 C 语言没有兴趣的人,
    不建议走这个方向。
    

    3、

    我一路走过来,真的很痛苦,在校期间都想过放弃这个方向,曾经想学个 Java 可能会好一些(身边学习
     Java 的人还是挺多的),每当快放弃的时候,又想到都学了这么长时间了,再坚持坚持,就这样一路走
     过来了;我是觉得自己真的挺幸运的,有时候,真的不一定非要头铁 C++ 方向,要看整个市场行情,顺
     势而为,选择好方向,在深入!
    
    对于 Java 还是 C++ 方向的选择,没有哪个方向一定好找工作,没有哪个方向一定工资待遇高,互联网这
    行,尤其是靠技术说话的,这些都取决于你自身的技术能力。
    
    选择走 C++ 方向的,一定要走 Linux C/C++,面向网络编程,学会 Linux 至关重要!
    
    大厂特别喜欢考察计算机基础知识,对于基础掌握的如何,在很大程度上将决定你是否能进入大厂,一定
    要重视基础知识的学习;秋招准备:基础 + 算法 + 项目,加上自己的方向(C++、Java、Python、前端等
    ),其中每个环节都得准备到位,才能最大程度上拿到大厂 offer,意识很重要,有了意识,再看具体的学
    习路线。
    

    三、计算机基础知识的梳理

    计算机基础:数据结构 + 算法、操作系统 + 计算机网络、数据库 + Linux、C 语言
    
    工作必备工具:Linux + Git + Sql
    
    不管你是学习什么方向的,Java、Python、前端、测试、运维等等,这些基础都不
    能忽视,有时间的话,一定要打扎实了,有了扎实的功底,在这行才能走的更远更快!
    

    1、常用数据结构与算法:

    平衡二叉树
    红黑树
    B-树
    KMP算法
    栈/队列
    布隆过滤器
    靠前的数据结构一定要非常的熟练,对于树、图复杂的数据结构,最起码的掌握定义、原理、部分实现,我就记得:
    我在面试的时候,手写过红黑树的旋转算法,对于图的一些最短路径算法也是当面手写过,头条的面试基本上就是全
    程算法,难度不低。
    
    冒泡
    插入
    选择
    快排
    希尔
    堆排
    归并
    桶排
    基数
    计数
    字符串常见算法
    数组常见算法
    递归算法
    
    一定要保证掌握基础算法 + 常见算法。
    
    在算法方面的要求上,C++ 方向对于算法的要求明显更高,算法功底一定要扎实!
    
    2、操作系统:很常问的一些技术点,堆和栈、内存分区、虚拟内存 + 物理内存、
    进程 + 线程 + 协程、死锁、分片机制、五大组件、中断和系统调用 、同步和异步
    等等问题。
    
    对于操作系统的理解,对于这些基础的计算机知识的掌握是必须深入学习,要花很
    大的功夫去理解清楚这些,工作中,对于真实线上系统的稳定性、对于底层技术的
    理解是有帮助的,操作系统是面试中常见问题之一。
    
    3、计算机网络:OSI 七层模型和 TCP/IP 四层体系结构,TCP 三次握手与四次挥手、
    常见的网络协议(网桥、ARP、IP、ICMP、TCP、UDP、DNS、DHCP)、TCP 粘包、
    流量控制 + 拥塞控制、数字签名原理、http + https,http 的状态码,https 的安全机制,
    网络安全、输入 www.baidu.com 背后发生了什么等等问题。
    
    其实工作中,有时就会出现,网络抖动、网络延迟,网络拥塞的情况,此时就需要具备一
    定的网络知识,及时的解决问题,计算机网络是面试中常见问题之一。
    
    4、数据库:数据库作为存储数据的地方,其不同的数据结构、与应用的场景不一样,采取
    不同的数据库,对于 mysql 基本操作、写 sql 的优化、表的设计、索引优化、如何更快的查
    询、底层数据结构的设计原理等等问题。
    
    常见的设计模式、主要是学习设计模式的思想、单例模式是必须写代码实现的,其他设计模
    式理解思想,作为了解内容,后台开发工程师与 mysql 打交道挺多的,也是面试常见问题之一。
    
    5、Linux系统
    
    Linux是所有学c/c++同学都绕不开的坎,我整理了Linux方面需要掌握的技术点,不知道怎么学习的同学可以借鉴一下。
    
    系统命令工具
    
    进程间通信设施状态 ipcs
    虚拟内存统计工具 vmstat
    Linux系统运行时长 uptime
    CPU平均负载和磁盘活动 iostat
    监控,收集和汇报系统活动 sar
    监控多处理器使用情况 mpstat
    监控进程的内存使用情况 pmap
    进程监控工具 atop
    控制台的流量监控工具 vnstat
    系统进程状态 ps
    详细网络流量分析 tcpdump
    内存使用状态 free
    系统管理员调优和基准测量工具 nmon
    密切关注Linux系统 glances
    查看系统调用 strace
    网络参数工具
    
    Linux网络统计监控工具 netstat
    显示和修改网络接口控制器 ethtool
    网络数据包分析利刃 tcpdump
    监控并帮助你调试网络 bmon
    获取实时网络统计信息 iptraf
    显示主机上网络接口带宽使用情况 iftop
    网络流量和 ip 流量分布 ntopng
    
    日志监控工具
    
    实时网络日志分析器 GoAccess
    
    多窗口之下日志监控 MultiTail
    日志分析系统 LogWatch/Swatch
    参数监控工具
    
    监控apache网络服务器整体性能 apachetop
    ftp 服务器基本信息 ftptop
    IO监控 iotop
    电量消耗和电源管理 powertop
    监控 mysql 的线程和性能 mytop
    系统运行参数分析 htop/top/atop
    工作基本上离不开 Linux,也是面试常见问题之一。
    

    6、C 语言

    C 语言是我学习编程的第一门语言,是面向过程的语言,对于 C 语言中的数组、函数、指针、
    内存对其模式、大小端问题、野指针、内存泄露、static、register、define、typedef、struct、
    union 等一些关键字的考察。
    
    我一直把 C 语言当做基础,不是方向,在 C 语言这里学到了很多编程的思想,对于 Linux C/
    C++ 方向,C 语言是基本功,也是必定考察的地方,当初我也是因为特别喜欢 C,走上了 C++
     的道路。所以c语言其实对于所有语言的编程者来说都是值得学习和借鉴的。
    
    C 语言可以学,C 语言是基础,不是方向,但是选择走 C++ 就是要选择的方向了,要谨慎选择!
    
    对于上面的每一个模块,其实都能单拿出来,写的更为具体一些,但是个人比较懒,就写出大纲
    来给大家借鉴一些吧。
    

    四、C/C++ Linux方向的深入学习路线

    1、C++ 基础
    
    C++ 是面向对象的语言,一定要理解清楚面向对象的思想,先把 C++ 的基础知识点打牢,刚从面向过程中转变过来,一定一定要适应面向对象的写法。
    
    在学习面向对象的时候,也要考虑如何用面向过程去实现面向对象(其实也就是结构体中有一个成员是函数指针),对于 C++ 的基础知识,我简单罗列如下:
    
    1、const的用法
    
    2、引用的用法
    
    3、#define用法
    
    4、构造函数
    
    5、析构函数
    
    6、拷贝构造
    
    7、new、delete 和 malloc、free 的区别
    
    8、访问限定符 public、private、protected
    
    9、深拷贝和浅拷贝
    
    10、友元函数
    
    11、static
    
    12、内联函数
    
    13、继承、虚继承
    
    14、钻石继承问题
    
    15、同名覆盖问题
    
    16、虚函数表
    
    17、虚指针
    
    18、虚函数、纯虚函数
    
    19、接口
    
    20、多态
    
    21、重写
    
    22、重载
    
    23、函数重载
    
    24、运算符重载
    
    25、流类库和文件
    
    2、C++ 进阶
    
    函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等。
    
    对于 C++ 中 boost 库八大智能指针的掌握与理解,其核心是理解并且剖析过相应的源码, <scoped_ptr/shared_ptr/weak_ptr>
     这三个是最核心的智能指针,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内
     存泄露。
    
    何为c/c++Linux方向的深入学习,就是在掌握上述前提技术基础之上的进阶学习。
    
    如果对上述技术觉得自己还有所不足的同学,推荐大家一个免费学习课程
    
    链接:https://ke.qq.com/course/417774?flowToken=1010788
    
    主要讲的就是c/cLinux方向的技术分享
    
    针对上面,从基础到 C++,我列出来的都是非常重要的知识点,当然了,也不可能全部列到,有很多技术问题,很多细节,
    我可能没有考虑到,没有写到,这个还需要在学习的时候,认真看看视频、看看书,把相应的知识都学到位,基础打扎实一些。
    

    五、项目 + 亮点 + 面试的一些思考

    1、
    
    项目:对于暑期找实习,或者秋招找工作,除了基础跟方向,接下来就是项目的准备了,对于 C++ 方向,很多人不
    知道要准备什么项目?其实项目不在于有多大、有多难,在于项目是否是自己真正做的,自己是否完全消化了,项目
    中是否有什么亮点?
    
    C++ 方面的实战项目,以数据结构 + 网络编程 + 实用工具为主;数据结构方面:可以实现红黑树、B+ 树,又或者用
    图解决什么实际问题,这些复杂的数据结构实现可以作为项目的。
    
    1.对于项目这块,面试的常见问题有:
    
    a、做这个项目的背景是什么?
    
    b、项目中具体有哪些模块,都是怎么实现的?
    
    c、项目中你的技术亮点有哪些?
    
    d、项目中有什么难点,你是怎么解决的?
    
    e、要是重新做这个项目,你这个项目有什么不足,你会进行哪些改进?
    
    2.亮点:找实习或者找工作,必须的有自己的亮点,我觉得在那么多基础知识中,数据结构 + C 语言就是我的亮点之一,
    只要问到关于这 2 个方面的问题,尽量回答全面清楚一些,还有就是自己对于 Linux 内核数据结构的剖析也是亮点之一,
    总之,一定要找到自己的亮点,与别人不一样的地方,这个就是面试的加分项。
    
    搜索引擎的底层原理、通讯的底层原理,对于这些底层的实现,有兴趣的可以了解看看,其实也没那么难,要是在面试
    的时候,能回答出对这些技术的了解,以及自己的一些思考,那就是加分项了。
    
    3、
    
    面试:春招实习、秋招决战,我不知道投了多少家公司,也不知道面试了多少场,基本上都是海投的,有了面试机会,
    就要抓住每一次,面试完多做总结、归纳、反思;其实面试很玄学,有自身实力的原因,也有运气的成分,相信自己,
    好好表现就好。
    
    对于面试,才开始我也是比较紧张的,但是当你面的多了,慢慢的就会调整过来,就会好很多,我现在把面试当做是
    ,这是一次近距离和优秀的人交流的机会,是一次学习进步的机会,有了这种心态,其实就好的多了。
    
    对于面试我也自我总结了一些面试题及回答经验,分析出题人出题的思路在哪里,毕竟我们不是要去死记面试题,重要
    是面试官考题的技术点在哪里?把技术点吃透,之后再问到类似的问题就不会慌了。
    

    六、总结

    推荐一些好的视频网站:b 站、牛客网、极客时间、51cto、腾讯课堂,网易云课程,基本上你所需要的视频资料都可以去找,实在不行上淘宝看看,我在b站也会日常更新,但是目前还不是很多。
    
    https://space.bilibili.com/437693511
    
    有兴趣的朋友可以看看
    
    我走的是 Linux C/C++ 路线,秋招投递这个岗位也很多,对于简历,面试方面觉得不好不足可以联系我,给你一定的指导吧,这个看时间。
    
    对于想走 Linux C/C++ 方向的同学,基本上按照上面的路线走,多实战操作。
    
    展开全文
  • 如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发自己的网关,再由网关转发网络B的网关,网络B的网关再转发网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。 2.3 网关的...

    热门系列:


    目录

    1.前言

    2.网关

        2.1 什么是网关?

        2.2 网关的作用是什么?

        2.3 网关的工作流程

        2.4 软件系统网关


    1.前言

    对于网关,从专业角度,一般运维和网络管理员会比较了解一下。但作为一个软件开发人员,我觉得也是有必要了解一下。尤其是在某次面试过程当中,被面试官问起后,感觉回答的不是很好,导致面试扣分。所以今天,带着学习和分享的想法,一起扒一扒网关的秘密。


    2.网关

    2.1 什么是网关?

    网关英文名称为Gateway,又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。

    网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

    通俗点形容,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡

     

    2.2 网关的作用是什么?

    简单来说,网关是设备与路由器之间的桥梁,由它将不同的网络间进行访问的控制,转换,交接等等。

    比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

     

    2.3 网关的工作流程

    通俗解释:

      假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。

      但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话:

      小不点:李大爷,我想找班主任查一下小明的电话号码行吗?

      李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99

      小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。

      李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大爷把电话给转到小明家)

      就这样你和小明取得了联系

     

    2.4 软件系统网关

    系统与系统之间,服务的请求与返回也有网关,我们可以理解为“系统网关”。与广义上的网关,所指含义可能不同,但所要发挥的作用,却如出一辙。

    软件系统网关作用:

    • 内外网隔离,外网所有请求都只能通过网关访问内网数据;防止网关单点,最好在不同大区配置多台网关服务器。
    • 验证+鉴权,外网所有请求,通过网关指定过滤器对用户访问权限进行控制。可以整合OAuth2,token,jwt等提高架构安全性。
    • 服务降级+限流+日志+监控。限流算法如令牌桶、漏桶等,Spring Cloud Gateway使用Redis+Lua技术实现高并发和高性能的限流方案。

     

    本博客皆为学习、分享、探讨为本,欢迎各位朋友评论、点赞、收藏、关注,一起加油!

     

    展开全文
  • 华为社招面试(拿到offer)

    万次阅读 多人点赞 2018-06-22 20:03:07
    讲解的过程中,在谈到薪资待遇的时候,讲解人说:入职华为底薪可能不高,不要有太高的期望(最终我的offer薪资也确实不高,不过也不算很差),说华为主要看奖金和股票(如果你的好),不过我觉得底薪还是很重要的...
    前段时间华为主动联系我要不要面试,抱着试一下的心态接受了面试邀请,最后顺利拿到了offer,不过最终由于方方面面的原因还是没有去。
    本文主要分享下,面试的大致过程。

    这里写图片描述

    1. 初步电话技术面试

    主要问了下,项目C++的后台开发(大概40分钟)。
    1. 高并发相关的问题。
    2. 以及为什么使用redis做缓存而不是其他的消息队列入kafka,以及项目的稳定性。
    3. 问了java,c++哪个更熟悉点,答C++,然后问了很多C++基础(和校招的C++基础问题差不多)。
    4. 简历的图像识别相关的,面试官不懂的,基本没有问。

    2. 性格测试

    这里写图片描述

    电话技术面试过了之后就是性格测试了。
    可以参考知乎的回答: 华为招聘时的性格测试依据是什么?难道是按时完成答题?
    我在做题的时候基本是按照自己的想法来的,最后也过了。

    这里写图片描述

    3. 现场面试

    到了深圳,去了对应的部门,会议室有人给我们讲解:
    1. 部门的主要工作内容
    2. 职业发展
    3. 薪资待遇
    讲解的过程中,在谈到薪资待遇的时候,讲解人说:入职华为底薪可能不高,不要有太高的期望(最终给我的offer薪资也确实不高,不过也不算很差),说华为主要看奖金和股票(如果你干的好),不过我觉得底薪还是很重要的。

    首先是HR面试(HR也懂点技术,只记得大致的面试内容):

    1. 你当前的技术发展的最大问题是什么呢?(这个问题我觉得还是挺不错的,即显示了你的当前的技术水平,也考察了你对自己的认识)
    2. 工作中的成果。
    3. 现有的公司部门,你觉得最好的几点。
    4. 团队怎么样?有没有什么牛人。
    5. 公司加班多不多(主要想看你们对加班的看法,以及能不能接受加班,感觉这个面试过程中华为挺看重的)
    6. 家庭成员
    7. 期望薪资(说了自己的期望,视乎面试官觉得我说高了)

    技术领导面试(只记得大致的内容):

    1. 大致聊了下简历上的工作内容(好像前面的技术面试官,对我的评价还可以)。
    2. 期望薪资。
    3. 其他的记得不清楚。

    4. 机试题

    这里写图片描述

    机试题不怎么难,主要是在输入输出上花了点时间,平时写代码基本不用考虑这些。最后拿了160分,满分200分,做的过程中不知道怎么滴给提前提交了,我以为有好多题目,确实只有一题。

    5. 谈offer薪资

    这里写图片描述

    机试过了之后,华为要求你给出自己的薪资以及奖金证明,所以在面试的过程中千万不要虚报工资。
    最终给我的offer薪资也确实不高,不过也不算很差。谈薪资的时候要注意,如果你们有什么补贴比如说饭补(或者包吃啥的),直接说道你的薪资里面,不要算补贴,这样最后你可以在这个基础上加工资。比如你薪资 15K然后又1K饭补,那你直接和面试官说你的薪资16K,不要说15K有1K的饭补,这样别人在15K的基础上给你加薪,而不是在16K。
    注:华为不包吃,食堂也不便宜。
    整体面试过程,面试官给人的感觉还是可以的,不过最终由于方方面面的原因还是没有去。
    展开全文
  • 主要摘抄至网上一些经验贴和面经分享,然后每个分享后面附带博主对于题目的解答,给自己和一些需要的朋友有个参考 根据博主浏览的经验分享,绝大部分信息科技岗甚至其他很多岗位的面试都是以下流程: 1、即兴演讲...
  • 我两天前玩游戏害怕笔记本中毒所以用了影子系统,后来GG了上网一看都特么是患难的同道,win10用影子基本凉了,我提供点自己解决的经验吧!我是win10。 电脑开启后出现了几个选项 进入高级选项 启动修复:发现修复...
  • 测试开发需要学习的知识结构

    万次阅读 多人点赞 2018-04-12 10:40:58
    一些视频链接:我这有一些软件测试的视频,你可以开看看。转行互联网测试需要哪些技能? - 假装在测试的回答 - 知乎作为一名软件测试人员,有哪些网站是你应该多多关注的,哪些书籍是你必须要看的? - 假装在测试...
  • 浦发银行 信息科技岗 大数据方向 面经

    万次阅读 多人点赞 2018-08-09 23:00:31
    思路还是不错的,有条理分阐述了,但是我以为时间很紧就语速很快地说了,不知道面试官听明白了没有,后感觉这块儿太可惜了语速应该平稳一点,因为我后面的小伙伴们都是慢悠悠地说完的,面试官也没把他们怎么着_...
  • 沉默王二的黄金时代

    千次阅读 多人点赞 2015-11-19 18:37:06
    我写这篇文章的缘由是什么,其实也和上面这些废话有关系,这就好比,你xxoo的时候要有前戏(这™有点太直接),或者说你屙屎之前可能要先放五谷杂粮之气到外面(这话听起来怎么像在骂我自己)。
  • 服务器搭建个人网站(阿里云服务器)

    万次阅读 多人点赞 2018-01-29 16:47:32
    服务器搭建个人网站 一丶购买服务器 ...阿里云提供了几种服务器,云服务器ESC、轻量应用服务器,ESC更...找到运行中的实例进去就好了。服务器器就购买好了 二、配置服务器环境 首先你要知道怎么把你本机的文件放到你的
  • 月薪3W的游戏运营都做哪些工作?

    万次阅读 多人点赞 2018-11-05 16:13:59
    大多数人的询问运营的工作是什么的时候,都无法出一个标准、统一的答案。运营的工作,会根据每家公司实际情况而定,大部分情况下囊括推广、策划、商务、设计等。今天溪谷软件(vlcms.com)为大家详细介绍一下...
  • 现在无论是写文章、做 PPT 还是壁纸、换头像,搜图片都是件费时却最出效果的事情。之前可能说过小编是做自媒体这一块的,关于图片素材这一块来说,需求量还是蛮大的,所以说,之前介绍的部分网站对于我来说是远远...
  • Anaconda详细安装及使用教程(带图文)

    万次阅读 多人点赞 2018-08-15 17:48:52
    其实命令很简单对不对, 我把一些常用的在下面出来, 相信自己多打两次就能记住 activate // 切换到base环境 activate learn // 切换到learn环境 conda create -n learn python=3 // 创建一个名为learn的...
  • linux这部分的知识倒不是笔试面试必考的内容,不过现在很多公司开发环境都在linux系统下,一些...尴尬过后也了本书啃了啃,顺便了个视频(韩顺平老师讲的linux,对初学者还是有趣又易懂的,地址http://www.jiaochen
  • 文章目录前言写这篇文章的目的:介绍一下自己正文正式工作几家比较坑的公司前两家:上市+外包之随意约面第三家:青少年编程教育(非坑)第四家:传统电商之不签合同最后一家:数据咨询之培训机构总结面试前面试中...
  • 我对于外包开发的看法

    千次阅读 多人点赞 2019-08-20 19:53:24
    希望能不知道什么是外包的职场新人和毕业生们讲解一些关于我曾经在外包项目组工作过的感受。 我之前在外包项目组待过两个月,最后实在是受不了了便裸辞了。至于我为什么会来到外包团队,主要是因为我们之前那个...
  • 程序员到底要不要读研,过来人你几建议!

    万次阅读 多人点赞 2019-03-13 17:28:56
    一直想写一篇关于读研方面的文章(之前写过一篇考研回忆,主要在讲复习方法),奈何最近脑袋不太灵光耽搁了,恰逢今日艳阳高照,刚好离今年的考研也就一个月左右的时间了,那么今天就来聊聊读研这件吧。...
  • 技术人提升自己的几建议

    千次阅读 2018-09-24 23:47:57
    订阅公众号(**ID:ITBigFly**)第一时间收到推送 ...我们也不要一直局限于自己的技术世界一心只敲代码,两耳不闻窗外,这样未免就有点太局限了,也不利于自己的发展。我们经历着互联网飞速发展的时代,从最初的 ...
  • 现在很迷茫,完全不知道自己能干什么

    万次阅读 多人点赞 2019-03-07 22:09:17
    人在迷茫的时候,要么失去了目标,不知道自己什么;要么想做的事情太多,总感觉什么也不好。 对于失去目标的人,我的建议是:不妨去K个歌,看场电影,甚至看一部电视剧。 举个例子。 有的父母习惯在孩子...
  • 算法越学越扎心,有没啥破解之法?

    万次阅读 多人点赞 2020-03-10 00:36:58
    对于算法的学习,我也是从一个小白一步步走来,当然,现在仍然很菜,,,不过,鉴于我觉得还有一些人比我更菜了,我决定谈谈我算法学习过程走过的坑,以及自己总结的一些经验。 切勿盲目刷题:刷题前的知识积累 说...
  • 微服务(Microservice)那点事

    万次阅读 热门讨论 2017-02-14 21:56:47
    而异步消息的方式在分布式系统中有特别广泛的应用,他既能减低调用服务之间的耦合,又能成为调用之间的缓冲,确保消息积压不会冲垮被调用方,同时能 保证调用方的服务体验,继续干自己的活,不至于被后台性能拖...
  • 8000字干货:那些很厉害的人是怎么构建知识体系的

    万次阅读 多人点赞 2019-09-29 11:18:27
    本文约8000字,正常阅读需要15~20分钟。...小张准备通过跑步锻炼身体,可因为之前听说过小腿变粗、膝盖受伤、猝死等等与跑步有关的意外状况,有点担心自己会掉进各种坑里,就在微信上问朋友圈一直晒跑步...
  • 用HTML+CSS做一个漂亮简单的个人网页

    万次阅读 多人点赞 2019-12-20 17:14:46
    1.刚好帮我妹写了一个作业做一个个人网页设计,简单的三个小页面,就从网上随便了图片自己随便设计了下东拼西凑哈哈哈!!!可能有点low但是对她来说或者需要做简单的个人网站应该就够了吧! 图片是从站酷上面...
  • 被大创耽误的一堆反思

    万次阅读 多人点赞 2018-04-08 19:23:18
    这一次大创项目《基于Android的声纹考勤系统》总体来说我觉得自己很失败浪费了很多时间,做了很虚无缥缈的东西。 目录 项目简述: 失败原因的分析: 我个人的原因: 外部原因: 大创项目的总结 一年后的我 ...
  • Android学习路线总结,绝对干货

    万次阅读 多人点赞 2016-04-26 18:13:52
    最近看到很多Android新手问Android学习路线,学习方法啊,如何入门啊,所以我从网上了一些资料,然后以我的工作经验大家总结一下,让你们少走弯路,提取一些工作中经常用到的技术。二、学习知识汇总1、
  • 职场中如何发挥自己的长处和优势

    千次阅读 2019-06-06 21:28:15
    近年来随着科技的发展和行业的进步,我们个人和组织已经无法依靠自己的力量独立去完成一件,我们需要组织内部不同部门的配合,需要上下游资源的整合,需要供应链厂商的支持,需要多层级伙伴的合作,以至于整个全球...
  • 这期间,我了他很大帮助,帮他梳理了一条非常清晰的自学路线,他自己也很下劲,遇见什么问题就来问我,我有时候回复不及时,过一会他就说,不用了,自己找到了答案,这股劲真的让我感觉非常佩服。 自学的过程并不...
  • 前言:我们最大的悲哀,是迷茫地走在路上,看不到前面的希望;我们最坏的习惯,是苟安于当下生活,不知道明天的方向。... 我天天加班,工作那么努力,没功劳也有苦劳吧,绩效还是打了差 为什么人...
  • 程序员工作的个人经验教训以及注意事项

    万次阅读 多人点赞 2016-08-13 13:10:09
    想当初刚刚毕业,或者说 ,还没毕业的时候,跟着班里的同学们组队到成都去工作实习,也就是几天前的的感觉,但是现在,大家都各奔东西,各自忙自己的,有的现在还在成都工作呢,有的已经离开啦,有的干脆就转行...
  • 第一步,我建议大家去其他大大的破解教程贴里先看看,然后下载好那个帖子里的游戏,作为练手使用,如果你想要自己找游戏的话,直接上“和游戏”等等的网页上去下载(看我的主题里有破解游戏,这都是通过这个方法来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,881
精华内容 106,752
关键字:

如何给自己找点事干