***只是想做个笔记,以便以后回顾并且大家分享,由于水平有限(很菜),可能会出现一些错误,请大家及时纠正 谢谢。***
* 语言设计中空引用(null reference)的存在有什么问题?假设你想要将空引用的概念从你的首选语言中移除,可能导致什么结果?
对golang来说,在解引用的时候会存在panic问题。
移除会导致与其他语言通信的时候语义缺失问题
>回顾:Go推荐通过调用panic函数报告错误,为了报告运行期间致命错误,panic函数用于停止当前控制流程并引发一个运行时恐慌,panic函数可以接受任意类型参数,但通常时string类型或者error,因为这样更容易描述运行时恐慌的详细信息。
还有,运行时恐慌并不都是通过调用panic函数的方式引发的,也可以由Go运行时系统引发。
* 为什么函数式编程重要?什么时候适用函数式语言?
这篇文章函数式程序设计为什么至关重要,推荐大家学习一下,下面是链接
https://www.byvoid.com/zhs/blog/why-functional-programming
* 设计(design)、架构(architecture)、功能(functionality)和美学(aesthetic)之间有什么区别?讨论一下。
* 微软、谷歌、欧朋(opera)和火狐这类公司是如何从他们的浏览器中获利的?
通过市场占有,成为搜索引擎导流通道,
捆绑自家服务,成为导流入口。
* 为什么打开TCP套接字有很大的开销?
因为要和目标地址保持连接。
* 封装的重要性体现在哪儿?
屏蔽掉细节部分,让使用者聚焦在业务开发上,通常避免一些通用功能的反复开发。
* 什么是实时系统?它与普通系统有什么区别?
实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决结果产生的时间,如果系统时间的条件约束满足不了,将会发生系统出错。
区别:
1、OS专注于计算吞吐量,而RTOS专注于快速响应时间。
2、OS使用分时设计以允许多任务同时运行,而RTOS使用分时设计或者事件驱动设计。
3、相比OS ,RTOS编码更加严格。
* 实时语言(real-time language)和堆内存分配(heap memory allocation)之间的关系是什么?
堆内存使用的一般比较慢,带gc的语言其gc也主要工作在堆区,
**未完成**
**参考资料**
http://xargin.com/backend-engineer-interview/#general
《Go并发编程实战》
有疑问加站长微信联系(非本文作者))